@font-face{font-family:"Butler";src:url("/assets/fonts/butler/Butler.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Butler";src:url("/assets/fonts/butler/Butler-Light.woff2") format("woff2");font-weight:300;font-display:swap}
@font-face{font-family:"Butler";src:url("/assets/fonts/butler/Butler-Medium.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Inter";src:url("/assets/fonts/inter/inter-latin-wght-normal.woff2") format("woff2-variations");font-weight:100 900;font-display:swap}

:root{
  --ivory:#ECEBE2; --vanilla:#EED9D0; --blush:#F4D1C3; --rose:#CD8774; --ink:#111; --white:#fff; --visit:#FBEDE7;
  --display:"Butler",Georgia,serif; --ui:"Inter","Helvetica Neue",Arial,sans-serif;
  --px:20px; --rule:rgba(17,17,17,.18);
}
@media (min-width:900px){:root{--px:80px}}
*{box-sizing:border-box;margin:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{background:var(--white);color:var(--ink);font:400 16px/1.55 var(--ui);overflow-x:hidden}
img,svg{max-width:100%;display:block}
img{height:auto}
a{color:inherit}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:var(--ink);color:var(--white);padding:8px 12px;z-index:99}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.kick{font:500 11px/1.4 var(--ui);letter-spacing:.24em;text-transform:uppercase}
.link{text-decoration:underline;text-underline-offset:4px}
.arrow-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:15px;text-decoration:none}
.small{font-size:14px}
.msg{min-height:1.6em;margin-top:12px}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:30;height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 12px 0 var(--px);background:var(--blush);border-bottom:1px solid var(--rule)}
body:not(.is-home) .site-header{background:var(--white)}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none}
.nav{display:none}
.head-right{display:flex;align-items:center;gap:4px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 22px;border-radius:999px;border:1px solid transparent;font:500 15px var(--ui);letter-spacing:.02em;text-decoration:none;cursor:pointer}
.btn-ink,.btn-book{background:var(--ink);color:var(--white)}
.btn-ghost{background:transparent;border-color:var(--ink);color:var(--ink)}
.btn-blush{background:var(--blush);color:var(--ink)}
.btn:hover{filter:brightness(1.15)}
.btn-blush:hover,.btn-ghost:hover{filter:brightness(.96)}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.menu-btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:none;border:0;cursor:pointer;color:var(--ink)}
.menu-panel{display:none;position:fixed;top:64px;left:0;right:0;z-index:29;background:var(--white);border-bottom:1px solid var(--rule);padding:12px var(--px) 24px}
.menu-panel.open{display:block}
.menu-panel a{display:block;padding:14px 0;font:400 26px/1.1 var(--display);text-decoration:none;border-bottom:1px solid var(--rule)}
@media (min-width:900px){
  .site-header{height:84px;padding:0 64px}
  .nav{display:flex;gap:36px;align-items:center;margin-right:40px}
  .nav a{font-size:15px;letter-spacing:.02em;text-decoration:none}
  .nav a:hover,.nav a[aria-current]{text-decoration:underline;text-underline-offset:6px}
  .menu-btn,.menu-panel{display:none!important}
  .btn-book{min-height:48px;padding:0 30px}
}

/* ---------- A1 cover ---------- */
.cover{background:var(--blush)}
.dateline{display:flex;justify-content:space-between;padding:18px var(--px);border-bottom:1px solid rgba(17,17,17,.25);font:500 11px var(--ui);letter-spacing:.22em;text-transform:uppercase}
.dateline span:nth-child(2),.dateline span:nth-child(3){display:none}
.mast{display:flex;justify-content:center;padding:28px 0 26px}
.mast svg,.mast img{width:min(86vw,520px);height:auto}
.cover-grid{display:flex;flex-direction:column}.cover-photo{order:1}.cover-copy{order:2}
.cover-photo{height:400px;margin-left:44px;overflow:hidden;background:#E3AE9A}
.cover-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 28%}
.cover-copy{display:flex;flex-direction:column;gap:24px;padding:32px var(--px) 48px}
.cover-copy h1{font:400 44px/1.02 var(--display);letter-spacing:-.01em}
.cover-copy p.lede{font-size:17px;line-height:1.55;max-width:440px}
.cover-actions{display:flex;gap:12px;flex-wrap:wrap}
.cover-actions .btn{min-height:52px;padding:0 30px}
.contents{border-top:1px solid rgba(17,17,17,.3);padding-top:18px;display:flex;flex-direction:column;gap:10px}
.contents ul{display:flex;flex-wrap:wrap;gap:8px 18px;list-style:none;padding:0;font-size:14px}
.contents em{font:italic 400 16px var(--display)}
.contents a{text-decoration:none}.contents a:hover{text-decoration:underline}
@media (min-width:900px){
  .dateline{padding:22px 80px;font-size:12px}
  .dateline span:nth-child(2),.dateline span:nth-child(3){display:inline}
  .mast{padding:44px 0 40px}.mast svg,.mast img{width:min(71vw,1020px)}
  .cover-grid{flex-direction:row;align-items:flex-start}
  .cover-copy{order:1;width:560px;flex:none;padding:24px 0 96px 80px;gap:30px}
  .cover-copy h1{font-size:clamp(56px,5.3vw,76px)}
  .cover-copy p.lede{font-size:19px}
  .cover-photo{order:2;flex:1 1 0;height:700px;margin-left:72px}
}

