/* DJ-A.com — site.css
   Design: Bay Area at night. Midnight, International Orange (Golden Gate), fog.
   Rule: html is 24px and no text anywhere is smaller than 1rem (24px). */

/* Self-hosted fonts (SIL Open Font License) */
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/barlow-condensed-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/barlow-condensed-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/barlow-condensed-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/source-serif-4-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/source-serif-4-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/source-serif-4-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:400;font-display:swap;src:url("fonts/source-serif-4-latin-400-italic.woff2") format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:600;font-display:swap;src:url("fonts/source-serif-4-latin-600-italic.woff2") format("woff2")}

:root{
  --midnight:#0E141C;
  --deck:#17212D;
  --bridge:#C0362C;
  --bridge-lt:#FF7A5C;
  --fog:#E6EAEE;
  --paper:#FFFFFF;
  --ink:#141A22;
  --muted:#4E5A66;
  --rule:#C7CED5;
  --soft:#C3CDD7;
  --sans:"Barlow Condensed","Arial Narrow","Roboto Condensed","Liberation Sans Narrow","DejaVu Sans Condensed","Helvetica Neue",Arial,sans-serif;
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --measure:100%;
}

*,*::before,*::after{box-sizing:border-box}
html{font-size:24px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font:400 1rem/1.65 var(--serif);
  text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto}
a{color:var(--bridge);text-underline-offset:.18em;text-decoration-thickness:.07em;overflow-wrap:anywhere}
a:hover{text-decoration-thickness:.15em}
:focus-visible{outline:3px solid var(--bridge-lt);outline-offset:3px}
p{margin:0 0 1.1rem}
h1,h2,h3{font-family:var(--sans);margin:0;font-weight:700}
h2{font-size:2rem;line-height:1.1;letter-spacing:.005em}
h3{font-size:1.5rem;line-height:1.15}

