:root{--cream:#f5ecd9;--cream2:#ebdcbc;--sky:#8fc1d9;--sky-dk:#2f6e8c;--rust:#b4471f;--gold:#e0a24a;--esp:#2b1d14;--esp2:#4a3527;--disp:"Limelight",Georgia,serif;--body:"Libre Caslon Text",Georgia,serif}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--body);font-size:1rem;line-height:1.7;color:var(--esp);background:var(--cream)}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
:focus-visible{outline:3px dashed var(--rust);outline-offset:3px}
h1,h2,h3{font-family:var(--disp);font-weight:400;line-height:1.05;margin:0 0 .45em}
h2{font-size:clamp(2rem,6vw,3rem)}
.skip-link{position:absolute;left:-9999px;top:6px;z-index:999;background:var(--esp);color:var(--cream);padding:8px 12px}
.skip-link:focus{left:6px}

/* header: ticket stub with perforated lower edge, centered on desktop */
.tkt{position:sticky;top:0;z-index:50;background:var(--esp);color:var(--cream)}
.tkt::after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:8px;background:radial-gradient(circle at 8px 0,transparent 5px,var(--esp) 5.5px) repeat-x;background-size:16px 8px}
.tkt-demo{margin:0;background:var(--gold);color:var(--esp);font:600 .78rem system-ui,sans-serif;text-align:center;padding:4px 10px}
.tkt-row{display:flex;align-items:center;gap:14px;padding:10px 16px;max-width:1200px;margin:0 auto}
.tkt-brand{text-decoration:none;margin-right:auto;display:flex;flex-direction:column}
.tkt-name{font-family:var(--disp);font-size:1.45rem;line-height:1.1;color:var(--gold)}
.tkt-meta{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;opacity:.85}
.tkt-nav{display:none}
.tkt-call{display:none}
.nav-toggle{background:none;border:1px dashed var(--cream);color:var(--cream);font-size:1.3rem;width:46px;height:42px;cursor:pointer}
.mobile-menu{display:none;padding:4px 16px 18px;border-top:1px dashed var(--esp2)}
.mobile-menu.is-open{display:block}
.mobile-menu a{display:block;text-decoration:none;padding:12px 0;font-size:1.15rem;border-bottom:1px dashed var(--esp2)}
.mobile-menu .mm-call{color:var(--gold);border:0}
@media (min-width:940px){
  .tkt-nav{display:flex;gap:24px}
  .tkt-nav a{text-decoration:none;font-size:.98rem}
  .tkt-nav a:hover{color:var(--gold)}
  .tkt-call{display:inline-block;margin-left:18px;padding:7px 14px;border:1px dashed var(--gold);color:var(--gold);text-decoration:none;font-weight:700}
  .nav-toggle,.mobile-menu{display:none!important}
}

/* opener: text + arched photo */
.open{padding:42px 18px 56px}
.open-in{max-width:1200px;margin:0 auto;display:grid;gap:30px;align-items:center}
.open-kicker{margin:0 0 10px;font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;color:var(--sky-dk)}
.open h1{font-size:clamp(2.6rem,9vw,5rem);color:var(--esp)}
.open-lede{font-size:1.15rem;max-width:34rem}
.stamps{list-style:none;padding:0;margin:18px 0;display:flex;flex-wrap:wrap;gap:12px}
.stamps li{font-family:var(--disp);font-size:1.15rem;color:var(--rust);border:2px solid var(--rust);padding:6px 14px;transform:rotate(-2deg)}
.stamps li+li{transform:rotate(1.5deg);color:var(--sky-dk);border-color:var(--sky-dk)}
.btn-stamp{display:inline-block;background:var(--rust);color:var(--cream);font:700 1rem var(--body);text-decoration:none;padding:12px 20px;border:0;border-radius:2px;box-shadow:0 0 0 3px var(--cream),0 0 0 4px var(--rust);cursor:pointer}
.btn-stamp:hover{background:#963915}
.btn-txt{font-style:italic;text-decoration-thickness:1px;text-underline-offset:4px;margin-left:14px}
.arch{margin:0;justify-self:center;max-width:420px;width:100%}
.arch img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:999px 999px 6px 6px;border:6px solid var(--cream2)}
@media (min-width:880px){.open-in{grid-template-columns:1.2fr .8fr}.open{padding:64px 24px 80px}}