/* ---------- offer band ---------- */
.offer-band{background:var(--ink);color:var(--white);padding:28px var(--px);display:flex;flex-direction:column;gap:16px;align-items:flex-start;justify-content:space-between}
.offer-band .t{font:400 24px/1.2 var(--display)}
.offer-band .s{font-size:16px}
.offer-band .txt{display:flex;flex-direction:column;gap:6px}
@media (min-width:900px){.offer-band{flex-direction:row;align-items:center;padding:30px 80px}.offer-band .txt{flex-direction:row;gap:18px;align-items:baseline}.offer-band .t{font-size:28px}}

/* ---------- services spread ---------- */
.spread{background:var(--white);padding:64px var(--px);display:flex;flex-direction:column;gap:40px}
.spread-head{border-bottom:2px solid var(--ink);padding-bottom:20px;display:flex;flex-direction:column;gap:12px}
.spread-head h2{font:400 48px/1 var(--display);letter-spacing:-.02em}
.pillars{display:flex;flex-direction:column;gap:48px}
.pillar{display:flex;flex-direction:column;gap:14px;scroll-margin-top:100px}
.pillar h3{font:400 56px/1 var(--display)}
.pillar .dek{font:400 19px/1.4 var(--display);margin-bottom:10px}
.prow{display:grid;grid-template-columns:1fr auto auto;gap:4px 16px;padding:14px 0;border-top:1px solid var(--rule);font-size:16px;align-items:baseline}
.prow a{text-decoration:none}.prow a:hover{text-decoration:underline;text-underline-offset:4px}
.prow .d{opacity:.8}.prow .p{min-width:40px;text-align:right}
.band-photo{height:260px;overflow:hidden;background:#EFD2C6}
.band-photo img{width:100%;height:100%;object-fit:cover}
.rows-note{font-size:15px;color:#444}
@media (min-width:900px){
  .spread{padding:128px 120px;gap:72px}
  .spread-head h2{font-size:96px}
  .pillars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:88px 120px;background-image:linear-gradient(rgba(17,17,17,.2),rgba(17,17,17,.2));background-size:1px 100%;background-position:center;background-repeat:no-repeat}
  .pillar h3{font-size:84px}.pillar .dek{font-size:21px}
  .band-photo{grid-column:1/-1;height:380px}
}

/* ---------- promises, team, instagram ---------- */
.promises{background:var(--blush);padding:64px var(--px);display:flex;flex-direction:column;gap:36px}
.promises .row{display:flex;flex-direction:column;gap:44px}
.promise{display:flex;flex-direction:column;gap:14px}
.promise .n{font:400 22px var(--display)}
.promise blockquote{font:400 34px/1.08 var(--display)}
@media (min-width:900px){
  .promises{padding:120px 80px;gap:56px}
  .promises .row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}
  .promise{padding:0 40px}.promise:first-child{padding-left:0}.promise+.promise{border-left:1px solid rgba(17,17,17,.25)}
  .promise blockquote{font-size:44px}
}
.people{background:var(--white);padding:64px 0;display:flex;flex-direction:column;gap:32px}
.people-photo{height:340px;overflow:hidden;background:#EAD3C9}.people-photo img{width:100%;height:100%;object-fit:cover}
.people-copy{display:flex;flex-direction:column;gap:20px;padding:0 var(--px)}
.people-copy h2{font:400 40px/1.05 var(--display)}
.people-copy p{font:400 21px/1.45 var(--display)}
@media (min-width:900px){
  .people{flex-direction:row;align-items:flex-end;padding:120px 120px 120px 0;gap:88px}
  .people-photo{flex:1.4 1 0;height:620px}.people-copy{flex:1 1 0;padding:0 0 12px}
  .people-copy h2{font-size:60px}.people-copy p{font-size:25px}
}
.insta{padding:0 var(--px) 64px;display:flex;flex-direction:column;gap:24px;background:var(--white)}
.insta-head{display:flex;flex-direction:column;gap:12px}
.insta h2{font:400 40px/1 var(--display)}
.insta-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.insta-grid div{aspect-ratio:1;overflow:hidden;background:var(--vanilla)}.insta-grid img{width:100%;height:100%;object-fit:cover}
@media (min-width:900px){
  .insta{padding:0 120px 120px;gap:40px}.insta-head{flex-direction:row;justify-content:space-between;align-items:flex-end}.insta h2{font-size:56px}
  .insta-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}
}