.skip{position:absolute;left:-9999px;top:0;background:#fff;color:#000;padding:.5rem 1rem;z-index:20;font-family:var(--sans);font-weight:600}
.skip:focus{left:0}
.wrap{width:100%;max-width:none;margin:0 auto;padding:0 clamp(1rem,3vw,3rem)}
.prose{max-width:var(--measure);margin-inline:auto}

/* ---------- Header ---------- */
.top{background:var(--midnight);color:#fff;border-bottom:1px solid #223041}
.bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.25rem 1.5rem;padding-top:.6rem;padding-bottom:.6rem}
.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none}
.brand{max-width:100%}
.brand img{display:block;mix-blend-mode:screen;height:auto;min-width:0}
.wordmark{font:700 1.9rem/1 var(--sans);color:#fff;text-decoration:none;letter-spacing:.01em}
.nav{display:flex;flex-wrap:wrap;gap:0 .15rem;font:600 1rem/1 var(--sans);letter-spacing:.03em}
.nav a{color:#fff;text-decoration:none;padding:.7rem .75rem;border-bottom:4px solid transparent}
.nav a:hover{border-bottom-color:var(--bridge-lt)}
.nav a[aria-current="page"]{border-bottom-color:var(--bridge)}
.menu-toggle{display:none;align-items:center;justify-content:center;width:52px;height:52px;padding:12px;background:transparent;color:#fff;border:1px solid #4E5A66;border-radius:4px;cursor:pointer}
.menu-toggle:hover{background:var(--deck);border-color:var(--bridge-lt)}
.menu-icon{position:relative;display:block;width:26px;height:2px;background:currentColor}
.menu-icon::before,.menu-icon::after{content:"";position:absolute;left:0;width:26px;height:2px;background:currentColor}
.menu-icon::before{top:-8px}
.menu-icon::after{top:8px}
.menu-open .menu-icon{background:transparent}
.menu-open .menu-icon::before{top:0;transform:rotate(45deg)}
.menu-open .menu-icon::after{top:0;transform:rotate(-45deg)}
@media (max-width:860px){
  .bar{gap:.5rem;justify-content:space-between}
  .wordmark{font-size:clamp(1rem,6vw,1.9rem)}
  .menu-ready .menu-toggle{display:flex;flex-shrink:0}
  .nav{width:100%;flex-direction:column;gap:0;border-top:1px solid #223041;padding-top:.25rem}
  .menu-ready .nav{display:none}
  .menu-ready.menu-open .nav{display:flex}
  .nav a{display:block;padding:.7rem .55rem}
}

/* ---------- Hero + page heads (the bridge-hanger edge) ---------- */
.hero,.pagehead{
  position:relative;background:var(--midnight);color:#fff;
  padding:clamp(2rem,5vw,3.5rem) 0 calc(clamp(2rem,5vw,3.5rem) + 34px);
}
.hero::after,.pagehead::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:34px;
  background:
    linear-gradient(var(--bridge),var(--bridge)),
    repeating-linear-gradient(90deg,var(--bridge) 0 2px,transparent 2px 24px);
  background-repeat:no-repeat;
  background-size:100% 6px,100% 28px;
  background-position:left bottom,left top;
}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:2rem 3rem;align-items:center}
h1{
  font-size:clamp(2.1rem,5.2vw,3.6rem);line-height:1;letter-spacing:.012em;
  text-transform:uppercase;overflow-wrap:anywhere;
}
.hero h1{font-size:clamp(2.2rem,5.6vw,3.8rem)}
.phone-xl{
  display:inline-block;margin:.6rem 0 1rem;
  font:700 clamp(1.7rem,7.4vw,3.9rem)/1 var(--sans);letter-spacing:.01em;
  color:var(--bridge-lt);text-decoration:none;overflow-wrap:anywhere;
}
.phone-xl:hover{text-decoration:underline;text-decoration-thickness:.06em}
.tagline{color:var(--soft);max-width:28rem;margin-bottom:1.5rem}
.sub{color:var(--soft);font:500 1.2rem/1.4 var(--sans);letter-spacing:.02em;margin:.9rem 0 0;max-width:44rem}
.btn{
  display:inline-block;background:var(--bridge);color:#fff;text-decoration:none;
  font:700 1.1rem/1 var(--sans);letter-spacing:.04em;padding:.8rem 1.5rem;border:2px solid var(--bridge);
}
.btn:hover{background:#fff;color:var(--bridge)}
.hero figure{margin:0}
.hero figure img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;margin-inline:auto}

/* ---------- Bands ---------- */
.band{padding:clamp(2.25rem,5vw,3.75rem) 0}
.fog{background:var(--fog)}
.dark{background:var(--midnight);color:#fff}
.orange{background:var(--bridge);color:#fff}
.dark a{color:var(--bridge-lt)}
.orange a{color:#fff}

.lead{font-size:1.2rem;line-height:1.55}
.intro figure{float:left;width:min(32%,420px);margin:.35rem 1.4rem .6rem 0}
.intro figure img{display:block;border:2px solid var(--ink)}
.intro::after{content:"";display:block;clear:both}

/* emphasised lines carried over from the original (italic / bold brown) */
.prose p.hl{
  font-style:italic;font-weight:600;color:var(--bridge);
  border-left:4px solid var(--bridge);padding-left:1rem;
}
.prose p.hl.quiet{font-weight:400;color:var(--ink)}
.prose p.hl2{font-weight:700;color:var(--bridge)}
em.hl{font-style:italic;font-weight:600;color:var(--bridge)}
strong.hl2{font-weight:700;color:var(--bridge)}
.dark em.hl,.dark strong.hl2,.dark p.hl,.dark p.hl2{color:var(--bridge-lt);border-color:var(--bridge-lt)}
.orange em.hl,.orange strong.hl2{color:#fff}

/* call-to-action band */
.orange p{font-size:1.1rem}
.orange p.callline,.callline{font:700 clamp(1.6rem,4.8vw,3rem)/1.1 var(--sans);margin:1.25rem 0 0;letter-spacing:.01em}
a[href^="tel:"]{white-space:nowrap}
.callline a{text-decoration-thickness:.06em}
.orange .callline{font-style:normal}

/* booking band */
.dark h2.big{font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.08;margin-bottom:1.5rem;max-width:34rem}
.numbers{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(14.5rem,100%),1fr));gap:1rem;margin:0 0 1.75rem}
.num{background:var(--deck);border-top:4px solid var(--bridge-lt);padding:1rem 1.1rem 1.1rem}
.num a{
  display:block;font:700 clamp(1.5rem,3vw,2rem)/1.05 var(--sans);letter-spacing:.01em;
  color:var(--bridge-lt);text-decoration:none;overflow-wrap:anywhere;
}
.num a:hover{text-decoration:underline}
.num span{display:block;color:var(--soft);margin-top:.35rem}
.pricing{
  display:inline-block;margin:0;padding:.6rem 1.1rem;border:2px solid var(--bridge-lt);
  font:600 1.15rem/1.2 var(--sans);letter-spacing:.03em;color:#fff;
}

/* directory band */
.keywords{color:var(--muted);font-style:italic;max-width:46rem}
.fog h2{margin-bottom:1rem;color:var(--ink)}
.blogs-title{font-size:1.7rem;margin:2.25rem 0 1rem}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(14rem,100%),1fr));gap:.75rem;margin:0;padding:0;list-style:none}
.tiles a{
  display:block;height:100%;background:#fff;color:var(--ink);text-decoration:none;
  font:600 1.1rem/1.2 var(--sans);letter-spacing:.02em;padding:.9rem 1.05rem;
  border:2px solid var(--ink);border-left:8px solid var(--bridge);
}
.tiles a:hover{background:var(--ink);color:#fff}

/* inner-page blocks */
.notes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(15rem,100%),1fr));gap:1rem 2rem;max-width:var(--measure);margin-inline:auto}
.karaoke{font-size:1.15rem;line-height:1.55;max-width:var(--measure);margin-inline:auto}
.dark .karaoke-title{font-size:clamp(1.9rem,4.4vw,2.8rem);margin:0 auto 1rem;max-width:var(--measure);color:var(--bridge-lt)}
.equip{border-left:6px solid var(--bridge);padding:.2rem 0 .2rem 1.25rem;margin:0}
.store{display:flex;flex-wrap:wrap;gap:1.5rem 2.5rem;align-items:center;max-width:var(--measure);margin:2rem auto 0}
.store img{display:block;width:min(100%,600px);border:2px solid var(--ink)}