/* signature: price board + ticket */
.menu{background:var(--sky);padding:56px 18px}
.menu-in{max-width:1100px;margin:0 auto;display:grid;gap:28px;align-items:start}
.menu-board{background:var(--esp);color:var(--cream);padding:26px 20px;border-radius:4px}
.menu-board h2{color:var(--gold)}
.menu-note{margin:0 0 14px;font-style:italic;opacity:.9}
.svc{list-style:none;margin:0;padding:0}
.svc button{display:flex;align-items:baseline;gap:8px;width:100%;background:none;border:0;border-bottom:1px solid var(--esp2);color:var(--cream);font:1.1rem var(--body);padding:11px 4px;cursor:pointer;text-align:left}
.svc button i{flex:1;border-bottom:2px dotted rgba(245,236,217,.45);transform:translateY(-4px)}
.svc button b{font-family:var(--disp);font-weight:400;font-size:1.3rem;color:var(--gold)}
.svc button[aria-pressed="true"]{background:rgba(224,162,74,.16)}
.svc button[aria-pressed="true"] span::before{content:"\2713  ";color:var(--gold)}
.ticket{background:var(--cream);border:2px solid var(--esp);padding:22px 20px;position:relative}
.ticket::before,.ticket::after{content:"";position:absolute;top:50%;width:22px;height:22px;border-radius:50%;background:var(--sky);border:2px solid var(--esp);transform:translateY(-50%)}
.ticket::before{left:-13px;clip-path:inset(0 0 0 50%)}
.ticket::after{right:-13px;clip-path:inset(0 50% 0 0)}
.ticket-h{font-family:var(--disp);font-size:1.5rem;margin:0 0 10px;border-bottom:2px dashed var(--esp);padding-bottom:8px}
.ticket-lines{margin:0;padding:0 0 0 20px;min-height:4em}
.ticket-empty{list-style:none;margin-left:-20px;font-style:italic;color:var(--esp2)}
.ticket-tip{font-size:.92rem;background:var(--cream2);padding:8px 10px;margin:10px 0 0}
.ticket-total{display:flex;justify-content:space-between;font-family:var(--disp);font-size:1.6rem;border-top:2px dashed var(--esp);margin:14px 0 6px;padding-top:10px}
.ticket-foot{margin:0;font-size:.88rem;font-style:italic}
@media (min-width:860px){.menu-in{grid-template-columns:1.25fr .75fr}.ticket{position:sticky;top:110px}}

/* back door notice */
.backdoor{background:var(--rust);color:var(--cream);padding:44px 18px}
.bd-in{max-width:900px;margin:0 auto;display:flex;gap:22px;align-items:center}
.bd-arrow{font-size:4.5rem;line-height:1;margin:0;color:var(--gold)}
.bd-in p{margin:0;font-size:1.12rem;max-width:36rem}

/* discount luggage tags */
.tags{padding:56px 18px}
.tags-in{max-width:1100px;margin:0 auto}
.tag-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:12px}
.tag-list li{position:relative;background:var(--cream2);border:1px solid var(--esp2);padding:8px 16px 8px 30px;border-radius:0 6px 6px 0;clip-path:polygon(14px 0,100% 0,100% 100%,14px 100%,0 50%)}
.tag-list li::before{content:"";position:absolute;left:14px;top:50%;width:7px;height:7px;border-radius:50%;background:var(--cream);border:1px solid var(--esp2);transform:translateY(-50%)}

/* barbers */
.barbers{background:var(--cream2);padding:60px 18px}
.barbers-in{max-width:1150px;margin:0 auto;display:grid;gap:30px}
.card-q{margin:20px 0 0;background:var(--cream);padding:18px 20px;border-left:6px double var(--sky-dk)}
.card-q p{margin:0;font-style:italic}
.card-q cite{display:block;margin-top:8px;font-style:normal;font-size:.85rem;color:var(--esp2)}
.b-pics{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.b-pics button{padding:0;border:0;background:none;cursor:zoom-in}
.b-pics img{width:100%;aspect-ratio:3/2;object-fit:cover;border:5px solid var(--cream)}
@media (min-width:900px){.barbers-in{grid-template-columns:1fr 1fr}}

/* visit */
.visit{padding:60px 18px}
.visit-in{max-width:1200px;margin:0 auto;display:grid;gap:30px}
.hrs{margin:0}
.hrs div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px dotted var(--esp2);padding:8px 0}
.hrs dt{font-weight:700}.hrs dd{margin:0}
.v-addr{margin-top:18px}
.v-map iframe{width:100%;height:100%;min-height:300px;border:2px solid var(--esp);display:block}
.field{margin-bottom:12px}
.field label{display:block;font-size:.92rem;font-weight:700;margin-bottom:3px}
.field input,.field textarea{width:100%;font:inherit;padding:10px 12px;border:1px solid var(--esp);background:#fffaf0;border-radius:2px}
.field-error{display:none;color:#9b1c1c;font-size:.85rem;margin:3px 0 0}
.field.has-error input,.field.has-error textarea{border-color:#9b1c1c}
.field.has-error .field-error{display:block}
.form-success{display:none}
.form-success.is-visible{display:block}
@media (min-width:980px){.visit-in{grid-template-columns:.8fr 1.1fr .9fr}}

.foot{background:var(--esp);color:var(--cream);text-align:center;padding:22px 16px;font-size:.9rem}
.foot p{margin:0}

.lightbox{position:fixed;inset:0;z-index:500;background:rgba(43,29,20,.95);display:none;align-items:center;justify-content:center;padding:56px 16px}
.lightbox.is-open{display:flex}
.lightbox img{max-height:82vh;max-width:min(1100px,100%);object-fit:contain;border:6px solid var(--cream)}
.lightbox-caption{position:absolute;bottom:14px;left:0;right:0;text-align:center;color:var(--cream);font-style:italic}
.lightbox-btn{position:absolute;width:46px;height:46px;border-radius:50%;border:1px dashed var(--gold);background:var(--esp);color:var(--gold);font-size:1.5rem;cursor:pointer}
.lightbox-close{top:12px;right:12px}.lightbox-prev{left:10px;top:50%}.lightbox-next{right:10px;top:50%}