/* ---------- list, visit, footer ---------- */
.list{background:var(--vanilla);padding:56px var(--px)}
.list-in{max-width:640px;display:flex;flex-direction:column;gap:16px}
.list h2{font:400 36px/1.05 var(--display)}
.signup .row{display:flex;gap:8px}
.visit{background:var(--visit);padding:56px var(--px);display:flex;flex-direction:column;gap:40px}
.visit-info{display:flex;flex-direction:column;gap:28px}
.visit-info h2{font:400 44px/1 var(--display)}
.visit .addr{font-size:17px;line-height:1.5}
.hrow{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid rgba(17,17,17,.2);font-size:15px}
.map{position:relative;overflow:hidden;background:var(--blush);height:280px}
.map>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.map .pin{position:absolute;left:50%;top:50%;width:34px;height:44px;margin:-44px 0 0 -17px;filter:drop-shadow(0 3px 6px rgba(0,0,0,.28))}
.map .chip{position:absolute;left:14px;bottom:12px;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:999px;background:rgba(255,255,255,.86);font-size:13px;text-decoration:none}
.map .attr{position:absolute;right:10px;bottom:10px;font-size:9px;letter-spacing:.04em;background:rgba(255,255,255,.86);padding:3px 6px;border-radius:2px;color:rgba(17,17,17,.7)}
@media (min-width:900px){
  .list{padding:80px 120px}.list h2{font-size:48px}
  .visit{flex-direction:row;padding:120px;gap:96px}.visit-info{flex:1 1 0}.visit-info h2{font-size:72px}.visit .addr{font-size:19px}
  .map{flex:1.2 1 0;height:auto;min-height:520px}
}
.site-footer{background:var(--blush);padding:56px var(--px) 40px;display:flex;flex-direction:column;gap:48px}
.foot-top{display:flex;flex-direction:column;gap:48px}
.foot-logo svg,.foot-logo img{width:min(260px,70vw);height:auto}
.foot-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 24px}
.foot-cols h3{font:500 12px var(--ui);letter-spacing:.2em;text-transform:uppercase;margin-bottom:12px}
.foot-cols a{display:block;text-decoration:none;font-size:15px;padding:6px 0}.foot-cols a:hover{text-decoration:underline}
.foot-cols p{font-size:13px;max-width:240px;opacity:.8}
.legal{border-top:1px solid rgba(17,17,17,.25);padding-top:20px;font-size:13px;display:flex;flex-direction:column;gap:8px}
@media (min-width:900px){
  .site-footer{padding:96px 120px 48px;gap:64px}.foot-top{flex-direction:row;justify-content:space-between}
  .foot-logo svg,.foot-logo img{width:380px}.foot-cols{display:flex;gap:96px}.legal{flex-direction:row;justify-content:space-between}
}