.addr{
  display:inline-block;background:var(--fog);border-left:6px solid var(--bridge);
  padding:1.1rem 1.5rem;margin:0 0 1.5rem;font-style:normal;font-weight:600;line-height:1.5;
}
.contact-top{display:flex;flex-wrap:wrap;gap:1rem 2.5rem;align-items:center;justify-content:space-between}
.formframe{margin-top:2rem;border:2px solid var(--rule);background:#fff}
.formframe iframe{display:block;width:100%;height:1500px;border:0}

/* cities */
.az{display:flex;flex-wrap:wrap;gap:.4rem;margin:2rem 0 0;padding:0;list-style:none}
.az a{
  display:grid;place-items:center;min-width:2.1rem;height:2.1rem;padding:0 .3rem;
  border:2px solid var(--ink);color:var(--ink);text-decoration:none;font:700 1rem/1 var(--sans);
}
.az a:hover{background:var(--bridge);border-color:var(--bridge);color:#fff}
.fog h2.letter,h2.letter{
  font:700 2.4rem/1 var(--sans);color:var(--bridge);margin:2.4rem 0 .6rem;
  padding-bottom:.35rem;border-bottom:2px solid var(--rule);scroll-margin-top:.75rem;
}
.cities{columns:14rem;column-gap:1.75rem;margin:0;padding:0;list-style:none}
.cities li{break-inside:avoid;padding:.1rem 0;overflow-wrap:anywhere}

/* sitemap */
.map{column-width:19rem;column-gap:1.25rem}
.card{background:#fff;border:2px solid var(--ink);border-top:8px solid var(--bridge);padding:1rem 1.35rem 1.25rem;break-inside:avoid;margin:0 0 1.25rem}
.card h2{font-size:1.9rem;margin-bottom:.6rem}
.card ul{list-style:none;margin:0;padding:0}
.card li{padding:.3rem 0;border-top:1px solid var(--rule)}
.card li:first-child{border-top:0}
.card a{color:var(--ink);text-decoration:none;font-weight:600}
.card a:hover{color:var(--bridge);text-decoration:underline}

/* sausalito */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2.5rem 3rem;align-items:start}
.split h2{font-size:2.4rem;line-height:1.05;margin-bottom:1.25rem}
.split figure{margin:0}
.split figure img{display:block;width:100%;border:2px solid var(--ink)}
.split figcaption{margin-top:.6rem}
.reach{border-top:4px solid var(--bridge);padding-top:1rem;margin-top:1.75rem}
.reach h3{margin-bottom:.4rem}
.reach .phone-xl{color:var(--bridge);margin:.2rem 0 0;font-size:clamp(1.9rem,5vw,2.8rem)}

/* ---------- Footer ---------- */
.foot{background:#000;color:#fff;padding:1.25rem 0}
.foot .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 2rem}
.foot p{margin:0}
.foot a{color:#fff;font-family:var(--sans);font-weight:600;letter-spacing:.03em}
.foot img{display:block;width:188px;height:115px;object-fit:cover}
.foot .party{margin-right:auto}

/* ---------- Small screens ---------- */
@media (max-width:860px){
  .hero .wrap,.split{grid-template-columns:1fr}
  .hero figure{order:2}
}
@media (max-width:560px){
  .intro figure{float:none;width:100%;margin:0 0 1rem}
  .bar{padding-top:.5rem}
  .nav a{padding:.6rem .55rem}
  .formframe iframe{height:1700px}
}

/* Local event photography */
.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.gallery figure{margin:0;min-width:0}
.gallery img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.gallery figcaption{font:600 1rem/1.35 var(--sans);margin-top:.65rem}
@media(max-width:860px){.gallery{grid-template-columns:1fr}.gallery img{aspect-ratio:16/9}}
/* Edge-to-edge homepage banner */
.hero-banner{display:block;width:100%;padding:0 0 34px}
/* The source PNG includes 118px black bars on each side of its 1280px width. */
.hero-banner > figure{display:block;width:100%;margin:0;overflow:hidden}
.hero-banner > figure img{display:block;width:122.605364%;max-width:none;height:auto;aspect-ratio:auto;margin:0 0 0 -11.302682%}
.hero-banner .wrap{display:block;padding-top:clamp(1.5rem,3vw,3rem);padding-bottom:clamp(1.5rem,3vw,3rem)}
.hero-banner .wrap > div{max-width:none}
.hero-banner h1{max-width:none}
.hero-banner .tagline{max-width:none}