/* ---------- inner pages ---------- */
.wrap{max-width:1180px;margin:0 auto;padding:0 var(--px)}
@media (min-width:900px){.wrap{padding:0 64px}}
.narrow{max-width:760px}
.section{padding-block:clamp(40px,8vw,96px)}
.h1{font:400 clamp(44px,8vw,84px)/1.02 var(--display);letter-spacing:-.01em;margin-bottom:.5em}
.h2{font:400 clamp(26px,4vw,38px)/1.1 var(--display);margin:1.4em 0 .5em}
.cat{margin-bottom:48px;scroll-margin-top:110px}
.rows{border-top:1px solid var(--rule)}
.row-svc{display:grid;grid-template-columns:1fr auto;gap:8px 16px;padding:18px 0;border-bottom:1px solid var(--rule);align-items:center}
.row-svc h3{font:400 24px var(--display)}
.row-svc p{grid-column:1;color:#333;font-size:15px}
.row-svc .meta{text-align:right;white-space:nowrap}
.row-svc .btn{grid-column:1/-1;justify-self:start}
@media (min-width:700px){.row-svc{grid-template-columns:1fr auto auto}.row-svc .btn{grid-column:auto}}
.card{background:var(--vanilla);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:8px}
.card h3{font:400 24px var(--display)}
.card img{border-radius:8px;aspect-ratio:1;object-fit:cover}
.grid,.featured{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
label{display:block;font-weight:500;margin:16px 0 6px}
input,select,textarea{width:100%;font:inherit;padding:12px 14px;border:1px solid var(--ink);border-radius:8px;background:var(--white);color:var(--ink)}
.signup input{flex:1;min-width:0}
.signup label{margin-top:0}
.chip{border:1px solid var(--ink);background:transparent;border-radius:999px;padding:10px 18px;font:500 15px var(--ui);cursor:pointer;min-height:44px}
.chip[aria-pressed=true],.chip:hover{background:var(--ink);color:var(--white)}
.amounts,.slots{display:flex;flex-wrap:wrap;gap:8px}
.gift-go{margin-top:28px}
[hidden]{display:none!important}
.steps{display:flex;gap:8px;margin-bottom:24px;font-size:13px;flex-wrap:wrap}
.steps span{padding:4px 12px;border-radius:999px;border:1px solid rgba(17,17,17,.3)}.steps .on{background:var(--ink);color:var(--white)}
.day{margin-top:16px;font-weight:600}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;max-width:420px}
.cal-nav{display:flex;align-items:center;justify-content:space-between;max-width:420px;margin:16px 0 8px}
.cal-title{font-weight:600;margin:0}
.cal-arrow{width:44px;height:44px;border-radius:999px;border:1px solid var(--ink);background:transparent;font:500 22px var(--ui);line-height:1;cursor:pointer;color:var(--ink)}
.cal-arrow:hover:not(:disabled){background:var(--ink);color:var(--white)}
.cal-arrow:disabled{opacity:.3;cursor:default}
.cal-day.blank{border-color:transparent}
.cal-head{text-align:center;font-size:12px;color:#666;padding:4px 0}
.cal-day{display:flex;align-items:center;justify-content:center;min-height:44px;border-radius:999px;border:1px solid var(--ink);background:transparent;font:500 15px var(--ui);cursor:pointer;color:var(--ink)}
.cal-day:hover,.cal-day[aria-pressed=true]{background:var(--ink);color:var(--white)}
.cal-day.off{border-color:transparent;color:#bbb;cursor:default}
.notice{background:var(--blush);padding:16px;border-radius:8px;margin:16px 0}
.team,.hours{list-style:none;padding:0}.hours li{display:flex;justify-content:space-between;border-bottom:1px solid var(--rule);padding:6px 0}
.team li{padding:8px 0}
.visit-grid{display:grid;gap:32px}@media (min-width:800px){.visit-grid{grid-template-columns:1fr 1fr}}
.map-fig img{border-radius:12px;width:100%}
.offer{font:italic 300 24px var(--display);margin-bottom:16px}
[data-loading]{color:#444}
.logo-white{color:#fff}.logo-ivory{color:#ECEBE2}.logo-black{color:#111}.logo-blush{color:#F4D1C3}

/* header wordmark (primary logo) */
.brand-logo{display:block}
.brand-logo svg,.brand-logo img,.brand>img{height:38px;width:auto}
@media (min-width:900px){.brand-logo svg,.brand-logo img,.brand>img{height:54px}}
.visit-info h1{font:400 44px/1 var(--display)}
@media (min-width:900px){.visit-info h1{font-size:72px}}

/* team from Square profiles */
.team .member{display:flex;gap:20px;align-items:flex-start;padding:20px 0;border-bottom:1px solid var(--rule)}
.team .member img{width:96px;height:96px;border-radius:50%;object-fit:cover;flex:none}
.team .member p{margin-top:4px;font-size:15px}

/* Owner page: the A1 cover language (blush field, dateline, centred mast, hairline rules, Butler headlines) */
.admin-page{background:var(--blush);min-height:100vh}
.admin-page .dateline span:nth-child(2),.admin-page .dateline span:nth-child(3){display:none}
.admin-page .mast a{display:block}
.admin-main{max-width:1100px;margin:0 auto;padding:8px var(--px) 96px}
.admin-hero{padding:36px 0 40px;border-bottom:1px solid rgba(17,17,17,.25)}
.admin-hero h1{font:400 clamp(44px,8vw,88px)/1 var(--display);letter-spacing:-.01em;margin:14px 0 0}
.admin-hero p{margin-top:18px;max-width:46ch;font-size:17px}
.admin-grid{display:flex;flex-direction:column}
.panel{padding:36px 0;border-bottom:1px solid rgba(17,17,17,.25)}
.panel h2{font:400 clamp(28px,4vw,40px)/1.05 var(--display);margin:10px 0 18px}
.panel p{max-width:46ch}
.panel .small{margin-top:10px;opacity:.8}
.status{display:inline-flex;align-items:center;gap:10px;font:500 12px var(--ui);letter-spacing:.2em;text-transform:uppercase;margin-bottom:18px}
.status i{width:10px;height:10px;border-radius:50%;background:var(--ink);box-shadow:0 0 0 4px rgba(17,17,17,.12)}
.status.off i{background:transparent;border:1.5px solid var(--ink);box-shadow:none}
.status.warn{color:#8a1c14}.status.warn i{background:#b3261e;box-shadow:0 0 0 4px rgba(179,38,30,.18)}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.admin-page .btn-ghost{background:rgba(255,255,255,.55)}
.admin-page label{font:500 11px/1.4 var(--ui);letter-spacing:.2em;text-transform:uppercase;margin:20px 0 8px}
.admin-page input{background:var(--white);border:1px solid var(--ink);border-radius:999px;padding:0 22px;min-height:48px}
.admin-page .panel form,.admin-page .signin{max-width:420px}
.admin-page .signin{padding-top:36px}
.admin-page .msg{font-size:15px}
.flash{background:var(--ink);color:var(--white);padding:14px 22px;border-radius:999px;margin:28px 0 0;font-size:15px;display:inline-block}
.flash.bad{background:#b3261e}
.square-badge{width:200px;margin-top:44px;height:auto}
.signout{margin-top:32px;font:inherit;background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
@media (min-width:900px){
  .admin-main{padding:8px 80px 120px}
  .admin-grid{display:grid;grid-template-columns:1fr 1fr}
  .panel{padding:48px 48px 48px 0}
  .panel+.panel{padding:48px 0 48px 48px;border-left:1px solid rgba(17,17,17,.25)}
  .admin-page .dateline span:nth-child(2),.admin-page .dateline span:nth-child(3){display:inline}
}
.panel p+p{margin-top:12px}

/* Owner copy (2026-10-19) */
.cover-body{font-size:16px;line-height:1.55;max-width:46ch}
.spread-dek{font:400 21px/1.4 var(--display);max-width:44ch;margin-top:14px}
.spread-more{margin-top:48px}
.page-intro{max-width:62ch;margin:0 0 32px;line-height:1.6}
.cat-head{font:italic 400 22px/1.3 var(--display);margin-bottom:8px}
.cat-intro{max-width:62ch;color:#333;margin-bottom:20px;line-height:1.55}
@media (min-width:900px){
  .promises .row{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:64px}
  .promise:nth-child(odd){padding-left:0;border-left:0}
}
.consent{margin-top:10px;color:#444;max-width:46ch}
.legal ul{padding-left:1.2em;margin:0 0 1em}.legal li{margin-bottom:.5em}.legal p{margin-bottom:1em;line-height:1.6}
.contact{display:flex;flex-direction:column}
.contact textarea{resize:vertical}
.contact-go{margin-top:20px}
/* landing page only: section headings a step smaller than the full homepage, since there are no service rows under them */
.landing .spread-head h2{font-size:36px}
.landing .pillar h3{font-size:38px}
.landing .people-copy h2,.landing .insta h2,.landing .list h2{font-size:30px}
.landing .visit-info h2{font-size:34px}
@media (min-width:900px){.landing .spread-head h2{font-size:64px}.landing .pillar h3{font-size:56px}.landing .people-copy h2{font-size:44px}.landing .insta h2,.landing .list h2{font-size:40px}.landing .visit-info h2{font-size:52px}}
