/* Self-hosted Latin brand fonts; SIL Open Font License files in /static/fonts/. */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: optional;
  src: url(/static/fonts/brand-latin-0.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 400 600;
  font-display: optional;
  src: url(/static/fonts/brand-latin-1.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400 600;
  font-display: optional;
  src: url(/static/fonts/brand-latin-2.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* SIL OFL Noto subsets cover the site's complete Chinese copy, including 糕.
   One CJK font per text style prevents per-character baseline fallback. */
@font-face{font-family:'Catfe CJK Sans';font-style:normal;font-weight:100 900;font-display:swap;src:url('/static/fonts/catfe-cjk-sans.woff2') format('woff2');unicode-range:U+2E80-9FFF,U+FF00-FFEF}
@font-face{font-family:'Noto Serif SC';font-style:normal;font-weight:200 900;font-display:swap;src:url('/static/fonts/catfe-cjk-serif.woff2') format('woff2');unicode-range:U+2E80-9FFF,U+FF00-FFEF}

:root{
  --bg:#f9f7f1;
  --ink:#262e2a;
  --muted:#7d8078;
  --sage:#6c806f;
  --dark:#344b3c;
  --cream:#f0eee5;
  --gold:#c6ab79;
  --rust:#c18066;
  --line:#e8e6dd;
  --white:#fffefb;
  --shadow:0 15px 55px rgba(52,57,44,.075);
  font-family:'Inter','Avenir Next',Avenir,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink);
  background:var(--bg)
}
*{
  box-sizing:border-box
}
body{
  margin:0
}
button,input,textarea,select{
  font:inherit
}
button{
  cursor:pointer
}
a{
  color:inherit;
  text-decoration:none
}
a:hover{
  text-decoration:none
}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid #bb9869;
  outline-offset:3px
}
.shell{
  max-width:1230px;
  margin-inline:auto;
  padding-inline:34px
}
.header{
  background:rgba(249,247,241,.94);
  position:sticky;
  top:0;
  z-index:30;
  backdrop-filter:blur(14px);
  border-bottom:1px solid #eeeae0
}
.nav{
  min-height:91px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px
}
.brand{
  display:flex;
  align-items:center;
  gap:13px;
  flex-shrink:0
}
.brand-mark img{
  width:56px;
  height:56px;
  display:block;
  object-fit:contain;
  filter:drop-shadow(0 8px 20px rgba(162,127,94,.18))
}
.brand-wordmark{
  display:flex;
  flex-direction:column;
  gap:2px
}
.brand-wordmark strong{
  font-size:23px;
  letter-spacing:-1.1px;
  font-weight:800;
  white-space:nowrap
}
.brand-dot{
  color:#a9845a;
  margin-left:4px
}
.brand-wordmark small{
  font-size:9px;
  letter-spacing:2.5px;
  font-weight:800;
  color:var(--sage)
}
.nav-links{
  display:flex;
  align-items:center;
  gap:32px;
  font-size:13px;
  font-weight:650
}
.nav-link{
  border:0;
  background:transparent;
  color:var(--ink);
  padding:7px 0
}
.nav-links a:hover,.nav-link:hover{
  color:#b47d57
}
.language{
  background:#fffdf8;
  border:1px solid #e5e1d5;
  border-radius:99px;
  padding:11px 17px;
  color:var(--dark);
  white-space:nowrap;
  font-size:12px;
  font-weight:800
}
.nav-cta{
  border:0;
  background:var(--dark);
  color:#fff;
  padding:14px 22px;
  border-radius:99px;
  font-weight:760;
  font-size:13px
}
.nav-cta span{
  margin-left:8px
}
.nav-cta:hover,.btn-dark:hover{
  background:#20392a
}
.hero{
  min-height:580px;
  display:grid;
  grid-template-columns:1.08fr .92fr;
  align-items:center;
  gap:48px;
  padding-top:48px;
  padding-bottom:35px
}
.eyebrow{
  font-size:11px;
  letter-spacing:3.4px;
  font-weight:800;
  color:#765638
}
.mini-star{
  color:#bc9870;
  font-size:20px;
  vertical-align:-1px;
  margin-right:5px
}
.hero h1,.booking-intro :is(h1,h2),.section-note h2{
  font-family:Georgia,"Times New Roman",serif;
  font-weight:500;
  letter-spacing:-2.6px
}
.hero h1{
  font-size:clamp(51px,5.25vw,77px);
  line-height:1.09;
  margin:24px 0 22px;
  white-space:nowrap
}
.hero h1 em{
  color:#9c9977;
  font-weight:400
}
.hero-sub{
  max-width:490px;
  line-height:1.9;
  color:#787d75;
  font-size:15px
}
.hero-actions{
  display:flex;
  align-items:center;
  gap:20px;
  margin:28px 0 37px;
  flex-wrap:wrap
}
.btn{
  border-radius:100px;
  padding:16px 25px;
  font-weight:750;
  font-size:14px;
  border:1px solid transparent
}
.btn-dark{
  background:var(--dark);
  color:white
}
.btn-outline{
  background:#fff;
  color:var(--dark);
  border:1px solid #d7dcd4
}
.btn-outline:hover{
  background:#f7f8f3
}
.btn:disabled{
  background:#b9bdb8;
  border-color:#b9bdb8;
  color:white;
  cursor:not-allowed
}
.hero-no-charge{
  font-size:11px;
  font-weight:700;
  color:#7d8777
}
.hero-stats{
  display:flex;
  gap:38px
}
.hero-stats div{
  display:flex;
  flex-direction:column;
  gap:5px
}
.hero-stats strong{
  font-size:20px;
  color:var(--dark);
  letter-spacing:-.5px
}
.hero-stats small{
  color:#9a9d92;
  font-size:11px;
  white-space:nowrap
}
.hero-art{
  position:relative;
  height:500px;
  display:flex;
  align-items:center;
  justify-content:center
}
.hero-photo{
  width:min(100%,430px);
  height:430px;
  background:#d7d3c7;
  border-radius:48% 48% 40% 43%/45% 45% 50% 53%;
  box-shadow:0 25px 60px #68705e27;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  transform:rotate(4deg);
  position:relative
}
.hero-photo:before{
  position:absolute;
  inset:0;
  content:'';
  background:linear-gradient(180deg,rgba(14,18,15,.06),rgba(14,18,15,.18));
  z-index:1
}
.hero-photo img{
  position:relative;
  width:100%;
  height:100%;
  object-fit:cover;
  transform:rotate(-4deg) scale(1.08);
  z-index:0
}
.hero-photo:after{
  display:none
}
.hero-mini{
  position:absolute;
  width:142px;
  height:142px;
  border-radius:36px;
  overflow:hidden;
  border:7px solid rgba(255,255,255,.82);
  box-shadow:0 18px 38px rgba(52,57,44,.15);
  background:#fff;
  z-index:2
}
.hero-mini img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block
}
.hero-mini-a{
  left:18px;
  bottom:28px;
  transform:rotate(-9deg)
}
.hero-mini-b{
  right:8px;
  top:28px;
  transform:rotate(8deg)
}
.hero-bubble{
  position:absolute;
  z-index:4;
  background:#fffef8;
  border-radius:99px;
  padding:13px 19px;
  box-shadow:0 10px 30px #535d4c20;
  font-size:11px;
  letter-spacing:1.6px;
  font-weight:900;
  color:#566850;
  white-space:nowrap
}
.hero-bubble span{
  font-size:20px;
  vertical-align:middle;
  margin-right:6px
}
.bubble-top{
  right:-6px;
  top:186px;
  transform:rotate(8deg)
}
.bubble-bottom{
  left:-10px;
  bottom:176px;
  transform:rotate(-9deg)
}
.hero-decoration{
  position:absolute;
  width:160px;
  color:#b6a683;
  right:-42px;
  bottom:-22px;
  z-index:0
}
.wave{
  height:55px;
  margin-top:-6px
}
.wave svg{
  display:block;
  width:100%;
  height:100%
}
.gallery-band{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:28px;
  align-items:start;
  padding:34px 34px 18px
}
.gallery-copy h2{
  font-family:Georgia,"Times New Roman",serif;
  font-size:44px;
  letter-spacing:-1.8px;
  font-weight:500;
  margin:14px 0 14px
}
.gallery-copy p{
  font-size:14px;
  line-height:1.85;
  color:#50634f;
  max-width:420px
}
.gallery-meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:22px
}
.gallery-meta span{
  padding:10px 14px;
  border-radius:999px;
  background:#fffefa;
  border:1px solid #ece7dc;
  font-size:11px;
  font-weight:800;
  color:#6b786b
}
.gallery-grid{
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:18px
}
.gallery-card{
  background:#fffefa;
  border:1px solid #ece7dc;
  border-radius:24px;
  overflow:hidden;
  box-shadow:var(--shadow)
}
.gallery-card img{
  width:100%;
  height:220px;
  display:block;
  object-fit:cover
}
.gallery-card-large{
  grid-row:span 2
}
.gallery-card-large img{
  height:100%
}
.gallery-card-copy{
  padding:18px 18px 20px;
  display:grid;
  gap:8px
}
.gallery-card-copy strong{
  font-size:18px;
  letter-spacing:-.3px
}
.gallery-card-copy span{
  font-size:12px;
  line-height:1.75;
  color:#7a8179
}
.booking-section{
  padding:80px 0 90px;
  background:var(--cream)
}
.booking-intro{
  text-align:center;
  margin-bottom:42px
}
.booking-intro :is(h1,h2){
  font-size:51px;
  margin:12px 0
}
.booking-intro p:last-child{
  font-size:15px;
  color:var(--muted);
  line-height:1.6
}
.booking-root{
  max-width:1090px;
  margin:auto
}
.booking-shell{
  display:grid;
  grid-template-columns:1.7fr 1fr;
  gap:20px;
  align-items:start
}
.booking-panel,.booking-summary,.single-panel,.admin-card{
  background:var(--white);
  border:1px solid #e9e7de;
  border-radius:25px;
  box-shadow:var(--shadow)
}
.booking-panel{
  padding:33px 35px 37px
}
.booking-summary{
  padding:29px 27px;
  position:sticky;
  top:110px
}
.stephead{
  display:flex;
  align-items:center;
  gap:12px;
  padding-bottom:23px;
  border-bottom:1px solid var(--line);
  margin-bottom:22px
}
.step-pill{
  font-size:10px;
  font-weight:850;
  letter-spacing:1px;
  padding:9px 11px;
  background:#ecf1eb;
  color:#516c52;
  border-radius:30px
}
.step-title{
  font-family:Georgia,serif;
  font-size:26px;
  letter-spacing:-.7px
}
.stepdots{
  margin-left:auto;
  display:flex;
  gap:5px
}
.stepdots i{
  width:7px;
  height:7px;
  background:#e1e3db;
  border-radius:50%
}
.stepdots i.active{
  background:var(--dark);
  width:19px
}
.field-label{
  font-size:13px;
  font-weight:800;
  color:#414d43;
  display:block;
  margin:0 0 10px
}
.guest-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:15px
}
.guest-control{
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-radius:15px;
  border:1px solid #e7e9e1;
  background:#fdfefa;
  padding:13px 14px
}
.guest-control strong{
  font-size:13px;
  display:block
}
.guest-control small{
  display:block;
  color:#516450;
  font-size:11px;
  margin-top:4px
}
.counter{
  display:flex;
  align-items:center;
  gap:10px
}
.counter button{
  border:1px solid #dbe2d8;
  width:31px;
  height:31px;
  border-radius:50%;
  background:#fff;
  color:var(--dark);
  font-size:19px;
  line-height:1
}
.counter button:disabled{
  opacity:.3;
  cursor:not-allowed
}
.counter span{
  font-weight:800;
  font-size:13px;
  min-width:10px;
  text-align:center
}
.note-line{
  font-size:12px;
  color:#9b9f96;
  margin:13px 0 24px
}
.date-heading{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin:8px 0 12px
}
.date-nav{
  display:flex;
  align-items:center;
  gap:10px
}
.date-nav button{
  border:1px solid #e6e8df;
  background:#fff;
  height:31px;
  width:31px;
  border-radius:50%;
  font-size:17px;
  color:var(--dark)
}
.date-nav span{
  font-size:13px;
  font-weight:850;
  min-width:112px;
  text-align:center
}
.calendar-weekdays,.calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:5px
}
.calendar-weekdays span{
  text-align:center;
  font-size:10px;
  font-weight:800;
  color:#a6ada4;
  padding:10px 0
}
.date-button{
  border:1px solid transparent;
  background:transparent;
  border-radius:12px;
  min-height:48px;
  color:#415147;
  font-size:13px;
  font-weight:750;
  position:relative
}
.date-button:not(:disabled):hover{
  background:#eef4ed
}
.date-button:disabled{
  color:#d2d5cf;
  cursor:not-allowed
}
.date-button.selected{
  background:var(--dark);
  color:white
}
.date-button.today:after{
  content:'';
  position:absolute;
  width:4px;
  height:4px;
  bottom:7px;
  left:calc(50% - 2px);
  border-radius:50%;
  background:#cda97a
}
.date-button.selected:after{
  background:#fff
}
.date-pad{
  min-height:48px
}
.slots-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin:27px 0 13px
}
.slots-header small{
  font-size:11px;
  color:#50634f
}
.slot-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px
}
.slot{
  background:#fff;
  border:1px solid #e0e5dc;
  border-radius:11px;
  min-height:54px;
  padding:9px 5px;
  color:#3e5547;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px
}
.slot strong{
  font-size:13px
}
.slot span{
  font-size:9px;
  color:#a1aaa0
}
.slot:not(:disabled):hover{
  border-color:var(--dark);
  background:#f4f7f2
}
.slot.selected{
  background:var(--dark);
  border-color:var(--dark);
  color:white
}
.slot.selected span{
  color:#d4e2d6
}
.slot:disabled{
  background:#f7f7f3;
  color:#b9bbb5;
  cursor:not-allowed;
  text-decoration:line-through
}
.slots-blank{
  border:1px dashed #d2d9d0;
  background:#f8f9f5;
  border-radius:14px;
  padding:22px;
  text-align:center;
  color:#5d6f61;
  font-size:13px
}
.section-divider{
  height:1px;
  background:var(--line);
  margin:28px 0
}
.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:17px
}
.form-field{
  display:flex;
  flex-direction:column;
  gap:8px
}
.form-field.full{
  grid-column:1/-1
}
.form-field label{
  font-size:12px;
  font-weight:800;
  color:#3e4e43
}
.form-field input,.form-field textarea,.form-field select,.field-input{
  border:1px solid #e0e5da;
  border-radius:11px;
  background:#fff;
  min-height:48px;
  padding:12px 14px;
  font-size:13px;
  color:#27382f;
  width:100%
}
.form-field textarea{
  min-height:84px;
  resize:vertical
}
.form-field input:focus,.form-field textarea:focus{
  border-color:#8ca88d;
  outline:3px solid #e6f0e4
}
.checklabel{
  display:flex;
  align-items:start;
  gap:11px;
  font-size:12px;
  line-height:1.75;
  color:#68756a;
  margin:22px 0
}
.checklabel input{
  margin-top:4px;
  accent-color:var(--sage)
}
.summary-label{
  font-size:10px;
  letter-spacing:2.3px;
  font-weight:800;
  color:#a3a497
}
.summary-service{
  display:flex;
  align-items:center;
  gap:13px;
  margin:19px 0 22px
}
.cat-thumb{
  width:53px;
  height:53px;
  border-radius:13px;
  object-fit:cover
}
.summary-service h3{
  font-size:16px;
  margin:0 0 5px;
  letter-spacing:-.3px
}
.summary-service small{
  font-size:11px;
  color:var(--muted)
}
.summary-rows{
  border-block:1px dashed #e3e6dd;
  padding:14px 0;
  display:flex;
  flex-direction:column;
  gap:14px
}
.summary-rows div,.price-line,.summary-bottom{
  display:flex;
  justify-content:space-between;
  gap:15px;
  align-items:center;
  font-size:12px
}
.summary-rows span,.price-line span{
  color:#879185
}
.summary-rows strong,.price-line strong{
  font-size:12px;
  font-weight:800;
  text-align:right
}
.summary-total{
  padding-top:22px
}
.summary-total .total-line{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:10px
}
.summary-total .total-line span{
  font-size:12px;
  font-weight:850
}
.summary-total .total-line strong{
  font-size:27px;
  letter-spacing:-.6px;
  color:var(--dark)
}
.summary-total small{
  display:block;
  color:#9a9f97;
  margin-top:6px;
  font-size:10px
}
.summary-payment{
  background:#f1f6ed;
  padding:12px;
  border-radius:11px;
  display:flex;
  gap:9px;
  color:#55735b;
  font-size:11px;
  font-weight:700;
  line-height:1.6;
  margin-top:19px
}
.summary-payment b{
  font-size:18px
}
.action-row{
  display:flex;
  gap:12px;
  justify-content:flex-end;
  margin-top:25px
}
.action-row .btn{
  min-width:165px
}
.loading{
  text-align:center;
  padding:80px;
  color:var(--sage)
}
.single-panel{
  max-width:760px;
  margin:auto;
  padding:38px
}
.page-state-icon{
  width:75px;
  height:75px;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-size:36px;
  background:#eef4ea;
  color:#5c7c5d;
  margin:0 auto 22px
}
.state-title{
  font:normal 40px Georgia,serif;
  text-align:center;
  letter-spacing:-1px;
  margin:0 0 10px
}
.state-sub{
  text-align:center;
  color:#50634f;
  font-size:14px;
  line-height:1.7
}
.receipt{
  max-width:480px;
  margin:28px auto 18px;
  padding:23px;
  border:1px dashed #c9d5c8;
  border-radius:15px;
  background:#fcfdfa
}
.receipt-line{
  display:flex;
  justify-content:space-between;
  gap:15px;
  padding:10px 0;
  font-size:13px;
  border-bottom:1px solid #edf0e9
}
.receipt-line:last-child{
  border:0
}
.receipt-line span{
  color:#879286
}
.receipt-line b{
  color:var(--dark);
  text-align:right
}
.receipt-reference{
  font-size:20px!important;
  letter-spacing:1px
}
.receipt-actions{
  display:flex;
  gap:10px;
  justify-content:center;
  flex-wrap:wrap
}
.receipt-actions button{
  font-size:12px
}
.privacy-note{
  font-size:11px;
  text-align:center;
  line-height:1.7;
  color:#999f96;
  max-width:470px;
  margin:23px auto
}
.manage-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:center;
  margin-top:20px
}
.manage-reschedule{
  max-width:530px;
  margin:23px auto;
  padding:20px;
  border:1px solid #e3e8df;
  background:#f9fbf7;
  border-radius:14px
}
.manage-reschedule .form-grid{
  align-items:end
}
.status-dot{
  display:inline-block;
  border-radius:20px;
  padding:5px 10px;
  background:#eaf4e9;
  color:#537055;
  font-size:11px
}
.status-dot.cancelled,.status-dot.no_show{
  background:#fceae3;
  color:#9e6a55
}
.info{
  padding-block:95px 90px
}
.section-note{
  text-align:center
}
.note-icon{
  color:#b5a079;
  font-size:26px
}
.section-note h2{
  font-size:44px;
  margin:12px 0 45px
}
.info-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px
}
.info-card{
  padding:32px;
  background:#fffefa;
  border:1px solid #edede5;
  border-radius:22px
}
.info-icon{
  width:53px;
  height:53px;
  border-radius:15px;
  display:grid;
  place-items:center;
  background:#eff0e6;
  color:#818f77;
  font-size:26px
}
.info-card h3{
  font:normal 23px Georgia,serif;
  margin:20px 0 12px
}
.info-card p{
  font-size:12px;
  color:#828980;
  line-height:1.85;
  margin:0
}
.address-strip{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  background:#e9eee4;
  border-radius:19px;
  padding:19px 28px;
  margin-top:24px
}
.address-strip>div{
  display:flex;
  align-items:center;
  gap:16px
}
.address-pin{
  font-size:30px;
  color:#7b8d76
}
.address-strip strong,.address-strip small{
  display:block
}
.address-strip strong{
  font-size:14px;
  margin-bottom:6px
}
.address-strip small{
  font-size:12px;
  color:#879286
}
.address-strip a{
  color:#536d58;
  font-size:12px;
  font-weight:800
}
.footer{
  border-top:1px solid #ebe9e1;
  padding:35px 0;
  background:#fffefa
}
.foot-flex{
  display:flex;
  justify-content:space-between;
  gap:15px;
  color:#6e766f;
  font-size:11px
}
.faint{
  color:#abb0a8
}
.foot-flex>div{
  display:flex;
  gap:25px
}
.foot-admin{
  border:0;
  background:none;
  color:#888d86;
  font-size:11px
}
.toast{
  position:fixed;
  bottom:20px;
  left:50%;
  transform:translate(-50%,80px);
  background:#354c3b;
  color:white;
  padding:14px 22px;
  box-shadow:0 10px 30px #1a302423;
  border-radius:12px;
  z-index:100;
  opacity:0;
  pointer-events:none;
  transition:.25s;
  font-size:13px;
  max-width:min(90vw,500px);
  text-align:center
}
.toast.show{
  opacity:1;
  transform:translate(-50%,0)
}
.toast.error{
  background:#914e42
}
.admin-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:22px;
  gap:12px
}
.admin-title h2{
  font:normal 32px Georgia,serif;
  margin:0
}
.admin-card{
  padding:25px;
  margin:20px auto;
  max-width:1080px
}
.admin-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  margin-bottom:18px;
  flex-wrap:wrap
}
.admin-controls{
  display:flex;
  gap:8px;
  flex-wrap:wrap
}
.admin-controls button{
  font-size:11px;
  padding:9px 14px;
  min-width:0
}
.admin-stats{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin:18px 0
}
.admin-stats>div{
  border-radius:13px;
  background:#f4f6f0;
  padding:16px
}
.admin-stats strong{
  font-size:28px;
  display:block;
  color:var(--dark)
}
.admin-stats small{
  font-size:11px;
  color:#8b968a
}
.table-scroll{
  overflow:auto
}
.admin-table{
  border-collapse:collapse;
  width:100%;
  min-width:720px;
  font-size:12px
}
.admin-table th{
  text-align:left;
  color:#929c91;
  font-weight:800;
  font-size:10px;
  letter-spacing:1px;
  background:#f7f8f4;
  padding:12px;
  border-bottom:1px solid #e5e9e1
}
.admin-table td{
  padding:12px;
  border-bottom:1px solid #edf0ec
}
.admin-table select{
  border:1px solid #e1e6dd;
  border-radius:6px;
  padding:7px;
  background:white;
  font-size:11px
}
.admin-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:13px
}
.admin-grid label{
  font-size:11px;
  font-weight:800;
  display:flex;
  flex-direction:column;
  gap:7px
}
.admin-grid input,.admin-grid select{
  min-height:42px;
  border:1px solid #dfe6df;
  border-radius:9px;
  padding:8px 10px;
  width:100%
}
.admin-hours{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:13px;
  margin-top:20px
}
.admin-hours label{
  display:flex;
  flex-direction:column;
  gap:7px;
  font-size:12px;
  font-weight:800
}
.admin-hours input{
  width:100%;
  border:1px solid #dfe6df;
  border-radius:8px;
  padding:10px;
  font-size:12px
}
.admin-help{
  color:#8c968c;
  font-size:12px;
  line-height:1.7
}
.admin-danger{
  color:#ac6355;
  font-size:12px
}
.admin-section-head{
  font:normal 22px Georgia,serif;
  margin:0 0 16px
}

@media(max-width:1040px){
  .gallery-band{
    grid-template-columns:1fr;
    gap:22px;
    padding:22px 34px 6px
  }
  .gallery-grid{
    grid-template-columns:1fr 1fr
  }
  .gallery-card-large{
    grid-row:auto
  }
  .gallery-card-large img{
    height:260px
  }

}
@media(max-width:1040px){
  .hero{
    grid-template-columns:1fr .86fr;
    gap:22px
  }
  .hero h1{
    font-size:56px
  }
  .nav-links{
    gap:17px
  }
  .hero-art{
    height:390px
  }
  .hero-photo{
    height:350px;
    width:350px
  }
  .booking-shell{
    grid-template-columns:1.45fr .9fr
  }
  .booking-panel{
    padding:25px
  }
  .booking-summary{
    padding:22px
  }

}
@media(max-width:790px){
  .shell{
    padding-inline:20px
  }
  .nav{
    min-height:73px
  }
  .brand-mark img{
    width:46px;
    height:46px
  }
  .brand-wordmark strong{
    font-size:19px
  }
  .brand-wordmark small{
    font-size:8px;
    letter-spacing:1.5px
  }
  .hide-mobile{
    display:none
  }
  .nav-links{
    gap:9px
  }
  .nav-link{
    font-size:11px
  }
  .nav-cta{
    padding:11px 13px;
    font-size:11px
  }
  .language{
    padding:10px;
    font-size:10px
  }
  .hero{
    grid-template-columns:1fr;
    gap:0;
    min-height:0;
    padding-top:42px
  }
  .hero h1{
    font-size:clamp(46px,8vw,68px)
  }
  .hero-copy{
    text-align:center
  }
  .hero-sub{
    margin-inline:auto
  }
  .hero-actions,.hero-stats{
    justify-content:center
  }
  .hero-art{
    margin-top:20px;
    height:400px
  }
  .hero-photo{
    width:350px;
    height:350px
  }
  .hero-mini{
    width:112px;
    height:112px;
    border-radius:28px
  }
  .hero-mini-a{
    left:4px;
    bottom:22px
  }
  .hero-mini-b{
    right:8px;
    top:18px
  }
  .gallery-band{
    padding:8px 20px 0
  }
  .gallery-copy h2{
    font-size:37px
  }
  .gallery-grid{
    grid-template-columns:1fr
  }
  .gallery-card img,.gallery-card-large img{
    height:220px
  }
  .booking-section{
    padding:65px 0
  }
  .booking-shell{
    grid-template-columns:1fr
  }
  .booking-summary{
    position:static;
    grid-row:1
  }
  .summary-service{
    margin:12px 0
  }
  .summary-rows{
    padding:10px 0
  }
  .booking-intro :is(h1,h2){
    font-size:42px
  }
  .info-grid{
    grid-template-columns:1fr
  }
  .info{
    padding:65px 20px
  }
  .address-strip{
    flex-wrap:wrap
  }
  .admin-stats{
    grid-template-columns:repeat(2,1fr)
  }
  .admin-grid{
    grid-template-columns:1fr 1fr
  }

}
@media(max-width:510px){
  .shell{
    padding-inline:15px
  }
  .nav-links{
    gap:9px
  }
  .nav-link{
    display:none
  }
  .nav-cta{
    display:none
  }
  .hero{
    padding-top:35px
  }
  .hero h1{
    font-size:43px;
    letter-spacing:-1.8px
  }
  .hero-sub{
    font-size:13px
  }
  .hero-stats{
    gap:19px
  }
  .hero-stats strong{
    font-size:18px
  }
  .hero-stats small{
    font-size:9px
  }
  .hero-art{
    height:320px;
    margin-top:16px
  }
  .hero-photo{
    width:270px;
    height:270px
  }
  .hero-mini{
    width:86px;
    height:86px;
    border-width:5px;
    border-radius:22px
  }
  .hero-mini-a{
    left:0;
    bottom:22px
  }
  .hero-mini-b{
    right:0;
    top:22px
  }
  .hero-bubble{
    font-size:8px;
    padding:9px
  }
  .bubble-top{
    right:-2px;
    top:132px
  }
  .bubble-bottom{
    left:-2px;
    bottom:132px
  }
  .hero-no-charge{
    font-size:10px
  }
  .booking-intro :is(h1,h2){
    font-size:37px
  }
  .gallery-copy h2{
    font-size:32px
  }
  .gallery-card-copy strong{
    font-size:16px
  }
  .booking-panel,.booking-summary,.single-panel{
    padding:20px;
    border-radius:17px
  }
  .step-title{
    font-size:21px
  }
  .stephead{
    gap:9px
  }
  .step-pill{
    font-size:9px;
    padding:7px
  }
  .guest-row{
    grid-template-columns:1fr;
    gap:9px
  }
  .calendar-grid,.calendar-weekdays{
    gap:2px
  }
  .date-button,.date-pad{
    min-height:39px
  }
  .slot-grid{
    grid-template-columns:repeat(3,1fr);
    gap:8px
  }
  .form-grid{
    grid-template-columns:1fr
  }
  .form-field.full{
    grid-column:auto
  }
  .booking-section{
    padding:50px 0
  }
  .info-grid{
    gap:12px
  }
  .info-card{
    padding:22px
  }
  .address-strip{
    padding:20px
  }
  .foot-flex{
    flex-direction:column
  }
  .admin-stats{
    grid-template-columns:repeat(2,1fr)
  }
  .admin-grid,.admin-hours{
    grid-template-columns:1fr
  }
  .admin-title h2{
    font-size:25px
  }
  .action-row{
    flex-wrap:wrap
  }
  .action-row .btn{
    flex:1
  }
  .state-title{
    font-size:32px
  }

}
@media(max-width:790px){
  .hero-decoration{
    right:3px
  }

}
/* Allow the Chinese headline to wrap within the hero column. */
html[lang="zh-CN"] .hero h1{
  font-size:clamp(44px,4.2vw,62px);
  white-space:normal
}

@media(max-width:510px){
  html[lang="zh-CN"] .hero h1{
    font-size:37px
  }

}
/* Catfe Mao V4: product-facing gallery, visit guide and conversion mobile controls */
.gallery-band{
  padding-top:86px;
  padding-bottom:78px;
  align-items:center
}

.gallery-copy h2{
  font-size:clamp(32px,3.2vw,45px);
  max-width:430px;
  line-height:1.17
}

.gallery-copy p{
  max-width:450px
}

.brand-links{
  display:flex;
  gap:16px;
  flex-wrap:wrap;
  margin-top:32px
}

.brand-links a{
  border-bottom:1px solid #b6a486;
  padding-bottom:5px;
  font-size:12px;
  font-weight:800;
  color:#56684e
}

.brand-links a:hover{
  color:#9a7659
}

.gallery-card{
  margin:0;
  position:relative;
  min-height:0;
  overflow:hidden;
  box-shadow:0 16px 45px rgba(54,58,48,.085)
}

.gallery-card img{
  height:205px;
  transition:transform .5s ease
}

.gallery-card:hover img{
}

.gallery-card-large{
  grid-row:span 2;
  min-height:456px
}

.gallery-card-large img{
  height:100%;
  position:absolute;
  inset:0
}

.gallery-card figcaption{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  padding:37px 20px 18px;
  color:#fffefa;
  background:linear-gradient(transparent,rgba(19,32,26,.8));
  font-size:12px;
  font-weight:800
}

.faq{
  padding:78px 34px 87px;
  border-top:1px solid #eae9e0
}

.faq-heading{
  text-align:center;
  max-width:660px;
  margin:0 auto 38px
}

.faq-heading :is(h1,h2){
  font:500 clamp(34px,4vw,50px)/1.16 Georgia,'Times New Roman',serif;
  letter-spacing:-1.7px;
  margin:14px 0
}

.faq-heading p:last-child{
  font-size:14px;
  line-height:1.7;
  color:#50634f
}

.faq-content{
  display:grid;
  grid-template-columns:1.4fr .8fr;
  gap:27px;
  align-items:start
}

.faq-list{
  background:#fffefa;
  border:1px solid #eeeadd;
  border-radius:24px;
  overflow:hidden
}

.faq-item{
  border-bottom:1px solid #eeeadd;
  padding:0 24px
}

.faq-item:last-child{
  border-bottom:0
}

.faq-item summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  cursor:pointer;
  list-style:none;
  font-size:15px;
  font-weight:750;
  color:#354739;
  padding:21px 1px
}

.faq-item summary::-webkit-details-marker{
  display:none
}

.faq-item summary:after{
  content:'+';
  font-size:25px;
  font-weight:300;
  color:#a58660;
  transition:transform .2s;
  line-height:1
}

.faq-item[open] summary:after{
  transform:rotate(45deg)
}

.faq-item p{
  font-size:13px;
  line-height:1.85;
  color:#50634f;
  padding:0 24px 23px 1px;
  margin:0
}

.faq-aside{
  display:grid;
  gap:17px
}

.hours-card{
  background:#e6ece2;
  border-radius:24px;
  padding:27px 29px
}

.hours-heading{
  display:flex;
  align-items:center;
  gap:11px;
  margin-bottom:20px
}

.hours-icon{
  font-size:29px;
  color:#5d795e
}

.hours-heading strong{
  font-size:19px;
  display:block;
  color:#385440
}

.hours-heading small{
  display:block;
  font-size:11px;
  margin-top:4px;
  color:#50634f
}

.opening-hours{
  display:grid;
  gap:12px
}

.hour-line{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
  border-bottom:1px solid #cedbca;
  padding-bottom:10px;
  font-size:12px
}

.hour-line span{
  color:#50634f
}
.hour-line strong{
  text-align:right;
  color:#2d4333;
  font-size:12px;
  line-height:1.6
}

.hours-disclaimer{
  display:block;
  font-size:11px;
  line-height:1.75;
  margin-top:18px;
  color:#50634f
}

.hours-directions{
  display:inline-flex;
  margin-top:22px;
  font-weight:800;
  border-bottom:1px solid #779172;
  padding-bottom:5px;
  color:#48694d;
  font-size:12px
}

.adoption-note{
  border-radius:23px;
  background:#f6ecdd;
  border:1px solid #ebdcc7;
  padding:25px
}

.adoption-note strong{
  font:500 23px Georgia,serif;
  color:#5c5542
}

.adoption-note p{
  font-size:12px;
  line-height:1.85;
  color:#705b3e;
  margin:13px 0 18px
}

.adoption-note a{
  font-size:12px;
  font-weight:800;
  color:#705b3e;
  border-bottom:1px solid #b79973;
  padding-bottom:5px
}

.mobile-book-bar{
  display:none
}

html{
  scroll-padding-top:95px
}

@media(max-width:1040px){
  .gallery-band{
    padding:68px 34px;
    grid-template-columns:1fr;
    gap:32px
  }
  .gallery-grid{
    grid-template-columns:1.15fr 1fr
  }
  .gallery-card-large{
    grid-row:span 2
  }
  .gallery-card-large img{
    height:100%
  }
  .faq{
    padding:60px 34px 75px
  }
  .faq-content{
    grid-template-columns:1.25fr .9fr
  }

}
@media(max-width:790px){
  .faq-content{
    grid-template-columns:1fr
  }
  .faq-aside{
    grid-template-columns:1fr 1fr
  }
  .gallery-band{
    padding:64px 20px
  }
  .gallery-grid{
    grid-template-columns:1.15fr 1fr
  }
  .gallery-card-large{
    grid-row:span 2
  }
  .gallery-card-large img{
    height:100%
  }
  .faq{
    padding:62px 20px
  }
  .faq-item{
    padding:0 18px
  }
  .faq-item summary{
    font-size:14px
  }

}
@media(max-width:510px){
  body{
    padding-bottom:66px
  }
  .gallery-band{
    padding:52px 15px
  }
  .gallery-grid{
    grid-template-columns:1fr 1fr;
    gap:10px
  }
  .gallery-card-large{
    grid-column:span 2;
    grid-row:auto;
    min-height:225px
  }
  .gallery-card-large img{
    height:100%
  }
  .gallery-card:not(.gallery-card-large) img{
    height:150px
  }
  .gallery-card{
    border-radius:15px
  }
  .gallery-card figcaption{
    font-size:10px;
    padding:28px 12px 12px
  }
  .gallery-copy h2{
    font-size:34px
  }
  .brand-links{
    gap:14px;
    margin-top:22px
  }
  .faq{
    padding:55px 15px 60px
  }
  .faq-heading{
    margin-bottom:28px
  }
  .faq-heading :is(h1,h2){
    font-size:35px
  }
  .faq-item p{
    font-size:12px
  }
  .faq-aside{
    grid-template-columns:1fr
  }
  .hours-card,.adoption-note{
    padding:23px
  }
  .mobile-book-bar{
    display:flex;
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    gap:10px;
    background:rgba(255,254,251,.98);
    border-top:1px solid #e8e6de;
    box-shadow:0 -7px 25px #354a3a12;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom));
    z-index:39
  }
  .mobile-book-bar button{
    min-height:43px;
    border-radius:999px;
    padding:10px 13px;
    font-size:12px;
    font-weight:800;
    white-space:nowrap
  }
  .mobile-book-btn{
    background:var(--dark);
    color:#fff;
    border:0;
    flex:1
  }
  .mobile-manage-btn{
    background:#fff;
    border:1px solid #cbd8c9;
    color:#415e47
  }
  .footer{
    padding-bottom:20px
  }

}
@media print{
  .mobile-book-bar{
    display:none
  }
  .faq-item{
    break-inside:avoid
  }

}
/* Verified new location visual: only the authentic logo and address information. */
.location-hero-art{
  height:510px;
  min-width:0;
  isolation:isolate
}

.new-location-hero{
  width:min(100%,455px);
  min-height:448px;
  border:1px solid rgba(255,255,255,.55);
  padding:34px 32px 28px;
  border-radius:40px;
  background:linear-gradient(153deg,#fff9ed 1%,#f3e4cd 53%,#e7d3ad 100%);
  box-shadow:0 32px 72px rgba(66,67,44,.14);
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  transform:rotate(2deg)
}

.new-location-hero:before{
  content:'';
  height:340px;
  width:340px;
  border:1px solid rgba(187,159,110,.36);
  border-radius:50%;
  position:absolute;
  left:-120px;
  top:-160px
}

.new-location-hero:after{
  content:'';
  width:230px;
  height:230px;
  border:1px solid rgba(187,159,110,.25);
  border-radius:50%;
  position:absolute;
  right:-120px;
  bottom:-110px
}

.new-location-decoration{
  position:absolute;
  right:30px;
  top:34px;
  color:#c6ab79;
  font-size:28px
}
.new-location-small{
  position:relative;
  font-size:10px;
  letter-spacing:2.8px;
  color:#8d784f;
  font-weight:900
}
.new-location-logo{
  width:175px;
  height:175px;
  object-fit:contain;
  position:relative;
  align-self:center;
  margin:5px auto -2px;
  mix-blend-mode:multiply
}
.new-location-copy{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:7px;
  align-items:center;
  text-align:center
}
.new-location-copy span{
  font-size:10px;
  font-weight:900;
  letter-spacing:2px;
  color:#9d8559
}
.new-location-copy strong{
  font:normal 30px/1.18 Georgia,'Times New Roman',serif;
  color:#344b3c;
  max-width:320px;
  letter-spacing:-.9px
}
.new-location-copy p{
  font-size:12px;
  line-height:1.6;
  max-width:330px;
  color:#716c5a;
  margin:3px 0
}
.new-location-levels{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
  position:relative;
  margin-top:12px
}
.new-location-levels div{
  display:flex;
  align-items:center;
  gap:9px;
  background:rgba(255,254,250,.72);
  border:1px solid rgba(255,255,255,.7);
  border-radius:13px;
  padding:11px
}
.new-location-levels span{
  font-size:18px;
  letter-spacing:-.5px;
  font-weight:900;
  color:#a88755
}
.new-location-levels strong{
  font-size:11px;
  color:#4f5345
}
.location-pin-card{
  position:absolute;
  bottom:18px;
  right:-9px;
  z-index:2;
  background:#314e40;
  color:#fffdfa;
  border-radius:18px;
  padding:10px 18px;
  min-width:110px;
  box-shadow:0 14px 30px rgba(31,50,38,.2);
  display:grid;
  gap:2px;
  transform:rotate(-6deg)
}
.location-pin-card>span{
  justify-self:end;
  font-size:17px;
  line-height:1
}
.location-pin-card strong{
  font:normal 42px/1 Georgia,serif
}
.location-pin-card small{
  font-size:9px;
  line-height:1.4;
  letter-spacing:1.5px
}
.new-location-section{
  padding-top:85px;
  padding-bottom:85px;
  grid-template-columns:.86fr 1.14fr
}
.new-location-steps{
  display:grid;
  gap:14px
}
.location-step{
  display:grid;
  grid-template-columns:auto auto 1fr;
  align-items:center;
  column-gap:17px;
  position:relative;
  padding:24px 22px;
  border-radius:20px;
  border:1px solid #e7e4d9;
  background:#fffefa;
  min-height:123px
}
.location-step-number{
  position:absolute;
  top:16px;
  right:18px;
  color:#b1b3a8;
  letter-spacing:2px;
  font-size:10px;
  font-weight:900
}
.location-step-icon{
  background:#edf2e8;
  border-radius:16px;
  height:49px;
  width:49px;
  display:grid;
  place-items:center;
  font-size:22px;
  color:#55785b
}
.location-step strong{
  display:block;
  color:#364d3d;
  font-size:16px;
  margin-bottom:6px
}
.location-step p{
  font-size:12px;
  line-height:1.7;
  color:#50634f;
  margin:0
}
.location-step-address{
  grid-template-columns:auto auto 1fr;
  min-height:150px;
  background:#eef1e8
}
.location-map-link{
  grid-column:3;
  font-size:11px;
  font-weight:850;
  color:#3f694e;
  justify-self:start;
  margin-top:-10px
}
.gallery-copy{
  max-width:480px
}
.new-location-steps .location-step-number{
  display:none
}

@media(max-width:1040px){
  .new-location-section{
    grid-template-columns:1fr
  }
  .new-location-steps{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:9px
  }
  .location-step{
    grid-template-columns:1fr;
    align-items:start;
    gap:8px;
    padding:19px
  }
  .location-map-link{
    grid-column:1;
    margin-top:0
  }
  .location-step-address{
    grid-template-columns:1fr
  }
  .location-hero-art{
    height:390px
  }
  .new-location-hero{
    min-height:370px;
    padding:22px
  }
  .new-location-logo{
    width:115px;
    height:115px
  }
  .new-location-copy strong{
    font-size:25px
  }

}
@media(max-width:790px){
  .new-location-section{
    padding-top:55px;
    padding-bottom:55px
  }
  .new-location-steps{
    grid-template-columns:1fr
  }
  .location-step{
    grid-template-columns:auto 1fr;
    min-height:110px
  }
  .location-step-icon{
    grid-column:1
  }
  .location-step>div:last-of-type{
    grid-column:2
  }
  .location-map-link{
    grid-column:2
  }
  .location-hero-art{
    height:440px
  }
  .new-location-hero{
    min-height:405px;
    width:min(100%,420px)
  }
  .new-location-logo{
    height:140px;
    width:140px
  }

}
@media(max-width:510px){
  .location-hero-art{
    height:380px;
    margin-top:24px
  }
  .new-location-hero{
    min-height:358px;
    max-width:326px;
    padding:19px 16px;
    border-radius:28px
  }
  .new-location-small{
    font-size:8px
  }
  .new-location-logo{
    height:110px;
    width:110px
  }
  .new-location-copy strong{
    font-size:24px
  }
  .new-location-copy p{
    font-size:10px
  }
  .new-location-levels div{
    padding:8px 6px;
    gap:4px
  }
  .new-location-levels strong{
    font-size:9px
  }
  .new-location-levels span{
    font-size:16px
  }
  .location-pin-card{
    min-width:83px;
    padding:7px 9px;
    right:-2px;
    bottom:12px
  }
  .location-pin-card strong{
    font-size:27px
  }
  .location-pin-card small{
    font-size:7px
  }
  .new-location-section{
    padding-top:40px;
    padding-bottom:50px
  }
  .location-step{
    padding:16px
  }

}
/* V7 — evidence-based guest guidance and searchable FAQ */
.visit-essentials{
  max-width:1090px;
  margin:0 auto 26px;
  padding:21px 24px;
  border:1px solid #dfdfce;
  border-radius:19px;
  background:rgba(255,255,255,.74)
}

.essentials-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:16px
}
.essentials-top .eyebrow{
  font-size:10px;
  letter-spacing:2px;
  margin:0 0 8px
}
.essentials-top h3{
  font:500 24px Georgia,serif;
  letter-spacing:-.5px;
  color:#344b3c;
  margin:0
}
.essentials-top>a{
  white-space:nowrap;
  font-size:12px;
  font-weight:750;
  color:#456b56;
  text-decoration:underline;
  text-underline-offset:3px
}

.essentials-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px
}
.essential{
  min-height:76px;
  padding:13px 12px;
  display:flex;
  align-items:center;
  gap:9px;
  border-radius:14px;
  background:#f4f6ee;
  color:#425748;
  line-height:1.5;
  font-size:12px;
  font-weight:700
}
.essential-icon{
  font-size:20px;
  flex:0 0 25px;
  text-align:center;
  color:#7d8b6b
}
.visit-essentials-notes {
  display:grid;
  gap:8px;
  margin-top:15px;
  color:#526553;
  font-size:13px;
  line-height:1.65;
}
.visit-essentials-notes p {
  margin:0;
}
@media(max-width:600px) {
  .visit-essentials-notes {
    font-size:12.5px;
    margin-top:14px;
    line-height:1.6;
  }
}

.faq-main{
  min-width:0
}
.faq-controls{
  display:grid;
  gap:15px;
  margin-bottom:18px
}
.faq-search{
  position:relative;
  display:block
}
.faq-search input{
  width:100%;
  border:1px solid #dee3db;
  border-radius:14px;
  padding:14px 17px 14px 43px;
  min-height:48px;
  background:#fffefa;
  color:#344b3c;
  font-size:14px
}
.faq-search input:focus-visible{
  outline:3px solid #bccab6;
  outline-offset:1px
}
.faq-search-icon{
  position:absolute;
  left:15px;
  top:5px;
  color:#819282;
  font-size:28px;
  pointer-events:none
}
.faq-filters{
  display:flex;
  flex-wrap:wrap;
  gap:8px
}
.faq-filter{
  border:1px solid #dfe5da;
  background:#fffefa;
  border-radius:99px;
  padding:10px 14px;
  line-height:1.25;
  color:#647867;
  font-size:12px;
  font-weight:750;
  min-height:42px
}
.faq-filter:hover{
  background:#f2f6ee
}
.faq-filter.active{
  background:#344f3e;
  color:#fff;
  border-color:#344f3e
}
.faq-count{
  font-size:11px;
  color:#50634f;
  margin:0
}
.faq-no-results{
  border-radius:16px;
  background:#f6f8f1;
  padding:36px 20px;
  text-align:center;
  font-size:13px;
  color:#6e7d70
}
.faq-ending{
  margin-top:18px;
  border-radius:16px;
  background:#eaf0e8;
  padding:17px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  font-size:13px;
  color:#546c58
}
.faq-ending a{
  font-weight:800;
  color:#315b3d
}
.faq-item summary{
  scroll-margin-top:90px
}

.preflight-note{
  margin:18px 0 14px;
  padding:15px 17px;
  background:#edf3e9;
  border-left:4px solid #7c9b7b;
  border-radius:12px;
  color:#46614c;
  font-size:12px;
  line-height:1.75
}
.preflight-note strong{
  display:block;
  font-size:14px;
  margin-bottom:4px
}
.preflight-note p{
  margin:0 0 7px
}
.preflight-note a{
  text-decoration:underline;
  text-underline-offset:3px;
  font-weight:750
}

.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}

@media(max-width:1000px){
  .essentials-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }

}
@media(max-width:760px){
  .visit-essentials{
    margin-bottom:22px;
    padding:17px
  }
  .essentials-top{
    flex-direction:column;
    align-items:flex-start;
    gap:10px
  }
  .essentials-top h3{
    font-size:22px
  }
  .essential{
    min-height:68px;
    padding:10px;
    font-size:11px
  }
  .faq-filter{
    min-height:42px
  }

}
@media(max-width:510px){
  .essentials-grid{
    gap:8px
  }
  .essential{
    align-items:flex-start;
    font-size:10.8px;
    line-height:1.5
  }
  .essentials-top h3{
    font-size:21px
  }
  .faq-search input{
    font-size:13px
  }
  .faq-filters{
    display:flex;
    flex-wrap:nowrap;
    overflow-x:auto;
    padding:1px 1px 6px;
    scrollbar-width:thin;
    scroll-snap-type:x proximity
  }
  .faq-filter{
    flex:0 0 auto;
    scroll-snap-align:start
  }
  .faq-ending{
    flex-direction:column;
    align-items:flex-start
  }

}
/* V8 multi-page site. No old 80 Broadway interior photography. */
.site-page[hidden],.v8-poster-backdrop[hidden],.v8-rules-backdrop[hidden]{
  display:none!important
}

body{
  background:#faf8f1
}

.site-navigation{
  gap:11px;
  align-items:center;
  flex-wrap:wrap
}
.site-navigation .site-link{
  font-size:12px;
  font-weight:750;
  color:#5b6e60;
  text-decoration:none;
  white-space:nowrap;
  letter-spacing:.1px
}
.site-navigation .site-link:hover,.site-navigation .site-link-active{
  color:#234933;
  text-decoration:underline;
  text-underline-offset:7px
}
.site-navigation .nav-cta{
  white-space:nowrap
}
.site-menu-toggle{
  display:none;
  border:1px solid #d4ddce;
  background:#fff;
  color:#335744;
  padding:10px 14px;
  border-radius:11px;
  cursor:pointer
}

.v8-kicker{
  font-size:11px;
  color:#8d7055;
  font-weight:850;
  letter-spacing:2.3px;
  text-transform:uppercase;
  margin:0 0 17px
}
.v8-primary{
  display:inline-flex;
  padding:13px 22px;
  border-radius:40px;
  background:#2a4637;
  color:#fff!important;
  font-size:13px;
  font-weight:800;
  text-decoration:none
}
.v8-text-link{
  display:inline-flex;
  margin-top:13px;
  font-size:14px;
  font-weight:850;
  color:#346048;
  text-decoration:underline;
  text-underline-offset:6px
}

.v8-intro{
  display:grid;
  grid-template-columns:1.55fr .8fr;
  gap:7%;
  align-items:center;
  padding-top:65px;
  padding-bottom:74px
}
.v8-heading h2,.v8-menu-heading h2,.v8-home-info h2,.v8-gallery h2,.v8-inner-lead h1{
  font:normal clamp(34px,4.3vw,61px)/1.12 Georgia,serif;
  letter-spacing:-1.6px;
  color:#314638;
  margin:0 0 22px
}
.v8-heading p:not(.v8-kicker),.v8-menu-heading p:not(.v8-kicker),.v8-contact-copy>p:not(.v8-kicker),.v8-inner-lead>p:not(.v8-kicker){
  font-size:15px;
  line-height:1.85;
  max-width:660px;
  color:#50634f
}
.v8-impact{
  background:#334a3c;
  border-radius:30px;
  color:#fbf9ef;
  padding:29px 35px;
  box-shadow:0 19px 50px #263c301b;
  display:grid;
  gap:12px;
  transform:rotate(2deg)
}
.v8-impact>span{
  font-size:10px;
  font-weight:800;
  letter-spacing:1.9px;
  color:#e8d1a5
}
.v8-impact>div{
  border-bottom:1px solid #ffffff29;
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:8px;
  padding-bottom:8px
}
.v8-impact strong{
  font:normal 62px/.97 Georgia,serif;
  color:#f9e8bd
}
.v8-impact small{
  font-size:13px
}
.v8-impact p{
  font-size:10px;
  line-height:1.6;
  color:#e1e8d9;
  margin:0
}

.v8-gallery{
  padding:40px 0 82px
}
.v8-gallery-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  margin-bottom:25px
}
.v8-gallery-head h2{
  font-size:clamp(30px,3.5vw,47px);
  margin-bottom:12px
}
.v8-gallery-head p:not(.v8-kicker){
  font-size:12px;
  color:#7b8075;
  max-width:590px;
  line-height:1.6
}
.v8-gallery-nav{
  display:flex;
  gap:8px
}
.v8-gallery-nav button{
  height:48px;
  width:48px;
  background:#fff;
  color:#3d5c46;
  border-radius:50%;
  border:1px solid #dae0d5;
  font-size:20px;
  cursor:pointer
}
.v8-gallery-nav button:hover{
  background:#e8efe5
}
.v8-slides{
  display:flex;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  gap:18px;
  padding-bottom:16px;
  scrollbar-width:thin
}
.v8-slide{
  position:relative;
  flex:0 0 min(360px,84vw);
  height:370px;
  scroll-snap-align:start;
  border-radius:25px;
  overflow:hidden;
  background:#c1c9ae
}
.v8-slide img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block
}
.v8-slide:after{
  content:'';
  position:absolute;
  inset:50% 0 0;
  background:linear-gradient(transparent,#1c2c20b8)
}
.v8-slide>div{
  position:absolute;
  z-index:1;
  bottom:24px;
  left:25px;
  color:#fff;
  display:grid;
  gap:7px
}
.v8-slide strong{
  font:normal 32px Georgia,serif
}
.v8-slide span{
  font-size:11px
}
.v8-gallery-bottom{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:15px;
  font-size:12px;
  color:#6b7b6d
}
.v8-gallery-bottom a{
  font-size:13px;
  font-weight:850;
  color:#365c42
}

.v8-menu{
  padding-top:32px;
  padding-bottom:85px
}
.v8-menu-heading{
  max-width:740px;
  margin-bottom:34px
}
.v8-menu-heading h2{
  font-size:clamp(36px,4vw,52px)
}
.v8-menu-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:19px
}
.v8-menu-card{
  min-height:365px;
  padding:27px;
  border:1px solid #e8e8df;
  background:#fffefa;
  border-radius:24px;
  display:flex;
  flex-direction:column;
  gap:14px
}
.v8-pill{
  font-size:10px;
  letter-spacing:2px;
  font-weight:900;
  color:#72906f
}
.v8-menu-art{
  font:normal 75px Georgia,serif;
  height:95px;
  align-self:flex-end;
  color:#b3c1a5
}
.v8-cake{
  background:#fff2e9
}
.v8-cake .v8-menu-art{
  color:#e5b19c
}
.v8-party{
  background:#f0f3e9
}
.v8-menu-card h3{
  font:normal 27px Georgia,serif;
  margin:0;
  color:#304d3b
}
.v8-menu-card p{
  font-size:12px;
  line-height:1.8;
  color:#788078;
  flex:1;
  margin:0
}
.v8-menu-card>strong{
  font-size:15px;
  color:#354a3e
}
.v8-menu-card>a{
  font-size:12px;
  font-weight:800;
  color:#365b42;
  text-underline-offset:5px
}

.v8-home-info{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:8%;
  padding-top:65px;
  padding-bottom:90px;
  border-top:1px solid #e3e9df
}
.v8-home-info h2{
  font-size:45px
}
.v8-contact-list{
  display:grid;
  gap:20px;
  margin:32px 0
}
.v8-contact-list>div{
  display:grid;
  gap:7px
}
.v8-contact-list small{
  font-size:10px;
  letter-spacing:2px;
  font-weight:800;
  color:#9b9388
}
.v8-contact-list strong,.v8-contact-list a{
  font-size:16px;
  color:#3a5946;
  font-weight:750;
  text-decoration:none
}
.v8-home-hours{
  background:#eaf0e6;
  padding:33px;
  border-radius:27px
}
.v8-home-hours h3{
  font:normal 27px Georgia,serif;
  color:#334d3e;
  margin:0 0 22px
}
.v8-hour{
  padding:8px 0;
  display:flex;
  align-items:start;
  justify-content:space-between;
  gap:20px;
  border-bottom:1px solid #ccd9ca;
  font-size:13px;
  color:#56705b
}
.v8-hour b{
  font-weight:750;
  color:#344d3a;
  text-align:right
}
.v8-home-hours>small{
  display:block;
  margin-top:20px;
  font-size:11px;
  line-height:1.65;
  color:#778774
}

.v8-inner-page{
  padding-top:72px;
  padding-bottom:110px;
  min-height:70vh
}
.v8-inner-lead{
  max-width:820px;
  margin:0 0 54px
}
.v8-inner-lead h1{
  font-size:clamp(40px,5vw,70px)
}
.v8-story-layout{
  display:grid;
  grid-template-columns:1fr .82fr;
  gap:7%;
  align-items:start
}
.v8-story-prose{
  font-size:14px;
  line-height:1.95;
  color:#627569
}
.v8-story-prose h2{
  font:normal 35px/1.2 Georgia,serif;
  color:#34503d;
  margin:0 0 22px
}
.v8-story-prose h3{
  font:normal 29px Georgia,serif;
  color:#34503d;
  margin:35px 0 12px
}
.v8-story-poster{
  background:#fff;
  border:1px solid #ece4db;
  border-radius:24px;
  overflow:hidden;
  box-shadow:0 16px 50px #364e3d12;
  margin:0
}
.v8-story-poster img{
  width:100%;
  height:auto;
  display:block
}
.v8-story-poster figcaption{
  padding:17px;
  font-size:11px;
  line-height:1.5;
  color:#67776a
}
.v8-timeline{
  border-left:2px solid #8da68a;
  display:grid;
  gap:23px;
  padding:12px 0 12px 22px;
  margin:30px 0
}
.v8-timeline>div{
  display:grid;
  gap:5px
}
.v8-timeline span{
  color:#50634f;
  font:normal 26px Georgia,serif
}
.v8-timeline strong{
  font-size:12px;
  color:#4d6550
}
.v8-important{
  margin:27px 0 0;
  background:#eff2e9;
  border-left:4px solid #819e7c;
  padding:18px 22px;
  border-radius:12px;
  color:#55715b;
  font-size:12px;
  line-height:1.8
}

.v8-adoption-cards{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px
}
.v8-cat-card{
  background:#fff;
  border:1px solid #e7e9e2;
  border-radius:24px;
  overflow:hidden;
  box-shadow:0 13px 24px #3a523611
}
.v8-cat-photo{
  display:block;
  position:relative;
  cursor:pointer;
  width:100%;
  height:265px;
  padding:0;
  background:#e9ebd8;
  border:0;
  overflow:hidden
}
.v8-cat-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .3s
}
.v8-cat-photo:hover img{
}
.v8-view-poster{
  position:absolute;
  bottom:11px;
  right:12px;
  background:#ffffffea;
  border-radius:30px;
  padding:8px 12px;
  font-size:11px;
  font-weight:800;
  color:#4b7054
}
.v8-poster-placeholder{
  font:normal 85px Georgia,serif;
  color:#90a187
}
.v8-cat-details{
  padding:24px
}
.v8-cat-details h3{
  font:normal 29px Georgia,serif;
  color:#314d39;
  margin:12px 0
}
.v8-cat-details p{
  min-height:72px;
  font-size:12px;
  color:#728274;
  line-height:1.7
}
.v8-cat-status{
  font-size:10px;
  font-weight:850;
  padding:6px 10px;
  border-radius:20px;
  background:#f5f1df;
  color:#8b7543
}
.v8-cat-status.available{
  background:#e3f1db;
  color:#406d39
}
.v8-inquire,.v8-apply-btn{
  display:inline-block;
  font-size:12px;
  font-weight:850;
  color:#2a5637;
  margin-top:13px
}
.v8-apply-btn{
  cursor:pointer;
  border:0;
  background:#315742;
  color:#fff;
  border-radius:30px;
  padding:11px 15px
}
.v8-adoption-how{
  margin-top:85px
}
.v8-adoption-how h2{
  font:normal 43px Georgia,serif;
  color:#334d39
}
.v8-adoption-how>div{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px
}
.v8-adoption-how article{
  padding:22px;
  border-radius:20px;
  background:#eff1e8;
  display:grid;
  gap:9px
}
.v8-adoption-how b{
  font:normal 31px Georgia,serif;
  color:#769275
}
.v8-adoption-how strong{
  font-size:15px;
  color:#415945
}
.v8-adoption-how p{
  font-size:12px;
  line-height:1.8;
  color:#50634f
}


.v8-modal-active{
  overflow:hidden
}

.v8-verification{
  border:1px solid #cce0c9;
  background:#f0f5e9;
  border-radius:15px;
  padding:16px;
  margin:16px 0
}
.v8-verification strong{
  display:block;
  color:#3b6347;
  margin-bottom:8px
}
.v8-verification p{
  font-size:12px;
  color:#647b67;
  line-height:1.6
}
.v8-verification input{
  padding:12px;
  border:1px solid #cfdbce;
  background:#fff;
  border-radius:9px;
  width:min(100%,190px);
  font-size:17px;
  letter-spacing:2px
}
.v8-verify-btn{
  border:1px solid #8cae90;
  background:#fff;
  color:#3d6c4a;
  padding:10px 13px;
  border-radius:10px;
  font-size:12px;
  font-weight:850;
  cursor:pointer;
  margin:8px 8px 8px 0
}
.v8-verified{
  color:#276b40;
  font-weight:850;
  font-size:13px
}
.v8-verify-code-hint{
  font-size:12px;
  color:#617b68
}
.v8-rules-backdrop{
  position:fixed;
  z-index:210;
  inset:0;
  background:#12291dbb;
  display:grid;
  place-items:center;
  padding:18px
}
.v8-rules-modal{
  width:min(690px,100%);
  height:min(790px,93dvh);
  display:flex;
  flex-direction:column;
  background:#fffdf8;
  border-radius:23px;
  box-shadow:0 24px 90px #0004;
  overflow:hidden
}
.v8-rules-head{
  padding:25px 30px 15px;
  flex:0 0 auto
}
.v8-rules-head h2{
  font:normal 31px Georgia,serif;
  color:#32503c;
  margin:3px 0 9px
}
.v8-rules-head p{
  font-size:12px;
  color:#6c806d;
  margin:0
}
.v8-rules-scroll{
  overflow-y:auto;
  flex:1;
  min-height:0;
  padding:20px 30px;
  background:#f2f5ed;
  scrollbar-width:thin
}
.v8-rules-scroll h3{
  font-size:15px;
  margin:23px 0 9px;
  color:#3d6046
}
.v8-rules-scroll p{
  font-size:13px;
  line-height:1.85;
  color:#657868
}
.v8-rules-scroll .rule-bottom{
  font-weight:900;
  padding:20px;
  background:#fff;
  border-radius:14px;
  margin:30px 0
}
.v8-rules-actions{
  padding:17px 30px;
  display:flex;
  justify-content:flex-end;
  gap:10px;
  flex:0 0 auto;
  background:#fff
}
.v8-rules-actions button:disabled{
  opacity:.4;
  cursor:not-allowed
}

@media(max-width:1110px){
  .site-navigation{
    gap:8px
  }
  .site-navigation .site-link{
    font-size:11px
  }
  .site-navigation .nav-cta{
    padding:9px 12px
  }

}
@media(max-width:960px){
  .site-menu-toggle{
    display:block;
    margin-left:auto
  }
  .site-navigation{
    display:none;
    position:absolute;
    z-index:79;
    top:73px;
    left:14px;
    right:14px;
    border:1px solid #e5e8de;
    box-shadow:0 18px 40px #17271827;
    background:#fffef9;
    padding:18px;
    flex-direction:column;
    align-items:stretch;
    gap:6px;
    border-radius:16px
  }
  .v8-menu-open .site-navigation{
    display:flex
  }
  .site-navigation .site-link{
    font-size:15px;
    padding:10px 8px
  }
  .site-navigation button{
    margin-top:8px
  }
  .v8-intro,.v8-home-info,.v8-story-layout{
    grid-template-columns:1fr 1fr;
    gap:28px
  }
  .v8-menu-card{
    padding:20px
  }

}
@media(max-width:730px){
  .v8-intro,.v8-home-info,.v8-story-layout{
    grid-template-columns:1fr
  }
  .v8-impact{
    transform:none
  }
  .v8-menu-grid{
    grid-template-columns:1fr
  }
  .v8-menu-card{
    min-height:280px
  }
  .v8-menu-art{
    height:55px;
    font-size:55px
  }
  .v8-intro{
    padding-top:55px;
    padding-bottom:45px
  }
  .v8-gallery{
    padding-bottom:60px
  }
  .v8-adoption-cards{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .v8-adoption-how>div{
    grid-template-columns:1fr
  }
  .v8-inner-page{
    padding-top:55px
  }
  .v8-contact-list{
    gap:15px
  }
  .v8-gallery-head{
    align-items:flex-start
  }
  .v8-gallery-nav button{
    width:40px;
    height:40px
  }

}
@media(max-width:540px){
  .v8-heading h2,.v8-menu-heading h2,.v8-home-info h2{
    font-size:36px
  }
  .v8-adoption-cards{
    grid-template-columns:1fr
  }
  .v8-cat-photo{
    height:310px
  }
  .v8-slide{
    flex-basis:78vw;
    height:320px
  }
  .v8-menu{
    padding-bottom:50px
  }
  .v8-gallery-head h2{
    font-size:31px
  }
  .v8-story-prose h2{
    font-size:29px
  }
  .v8-rules-head{
    padding:20px 18px 12px
  }
  .v8-rules-head h2{
    font-size:24px
  }
  .v8-rules-scroll{
    padding:17px 20px
  }
  .v8-rules-actions{
    padding:13px
  }
  .v8-rules-actions button{
    font-size:11px;
    max-width:50%
  }
  .v8-home-info{
    padding-top:40px;
    padding-bottom:65px
  }
  .v8-home-hours{
    padding:22px
  }

}
/* CATFE MAO V9 / BRAND REFINEMENT - #757c5f is from the studio artwork */
:root {
  --bg:#f8f7f1;
  --ink:#263629;
  --muted:#69746b;
  --sage:#757c5f;
  --dark:#40562e;
  --cream:#ebeee1;
  --gold:#c7ab77;
  --rust:#bd856b;
  --line:#dae2d5;
  --white:#fffefb;
  --shadow:0 20px 60px rgba(45,69,43,.09)
}

html{
  scroll-behavior:smooth
}
body{
  background:var(--bg)
}

.header{
  background:rgba(249,250,244,.98);
  border-bottom:1px solid #dce3d2
}

.brand-dot{
  color:#50634f
}
.brand-wordmark small{
  color:#50633d
}

.site-navigation .site-link:hover,.site-navigation .site-link-active{
  color:#436039
}

.nav-cta,.btn-dark,.v8-primary{
  background:#40562e;
  color:#fff;
  border-color:#40562e
}

.nav-cta:hover,.btn-dark:hover,.v8-primary:hover{
  background:#2e4626
}

.hero.shell{
  background:#757c5f;
  max-width:1230px;
  border-radius:35px;
  margin-top:18px;
  margin-bottom:30px;
  padding-top:48px;
  padding-bottom:48px;
  padding-left:clamp(34px,5vw,72px);
  padding-right:clamp(25px,4vw,60px);
  position:relative;
  overflow:hidden;
  box-shadow:0 22px 58px #384d3336;
  min-height:580px
}

.hero:before{
  position:absolute;
  content:'CATFE · MAO';
  font-weight:900;
  letter-spacing:.2em;
  bottom:-16px;
  left:20px;
  font-size:clamp(80px,17vw,235px);
  color:#ffffff0b;
  white-space:nowrap;
  pointer-events:none
}

.hero-copy,.hero-art{
  position:relative;
  z-index:1
}

.hero .eyebrow{
  color:#f2ecdf;
  font-weight:800
}
.hero .mini-star{
  color:#e2d5ad
}

.hero h1{
  color:#fffefa;
  text-wrap:balance;
  font-size:clamp(44px,4.85vw,70px);
  white-space:normal
}

.hero h1 em{
  color:#f0e8ce;
  font-style:italic
}

.hero-sub{
  color:#f9f8eb;
  font-size:16px;
  font-weight:450;
  line-height:1.8
}

.hero .hero-no-charge{
  color:#eaf0dd
}

.hero .hero-stats strong{
  color:#fcfcf5
}
.hero .hero-stats small{
  color:#e7ebdc
}

.hero .btn-dark{
  background:#f6f4df;
  color:#3b5133;
  border-color:#f6f4df;
  box-shadow:0 9px 24px #26332638
}
.hero .btn-dark:hover{
  background:white
}

.hero .new-location-hero{
  background:linear-gradient(160deg,#f9f8ee,#e8efdc);
  box-shadow:0 21px 50px #30432c36
}

.hero .location-pin-card{
  background:#354c30;
  color:#fff;
  border:1px solid #667c54
}

.wave path{
  fill:#edf0e5
}

.v8-kicker,.v8-text-link{
  color:#546638
}

.v8-intro .v8-heading h2,.v8-menu-heading h2,.v8-home-info h2{
  color:#344831
}

.v8-impact{
  background:#ecf0e3;
  border:1px solid #cfdec9;
  border-radius:28px
}

.v8-menu-card{
  border:1px solid #d7e1d1;
  background:#fdfef9
}

.v8-menu-card.v8-ticket{
  background:#e8efdd
}
.v8-menu-card.v8-cake{
  background:#f8f1e6
}
.v8-menu-card.v8-party{
  background:#f3f4e9
}

.v8-menu-card a,.v8-text-link{
  font-weight:750
}

.v8-menu .v8-pill{
  background:#e8e9d6;
  color:#40562e
}

.v9-demo-ribbon[hidden]{
  display:none!important
}

.v9-demo-ribbon{
  position:sticky;
  top:90px;
  z-index:28;
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:12px;
  background:#30412c;
  color:#fff;
  font-size:12px;
  font-weight:650;
  text-align:center;
  padding:10px 25px;
  box-shadow:0 4px 18px #1f352a20
}

.v9-demo-ribbon .v9-demo-dot{
  font-size:14px;
  color:#d0daa9
}
.v9-demo-ribbon a{
  color:#f0dfad;
  text-decoration:underline;
  text-underline-offset:3px
}

.v9-poster-banner{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:0;
  align-items:stretch;
  border-radius:30px;
  padding-top:0;
  padding-bottom:0;
  padding-right:0;
  padding-left:0;
  margin-top:20px;
  margin-bottom:85px;
  overflow:hidden;
  background:#505e30;
  color:#fffef3;
  box-shadow:0 18px 45px #36492f22
}

.v9-poster-copy{
  padding:clamp(32px,5vw,68px);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center
}

.v9-poster-eyebrow{
  font-size:11px;
  color:#d7e4bd;
  letter-spacing:.22em;
  font-weight:850
}

.v9-poster-copy h2{
  font:normal clamp(37px,4.7vw,63px)/1.13 Georgia,'Times New Roman',serif;
  letter-spacing:-.055em;
  max-width:460px;
  margin:14px 0 21px
}

.v9-poster-copy p:not(.v9-poster-eyebrow){
  font-size:15px;
  line-height:1.95;
  color:#ecf1da;
  max-width:470px
}

.v9-poster-copy a{
  display:inline-flex;
  margin-top:25px;
  background:#f7f4e6;
  color:#31472b;
  border-radius:99px;
  padding:12px 21px;
  font-size:13px;
  font-weight:850
}

.v9-poster-copy a:hover{
  background:#fff
}
.v9-poster-art{
  margin:0;
  position:relative;
  background:#757c5f;
  min-height:380px;
  display:flex;
  flex-direction:column;
  justify-content:center
}

.v9-poster-art img{
  display:block;
  width:100%;
  height:100%;
  min-height:380px;
  max-height:520px;
  object-fit:contain;
  object-position:center center
}

.v9-poster-art figcaption{
  position:absolute;
  bottom:15px;
  left:30px;
  right:30px;
  text-align:center;
  color:#f0e9d5;
  font-size:10px;
  letter-spacing:.04em
}

.v9-drinks-feature{
  margin-top:20px;
  margin-bottom:85px;
  padding-top:34px;
  padding-bottom:34px;
  display:grid;
  grid-template-columns:.95fr 1.05fr;
  align-items:center;
  gap:40px
}

.v9-drinks-feature>div:first-child{
  max-width:550px
}
.v9-drinks-feature h2{
  font:normal clamp(36px,4.2vw,51px)/1.14 Georgia,serif;
  letter-spacing:-.045em;
  color:#314b31;
  margin:14px 0 13px
}

.v9-drinks-feature p:not(.v8-kicker){
  font-size:15px;
  line-height:1.9;
  color:#66746b;
  margin-bottom:27px
}

.v9-drink-highlights{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:13px
}

.v9-drink-highlights>div{
  border-radius:19px;
  background:#e9efe1;
  min-height:130px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:21px;
  border:1px solid #d9e3d3
}

.v9-drink-highlights>div:nth-child(2){
  background:#f2e9df
}
.v9-drink-highlights>div:nth-child(3){
  background:#f0f0e5
}
.v9-drink-highlights>div:nth-child(4){
  background:#dce6d8
}

.v9-drink-highlights span{
  font-size:10px;
  color:#87957e;
  letter-spacing:2px
}
.v9-drink-highlights strong{
  color:#375034;
  margin-top:8px;
  font-size:20px
}
.v9-drink-highlights small{
  color:#74816f;
  margin-top:3px
}

.v9-menu-page{
  padding-top:74px;
  padding-bottom:100px
}

.v9-menu-page-head{
  display:grid;
  grid-template-columns:minmax(0,1.36fr) minmax(240px,.64fr);
  gap:45px;
  align-items:center;
  margin-bottom:40px
}

.v9-menu-page-head h1{
  font:normal clamp(40px,5vw,65px)/1.12 Georgia,'Times New Roman',serif;
  color:#344b33;
  letter-spacing:-.05em;
  margin:17px 0 20px
}

.v9-menu-page-head p{
  color:#50634f;
  font-size:15px;
  line-height:1.94;
  max-width:685px
}

.v9-menu-callout{
  font-size:12px;
  line-height:1.8;
  color:#556a4b;
  background:#e9f0df;
  border-left:4px solid #728658;
  border-radius:8px;
  padding:13px 16px;
  margin-top:21px
}

.v9-menu-scan{
  position:relative;
  display:block;
  border:8px solid #fff;
  border-radius:19px;
  box-shadow:0 18px 42px #25382017;
  transform:rotate(3deg);
  overflow:hidden;
  background:white;
  max-width:310px;
  margin:auto
}

.v9-menu-scan img{
  width:100%;
  aspect-ratio:1/.88;
  object-fit:cover;
  object-position:top;
  display:block
}
.v9-menu-scan span{
  display:block;
  color:#40582f;
  font-size:12px;
  font-weight:780;
  text-align:center;
  padding:13px
}

.v9-menu-categories{
  display:flex;
  gap:9px;
  flex-wrap:wrap;
  margin-bottom:27px
}

.v9-menu-filter{
  border:1px solid #cbdbbf;
  color:#466441;
  background:#f6faf2;
  border-radius:60px;
  padding:10px 17px;
  font-size:12px;
  font-weight:760;
  transition:all .15s
}

.v9-menu-filter:hover{
  background:#e9f0df
}
.v9-menu-filter.active{
  background:#405c37;
  color:white;
  border-color:#405c37
}

.v9-drinks-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px
}

.v9-drink-item{
  background:#fffef9;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  border:1px solid #e0e6d9;
  border-radius:14px;
  padding:17px 20px;
  box-shadow:0 6px 16px #35573308;
  min-width:0
}

.v9-drink-item>div{
  display:grid;
  gap:4px;
  min-width:0
}
.v9-drink-item strong{
  font-size:14px;
  color:#334831
}
.v9-drink-item small{
  font-size:11px;
  color:#7f8b7c
}
.v9-drink-item>span{
  font-size:12px;
  text-align:right;
  color:#45613f;
  font-weight:750;
  white-space:normal;
  flex-shrink:0
}

.v9-menu-customize{
  margin:30px 0 70px;
  display:grid;
  gap:8px;
  background:#e8efde;
  padding:23px 28px;
  border-radius:17px
}

.v9-menu-customize strong{
  font-size:20px;
  color:#3d5938
}
.v9-menu-customize p{
  font-size:13px;
  line-height:1.9;
  color:#587250;
  margin:0
}

.v9-cake-head h2{
  font:normal clamp(35px,4.6vw,52px)/1.2 Georgia,serif;
  color:#38543a;
  margin:13px 0 14px
}
.v9-cake-head p:last-child{
  color:#657267;
  font-size:15px;
  line-height:1.85;
  max-width:770px
}

.v9-cake-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:17px;
  margin:32px 0
}

.v9-cake-grid>a{
  background:#fff;
  border:1px solid #e1e4da;
  border-radius:18px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  gap:7px;
  padding-bottom:17px;
  transition:transform .14s,box-shadow .14s
}

.v9-cake-grid>a:hover{
  box-shadow:0 16px 28px #36492b24
}

.v9-cake-grid img{
  height:225px;
  object-fit:cover;
  width:100%;
  background:#ecece7;
  display:block
}
.v9-cake-grid strong{
  font-size:13px;
  line-height:1.45;
  color:#344f38;
  padding:9px 15px 0;
  min-height:48px
}
.v9-cake-grid span{
  color:#5b754b;
  padding:0 15px;
  display:flex;
  justify-content:space-between;
  font-size:13px;
  font-weight:700
}

.v9-cake-clarity{
  background:#eef1e7;
  border:1px solid #dce5d4;
  border-radius:21px;
  display:flex;
  gap:25px;
  align-items:center;
  justify-content:space-between;
  padding:22px 29px
}

.v9-cake-clarity p{
  font-size:13px;
  color:#60725f;
  line-height:1.85;
  max-width:690px;
  margin:0
}
.v9-cake-clarity a{
  white-space:nowrap;
  background:#405b36;
  color:#fff;
  border-radius:50px;
  padding:13px 20px;
  font-size:12px;
  font-weight:760
}

.v9-demo-mode .v8-otp-inline{
  border-color:#a8c3a1;
  background:#eff6ea
}

.v9-demo-mode .v8-rules-line{
  color:#526a43
}

@media(max-width:1050px){
  .v9-cake-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .v9-menu-page-head{
    grid-template-columns:1.2fr .8fr
  }
  .v9-drink-item{
    padding:13px 15px
  }
  .v9-poster-copy{
    padding:37px
  }

}
@media(max-width:860px){
  .v9-poster-banner{
    grid-template-columns:1fr
  }
  .v9-poster-art{
    min-height:310px
  }
  .v9-poster-art img{
    max-height:440px;
    min-height:310px
  }
  .v9-drinks-feature{
    grid-template-columns:1fr
  }
  .v9-menu-page-head{
    grid-template-columns:1fr
  }
  .v9-menu-scan{
    max-width:270px
  }
  .hero.shell{
    grid-template-columns:1fr;
    gap:10px
  }
  .hero-art{
    height:auto;
    min-height:415px
  }
  .v9-demo-ribbon{
    top:73px
  }

}
@media(max-width:670px){
  .hero.shell{
    margin-top:9px;
    border-radius:24px;
    padding:32px 22px 25px
  }
  .hero h1{
    font-size:clamp(40px,10vw,53px)
  }
  .hero-sub{
    font-size:14px
  }
  .hero-stats{
    gap:18px;
    flex-wrap:wrap
  }
  .hero-art{
    min-height:320px
  }
  .v9-poster-banner{
    margin-left:18px;
    margin-right:18px;
    margin-bottom:58px
  }
  .v9-poster-copy{
    padding:29px 24px
  }
  .v9-poster-copy h2{
    font-size:42px
  }
  .v9-drink-highlights{
    gap:8px
  }
  .v9-drink-highlights>div{
    padding:15px;
    min-height:112px
  }
  .v9-drink-highlights strong{
    font-size:16px
  }
  .v9-menu-page{
    padding-top:48px
  }
  .v9-drinks-grid{
    grid-template-columns:1fr
  }
  .v9-drink-item{
    padding:13px 15px
  }
  .v9-menu-page-head h1{
    font-size:42px
  }
  .v9-cake-grid{
    gap:11px
  }
  .v9-cake-grid img{
    height:195px
  }
  .v9-cake-grid strong{
    padding:8px 10px 0
  }
  .v9-cake-grid span{
    padding:0 10px
  }
  .v9-cake-clarity{
    display:grid;
    padding:23px
  }
  .v9-drinks-feature{
    gap:23px
  }
  .v9-demo-ribbon{
    padding:8px 12px;
    gap:7px;
    font-size:10px
  }

}
@media(max-width:390px){
  .v9-cake-grid img{
    height:150px
  }
  .v9-poster-art img{
    min-height:260px
  }
  .hero.shell{
    padding-inline:17px
  }

}
/* Owner-provided ticket and specials poster — 2026 V9 */
.v9-specials-home{
  margin-top:15px;
  margin-bottom:75px
}

.v9-specials-head{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:30px;
  margin-bottom:23px
}
.v9-specials-head h2,.v9-ticket-intro h2{
  font:normal clamp(34px,4vw,49px)/1.17 Georgia,serif;
  letter-spacing:-.055em;
  color:#364c33;
  margin:11px 0 12px
}
.v9-specials-head p:not(.v8-kicker),.v9-ticket-intro p:not(.v8-kicker){
  color:#50634f;
  font-size:14px;
  line-height:1.82;
  max-width:680px
}
.v9-specials-head>a{
  white-space:nowrap;
  background:#425e39;
  color:#fff;
  border-radius:48px;
  padding:12px 17px;
  font-size:12px;
  font-weight:760;
  margin-bottom:15px
}

.v9-special-home-cards{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px
}
.v9-special-home-cards article{
  background:#757c5f;
  color:#fffdf3;
  padding:26px 25px 27px;
  border-radius:21px;
  position:relative;
  overflow:hidden;
  min-height:236px
}
.v9-special-home-cards article:nth-child(2){
  background:#566a47
}
.v9-special-home-cards article:nth-child(3){
  background:#404d35
}
.v9-special-home-cards small{
  color:#d6dfc6;
  font-size:10px;
  font-weight:770;
  letter-spacing:1.6px
}
.v9-special-home-cards h3{
  font-family:Georgia,serif;
  font-size:24px;
  font-weight:normal;
  letter-spacing:-.03em;
  margin:13px 0 7px
}
.v9-special-home-cards b{
  font-size:32px;
  letter-spacing:-.04em
}
.v9-special-home-cards p{
  color:#f0f3e8;
  line-height:1.8;
  font-size:12px;
  margin-top:12px
}
.v9-special-disclaimer{
  color:#69766a;
  font-size:11px;
  line-height:1.7;
  margin:18px 2px 0
}

.v9-ticket-packages{
  margin:5px 0 65px;
  border-radius:28px;
  padding:32px;
  background:#f2f4eb;
  border:1px solid #dfe7da
}
.v9-ticket-intro{
  display:grid;
  grid-template-columns:1.35fr .65fr;
  gap:25px;
  align-items:center
}
.v9-ticket-intro h2{
  max-width:640px
}
.v9-ticket-flyer{
  display:grid;
  gap:8px;
  background:#fff;
  padding:7px;
  border-radius:15px;
  box-shadow:0 11px 25px #354a3c15
}
.v9-ticket-flyer img{
  display:block;
  width:100%;
  height:150px;
  object-fit:cover;
  object-position:center 40%;
  border-radius:9px
}
.v9-ticket-flyer span{
  text-align:center;
  color:#4d6a46;
  font-size:11px;
  padding:4px;
  font-weight:760
}
.v9-ticket-basic{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:29px
}
.v9-ticket-basic>div{
  padding:19px 20px;
  background:#fff;
  border:1px solid #dce4d7;
  border-radius:17px;
  display:grid;
  gap:7px
}
.v9-ticket-basic span{
  color:#667864;
  font-size:11px;
  font-weight:800
}
.v9-ticket-basic strong{
  color:#455e3c;
  font-size:28px
}
.v9-ticket-basic small{
  color:#50634f;
  line-height:1.4;
  font-size:11px
}

.v9-ticket-special-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:13px;
  margin-top:15px
}
.v9-ticket-special{
  background:#757c5f;
  color:white;
  border-radius:21px;
  padding:25px 23px;
  display:flex;
  flex-direction:column;
  align-items:flex-start
}
.v9-ticket-special:nth-child(2){
  background:#556b47
}
.v9-ticket-special:nth-child(3){
  background:#3d513b
}
.v9-ticket-pill{
  background:#f0f3e7;
  border-radius:50px;
  padding:8px 15px;
  font-size:11px;
  letter-spacing:.05em;
  color:#4f6643;
  font-weight:850
}
.v9-ticket-special>strong{
  font-size:33px;
  margin:18px 0 8px
}
.v9-ticket-special ul{
  padding-left:19px;
  margin:10px 0 23px;
  color:#f0f2e6;
  font-size:12px;
  line-height:2
}
.v9-ticket-special a{
  margin-top:auto;
  background:#f4f5eb;
  color:#395236;
  border-radius:40px;
  padding:10px 17px;
  font-size:11px;
  font-weight:820
}
.v9-ticket-conditions{
  font-size:11px;
  color:#657366;
  line-height:1.75;
  margin:20px 0 0
}

.v9-book-package{
  margin:18px 0 25px;
  padding:18px;
  border:1px solid #dbe7d3;
  background:#f4f8f0;
  border-radius:15px
}
.v9-book-package-head{
  display:grid;
  gap:5px;
  margin-bottom:12px
}
.v9-book-package-head strong{
  color:#355032;
  font-size:15px
}
.v9-book-package-head small{
  font-size:11px;
  color:#71856b
}
.v9-book-options{
  display:flex;
  flex-wrap:wrap;
  gap:8px
}
.v9-book-options button{
  border:1px solid #b4c9aa;
  border-radius:20px;
  padding:9px 13px;
  background:#fff;
  color:#405a3a;
  font-size:11px;
  font-weight:770
}
.v9-book-options button.selected{
  background:#405e38;
  color:#fff;
  border-color:#405e38
}

@media(max-width:900px){
  .v9-special-home-cards{
    grid-template-columns:1fr 1fr
  }
  .v9-ticket-special-grid{
    grid-template-columns:1fr 1fr
  }
  .v9-ticket-intro{
    grid-template-columns:1fr
  }

}
@media(max-width:670px){
  .v9-specials-head{
    display:block
  }
  .v9-specials-head>a{
    display:inline-flex;
    margin-top:15px
  }
  .v9-special-home-cards,.v9-ticket-special-grid,.v9-ticket-basic{
    grid-template-columns:1fr
  }
  .v9-special-home-cards article{
    min-height:170px;
    padding:24px
  }
  .v9-ticket-packages{
    padding:23px 17px
  }
  .v9-ticket-flyer img{
    height:170px
  }

}
/* V10 · Auckland holiday pricing and Weekly Pass checkout */
.calendar-grid .date-button.holiday-date {
  background:#fff5db;
  outline:1px solid #cc9e5d;
  outline-offset:-1px;
  color:#604a24;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:0;
  line-height:1.12
}

.calendar-grid .date-button.holiday-date.selected {
  background:#48633b;
  color:#fff;
  outline:2px solid #3b582d
}

.calendar-grid .date-button.weekly-blocked {
  opacity:.38;
  cursor:not-allowed
}

.calendar-grid .date-button .date-holiday {
  font-size:9px;
  letter-spacing:-.02em;
  font-weight:800;
  white-space:nowrap
}

.v10-holiday-key {
  font-size:11px;
  line-height:1.7;
  color:#6f6f5e;
  margin:13px 0 20px
}

.v10-holiday-key span {
  color:#bf893d
}

.v10-holiday-alert {
  display:flex;
  align-items:flex-start;
  gap:14px;
  padding:17px 18px;
  margin:16px 0 20px;
  border:1px solid #f0d3a1;
  background:#fff8e6;
  border-radius:14px;
  color:#674c25
}

.v10-holiday-alert .v10-holiday-badge {
  background:#c38740;
  color:#fff;
  border-radius:20px;
  padding:8px 10px;
  font-size:13px;
  font-weight:900;
  flex-shrink:0
}

.v10-holiday-alert strong {
  font-size:14px;
  display:block;
  margin-bottom:4px
}

.v10-holiday-alert p {
  margin:0;
  line-height:1.7;
  font-size:12px
}

.v10-extra-option {
  margin:18px 0 26px;
  background:#f7f5e9;
  border:1px solid #d8dec7;
  border-radius:15px;
  padding:16px 18px
}

.v10-tick {
  display:flex;
  gap:12px;
  align-items:flex-start;
  cursor:pointer
}

.v10-tick input {
  width:19px;
  height:19px;
  flex:0 0 auto;
  margin:1px 0 0;
  accent-color:#506a43
}

.v10-tick span {
  display:flex;
  flex-direction:column;
  gap:6px
}

.v10-tick strong {
  font-size:13px;
  font-weight:800;
  color:#354e33;
  line-height:1.4
}

.v10-tick small {
  font-size:11px;
  line-height:1.7;
  color:#637162
}

.v10-weekly-panel {
  background:#f0f3e9;
  border:1px solid #d3dfc7;
  border-radius:17px;
  padding:22px 19px;
  margin:16px 0 27px;
  color:#3c5537
}

.v10-weekly-panel h3 {
  font-family:Georgia,serif;
  font-size:25px;
  line-height:1.3;
  margin:7px 0 10px;
  color:#344d34
}

.v10-weekly-panel>p:not(.v8-kicker) {
  font-size:13px;
  line-height:1.82
}

.v10-weekly-panel>small {
  display:block;
  font-size:11px;
  line-height:1.7;
  margin:10px 0 13px
}

.v10-weekly-hours {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:12px;
  margin:15px 0
}

.v10-weekly-hours label {
  font-size:12px;
  font-weight:800
}

.v10-weekly-hours select {
  border-radius:9px;
  padding:10px 13px;
  border:1px solid #a8b79e;
  background:#fff;
  color:#405740;
  font-size:13px
}

.v10-weekly-terms {
  margin:20px 0;
  border:1px solid #bdcbb7;
  border-radius:12px;
  background:#fffdf7
}

.v10-weekly-terms>summary {
  font-weight:800;
  color:#476340;
  padding:14px 16px;
  cursor:pointer;
  font-size:13px;
  line-height:1.65
}

.v10-weekly-list {
  padding:4px 24px 18px 41px;
  margin:0;
  display:grid;
  gap:12px
}

.v10-weekly-list li {
  font-size:12px;
  line-height:1.8;
  color:#586456;
  padding-left:4px
}

.v10-weekly-list li::marker {
  color:#546e45;
  font-weight:850
}

.v10-weekly-list li strong {
  display:block;
  color:#3b583b;
  font-weight:800;
  font-size:13px
}

.v10-weekly-list li p {
  font-size:12px;
  line-height:1.8;
  margin:4px 0 0
}

.v10-weekly-consent {
  background:#e2ebdc;
  border-radius:10px;
  padding:14px;
  margin:14px 0 0
}

.v10-surcharge-line {
  color:#a66b26;
  border-top:1px dashed #e5bd80;
  padding-top:11px;
  margin-top:14px
}

.v10-pass-pay-note {
  border:1px solid #d7e2d0;
  background:#eff5eb;
  padding:11px 12px;
  border-radius:10px;
  color:#496544;
  font-size:12px;
  line-height:1.7;
  margin:14px 0
}

.v10-weekly-full-terms {
  margin:55px 0 26px;
  padding:36px 33px 24px;
  border-radius:23px;
  background:#f2f3e7;
  border:1px solid #d8dece
}

.v10-weekly-full-terms h2 {
  font:normal clamp(26px,3.8vw,42px)/1.2 Georgia,serif;
  color:#3c5739;
  margin:14px 0
}

.v10-weekly-full-terms>p:not(.v8-kicker) {
  font-size:13px;
  line-height:1.8;
  color:#50634f;
  max-width:780px
}

.v10-weekly-full-terms .v10-weekly-list {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:15px 30px;
  list-style-position:inside;
  padding:20px 0 20px
}

.v10-weekly-full-terms .v10-weekly-list li {
  background:#fffdf7;
  border:1px solid #e5e9da;
  border-radius:15px;
  padding:17px 19px
}

.v10-weekly-actions {
  display:flex;
  gap:12px;
  align-items:center;
  flex-wrap:wrap;
  margin:9px 0 0
}

.v10-weekly-actions .v10-outline {
  display:inline-flex;
  border:1px solid #8ba183;
  border-radius:40px;
  padding:13px 21px;
  color:#425b3a;
  font-size:12px;
  font-weight:800
}

.v10-public-holiday-note {
  background:#fff6e3;
  padding:16px 18px;
  border-left:4px solid #bc8b3d;
  color:#775824;
  font-size:12px;
  line-height:1.8;
  margin:14px 0
}

@media(max-width:680px){
  .v10-weekly-full-terms{
    padding:27px 19px
  }
  .v10-weekly-full-terms .v10-weekly-list{
    grid-template-columns:1fr
  }
  .v10-holiday-alert{
    padding:14px 12px;
    gap:8px
  }
  .v10-weekly-panel{
    padding:17px 14px
  }

}
/* V11 editorial brand integration: original green and line-art motifs are part of the layout, not a standalone poster. */
.hero.shell{
  position:relative;
  isolation:isolate;
  background:#f1f2e7;
  border:1px solid #e0e6d6;
  overflow:hidden
}

.hero.shell::before{
  content:"";
  position:absolute;
  right:-220px;
  top:-180px;
  width:560px;
  height:560px;
  border-radius:50%;
  background:#dbe4d0;
  opacity:.48;
  z-index:-1
}

.hero .eyebrow{
  color:#4f633f
}

.hero h1 em{
  color:#4e6541
}

.v11-brand-motto{
  font-size:clamp(13px,1.7vw,18px);
  font-family:Arial,Helvetica,sans-serif;
  font-weight:950;
  letter-spacing:-.035em;
  text-transform:uppercase;
  color:#526941;
  margin:18px 0 20px;
  display:flex;
  align-items:center;
  gap:11px
}

.v11-brand-motto span{
  font-weight:500;
  color:#c36e65;
  font-size:19px
}

.new-location-hero{
  background:linear-gradient(145deg,#f5f5e6 0%,#e0e7d6 60%,#cbd7bc 100%);
  border-color:#bbcab1
}

.new-location-hero::before{
  border-color:#8c9a82aa
}

.new-location-hero::after{
  border-color:#a5b39488
}

.v9-special-home-cards article{
  border-radius:16px;
  background:#78815f
}

.v9-special-home-cards article:nth-child(2){
  background:#50683c
}

.v9-special-home-cards article:nth-child(3){
  background:#3b4e30
}

.v9-ticket-special{
  border-radius:17px
}

.v9-poster-banner{
  display:none!important
}

.v11-holder-check h3{
  font:normal 27px/1.2 Georgia,serif;
  color:#364f38;
  margin:13px 0 12px
}

.v11-holder-check>p,.v11-holder-check form>p{
  color:#5d715f;
  font-size:13px;
  line-height:1.8
}

.v11-holder-check .v8-kicker{
  font-size:11px
}

.v11-holder-check .form-field{
  margin-top:20px
}

.v11-holder-check .form-field input{
  width:100%;
  max-width:450px;
  min-height:49px;
  padding:10px 14px;
  border:1px solid #bccbb5;
  border-radius:10px
}

.v11-pass-check-note{
  padding:14px 16px;
  margin:19px 0;
  background:#edf3e6;
  border-radius:10px;
  font-size:12px;
  line-height:1.7;
  color:#4c6349
}

/* Staff Weekly Pass console */
.v11-pass-console{
  max-width:1180px
}
.v11-pass-kicker{
  color:#728665;
  font-size:10px;
  letter-spacing:.16em;
  font-weight:800;
  margin-bottom:9px
}

.v11-pass-card{
  border:1px solid #d8e2d2;
  background:#f6f8f3;
  border-radius:17px;
  padding:24px;
  margin:25px 0
}

.v11-pass-title{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:space-between;
  align-items:center;
  margin-bottom:18px
}

.v11-pass-title strong{
  font-size:16px;
  color:#3a5a40
}
.v11-pass-title small{
  color:#758570;
  font-size:11px
}

.v11-pass-form{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px
}

.v11-pass-form .field{
  margin:0
}
.v11-pass-form .field label{
  display:block;
  margin-bottom:7px;
  color:#50664d;
  font-size:11px
}

.v11-pass-form input{
  border:1px solid #d5e0cd;
  min-height:43px;
  padding:10px 12px;
  border-radius:8px;
  background:#fff;
  width:100%
}

.v11-pass-form-actions{
  grid-column:1/-1
}
.v11-pass-table-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  margin:15px 0
}
.v11-pass-table-head h3{
  font:normal 23px Georgia,serif;
  color:#405942
}

.v11-pass-table-scroll{
  overflow-x:auto;
  border:1px solid #e2e8db;
  border-radius:12px
}
.v11-pass-table-scroll .table{
  min-width:720px
}
.v11-pass-table-scroll code{
  font-size:11px
}

.v11-pass-status{
  font-size:11px;
  font-weight:800;
  border-radius:40px;
  padding:5px 11px;
  display:inline-flex
}
.v11-pass-status.active{
  background:#e0f0d9;
  color:#397047
}
.v11-pass-status.voided{
  background:#fae6e3;
  color:#995045
}

.v11-pass-note{
  font-size:11px;
  line-height:1.8;
  color:#778579;
  margin-top:19px
}

@media(max-width:680px){
  .v11-brand-motto{
    font-size:13px;
    flex-wrap:wrap
  }
  .v11-pass-form{
    grid-template-columns:1fr
  }
  .v11-pass-card{
    padding:16px
  }
  .hero.shell::before{
    right:-300px
  }

}
/* Sage hero uses dark ink on the pale background; preserve accessible contrast. */
.hero.shell h1 {
  color:#2c4532;

}
.hero.shell h1 em {
  color:#476238;

}
.hero.shell .hero-sub {
  color:#4c5d4d;

}
.hero.shell .hero-no-charge {
  color:#52654e;

}
.hero.shell .hero-stats strong {
  color:#304b37;

}
.hero.shell .hero-stats small {
  color:#61745e;

}
/* V12: accessible rescue statistics, integrated floor guide, cakes and waitlist */
.v8-impact{
  background:#354d3e!important;
  border:1px solid #55725b!important;
  color:#fff9ed!important;
  box-shadow:0 18px 48px rgba(28,49,37,.18);
  transform:rotate(1deg)
}

.v8-impact>span{
  color:#f4dcaf!important;
  font-size:12px;
  letter-spacing:.09em
}

.v8-impact strong{
  color:#f8dfa9!important;
  font-size:clamp(60px,6.7vw,92px);
  line-height:1.05
}

.v8-impact small{
  color:#fffaf1!important;
  font-size:clamp(13px,1.3vw,17px);
  font-weight:700
}

.v8-impact p{
  color:#e3eee4!important;
  font-size:12px;
  line-height:1.65
}

.v8-impact>div{
  border-color:rgba(255,255,255,.24)
}

.v8-heading{
  grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)
}

.v8-heading>div{
  min-width:0
}
.v8-heading h2{
  font-size:clamp(34px,4.1vw,60px);
  overflow-wrap:break-word
}

.new-location-section{
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:5%;
  padding-top:67px;
  padding-bottom:77px
}

.new-location-section .gallery-copy h2{
  font-size:clamp(37px,4.4vw,62px);
  line-height:1.16;
  letter-spacing:-.05em
}

.new-location-steps{
  gap:13px
}
.new-location-steps .location-step{
  box-shadow:none;
  border:1px solid #e1e5d7
}

.v9-cake-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px
}

.v9-cake-grid>a.cake-item{
  display:flex;
  flex-direction:column;
  padding-bottom:17px;
  text-decoration:none;
  color:inherit;
  min-width:0
}

.v9-cake-grid .cake-media{
  height:205px;
  width:100%;
  overflow:hidden;
  display:grid;
  place-items:center;
  position:relative;
  background:linear-gradient(155deg,#f0e8d9,#e9eedb);
  border-radius:16px 16px 0 0
}

.v9-cake-grid .cake-item:nth-child(4n+2) .cake-media{
  background:linear-gradient(155deg,#e5edda,#f5e9e3)
}

.v9-cake-grid .cake-item:nth-child(4n+3) .cake-media{
  background:linear-gradient(155deg,#f4e0d8,#f6eee5)
}

.v9-cake-grid .cake-item:nth-child(4n+4) .cake-media{
  background:linear-gradient(155deg,#f0e8d8,#e6deda)
}

.v9-cake-grid .cake-media img{
  position:absolute;
  inset:0;
  height:100%;
  width:100%;
  object-fit:cover;
  z-index:1;
  background:transparent;
  border:0
}

.v9-cake-grid .cake-fallback-art{
  font-family:Georgia,serif;
  font-size:100px;
  font-weight:400;
  line-height:1;
  color:#738665;
  opacity:.34;
  transform:rotate(-14deg);
  user-select:none
}

.v9-cake-grid .cake-item strong{
  font-size:14px;
  line-height:1.55;
  min-height:60px;
  white-space:normal;
  overflow-wrap:anywhere
}

.v9-cake-grid .cake-item>span{
  font-size:11px;
  color:#5d704f;
  margin-top:auto;
  gap:10px;
  align-items:center
}

.v9-cake-grid .cake-item>span small{
  font-size:11px;
  color:#5d704f;
  font-weight:600
}

.v9-cake-grid .cake-item:hover .cake-fallback-art{
  transform:rotate(4deg);
  transition:transform .2s
}

.weekly-person-note{
  border:1px solid #cfdfcb;
  border-radius:12px;
  background:#f0f5ea;
  color:#395741;
  padding:14px 16px;
  font-size:13px;
  font-weight:720;
  line-height:1.55
}

.slot-grid .slot-cell{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:5px
}

.slot-grid .slot-cell .slot{
  width:100%;
  flex:1
}

.slot-grid .slot-cell .slot:disabled{
  text-decoration:none
}

.waitlist-inline{
  min-height:30px;
  padding:6px 5px;
  border:1px solid #a9bc9c;
  background:#f2f6ed;
  color:#385437;
  border-radius:9px;
  cursor:pointer;
  font-size:11px;
  font-weight:800
}

.waitlist-inline:hover,.waitlist-inline:focus-visible{
  background:#dae8d3;
  border-color:#637c5a;
  outline-offset:2px
}

.waitlist-heading{
  font:normal clamp(25px,3.2vw,37px)/1.2 Georgia,serif;
  color:#2c4834;
  margin:11px 0 13px
}

.waitlist-summary{
  border-radius:11px;
  background:#edf3e7;
  border:1px solid #d7e5cd;
  padding:13px 16px;
  color:#385337;
  font-size:14px;
  font-weight:700;
  margin:12px 0
}

.waitlist-copy{
  color:#526654;
  font-size:14px;
  line-height:1.85;
  margin:15px 0 26px
}

.waitlist-consent{
  display:flex;
  gap:11px;
  align-items:flex-start;
  font-size:12px;
  color:#4e6151;
  margin:20px 0
}

.waitlist-consent input{
  accent-color:#3b5c40;
  flex:none;
  margin-top:2px
}

@media(max-width:1000px){
  .v8-heading{
    grid-template-columns:1fr;
    gap:25px
  }
  .v8-impact{
    max-width:700px;
    transform:none
  }
  .new-location-section{
    grid-template-columns:1fr
  }
  .v9-cake-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))
  }

}
@media(max-width:700px){
  .v8-impact{
    padding:22px 25px
  }
  .v8-impact strong{
    font-size:63px
  }
  .new-location-section .gallery-copy h2{
    font-size:clamp(34px,8vw,49px)
  }
  .v9-cake-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:11px
  }
  .v9-cake-grid .cake-media{
    height:175px
  }
  .v9-cake-grid .cake-item strong{
    font-size:13px;
    padding:8px 12px 0
  }
  .v9-cake-grid .cake-item>span{
    padding:0 12px
  }
  .waitlist-copy{
    font-size:13px
  }
  .slot-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px
  }

}
@media(max-width:390px){
  .v9-cake-grid .cake-media{
    height:137px
  }
  .v9-cake-grid .cake-fallback-art{
    font-size:65px
  }

}
/* V13: verified feline profiles, independent adoption workflow, location details */
.cat-profile-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px
}

.cat-colleagues{
  padding-top:76px;
  border-top:1px solid #dce5da;
  margin-top:68px
}

.cat-collection-heading{
  max-width:780px;
  margin-bottom:37px
}

.cat-collection-heading h2,.cat-list-section h3,.footer-visit h2{
  font:normal clamp(32px,4vw,55px)/1.12 Georgia,'Times New Roman',serif;
  letter-spacing:-.04em;
  color:#304b3b;
  margin:12px 0 18px
}

.cat-collection-heading p:not(.v8-kicker){
  font-size:15px;
  color:#69776b;
  line-height:1.9
}

.cat-list-section{
  margin:41px 0 60px
}

.cat-list-section h3{
  font-size:clamp(25px,3vw,37px);
  margin:0 0 26px
}

.cat-profile-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  border:1px solid #dbe4d8;
  border-radius:22px;
  overflow:hidden;
  text-decoration:none;
  background:#fffdfa;
  box-shadow:0 12px 30px #344e3914;
  transition:transform .2s,box-shadow .2s
}

.cat-profile-card:hover,.cat-profile-card:focus-visible{
  box-shadow:0 17px 35px #344e3923;
  outline-offset:4px
}

.cat-profile-card-text{
  align-self:start;
  background:#f1f4ec
}

.cat-profile-image{
  height:252px;
  display:flex;
  align-items:stretch;
  background:linear-gradient(155deg,#e4eddc,#f5eee1);
  overflow:hidden
}

.cat-profile-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block
}

.cat-profile-placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:8px;
  height:100%;
  width:100%;
  font:normal 100px/.8 Georgia,serif;
  color:#819577;
  background:radial-gradient(circle at 70% 24%,#f3f4e9,#e3eadd 70%);
  text-align:center
}

.cat-profile-placeholder small{
  font:bold 10px/1.4 Arial,sans-serif;
  letter-spacing:3px;
  color:#798973
}

.cat-profile-info{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:11px;
  padding:24px;
  flex:1
}

.cat-profile-tag{
  border-radius:30px;
  background:#eaf0e4;
  border:1px solid #d6e2d2;
  padding:5px 11px;
  font-size:11px;
  font-weight:800;
  color:#51694e
}

.cat-profile-info strong{
  font:normal 31px/1.13 Georgia,serif;
  color:#314b38
}

.cat-profile-info>span:not(.cat-profile-tag){
  font-size:13px;
  color:#50634f;
  line-height:1.77
}

.cat-profile-info>b{
  font-size:12px;
  margin-top:auto;
  color:#365c39;
  padding-top:10px
}

.cat-quiet-note{
  border:1px dashed #cbd8c5;
  border-radius:19px;
  background:#edf2e9;
  padding:20px 24px;
  line-height:1.8;
  color:#58705a;
  grid-column:1/-1
}

.cat-detail-page{
  max-width:1240px
}

.cat-back-link{
  display:inline-flex;
  margin-bottom:36px;
  text-decoration:none;
  border-bottom:1px solid #82977b;
  font-size:13px;
  color:#3d6044;
  font-weight:800
}

.cat-detail-layout{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:7%;
  align-items:start;
  margin:12px 0 55px
}

.cat-detail-layout.cat-detail-layout-text{
  grid-template-columns:minmax(0,1fr);
  max-width:760px;
  margin-inline:auto
}

.cat-detail-photo>img,.cat-detail-photo>.cat-profile-placeholder{
  width:100%;
  height:min(65vw,530px);
  max-height:530px;
  object-fit:cover;
  border-radius:25px;
  box-shadow:0 15px 40px #344e391a;
  overflow:hidden
}

.cat-detail-copy h1{
  font:normal clamp(52px,7vw,96px)/1.05 Georgia,serif;
  letter-spacing:-.05em;
  color:#304b38;
  margin:14px 0 27px
}

.cat-detail-copy h2,.cat-apply-section h2{
  font:normal clamp(27px,3.2vw,41px)/1.15 Georgia,serif;
  color:#344a38;
  margin:32px 0 13px
}

.cat-detail-copy p{
  color:#50634f;
  line-height:1.9;
  font-size:15px
}

.cat-detail-copy .cat-lead{
  font-size:21px;
  color:#3e5e42;
  line-height:1.75
}

.cat-source{
  display:block;
  width:max-content;
  max-width:100%;
  border-bottom:1px solid #8a9f83;
  margin:23px 0;
  color:#456c45;
  text-decoration:none;
  font-size:13px;
  font-weight:750;
  line-height:1.75
}

.cat-original-poster{
  border-radius:17px;
  background:#f1f3ea;
  margin-top:17px;
  border:1px solid #dbe5d4;
  overflow:hidden
}

.cat-original-poster summary{
  padding:15px 19px;
  cursor:pointer;
  color:#415f46;
  font-size:13px;
  font-weight:750
}

.cat-original-poster img{
  width:100%;
  height:auto;
  display:block
}

.cat-status-explainer{
  padding:23px 31px;
  border:1px solid #d4e1d0;
  border-radius:17px;
  background:#edf2e9;
  color:#466549
}

.cat-status-explainer strong{
  font-size:17px
}

.cat-status-explainer p{
  color:#526653;
  font-size:13px;
  line-height:1.8;
  margin:7px 0
}

.cat-apply-section{
  background:#f0f4ec;
  border:1px solid #dbe5d6;
  border-radius:27px;
  padding:clamp(24px,4vw,55px);
  margin-top:54px
}

.cat-apply-section>p:not(.v8-kicker){
  max-width:730px;
  color:#657364;
  font-size:14px;
  line-height:1.75
}

.cat-adoption-form{
  display:grid;
  gap:22px;
  margin-top:32px
}

.cat-adoption-form label{
  display:flex;
  flex-direction:column;
  gap:9px;
  font-size:13px;
  font-weight:800;
  color:#3c5641;
  line-height:1.55
}

.cat-adoption-form input:not([type=checkbox]),.cat-adoption-form select,.cat-adoption-form textarea{
  width:100%;
  border:1px solid #bfccb8;
  border-radius:12px;
  background:#fffefa;
  padding:13px 14px;
  min-height:48px;
  font-size:14px;
  color:#2b4634;
  font-weight:400
}

.cat-adoption-form textarea{
  min-height:100px;
  resize:vertical;
  line-height:1.6
}

.cat-adoption-form input:focus-visible,.cat-adoption-form textarea:focus-visible,.cat-adoption-form select:focus-visible{
  outline:2px solid #597b59;
  outline-offset:2px
}

.cat-form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:19px
}

.cat-adoption-form .cat-privacy{
  flex-direction:row;
  align-items:flex-start;
  font-size:12px;
  font-weight:500;
  color:#586c59
}

.cat-adoption-form .cat-privacy input{
  width:18px;
  height:18px;
  flex:none;
  accent-color:#3b6045;
  margin-top:2px
}

.cat-adoption-form .cat-honeypot{
  display:none
}

.cat-form-feedback{
  font-size:13px;
  color:#325d3c;
  line-height:1.8
}

.cat-adoption-form button{
  justify-self:start
}

.new-location-contact-strip{
  grid-column:1/-1;
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:18px;
  padding:22px 26px;
  background:#eaf1e6;
  border:1px solid #d3dfce;
  border-radius:20px;
  margin-top:8px
}

.new-location-contact-strip>div{
  min-width:0
}

.new-location-contact-strip strong{
  color:#335339;
  font-size:16px
}

.new-location-contact-strip p{
  color:#60705f;
  font-size:12px;
  margin:8px 0 0
}

.new-location-contact-strip>div:nth-child(2){
  display:flex;
  flex-direction:column;
  gap:7px
}

.new-location-contact-strip a{
  font-size:12px;
  color:#38593b;
  font-weight:800;
  text-decoration:none
}

.new-location-book-link{
  border-radius:50px;
  background:#39583f;
  color:white!important;
  padding:13px 21px;
  white-space:nowrap
}

.footer-visit{
  border-top:1px solid #dce3d6;
  background:#eef3e9;
  padding:55px 0 61px;
  margin-top:25px
}

.footer-visit-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
  gap:6%;
  align-items:center
}

.footer-visit h2{
  font-size:clamp(34px,4vw,51px)
}

.footer-visit p:not(.v8-kicker){
  font-size:14px;
  color:#5d705e;
  line-height:1.85
}

.footer-parking{
  border-top:1px solid #d0dac9;
  margin-top:21px;
  padding-top:18px
}

.footer-parking strong{
  font-size:14px;
  color:#33553e
}

.footer-parking p{
  font-size:12px!important;
  margin:8px 0
}

.footer-parking a,.footer-visit-links a{
  display:inline-flex;
  color:#3a6245;
  font-size:12px;
  font-weight:800;
  margin:10px 14px 0 0;
  text-decoration:none;
  border-bottom:1px solid #789677;
  padding-bottom:2px
}

.footer-map-frame{
  height:420px;
  background:#e0e8d9;
  border:1px solid #d0dfc8;
  border-radius:24px;
  overflow:hidden;
  box-shadow:0 15px 35px rgba(28,52,34,.1)
}

.footer-map-frame iframe{
  width:100%;
  height:100%;
  border:0;
  display:block
}

.v9-drink-highlights{
  position:relative
}

@media(max-width:1080px){
  .cat-profile-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .footer-visit-grid{
    grid-template-columns:1fr;
    gap:30px
  }
  .footer-map-frame{
    height:400px
  }

}
@media(max-width:730px){
  .cat-profile-grid{
    grid-template-columns:1fr
  }
  .cat-profile-image{
    height:290px
  }
  .cat-detail-layout{
    grid-template-columns:1fr;
    gap:25px
  }
  .cat-detail-photo>img,.cat-detail-photo>.cat-profile-placeholder{
    height:380px
  }
  .cat-form-row{
    grid-template-columns:1fr
  }
  .new-location-contact-strip{
    align-items:stretch;
    flex-direction:column
  }
  .new-location-book-link{
    align-self:flex-start
  }
  .footer-map-frame{
    height:330px
  }
  .footer-visit{
    padding:40px 0
  }
  .cat-colleagues{
    padding-top:55px
  }

}
@media(max-width:450px){
  .cat-profile-info{
    padding:20px
  }
  .cat-profile-image{
    height:260px
  }
  .cat-detail-photo>img,.cat-detail-photo>.cat-profile-placeholder{
    height:300px
  }
  .footer-map-frame{
    height:270px
  }
  .cat-apply-section{
    padding:22px
  }

}
/* Featured drinks and contact cards */
.v9-drink-highlights>div{
  position:relative;
  isolation:isolate;
  min-height:145px;
  overflow:hidden;
  border-radius:22px;
  padding:22px 25px;
  box-shadow:0 8px 26px #2f533b12;
  background:linear-gradient(155deg,#f0e6d7,#e6efdc);
  border:1px solid #dee5d6
}

.v9-drink-highlights>div::after{
  content:"";
  position:absolute;
  z-index:-1;
  width:170px;
  height:170px;
  border-radius:50%;
  top:-85px;
  right:-65px;
  filter:blur(2px);
  background:#ffffff66
}

.v9-drink-highlights>div:nth-child(2),.v9-drink-highlights>div:nth-child(3),.v9-drink-highlights>div:nth-child(4){
  background:linear-gradient(160deg,#e9eee0,#f4eee3)
}

.v9-drink-highlights>div[data-drink-cat=coffee]{
  background:linear-gradient(150deg,#f3e5d5,#e4eddb)
}

.v9-drink-highlights>div[data-drink-cat=tea]{
  background:linear-gradient(150deg,#e2edda,#f3f2df)
}

.v9-drink-highlights>div[data-drink-cat=fruit]{
  background:linear-gradient(150deg,#fff1df,#f3e9e2)
}

.v9-drink-highlights>div[data-drink-cat=bubble]{
  background:linear-gradient(150deg,#e8e0eb,#f4efe2)
}

.v9-drink-highlights>div[data-drink-cat=kids]{
  background:linear-gradient(150deg,#f7e4db,#f0efe4)
}

.v9-drink-highlights .v14-drink-emoji{
  font-size:30px;
  letter-spacing:0;
  filter:drop-shadow(0 4px 3px #2f533b12)
}

.v9-drink-highlights strong{
  font:normal 21px/1.3 Georgia,"Times New Roman",serif;
  margin:13px 0 5px;
  color:#304f3d
}

.v9-drink-highlights small{
  line-height:1.65;
  color:#6d776a;
  font-size:11px
}

.v9-drinks-grid{
  gap:16px
}

.v9-drink-item.v14-menu-drink{
  display:grid;
  grid-template-columns:58px minmax(0,1fr) auto;
  align-items:center;
  min-height:117px;
  gap:16px;
  border-radius:20px;
  padding:17px;
  background:linear-gradient(140deg,#fffef9,#f7f7ee);
  box-shadow:0 8px 28px #3a55420c;
  transition:transform .24s ease,box-shadow .24s ease
}

.v9-drink-item.v14-menu-drink:hover{
  box-shadow:0 16px 32px #364d3f18
}

.v9-drink-item .v14-drink-art{
  height:58px;
  width:58px;
  border-radius:19px;
  display:grid;
  place-items:center;
  font-size:30px;
  background:#f0e8d9
}

.v9-drink-item[data-drink-cat=coffee] .v14-drink-art{
  background:#f2e6d5
}

.v9-drink-item[data-drink-cat=tea] .v14-drink-art{
  background:#e4efdd
}

.v9-drink-item[data-drink-cat=fruit] .v14-drink-art{
  background:#fcf0db
}

.v9-drink-item[data-drink-cat=bubble] .v14-drink-art{
  background:#eee7ee
}

.v9-drink-item[data-drink-cat=kids] .v14-drink-art{
  background:#f7e7e2
}

.v9-drink-item.v14-menu-drink .v14-drink-meta{
  display:flex;
  flex-direction:column;
  gap:5px;
  min-width:0
}

.v9-drink-item.v14-menu-drink .v14-drink-category{
  font-size:13px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:1.2px;
  color:#435d4d
}

.v9-drink-item.v14-menu-drink .v14-drink-meta strong{
  font:normal 19px/1.3 Georgia,serif;
  color:#354e39
}

.v9-drink-item.v14-menu-drink .v14-drink-meta small:last-child{
  font-size:13px;
  color:#506452
}

.v9-drink-item.v14-menu-drink .v14-drink-price{
  font-weight:800;
  background:#e8f0e3;
  padding:8px 10px;
  border-radius:9px;
  white-space:nowrap;
  color:#395c43
}

.v13-free-drink-note{
  display:flex;
  gap:17px;
  align-items:center;
  border-radius:23px;
  background:linear-gradient(110deg,#3b5c43,#5c775a);
  color:#fdf9ef;
  padding:25px 29px;
  margin:28px 0 16px
}

.v13-free-drink-note .v13-drink-glyph{
  font-size:35px;
  align-self:center
}

.v13-free-drink-note strong{
  font:normal 24px Georgia,serif;
  display:block;
  margin-bottom:7px
}

.v13-free-drink-note p{
  font-size:13px;
  line-height:1.85;
  color:#eff4e8;
  margin:0;
  max-width:770px
}

.v13-cake-section-title{
  margin:42px 0 13px
}

.v13-cake-section-title h3{
  font:normal clamp(27px,3vw,38px) Georgia,serif;
  letter-spacing:-.03em;
  color:#34553c;
  margin:0 0 11px
}

.v13-cake-section-title p{
  font-size:13px;
  color:#708173;
  line-height:1.8
}

.v9-cake-grid .cake-media img{
  transition:transform .4s ease
}

.v9-cake-grid .cake-item:hover .cake-media img{
}

.v9-cake-grid .cake-eligibility{
  display:inline-flex;
  align-self:flex-start;
  width:max-content;
  padding:6px 11px;
  margin:11px 13px 0;
  border-radius:30px;
  font-size:10px;
  font-weight:850;
  background:#e7f1de;
  color:#4a7050
}

.v9-cake-grid .cake-not-included .cake-eligibility{
  color:#8b5e45;
  background:#fbebdd
}

.v9-cake-grid .cake-item>strong{
  margin-top:2px
}

.v9-cake-grid .cake-item>span:last-child{
  font-size:11px;
  font-weight:500;
  align-items:center;
  color:#6f796c;
  gap:6px
}

.v13-contact-page .v8-inner-lead{
  margin-bottom:35px
}

.v13-contact-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px
}

.v13-contact-grid>*{
  min-width:0;
  padding:25px;
  border-radius:21px;
  border:1px solid #dbe6d5;
  background:linear-gradient(150deg,#fffefa,#f1f4ed);
  display:flex;
  flex-direction:column;
  gap:12px;
  text-decoration:none;
  transition:transform .2s,box-shadow .2s
}

.v13-contact-grid>a:hover{
  box-shadow:0 12px 28px #304d3a16
}

.v13-contact-grid small{
  font-weight:900;
  color:#869e82;
  font-size:10px;
  letter-spacing:1.8px
}

.v13-contact-grid strong{
  color:#32513b;
  font:normal clamp(20px,2vw,26px) Georgia,serif;
  overflow-wrap:anywhere
}

.v13-contact-grid span{
  font-size:12px;
  line-height:1.7;
  color:#768578
}

.v13-contact-directions{
  padding:31px;
  background:#eaf1e5;
  border-radius:21px;
  margin-top:28px
}

.v13-contact-directions strong{
  font:normal 25px Georgia,serif;
  color:#395540
}

.v13-contact-directions p{
  font-size:13px;
  line-height:1.8;
  color:#4a604b
}

.v13-contact-directions a{
  display:inline-flex;
  margin-top:12px
}

@media(max-width:980px){
  .v13-contact-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }

}
@media(max-width:650px){
  .v13-contact-grid{
    grid-template-columns:1fr
  }
  .v9-drink-item.v14-menu-drink{
    grid-template-columns:48px minmax(0,1fr) auto;
    gap:12px;
    padding:13px;
    min-height:100px
  }
  .v9-drink-item .v14-drink-art{
    width:48px;
    height:48px;
    font-size:25px
  }
  .v9-drink-item.v14-menu-drink .v14-drink-meta strong{
    font-size:17px
  }
  .v13-free-drink-note{
    padding:21px;
    gap:12px
  }
  .v13-free-drink-note strong{
    font-size:21px
  }
  .v13-free-drink-note .v13-drink-glyph{
    font-size:28px
  }

}
/* V15: a short, editorial cake carousel rather than a product menu. */
.v15-cake-gallery-heading{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:20px;
  margin:44px 0 22px
}

.v15-cake-gallery-heading h3{
  font:normal clamp(28px,3.5vw,44px)/1.12 Georgia,'Times New Roman',serif;
  color:#344f3a;
  letter-spacing:-.04em;
  margin:10px 0 0
}

.v15-cake-gallery-heading .v8-kicker{
  margin:0
}

.v15-cake-controls{
  display:flex;
  gap:10px;
  flex:none
}

.v15-cake-controls button{
  width:44px;
  height:44px;
  border-radius:50%;
  border:1px solid #cfdcc9;
  background:#f1f4ea;
  color:#35533e;
  font:normal 26px/1 Georgia,serif;
  cursor:pointer;
  transition:background .2s,transform .2s
}

.v15-cake-controls button:hover,.v15-cake-controls button:focus-visible{
  background:#dfe9d9;
  outline-offset:3px
}

.v15-cake-track{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:calc((100% - 40px)/3);
  gap:20px;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  padding:5px 2px 18px;
  position:relative
}

.v15-cake-track::-webkit-scrollbar{
  display:none
}

.v15-cake-slide{
  scroll-snap-align:start;
  border:1px solid #dfe7d9;
  background:#fffefb;
  border-radius:24px;
  overflow:hidden;
  box-shadow:0 13px 28px rgba(49,77,54,.10);
  min-width:0;
  transition:transform .25s,box-shadow .25s
}

.v15-cake-slide:hover{
  box-shadow:0 18px 35px rgba(49,77,54,.14)
}

.v15-cake-image{
  position:relative;
  aspect-ratio:1.24/1;
  overflow:hidden;
  background:linear-gradient(145deg,#ece6dd,#e8eddf);
  display:grid;
  place-items:center
}

.v15-cake-image:nth-child(4n+2){
  background:linear-gradient(145deg,#ecf0df,#f7e5dd)
}

.v15-cake-image img{
  position:relative;
  z-index:1;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .45s
}

.v15-cake-slide:hover .v15-cake-image img{
}

.v15-cake-fallback{
  position:absolute;
  font:normal 90px Georgia,serif;
  color:#9bb198;
  opacity:.5;
  transform:rotate(17deg);
  user-select:none
}

.v15-cake-caption{
  padding:23px 25px 25px;
  min-height:95px;
  display:flex;
  align-items:center
}

.v15-cake-caption strong{
  font:normal clamp(19px,2vw,25px)/1.34 Georgia,serif;
  color:#35513d;
  overflow-wrap:break-word
}

.v15-cake-footnote{
  max-width:850px;
  font-size:12px;
  color:#708071;
  line-height:1.8;
  margin:11px 0 9px
}

.v13-contact-grid{
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr))
}

.v10-extra-option.extra-unavailable{
  background:#f5f5f1;
  border-color:#dedfd8
}

.v10-extra-option.extra-unavailable label{
  cursor:not-allowed;
  opacity:.68
}

.v10-extra-option.extra-unavailable strong{
  color:#68776b
}

.v10-extra-option input[type="checkbox"]:disabled{
  cursor:not-allowed
}

@media(max-width:1050px){
  .v15-cake-track{
    grid-auto-columns:calc((100% - 20px)/2)
  }

}
@media(max-width:660px){
  .v15-cake-gallery-heading{
    align-items:center
  }
  .v15-cake-controls button{
    width:39px;
    height:39px
  }
  .v15-cake-track{
    grid-auto-columns:88%;
    gap:13px
  }
  .v15-cake-caption{
    padding:19px 20px;
    min-height:75px
  }
  .v15-cake-image{
    aspect-ratio:1.45/1
  }
  .v15-cake-footnote{
    font-size:11px
  }

}
@media(prefers-reduced-motion:reduce){
  .v15-cake-track{
    scroll-behavior:auto
  }
  .v15-cake-slide,.v15-cake-image img,.v15-cake-controls button{
    transition:none
  }

}

/* V18: clear primary and fallback booking-management lookup sections. */
.v14-ref-lookup,.v8-manage-lookup{
  margin:20px 0 0;
  padding:clamp(16px,3vw,25px);
  text-align:left;
  border:1px solid #e0e6d9;
  border-radius:15px;
  background:#fffef9
}
.v14-ref-lookup{
  background:#f8faf4;
  border-color:#cad8c5
}
.v14-ref-lookup h3,.v8-manage-lookup h3{
  margin:0 0 10px;
  color:#315740
}
.v14-ref-lookup p,.v8-manage-lookup p{
  line-height:1.65
}
.v14-ref-lookup .form-field,.v8-manage-lookup .form-field{
  margin:12px 0
}
.v14-ref-lookup .form-field input,.v8-manage-lookup .form-field input{
  width:100%
}
.v8-otp-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  margin:15px 0
}
.v8-otp-actions>input{
  flex:1 1 150px;
  min-width:145px;
  max-width:220px
}
.v8-manage-lookup .v8-otp-status,.v14-ref-lookup .v8-otp-status{
  margin:10px 0 0
}

/* V35: readable, touch-friendly names on booking slots. */
.booking-rhythm-note{
 margin:6px 0 13px;
 color:#687a6c;
 font-size:12px;
 line-height:1.6
}
.slot-rhythm-grid .slot{
 min-height:86px;
 padding:11px 6px;
 gap:5px;
 touch-action:manipulation
}
.slot-rhythm-grid .slot strong{font-size:14px}
.slot-rhythm-grid .slot-rhythm-name{
 font-size:11px;
 font-weight:650;
 line-height:1.35;
 color:#48684e;
 letter-spacing:0
}
.slot-rhythm-grid .slot-rhythm-availability{
 font-size:10px;
 line-height:1.4;
 color:#50634f
}
.slot-rhythm-grid .slot.selected .slot-rhythm-name,
.slot-rhythm-grid .slot.selected .slot-rhythm-availability{color:#f0f7ef}
.slot-rhythm-grid .slot:disabled .slot-rhythm-name,
.slot-rhythm-grid .slot:disabled .slot-rhythm-availability{color:#929b91}
.slot-rhythm-grid .slot-rest{
 grid-column:1 / -1;
 display:flex;
 align-items:center;
 justify-content:center;
 gap:18px;
 padding:15px 16px;
 border:1px solid #e4e8dc;
 background:#f5f6ef;
 border-radius:12px;
 color:#5b6b5f;
 font-size:12px
}
.slot-rest-time{font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
.slot-rest div{display:flex;flex-direction:column;gap:3px}
.slot-rest strong{font-size:13px;color:#4a604e}
.slot-rest div span{font-size:11px}
@media (max-width:540px){
 .slot-rhythm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .slot-rhythm-grid .slot-rest{justify-content:flex-start;gap:12px}
}
@media (prefers-reduced-motion:reduce){
 .slot-rhythm-grid .slot{transition:none}
}

/* Catfe booking contact and email-code refinements */
.catfe-phone-row{display:flex;align-items:stretch;gap:8px;min-width:0}
.catfe-phone-row .catfe-country-code{flex:0 0 116px;min-width:0;border:1px solid #cdd7ca;border-radius:9px;background:#f8f9f4;color:#30362b;padding:10px 8px;font-size:13px;min-height:45px}
.catfe-phone-row input{flex:1 1 auto;min-width:0;width:100%}
.v8-otp-actions [data-v8^="otp-send"]{width:auto;min-width:0;flex:0 0 auto;padding:9px 14px;border-radius:9px;font-size:13px;font-weight:600;background:#f7f8f1;color:#556543;border:1px solid #aebba0}
.v8-otp-actions [data-v8^="otp-send"]:disabled{opacity:.6;cursor:not-allowed}
#book-confirm-btn:disabled{background:#c7c9c1;border-color:#c7c9c1;color:#63675f;cursor:not-allowed;opacity:.75;box-shadow:none}
@media(max-width:460px){.catfe-phone-row .catfe-country-code{flex-basis:104px}.v8-otp-actions [data-v8^="otp-send"]{font-size:12px;padding:9px 11px}}

/* Booking, dynamic combo suggestions and resilient touch-friendly rule reading. */
.combo-suggestion{display:flex;align-items:center;gap:12px;margin:14px 0 20px;padding:15px 17px;background:#f1f5e9;border:1px solid #d5dfc9;border-radius:16px;box-shadow:0 10px 28px rgba(46,79,52,.05)}
.combo-suggestion>span{flex:0 0 30px;font-size:25px;color:#798e5e;text-align:center}
.combo-suggestion>div{flex:1;min-width:0}
.combo-suggestion strong{display:block;color:#3c593f;font-size:14px;margin-bottom:4px}
.combo-suggestion p{font-size:12px;color:#556f5b;line-height:1.65;margin:0}
.combo-suggestion button{flex-shrink:0;min-height:39px;white-space:nowrap;font-size:12px}
.booking-summary .package-extra{margin-top:6px;color:#4e6e50}
.booking-summary .package-extra strong{color:#496e40}
.booking-verify-explainer{line-height:1.7;color:#637466;margin-bottom:21px}
.v8-rules-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scroll-padding-bottom:20px;touch-action:pan-y}
.v8-rules-progress{min-height:34px;padding:7px 30px 4px;text-align:right;background:#fff;color:#68815a;font-size:12px;line-height:1.5}
.v8-rules-error:empty{display:none}
.v8-rules-error:not(:empty){padding:11px 26px;background:#fff1ed;color:#8c473d;font-size:13px;line-height:1.6}
.catfe-count-reveal{font-variant-numeric:tabular-nums;animation:catfe-count-rise .75s cubic-bezier(.2,.8,.2,1) both}
.hero-stats strong,.v8-impact strong,.vet-offer-number{font-variant-numeric:tabular-nums}
@keyframes catfe-count-rise{from{opacity:.55;transform:translate3d(0,14px,0) scale(.97)}to{opacity:1;transform:translate3d(0,0,0) scale(1)}}
@keyframes catfe-home-enter{from{opacity:0;transform:translate3d(0,35px,0);filter:blur(5px)}to{opacity:1;transform:translate3d(0,0,0);filter:blur(0)}}
@keyframes catfe-logo-breathe{0%,100%{transform:translateY(0) rotate(-1.5deg)}50%{transform:translateY(-10px) rotate(1.5deg)}}
@keyframes catfe-quiet-twinkle{0%,100%{opacity:.42;transform:scale(.9)}50%{opacity:1;transform:scale(1.18)}}
body[data-page="home"] .hero-copy>.eyebrow{animation:catfe-home-enter .75s .05s both}
body[data-page="home"] .hero-copy>h1{animation:catfe-home-enter 1.05s .19s both}
body[data-page="home"] .hero-copy>.hero-sub{animation:catfe-home-enter .88s .39s both}
body[data-page="home"] .hero-copy>.v11-brand-motto{animation:catfe-home-enter .88s .51s both}
body[data-page="home"] .hero-copy>.hero-actions{animation:catfe-home-enter .85s .64s both}
body[data-page="home"] .hero-copy>.hero-stats{animation:catfe-home-enter 1s .83s both}
body[data-page="home"] .new-location-logo{animation:catfe-logo-breathe 7s ease-in-out infinite}
body[data-page="home"] .new-location-decoration{animation:catfe-quiet-twinkle 5s ease-in-out infinite}
body[data-page="home"] .v8-impact{animation:catfe-home-enter .9s .15s both}
.canva-home-stories .catfe-arrivals-grid>*{animation:catfe-home-enter .8s both}
.canva-home-stories .catfe-arrivals-grid>*:nth-child(2){animation-delay:.13s}
.canva-home-stories .catfe-arrivals-grid>*:nth-child(3){animation-delay:.26s}
@media(max-width:680px){.combo-suggestion{flex-wrap:wrap}.combo-suggestion button{width:100%}.v8-rules-progress{padding:7px 16px}}
@media(prefers-reduced-motion:reduce){.catfe-count-reveal,body[data-page="home"] .hero-copy>*,body[data-page="home"] .new-location-logo,body[data-page="home"] .new-location-decoration,body[data-page="home"] .v8-impact,.canva-home-stories .catfe-arrivals-grid>*{animation:none!important;transition:none!important}}

/* Ticket bundles: each entry is a quantity, not a mutually exclusive ticket. */
.multi-combo-picker{padding:clamp(15px,2.6vw,23px)}
.multi-combo-picker .v9-book-package-head{margin-bottom:16px}
.multi-combo-picker .v9-book-package-head small{font-size:12px;line-height:1.7}
.combo-option-tabs{margin-bottom:13px}
.combo-option-tabs button{min-height:40px;font-size:12px}
.combo-quantity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.combo-quantity-card{min-width:0;display:flex;flex-direction:column;justify-content:space-between;gap:15px;background:#fffefb;border:1px solid #d4ded0;border-radius:14px;padding:16px;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease}
.combo-quantity-card.chosen{background:#f1f6eb;border-color:#79976e;box-shadow:0 5px 16px rgba(54,92,55,.07)}
.combo-quantity-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:9px;min-width:0}
.combo-quantity-heading h4{font-size:15px;font-weight:750;color:#304e32;margin:0 0 7px}
.combo-quantity-heading small{font-size:11px;line-height:1.6;color:#677c66;display:block}
.combo-quantity-heading>strong{flex-shrink:0;font-size:17px;color:#405d3a;font-variant-numeric:tabular-nums}
.combo-quantity-heading>strong small{display:inline;font-size:10px;font-weight:500;color:#68785f}
.combo-quantity-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px}
.combo-quantity-status{font-size:12px;color:#59775c}
.combo-quantity-counter{gap:11px}
.combo-quantity-counter button{width:39px;height:39px;min-width:39px;border:1px solid #a8c19d;touch-action:manipulation;font-size:20px}
.combo-quantity-counter button:not(:disabled):active{transform:scale(.94);background:#e4eedc}
.combo-quantity-counter span{font-size:18px;min-width:20px;font-variant-numeric:tabular-nums}
.combo-allocation-tip{font-size:12px;line-height:1.7;margin:13px 0 0;color:#586d57}
.receipt-combo-detail{align-items:flex-start}
.receipt-combo-detail b{text-align:right;line-height:1.5;max-width:58%;overflow-wrap:anywhere}
.appt-ticket{display:flex;align-items:center;gap:5px;font-size:11px;color:#4f7353;margin:6px 0;line-height:1.4}
.staff-bundle-note{line-height:1.65}
.money-line.invalid{color:#b44332}
@media(max-width:720px){.combo-quantity-grid{grid-template-columns:1fr}.combo-quantity-heading>strong{font-size:16px}.combo-quantity-card{padding:14px}.combo-quantity-bottom{gap:6px}}
@media(prefers-reduced-motion:reduce){.combo-quantity-card{transition:none}}


/* Curated Maggie Bakery photographs; locally served owner-provided media. */
.v15-cake-gallery-heading{margin:38px 0 16px}
.v15-cake-track{gap:16px;grid-auto-columns:min(300px,calc((100% - 48px)/3));padding:3px 2px 14px;scroll-padding-inline:3px}
.v15-cake-slide{border-radius:17px;box-shadow:0 8px 22px rgba(49,77,54,.08)}
.v15-cake-image{aspect-ratio:4/5;border-radius:16px 16px 0 0}
.v15-cake-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 51%}
.v15-cake-slide:hover .v15-cake-image img{transform:scale(1.018)}
.v15-cake-caption{padding:12px 15px 14px;min-height:58px}
.v15-cake-caption strong{font-size:clamp(16px,1.45vw,20px);line-height:1.32}
.v15-cake-footnote{margin-top:7px}
@media(min-width:600px) and (max-width:899px){
 .v15-cake-track{grid-auto-columns:calc((100% - 20px)/2.25);gap:14px}
}
@media(max-width:599px){
 .v15-cake-gallery-heading{margin:30px 0 15px}
 .v15-cake-track{grid-auto-columns:min(74%,280px);gap:12px;padding-bottom:12px}
 .v15-cake-slide{border-radius:15px}
 .v15-cake-caption{min-height:52px;padding:11px 13px 12px}
 .v15-cake-caption strong{font-size:17px}
}
@media(prefers-reduced-motion:reduce){.v15-cake-slide,.v15-cake-image img{transition:none}}


/* V58 · Legible visitor guidance and lost-response recovery */
.v8-rules-lookup{display:inline-flex;align-items:center;gap:7px;margin:8px 0 4px;padding:10px 12px;border-radius:9px;background:#e6f0e4;color:#254e32!important;font-size:13px;font-weight:700;text-underline-offset:3px}
.v8-rules-lookup[hidden]{display:none}
.guest-control small,.v13-contact-directions p{font-weight:500}

/* V61: audit fixes C02-C09 — readable content without altering the brand layout. */
.cat-detail-facts{
 display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
 gap:12px;margin:24px 0 28px;padding:16px 18px;border-radius:16px;
 border:1px solid #dce7d7;background:#f3f6ee
}
.cat-detail-facts div{min-width:0;display:grid;gap:7px}
.cat-detail-facts dt{color:#526b50;font-size:12px;font-weight:700;letter-spacing:.015em}
.cat-detail-facts dd{margin:0;color:#304d38;font-size:14px;line-height:1.55;overflow-wrap:break-word}
.cat-adopted-more{
 display:block;min-height:44px;margin:26px auto 8px;padding:12px 24px;
 border:1px solid #b9ceb6;border-radius:100px;background:#edf3e9;
 color:#294e38;font-size:14px;font-weight:740;cursor:pointer;
 transition:background .2s,border-color .2s
}
.cat-adopted-more[hidden]{display:none}
.cat-adopted-more:hover{background:#e0ecdc}
.cat-adopted-more:focus-visible,.v15-cake-track:focus-visible{
 outline:3px solid #32664d;outline-offset:4px
}
.v15-cake-track:focus-visible{border-radius:14px}
.v24-current-menu-card{
 display:flex;flex-direction:column;justify-content:center;align-items:flex-start;
 gap:14px;min-width:0;min-height:220px;padding:clamp(22px,3vw,32px);
 background:linear-gradient(135deg,#eff3e7,#e3ede0);
 border:1px solid #d0dfca;border-radius:22px
}
.v24-current-menu-card .v8-kicker{color:#506c4f;margin:0;font-size:11px}
.v24-current-menu-card strong{
 font:normal clamp(23px,2.4vw,35px)/1.18 Georgia,serif;color:#2d5138
}
.v9-menu-page-head .v24-current-menu-card p{
 font-size:13px;line-height:1.7;color:#435e49;margin:0
}
.v24-current-menu-card a{color:#294e38;font-size:14px;font-weight:750;text-underline-offset:3px}
.v24-menu-sizes{
 margin:-8px 0 20px;line-height:1.7;font-size:13px;
 font-weight:620;color:#405d4b
}
.v9-drink-item.v14-menu-drink .v14-drink-price{
 max-width:220px;white-space:normal;line-height:1.65;
 text-align:right;font-size:12px;overflow-wrap:normal
}
.v13-contact-page .v13-contact-grid{
 grid-template-columns:repeat(3,minmax(0,1fr))
}
.v13-contact-grid a[href^="mailto:"] strong{
 font:normal clamp(16px,1.7vw,21px)/1.35 Georgia,serif;
 letter-spacing:-.025em;white-space:nowrap;overflow-wrap:normal
}
.v13-contact-grid strong{font-size:clamp(18px,2vw,25px)}
/* Small essential booking notes must have sufficient contrast on cream backgrounds. */
body[data-page="booking"] .note-line,
body[data-page="menu"] .v14-drink-category,
body[data-page="menu"] .v14-drink-meta small,
body[data-page="booking"] .v10-holiday-key{
 color:#435d4d;font-size:max(13px,1em);line-height:1.6
}
body[data-page="booking"] .note-line{font-size:13px}
.v9-drink-item .v14-drink-meta small:last-child{color:#506452}
.v15-cake-footnote,.cat-quiet-note{color:#4e6653}
@media(max-width:1050px){
 .v13-contact-page .v13-contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
 .v13-contact-page .v13-contact-grid{grid-template-columns:minmax(0,1fr)}
 .v9-menu-page-head{grid-template-columns:minmax(0,1fr);gap:18px}
 .v24-current-menu-card{min-height:0}
 .v9-drink-item.v14-menu-drink{grid-template-columns:48px minmax(0,1fr)}
 .v9-drink-item.v14-menu-drink .v14-drink-price{
  grid-column:2;justify-self:start;text-align:left;max-width:100%;font-size:12px
 }
 .cat-detail-facts{grid-template-columns:1fr 1fr}
}
/* Utility pages already contain contact and location links in the footer.
   Hide the duplicate full-size map/parking section only on these routes. */
body[data-page="booking"] .footer-visit,
body[data-page="manage"] .footer-visit,
body[data-page="contact"] .footer-visit{display:none}
body[data-page="booking"] .footer.footer-refined,
body[data-page="manage"] .footer.footer-refined,
body[data-page="contact"] .footer.footer-refined{margin-top:28px}
@media(prefers-reduced-motion:reduce){
 .cat-adopted-more,.v15-cake-track{transition:none;scroll-behavior:auto}
}


/* Gift-card discovery: restrained, editorial block consistent with our café. */
.gift-home-section{padding-top:clamp(32px,5vw,70px);padding-bottom:clamp(32px,5vw,70px)}
.gift-home-feature{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(220px,.8fr);gap:clamp(28px,6vw,90px);align-items:center;padding:clamp(25px,5vw,62px);border-radius:26px;background:#edf0e7;border:1px solid #dfe5d8;overflow:hidden}
.gift-home-content{min-width:0}
.gift-home-content h2{font-family:"Fraunces","Noto Serif SC",Georgia,serif;max-width:630px;font-size:clamp(28px,3.5vw,48px);line-height:1.22;color:#344b3c;margin:14px 0 18px;font-weight:500}
.gift-home-content>p:not(.v8-kicker){font-size:clamp(14px,1.4vw,17px);line-height:1.9;color:#637064;max-width:635px;margin-bottom:27px}
.gift-home-action{display:inline-flex;align-items:center}
.gift-home-content>small{display:block;margin-top:16px;font-size:12px;color:#758073;line-height:1.6}
.gift-home-card{min-height:300px;aspect-ratio:4/5;max-width:330px;width:100%;margin:auto;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px;padding:26px;background:#fff9f1;border:2px solid #decdba;border-radius:20px;box-shadow:0 18px 42px #37463812;transform:rotate(3deg);color:#625149}
.gift-home-stamp{letter-spacing:2px;font-size:10px;font-weight:750}
.gift-home-paw{font-size:46px;color:#a98171;line-height:1;margin:15px 0}
.gift-home-card strong{font:500 clamp(28px,3vw,42px)/1.18 "Fraunces",Georgia,serif}
.gift-home-card em{font:italic 19px/1.3 Georgia,serif}
.gift-home-sign{font-size:12px;margin-top:22px;letter-spacing:1px}
@media(max-width:740px){.gift-home-feature{grid-template-columns:1fr;gap:25px;padding:26px 20px}.gift-home-card{max-width:230px;min-height:220px;aspect-ratio:1.25;transform:rotate(2deg)}.gift-home-paw{font-size:32px;margin:6px}.gift-home-card strong{font-size:28px}.gift-home-card em{font-size:16px}}

/*
 * Catfe Mao V20: one typography layer for the existing bilingual site.
 * Keep colours, component geometry, booking behaviour and staff UI unchanged.
 * Font fallbacks retain legibility if Google Fonts is unavailable.
 */
:root{
  --catfe-font-body:"DM Sans","Catfe CJK Sans","PingFang SC","Microsoft YaHei","Noto Sans CJK SC",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
  --catfe-font-display:"Fraunces","Iowan Old Style",Georgia,"Times New Roman",serif;
  --catfe-font-display-zh:"Noto Serif SC","Songti SC","Source Han Serif SC",STSong,SimSun,serif;
  font-family:var(--catfe-font-body);
}

body,button,input,select,textarea{
  font-family:var(--catfe-font-body)
}

html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%
}

body{
  font-kerning:normal;
  font-optical-sizing:auto;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility
}

/* Main editorial display: same family across the homepage, story, menu,
   rescue profiles, FAQs, visit details and booking flow. */
:is(
  .hero h1,.booking-intro :is(h1,h2),.section-note h2,.gallery-copy h2,
  .faq-heading :is(h1,h2),.v8-heading h2,.v8-menu-heading h2,
  .v8-home-info h2,.v8-gallery h2,.v8-inner-lead h1,
  .v8-story-prose h2,.v8-story-prose h3,.v8-adoption-how h2,
  .v9-poster-copy h2,.v9-drinks-feature h2,.v9-menu-page-head h1,
  .v9-cake-head h2,.v9-specials-head h2,.v9-ticket-intro h2,
  .v9-special-home-cards h3,.v10-weekly-panel h3,
  .v10-weekly-full-terms h2,.v11-holder-check h3,
  .v11-pass-table-head h3,.waitlist-heading,
  .cat-collection-heading h2,.cat-list-section h3,
  .cat-detail-copy h1,.cat-detail-copy h2,.cat-apply-section h2,
  .footer-visit h2,.v15-cake-gallery-heading h3,
  .v8-rules-head h2,.state-title,.step-title,
  .v8-menu-card h3,.v8-slide strong,.v8-home-hours h3,
  .v8-cat-details h3,.cat-profile-info strong,.info-card h3,
  .new-location-copy strong,.location-pin-card strong,
  .v9-drink-highlights strong,.v9-drink-item.v14-menu-drink .v14-drink-meta strong,
  .v13-free-drink-note strong,.v13-cake-section-title h3,
  .v13-contact-grid strong,.v13-contact-directions strong,
  .v15-cake-caption strong,.adoption-note strong,.essentials-top h3,
  .v8-impact strong,.booking-panel>h3
){
  font-family:var(--catfe-font-display);
  font-weight:500;
  font-optical-sizing:auto;
  letter-spacing:-.027em;
  text-wrap:balance
}

/* Subtle serif wordmark ties the identity to the headings without changing
   the original logo or the header's dimensions. */
.brand-wordmark strong{
  font-family:var(--catfe-font-display);
  font-size:clamp(21px,1.9vw,24px);
  font-weight:600;
  letter-spacing:-.035em;
  line-height:1.1
}

.brand-wordmark small{
  font-family:var(--catfe-font-body);
  letter-spacing:.17em;
  font-weight:700;
  font-size:10px
}

.hero h1{
  font-size:clamp(43px,4.6vw,67px);
  line-height:1.14;
  letter-spacing:-.037em;
  margin-bottom:25px;
  white-space:normal;
  overflow-wrap:break-word
}

.hero h1 em{
  font-style:italic;
  font-weight:400
}

:where(
  .v8-heading h2,.v8-menu-heading h2,.v8-home-info h2,
  .v8-gallery h2,.v8-inner-lead h1,.faq-heading :is(h1,h2),
  .v9-menu-page-head h1,.footer-visit h2
){
  line-height:1.19
}

/* Natural-language copy should read like editorial text rather than small UI
   labels. The rest of each existing component's layout remains unchanged. */
:where(
  .hero-sub,.gallery-copy p,
  .v8-heading p:not(.v8-kicker),.v8-menu-heading p:not(.v8-kicker),
  .v8-contact-copy>p:not(.v8-kicker),.v8-inner-lead>p:not(.v8-kicker),
  .cat-collection-heading p:not(.v8-kicker),.footer-visit p:not(.v8-kicker),
  .v8-story-prose p,.v13-free-drink-note p
){
  line-height:1.78;
  text-wrap:pretty;
  overflow-wrap:break-word
}

.hero-sub{
  font-size:clamp(14px,1.12vw,16px);
  letter-spacing:.005em
}

:where(.v8-heading p:not(.v8-kicker),.v8-menu-heading p:not(.v8-kicker),.v8-inner-lead>p:not(.v8-kicker)){
  font-size:clamp(14px,1.12vw,16px)
}

/* A small but consistent, non-shouting label treatment. */
:where(.eyebrow,.v8-kicker,.new-location-small,.brand-wordmark small){
  letter-spacing:.15em;
  font-weight:700
}

.v8-kicker{
  font-size:11px;
  line-height:1.5
}

:where(.site-navigation .site-link,.site-navigation .nav-link){
  font-family:var(--catfe-font-body);
  font-size:clamp(12px,1vw,13px);
  font-weight:650;
  letter-spacing:0;
  line-height:1.45
}

.site-navigation{
  column-gap:clamp(8px,1vw,14px)
}

:where(.btn,.nav-cta,.language,.v8-primary,.mobile-book-btn,.mobile-manage-btn){
  font-family:var(--catfe-font-body);
  font-weight:700;
  letter-spacing:0
}

:where(.field-label,.form-field label,.guest-control strong){
  font-family:var(--catfe-font-body);
  font-weight:700;
  font-size:13.5px;
  line-height:1.5
}

:where(.booking-section input,.booking-section select,.booking-section textarea,.v8-manage-lookup input,.v14-ref-lookup input){
  font-family:var(--catfe-font-body);
  letter-spacing:0
}

:where(.hero-stats strong,.v8-impact strong,.price-line strong,.total-line strong,.v14-drink-price,.v9-drink-item .v14-drink-price){
  font-variant-numeric:lining-nums tabular-nums
}

/* Chinese is designed as Chinese, not simply substituted into Latin display.
   No artificial italics or tightly tracked Chinese headlines. */
html[lang="zh-CN"] :is(
  .hero h1,.booking-intro :is(h1,h2),.section-note h2,.gallery-copy h2,
  .faq-heading :is(h1,h2),.v8-heading h2,.v8-menu-heading h2,
  .v8-home-info h2,.v8-gallery h2,.v8-inner-lead h1,
  .v8-story-prose h2,.v8-story-prose h3,.v8-adoption-how h2,
  .v9-poster-copy h2,.v9-drinks-feature h2,.v9-menu-page-head h1,
  .v9-cake-head h2,.v9-specials-head h2,.v9-ticket-intro h2,
  .v9-special-home-cards h3,.v10-weekly-panel h3,
  .v10-weekly-full-terms h2,.v11-holder-check h3,
  .v11-pass-table-head h3,.waitlist-heading,
  .cat-collection-heading h2,.cat-list-section h3,
  .cat-detail-copy h1,.cat-detail-copy h2,.cat-apply-section h2,
  .footer-visit h2,.v15-cake-gallery-heading h3,
  .v8-rules-head h2,.state-title,.step-title,
  .v8-menu-card h3,.v8-slide strong,.v8-home-hours h3,
  .v8-cat-details h3,.cat-profile-info strong,.info-card h3,
  .new-location-copy strong,.location-pin-card strong,
  .v9-drink-highlights strong,.v9-drink-item.v14-menu-drink .v14-drink-meta strong,
  .v13-free-drink-note strong,.v13-cake-section-title h3,
  .v13-contact-grid strong,.v13-contact-directions strong,
  .v15-cake-caption strong,.adoption-note strong,.essentials-top h3,
  .booking-panel>h3
){
  font-family:var(--catfe-font-display-zh);
  font-weight:600;
  letter-spacing:.012em;
  line-height:1.37;
  word-break:normal;
  overflow-wrap:break-word;
  text-wrap:pretty
}

html[lang="zh-CN"] .hero h1{
  font-size:clamp(39px,4.1vw,57px);
  line-height:1.36
}

html[lang="zh-CN"] .hero h1 em{
  font-style:normal;
  font-weight:600
}

html[lang="zh-CN"] :where(.eyebrow,.v8-kicker,.new-location-small){
  letter-spacing:.09em
}

html[lang="zh-CN"] .brand-dot{
  font-family:var(--catfe-font-display-zh);
  font-weight:600;
  letter-spacing:0
}

/* Content density and touch readability at phone widths. */
@media(max-width:670px){
  .hero h1{
    font-size:clamp(35px,8.9vw,49px);
    line-height:1.19;
    letter-spacing:-.026em
  }

  html[lang="zh-CN"] .hero h1{
    font-size:clamp(33px,8.25vw,43px);
    line-height:1.39;
    letter-spacing:.008em
  }

  :where(.v8-heading h2,.v8-menu-heading h2,.v8-home-info h2,
         .v8-inner-lead h1,.v9-menu-page-head h1,.cat-detail-copy h1){
    font-size:clamp(32px,8vw,43px)
  }

  html[lang="zh-CN"] :where(.v8-heading h2,.v8-menu-heading h2,
         .v8-home-info h2,.v8-inner-lead h1,.cat-detail-copy h1){
    font-size:clamp(29px,7.5vw,40px)
  }

  :where(.booking-section input,.booking-section select,.booking-section textarea,
         .v8-manage-lookup input,.v14-ref-lookup input){
    font-size:16px; /* avoids iOS Safari focus zoom */
    line-height:1.45
  }

  :where(.hero-stats small,.guest-control small){
    font-size:10.5px;
    line-height:1.45
  }

  .v8-kicker{
    font-size:10.5px
  }

  .site-navigation .site-link{
    font-size:15px;
    letter-spacing:0
  }
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
}

/* Balanced rescue headline: avoid an orphaned two-character final line in
   Chinese while retaining the same font size and baseline across lines. */
html[lang="zh-CN"] #mission .v8-heading h2 {
  max-width: 12.5em;
  font-size: clamp(36px, 4vw, 58px);
  line-height: 1.31;
  letter-spacing: .005em;
  text-wrap: balance;
}
@media (max-width: 900px) {
  html[lang="zh-CN"] #mission .v8-heading h2 {
    max-width: 100%;
    font-size: clamp(31px, 4.5vw, 43px);
    line-height: 1.34;
  }
}
@media (max-width: 600px) {
  html[lang="zh-CN"] #mission .v8-heading h2 {
    font-size: clamp(30px, 7.4vw, 40px);
    line-height: 1.35;
  }
}

/*
 * Catfe Mao V22 - compact mobile layouts with readable tap targets.
 * Layered after typography.css; no colours, inventory or booking rules change.
 */
@media (max-width: 760px) {
  html,body{max-width:100%;overflow-x:clip}
  :where(.shell,.site-page,.hero-copy,.hero-art,.booking-shell,.booking-panel,
         .booking-summary,.single-panel,.faq-main,.v9-menu-page-head,
         .v8-gallery-head,.v8-heading,.v8-impact,.v9-specials-head){
    min-width:0
  }
  .header{z-index:90}
  .nav{min-height:64px}
  .brand-mark img{max-width:100%}
  .site-menu-toggle{
    min-width:44px;
    min-height:44px;
    display:grid;
    place-items:center;
    font-size:24px
  }
  .site-navigation{
    top:calc(100% - 4px);
    left:12px;
    right:12px;
    max-height:calc(100dvh - 88px);
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:12px 14px 16px;
    gap:3px
  }
  .site-navigation :is(.site-link,.nav-link,.language,.nav-cta){
    display:flex;
    align-items:center;
    min-height:44px;
    width:100%;
    margin:0;
    padding:10px 12px;
    font-size:15px;
    line-height:1.4;
    text-align:left
  }
  .site-navigation .nav-cta{
    justify-content:center;
    margin-top:7px;
    text-align:center
  }
  :where(.v8-intro,.v8-gallery,.v9-drinks-feature,.v9-specials-home,
         .v8-home-info,.v8-menu,.v9-ticket-packages,.v9-menu-page,
         .cat-colleagues,.footer-visit){
    margin-block:0;
    padding-block:clamp(28px,7vw,48px)
  }
  .hero.shell{
    min-height:0;
    gap:18px;
    padding-top:27px;
    padding-bottom:24px
  }
  .hero h1{margin:14px 0}
  .hero-sub{
    font-size:15px;
    line-height:1.68
  }
  .hero-actions{
    gap:12px;
    margin:18px 0 20px
  }
  .hero .hero-stats{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    align-items:start;
    gap:8px;
    margin-top:12px
  }
  .hero .hero-stats div{min-width:0;gap:4px}
  .hero .hero-stats strong{font-size:clamp(17px,4.8vw,21px);line-height:1.2}
  .hero .hero-stats small{
    font-size:11.5px;
    line-height:1.5;
    white-space:normal
  }
  .hero-art{min-height:0}
  .hero-no-charge{font-size:12px;line-height:1.45}
  .new-location-hero{min-height:0}
  .new-location-logo{max-height:155px}
  .v8-intro,.v8-home-info,.v8-story-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:20px
  }
  .v8-heading h2,.v8-gallery-head h2{margin-block:8px 12px}
  .v8-impact{transform:none;padding:18px}
  .v8-impact p{font-size:12.5px;line-height:1.55}
  .v9-special-home-cards,.v9-ticket-special-grid{gap:12px}
  .v9-special-home-cards article{
    min-height:0;
    padding:19px 18px;
    border-radius:18px
  }
  .v9-special-home-cards h3{font-size:clamp(21px,5.5vw,26px)}
  .v9-special-home-cards p{
    font-size:14px;
    line-height:1.62
  }
  .v9-drink-highlights>div{
    min-height:100px;
    padding:15px 18px
  }
  .v9-drink-highlights small{font-size:12.5px;line-height:1.5}
  .v8-gallery{padding-bottom:34px}
  .v8-slide{height:clamp(240px,68vw,295px);border-radius:18px}
  .v15-cake-track{gap:12px}
  .v15-cake-caption{
    min-height:0;
    padding:15px 16px 17px
  }
  .v15-cake-caption strong{font-size:19px;line-height:1.35}
  .v9-menu-page-head h1,.v8-inner-lead h1{line-height:1.24}
  .booking-section{padding-top:25px;padding-bottom:38px}
  .booking-intro{margin-bottom:16px}
  .booking-intro :is(h1,h2){font-size:clamp(29px,7.8vw,37px);line-height:1.2}
  .booking-intro p:last-child{font-size:14.5px;line-height:1.55}
  .visit-essentials{
    padding:15px;
    margin-bottom:17px;
    border-radius:16px
  }
  .essentials-top{
    margin-bottom:12px;
    gap:6px
  }
  .essentials-top .eyebrow{margin-bottom:4px}
  .essentials-top h3{font-size:20px;line-height:1.32}
  .essentials-top>a{font-size:13px}
  .essentials-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px
  }
  .essential{
    min-height:0;
    padding:11px 10px;
    align-items:flex-start;
    gap:6px;
    font-size:12.5px;
    line-height:1.55
  }
  .essential-icon{
    flex:0 0 20px;
    font-size:18px
  }
  .booking-panel,.booking-summary,.single-panel{
    min-width:0;
    border-radius:17px;
    padding:clamp(16px,4.5vw,22px)
  }
  .booking-shell{gap:15px}
  .stephead{gap:9px;margin-bottom:14px}
  .step-title{font-size:18px;line-height:1.4}
  .step-pill{font-size:12px;padding:7px 10px}
  .field-label,.form-field label{font-size:14px;line-height:1.45}
  :where(.booking-section input,.booking-section select,.booking-section textarea,
         .v14-ref-lookup input,.v8-manage-lookup input){
    max-width:100%;
    min-width:0;
    font-size:16px;
    line-height:1.45
  }
  .booking-section :is(.form-field,.guest-control,.guest-row,.calendar-grid,
      .calendar-weekdays,.slots-grid,.v8-otp-inline,.v8-otp-actions,.action-row){min-width:0}
  .v8-otp-actions{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:9px
  }
  .v8-otp-actions>input{
    max-width:none;
    width:100%;
    min-height:44px
  }
  .v8-otp-actions button{
    width:100%;
    min-height:44px;
    white-space:normal;
    text-wrap:pretty
  }
  .v14-ref-lookup,.v8-manage-lookup{
    margin-top:14px;
    border-radius:15px;
    padding:15px
  }
  .v14-ref-lookup h3{font-size:21px;line-height:1.3}
  .v14-ref-lookup p,.v8-manage-lookup p{
    margin-block:8px;
    font-size:14px;
    line-height:1.62
  }
  details.v8-manage-lookup>summary{
    min-height:44px;
    display:flex;
    align-items:center;
    cursor:pointer;
    font-size:16px;
    font-weight:700;
    color:#315740
  }
  details.v8-manage-lookup[open]>summary{margin-bottom:10px}
  .catfe-booking-status{
    font-size:13.5px;
    line-height:1.65;
    padding:11px 13px;
    margin:2px 0 15px
  }
  .booking-summary .summary-rows strong,
  .receipt-line b,
  .v8-found-booking b{overflow-wrap:anywhere}
  .action-row{
    gap:9px;
    flex-wrap:wrap
  }
  .action-row>.btn{min-height:46px}
  .receipt-actions{
    display:flex;
    flex-wrap:wrap;
    gap:9px
  }
  .receipt-actions .btn{
    min-height:44px;
    padding:11px 16px;
    flex:1 1 135px
  }
  :where(.faq-item p,.faq-heading>p:last-child,.faq-ending p,
         .hours-card p,.adoption-note p,.v8-story-prose p,
         .v8-home-hours p){
    font-size:14.5px;
    line-height:1.72
  }
  .faq-search input{font-size:16px}
  .faq{padding-block:36px 43px}
  .faq-heading{margin-bottom:18px}
  .faq-item{min-width:0}
  .faq-filter{min-height:44px}
  .faq-filters{gap:8px}
  .footer-map-frame{height:245px}
  .footer-visit{padding-block:33px 40px}
  .footer-visit h2{font-size:clamp(29px,8vw,37px)}
  .footer-visit-links a{min-height:40px}
  :where(.v13-contact-grid strong,.v13-contact-directions strong){
    font-size:clamp(18px,4.9vw,23px);
    line-height:1.35;
    overflow-wrap:anywhere
  }
  :where(.v13-contact-grid span,.v13-contact-directions p){
    font-size:13.5px;
    line-height:1.65
  }
  :is(a,button,input,select,textarea,summary):focus-visible{
    outline:3px solid #62886c;
    outline-offset:3px
  }
}

/* Only one persistent navigation bar on phones; do not duplicate booking
   controls over the actual booking form or management workflow. */
@media(max-width:510px){
  body{padding-bottom:calc(62px + env(safe-area-inset-bottom))}
  .mobile-book-bar{
    gap:8px;
    padding:8px 12px calc(8px + env(safe-area-inset-bottom));
  }
  .mobile-book-bar button{
    min-height:44px;
    padding:9px 12px;
    font-size:13px
  }
  .mobile-manage-btn{flex:0 0 auto}
  body[data-page="booking"],body[data-page="manage"]{padding-bottom:0}
  body[data-page="booking"] .mobile-book-bar,
  body[data-page="manage"] .mobile-book-bar{display:none}
  .hero.shell{
    border-radius:20px;
    padding:23px 18px 19px
  }
  .hero h1{font-size:clamp(32px,8.4vw,42px)}
  html[lang="zh-CN"] .hero h1{font-size:clamp(30px,7.7vw,39px)}
  .hero-art{margin-top:8px}
  .v9-special-home-cards article{padding:16px}
  .v15-cake-track{grid-auto-columns:87%}
  .v8-gallery-nav button{min-height:44px;min-width:44px}
  .v13-contact-grid>a{min-height:0;padding:18px}
}
@media(max-width:360px){
  .hero.shell{padding-inline:15px}
  .hero .hero-stats{gap:5px}
  .hero .hero-stats strong{font-size:16px}
  .hero .hero-stats small{font-size:11px}
  .site-navigation{left:9px;right:9px}
  .booking-panel,.booking-summary,.single-panel{padding:15px}
  .essentials-grid{grid-template-columns:1fr}
  .essential{font-size:13px}
}
@media(prefers-reduced-motion:reduce){
  .v8-slide,.v15-cake-slide,.v9-drink-highlights>div{scroll-behavior:auto}
}

/* Correct only the narrow-screen seams that inherited desktop outer margins.
   Card interiors, type, tap targets and booking controls keep their own spacing. */
@media(max-width:760px){
  .v9-drinks-feature{
    margin-top:0;
    margin-bottom:0;
    padding-block:28px;
  }
  .v9-specials-home{
    margin-top:0;
    margin-bottom:0;
    padding-block:28px;
  }
  .v8-inner-page,
  .v9-menu-page{
    padding-bottom:48px;
  }
  .v8-inner-lead{margin-bottom:32px}
  .v8-adoption-how{margin-top:48px}
}

/*
 * Catfe Mao V23: refined responsive header and balanced desktop layouts.
 * Intentionally last in the cascade. Mobile booking forms from V22 remain intact.
 */
.header{
  background:rgba(250,250,245,.97);
  border-bottom:1px solid #dfe5d8;
  box-shadow:0 5px 24px rgba(34,56,40,.055);
  -webkit-backdrop-filter:blur(16px);
  backdrop-filter:blur(16px);
  z-index:100;
}
.header .nav{
  position:relative;
  min-height:83px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:clamp(14px,1.9vw,26px);
}
.header .brand{
  display:flex;
  align-items:center;
  flex:0 0 auto;
  gap:11px;
  min-width:0;
}
.header .brand-mark img{
  width:48px;
  height:48px;
  filter:drop-shadow(0 4px 9px rgba(62,91,66,.12));
}
.header .brand-wordmark strong{
  font-size:clamp(21px,1.75vw,24px);
  line-height:1.12;
  white-space:nowrap;
  color:#2e4b37;
}
.header .brand-wordmark small{
  font-size:9px;
  letter-spacing:.13em;
  line-height:1.4;
  color:#50634f;
}
.header .site-navigation{
  display:flex;
  flex:1 1 auto;
  min-width:0;
  align-items:center;
  justify-content:center;
  flex-direction:row;
  flex-wrap:nowrap;
  gap:clamp(7px,.85vw,13px);
}
.header .site-navigation :is(.site-link,.nav-link){
  display:inline-flex;
  align-items:center;
  flex:0 0 auto;
  justify-content:center;
  min-height:42px;
  padding:8px 3px;
  margin:0;
  white-space:nowrap;
  font-family:var(--catfe-font-body);
  font-size:clamp(12px,.91vw,13.5px);
  font-weight:650;
  letter-spacing:0;
  line-height:1.45;
  color:#536a58;
  text-decoration:none;
  transition:color .18s ease;
}
.header .site-navigation .site-link:hover,
.header .site-navigation .site-link-active,
.header .site-navigation .nav-link:hover{
  color:#284d37;
}
.header .site-navigation .site-link{
  text-underline-offset:7px;
  text-decoration-thickness:1.5px;
}
.header .site-navigation .site-link-active{
  text-decoration:underline;
}
.header .site-navigation .nav-cta{
  display:inline-flex;
  flex:0 0 auto;
  justify-content:center;
  align-items:center;
  min-height:42px;
  padding:11px 17px;
  margin:0 0 0 5px;
  border-radius:999px;
  white-space:nowrap;
  font-size:13px;
  font-weight:750;
  box-shadow:0 6px 17px rgba(46,70,38,.13);
  transition:background .2s, transform .2s,box-shadow .2s;
}
.header .site-navigation .nav-cta:hover{
  transform:translateY(-1px);
  box-shadow:0 9px 20px rgba(46,70,38,.19);
}
.header-actions{
  display:flex;
  flex:0 0 auto;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
}
.header .header-language{
  display:inline-flex;
  align-items:center;
  gap:2px;
  min-height:42px;
  padding:4px;
  border:1px solid #cfd9c7;
  border-radius:999px;
  background:#f4f6ed;
  color:#456044;
  white-space:nowrap;
  box-shadow:0 2px 7px rgba(50,71,50,.045);
  transition:border-color .2s,background .2s;
}
.header .header-language:hover{
  border-color:#a4b79a;
  background:#edf2e8;
}
.header .header-language .lang-choice{
  min-width:30px;
  display:grid;
  place-items:center;
  padding:7px 8px;
  border-radius:999px;
  color:#60705f;
  font-family:var(--catfe-font-body);
  font-size:12px;
  line-height:1.2;
  font-weight:650;
  transition:background .18s,color .18s;
}
.header .header-language .lang-choice-zh{
  font-size:12px;
}
.header .header-language .lang-divider{
  display:none;
}
.header .header-language[data-active-lang="en"] .lang-choice-en,
.header .header-language[data-active-lang="zh"] .lang-choice-zh{
  color:#fff;
  background:#415d43;
  box-shadow:0 2px 5px rgba(30,60,37,.12);
}
.header .site-menu-toggle{
  display:none;
}
.header .site-menu-toggle .menu-bars{
  display:flex;
  width:19px;
  height:17px;
  flex-direction:column;
  justify-content:space-between;
}
.header .site-menu-toggle .menu-bars i{
  display:block;
  height:2px;
  width:100%;
  border-radius:99px;
  background:currentColor;
  transition:transform .2s,opacity .2s;
}
.header .site-menu-toggle .menu-text{
  font-size:13px;
  font-weight:750;
}
.v8-menu-open .header .site-menu-toggle .menu-bars i:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.v8-menu-open .header .site-menu-toggle .menu-bars i:nth-child(2){opacity:0}
.v8-menu-open .header .site-menu-toggle .menu-bars i:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
.header :is(a,button):focus-visible{
  outline:3px solid #68856c;
  outline-offset:3px;
}

/* Keep the full menu visible on laptops and medium desktop windows.
   At 800–1119px it receives its own slim row instead of becoming a hamburger. */
@media (min-width:800px) and (max-width:1119px){
  .header .nav{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-rows:auto auto;
    min-height:0;
    row-gap:0;
    padding-top:12px;
    padding-bottom:0;
  }
  .header .brand{grid-column:1;grid-row:1;justify-self:start}
  .header .header-actions{grid-column:2;grid-row:1;justify-self:end}
  .header .site-navigation{
    grid-column:1/-1;
    grid-row:2;
    display:flex;
    position:static;
    width:100%;
    min-width:0;
    height:auto;
    padding:8px 0 10px;
    margin-top:10px;
    gap:6px;
    justify-content:space-between;
    border:0;
    border-top:1px solid #e4e9df;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    overflow:visible;
    max-height:none;
  }
  .header .site-navigation :is(.site-link,.nav-link){
    min-height:38px;
    padding:7px 2px;
    margin:0;
    font-size:12.5px;
  }
  .header .site-navigation .nav-cta{
    min-height:39px;
    padding:8px 15px;
    margin-left:3px;
    font-size:12px;
  }
}

/* Phone and tablet: logo, always-visible bilingual switch, menu.
   Only the navigation links themselves are inside the dropdown. */
@media (max-width:799px){
  .header .nav{
    display:flex;
    min-height:68px;
    gap:9px;
    padding-top:9px;
    padding-bottom:9px;
  }
  .header .brand-mark img{width:43px;height:43px}
  .header .brand-wordmark strong{font-size:21px}
  .header .brand-wordmark small{font-size:9px}
  .header-actions{margin-left:auto;gap:8px}
  .header .header-language{
    min-height:42px;
    padding:3px;
  }
  .header .header-language .lang-choice{padding:8px 7px;min-width:29px}
  .header .site-menu-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:44px;
    min-height:44px;
    width:auto;
    padding:10px 11px;
    gap:8px;
    margin:0;
    border-radius:14px;
    border:1px solid #d1dccd;
    background:#fffef9;
    color:#3b5d43;
    box-shadow:none;
  }
  .header .site-navigation{
    display:none;
    position:absolute;
    z-index:80;
    top:calc(100% + 4px);
    left:12px;
    right:12px;
    width:auto;
    max-height:calc(100dvh - 85px);
    overflow-y:auto;
    overscroll-behavior:contain;
    flex-direction:column;
    flex-wrap:nowrap;
    align-items:stretch;
    justify-content:flex-start;
    gap:3px;
    padding:12px;
    border:1px solid #dce6d8;
    border-radius:20px;
    background:#fffefb;
    box-shadow:0 22px 48px rgba(27,53,32,.18);
  }
  .v8-menu-open .header .site-navigation{
    display:flex;
  }
  .header .site-navigation :is(.site-link,.nav-link){
    display:flex;
    justify-content:flex-start;
    flex:0 0 auto;
    width:100%;
    min-height:44px;
    margin:0;
    padding:10px 14px;
    border-radius:10px;
    font-size:15px;
    color:#3f5948;
    text-align:left;
  }
  .header .site-navigation .site-link-active{
    background:#f0f4ec;
    text-decoration:none;
    color:#294b32;
  }
  .header .site-navigation .nav-cta{
    display:flex;
    justify-content:center;
    width:100%;
    min-height:46px;
    margin:8px 0 0;
    font-size:14px;
  }
}
@media(max-width:510px){
  .header .nav{gap:7px}
  .header .brand-mark img{width:39px;height:39px}
  .header .brand-wordmark strong{font-size:19px}
  .header .brand-wordmark small{font-size:8px}
  .header .site-menu-toggle{padding:10px;gap:6px}
  .header .site-menu-toggle .menu-text{font-size:12px}
  .header .header-language .lang-choice{padding:8px 6px}
}
@media(max-width:380px){
  .header .brand{gap:5px}
  .header .brand-mark img{width:35px;height:35px}
  .header .brand-wordmark strong{font-size:18px}
  .header .brand-wordmark small{display:none}
  .header .site-menu-toggle .menu-text{display:none}
  .header .site-menu-toggle{width:44px;flex:0 0 44px}
  .header .header-language .lang-choice{font-size:11px;padding:8px 5px;min-width:26px}
}

/* Desktop editorial polish: maintain content, colours, and existing brand motifs. */
@media(min-width:1120px){
  .hero.shell{
    grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
    align-items:center;
    column-gap:clamp(34px,4.2vw,64px);
    min-height:550px;
    padding-top:42px;
    padding-bottom:40px;
  }
  .hero-copy{min-width:0}
  .hero.shell h1{
    font-size:clamp(50px,4.45vw,68px);
    line-height:1.12;
    margin:18px 0 19px;
    text-wrap:balance;
  }
  .hero.shell .hero-sub{
    max-width:540px;
    font-size:16px;
    line-height:1.75;
  }
  .hero .hero-actions{margin:23px 0 28px;gap:18px}
  .hero-art{min-width:0}
  .v8-intro{gap:clamp(25px,3.5vw,52px)}
  .v9-specials-home{margin-bottom:58px}
  .v9-special-home-cards{gap:17px}
  .v9-special-home-cards article{min-width:0}
}
@media(min-width:800px){
  .v9-specials-head,.v8-gallery-head{gap:22px}
  .v9-specials-head h2,.v8-gallery-head h2{
    text-wrap:balance;
  }
  .v9-special-home-cards article{
    transition:transform .2s ease,box-shadow .2s ease;
  }
  .v9-special-home-cards article:hover{
    transform:translateY(-3px);
    box-shadow:0 15px 35px rgba(36,61,39,.16);
  }
  .booking-intro,.faq-heading{max-width:880px}
}
@media(prefers-reduced-motion:reduce){
  .header .site-navigation .nav-cta,
  .header .site-menu-toggle .menu-bars i,
  .v9-special-home-cards article{transition:none}
}

/*
 * Catfe Mao V24 / responsive visual design
 * Use CSS viewport width, not device names. Unfolding a phone changes the
 * viewport; media queries respond without reload, JS or device fingerprinting.
 * This stylesheet is deliberately loaded last.
 */
.hero.shell,
.hero.shell * {
  box-sizing:border-box;
}
.hero.shell{
  isolation:isolate;
}
.hero-copy,.hero-art{
  min-width:0;
}
/* A small branded label on the same axis as the rest of the hero copy.
   Text is its own element, so star glyphs no longer move the slogan around. */
.hero .v11-brand-motto{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  align-self:flex-start;
  flex-wrap:nowrap;
  width:max-content;
  max-width:100%;
  gap:9px;
  padding:9px 13px;
  margin:14px 0 19px;
  border:1px solid rgba(89,117,81,.18);
  border-radius:999px;
  background:rgba(255,255,248,.57);
  color:#456142;
  font-family:var(--catfe-font-body),system-ui,sans-serif;
  font-size:clamp(11.5px,1.1vw,14px);
  font-weight:750;
  letter-spacing:.04em;
  line-height:1.35;
  text-align:center;
  text-transform:uppercase;
}
.hero .v11-brand-motto .motto-text{
  font:inherit;
  color:inherit;
  letter-spacing:inherit;
  white-space:normal;
  overflow-wrap:normal;
}
.hero .v11-brand-motto .motto-star{
  flex:0 0 auto;
  color:#be8e7a;
  font-family:inherit;
  font-weight:500;
  font-size:15px;
  line-height:1;
}
.hero.shell::before{
  pointer-events:none;
}
/* Pin is a small corner seal, never a foreground tile over address/floor text. */
.hero .location-pin-card{
  top:12px;
  right:7px;
  bottom:auto;
  min-width:0;
  max-width:118px;
  padding:8px 11px;
  gap:2px;
  border-radius:14px;
  transform:rotate(4deg);
  box-shadow:0 8px 19px rgba(31,50,38,.18);
}
.hero .location-pin-card>span{font-size:12px}
.hero .location-pin-card strong{
  font-size:34px;
  line-height:1;
}
.hero .location-pin-card small{
  font-size:7px;
  line-height:1.35;
  letter-spacing:.07em;
}
.hero .new-location-decoration{
  top:115px;
  right:23px;
  font-size:20px;
}
/* Tall single-column layouts now reserve moderate space for artwork,
   rather than allowing a 560px circle to visually dominate the heading. */
@media (max-width:1099px){
  .hero.shell::before{
    width:clamp(250px,43vw,430px);
    height:clamp(250px,43vw,430px);
    top:-95px;
    right:-95px;
    opacity:.33;
  }
}

/* 620–799 CSS px: unfolded portrait foldables and compact landscape tablets.
   Expose the navigation in two tidy rows; the language control remains at top. */
@media (min-width:620px) and (max-width:799px){
  .header .nav{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-rows:auto auto;
    align-items:center;
    column-gap:12px;
    row-gap:8px;
    padding-top:11px;
    padding-bottom:4px;
  }
  .header .brand{
    grid-column:1;
    grid-row:1;
    justify-self:start;
  }
  .header .header-actions{
    grid-column:2;
    grid-row:1;
    justify-self:end;
  }
  .header .site-menu-toggle{
    display:none;
  }
  .header .site-navigation{
    display:grid;
    position:static;
    grid-column:1/-1;
    grid-row:2;
    grid-template-columns:repeat(4,minmax(0,1fr));
    flex:none;
    width:100%;
    height:auto;
    min-height:0;
    max-height:none;
    gap:4px 9px;
    padding:9px 0 10px;
    margin:0;
    border:0;
    border-top:1px solid #e1e8dc;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    overflow:visible;
  }
  .header .site-navigation :is(.site-link,.nav-link){
    display:flex;
    min-width:0;
    width:100%;
    min-height:39px;
    margin:0;
    padding:8px 4px;
    justify-content:center;
    text-align:center;
    text-wrap:pretty;
    white-space:normal;
    font-size:12.5px;
    line-height:1.35;
    font-weight:700;
  }
  .header .site-navigation .nav-cta{
    display:flex;
    justify-content:center;
    width:100%;
    min-height:40px;
    margin:0;
    padding:9px 9px;
    font-size:12px;
  }
}

/* Mid-sized tablets benefit from a true two-row menu rather than squishing
   all eight destinations into a narrow single line. */
@media (min-width:800px) and (max-width:930px){
  .header .site-navigation{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:3px 12px;
    padding-top:8px;
  }
  .header .site-navigation :is(.site-link,.nav-link){
    display:flex;
    justify-content:center;
    min-height:37px;
    width:100%;
    margin:0;
    text-align:center;
  }
  .header .site-navigation .nav-cta{
    display:flex;
    justify-content:center;
    min-height:38px;
    width:100%;
    margin:0;
  }
}

/* Foldables expanded, large landscape phones and tablets:
   keep the location card alongside the message, not one screen lower.
   The 620px boundary leaves narrow phones with comfortable single columns. */
@media (min-width:620px) and (max-width:1099px){
  .hero.shell{
    display:grid;
    width:calc(100% - 24px);
    max-width:1090px;
    grid-template-columns:minmax(0,1.14fr) minmax(225px,.86fr);
    column-gap:clamp(17px,2.6vw,31px);
    align-items:center;
    min-height:0;
    margin:15px auto 24px;
    padding:clamp(24px,3.25vw,35px);
    border-radius:28px;
  }
  .hero .hero-copy{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:center;
    gap:0;
    text-align:left;
    min-width:0;
  }
  .hero .eyebrow{
    font-size:10.5px;
    line-height:1.5;
    letter-spacing:.14em;
    overflow-wrap:break-word;
  }
  .hero.shell h1{
    font-size:clamp(32px,4.05vw,44px);
    line-height:1.14;
    letter-spacing:-.031em;
    text-wrap:pretty;
    overflow-wrap:normal;
    margin:13px 0 15px;
    white-space:normal;
  }
  .hero.shell h1 em{
    display:block;
    margin-top:4px;
  }
  html[lang="zh-CN"] .hero.shell h1{
    font-size:clamp(30px,3.65vw,41px);
    line-height:1.35;
    letter-spacing:0;
  }
  .hero.shell .hero-sub{
    width:100%;
    max-width:520px;
    margin:0;
    font-size:clamp(13px,1.38vw,15px);
    line-height:1.66;
    text-align:left;
  }
  .hero .v11-brand-motto{
    justify-content:flex-start;
    margin:16px 0 13px;
    padding:8px 11px;
    font-size:11.5px;
  }
  .hero .v11-brand-motto .motto-star{font-size:13px}
  .hero .hero-actions{
    display:flex;
    align-items:flex-start;
    justify-content:flex-start;
    flex-direction:column;
    flex-wrap:nowrap;
    gap:10px;
    margin:7px 0 18px;
  }
  .hero .hero-actions .btn{
    min-height:45px;
    padding:12px 19px;
    font-size:13px;
  }
  .hero .hero-no-charge{
    font-size:11.5px;
    line-height:1.4;
  }
  .hero .hero-stats{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    width:100%;
    gap:10px;
    justify-content:stretch;
    margin-top:4px;
    text-align:left;
  }
  .hero .hero-stats div{
    min-width:0;
    gap:5px;
  }
  .hero .hero-stats strong{
    font-size:clamp(18px,2.2vw,23px);
    line-height:1.2;
    white-space:nowrap;
  }
  .hero .hero-stats small{
    font-size:11px;
    line-height:1.45;
    white-space:normal;
    overflow-wrap:break-word;
  }
  .hero .hero-art.location-hero-art{
    width:100%;
    height:auto;
    min-height:370px;
    margin:0;
    align-self:center;
    justify-self:stretch;
    padding:0 3px 0 0;
  }
  .hero .new-location-hero{
    width:100%;
    max-width:none;
    min-height:365px;
    padding:20px 16px;
    border-radius:25px;
    transform:rotate(1deg);
  }
  .hero .new-location-small{
    font-size:9px;
    line-height:1.5;
    letter-spacing:.13em;
  }
  .hero .new-location-logo{
    width:clamp(92px,11vw,132px);
    height:clamp(92px,11vw,132px);
    margin:5px auto;
  }
  .hero .new-location-copy{gap:5px}
  .hero .new-location-copy span{
    font-size:9px;
    letter-spacing:.08em;
  }
  .hero .new-location-copy strong{
    font-size:clamp(21px,2.5vw,27px);
    line-height:1.2;
    max-width:100%;
    overflow-wrap:break-word;
  }
  .hero .new-location-copy p{
    font-size:11.5px;
    line-height:1.5;
    margin:2px 0;
  }
  .hero .new-location-levels{
    gap:5px;
    margin-top:10px;
  }
  .hero .new-location-levels div{
    padding:9px 6px;
    min-width:0;
    gap:5px;
  }
  .hero .new-location-levels span{font-size:15px}
  .hero .new-location-levels strong{
    min-width:0;
    font-size:10px;
    line-height:1.28;
    overflow-wrap:break-word;
  }
  .hero .location-pin-card{
    top:8px;
    right:5px;
    bottom:auto;
    min-width:0;
    max-width:90px;
    padding:7px 9px;
  }
  .hero .location-pin-card strong{font-size:27px}
  .hero .location-pin-card small{font-size:6.5px}
  .hero .new-location-decoration{right:16px;top:100px}
}

/* Small handsets and still-folded phones: centred optical axis, shorter copy
   hierarchy, no sprawling round motif and artwork that appears sooner. */
@media (max-width:619px){
  .hero.shell{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    width:calc(100% - 20px);
    min-height:0;
    max-width:none;
    margin:12px auto 24px;
    padding:clamp(22px,5vw,30px) clamp(17px,5vw,27px) 22px;
    gap:12px;
    border-radius:23px;
  }
  .hero.shell::before{
    top:-90px;
    right:-110px;
    width:min(85vw,380px);
    height:min(85vw,380px);
    opacity:.3;
  }
  .hero .hero-copy{
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    min-width:0;
  }
  .hero .eyebrow{
    font-size:10px;
    line-height:1.55;
    letter-spacing:.13em;
    text-wrap:balance;
  }
  .hero.shell h1{
    font-size:clamp(32px,8vw,44px);
    line-height:1.15;
    margin:13px 0 15px;
    letter-spacing:-.028em;
    overflow-wrap:normal;
    text-wrap:balance;
  }
  .hero.shell h1 em{
    display:block;
    margin-top:4px;
  }
  html[lang="zh-CN"] .hero.shell h1{
    font-size:clamp(30px,7.1vw,41px);
    line-height:1.34;
    letter-spacing:0;
  }
  .hero.shell .hero-sub{
    width:100%;
    max-width:440px;
    margin:0 auto;
    font-size:clamp(14px,2.9vw,15px);
    line-height:1.63;
    text-align:center;
    text-wrap:pretty;
  }
  .hero .v11-brand-motto{
    align-self:center;
    margin:16px auto 13px;
    padding:8px 11px;
    gap:8px;
    font-size:clamp(11px,2.4vw,12.5px);
  }
  .hero .hero-actions{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:10px;
    margin:7px 0 21px;
    width:100%;
  }
  .hero .hero-actions .btn{
    min-height:46px;
    width:min(100%,270px);
    padding:12px 18px;
    font-size:14px;
  }
  .hero .hero-no-charge{
    font-size:12px;
    line-height:1.4;
    text-align:center;
  }
  .hero .hero-stats{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    align-items:start;
    justify-content:stretch;
    width:100%;
    gap:9px;
    margin:0;
  }
  .hero .hero-stats div{
    align-items:center;
    text-align:center;
    min-width:0;
    gap:4px;
  }
  .hero .hero-stats strong{
    font-size:clamp(18px,4.6vw,21px);
    line-height:1.2;
    white-space:nowrap;
  }
  .hero .hero-stats small{
    font-size:11px;
    line-height:1.42;
    white-space:normal;
  }
  .hero .hero-art.location-hero-art{
    width:100%;
    height:auto;
    min-height:305px;
    margin:7px 0 0;
    align-self:center;
  }
  .hero .new-location-hero{
    width:min(100%,370px);
    max-width:100%;
    min-height:285px;
    padding:17px 18px;
    border-radius:25px;
    transform:rotate(1deg);
  }
  .hero .new-location-logo{
    width:91px;
    height:91px;
    margin:3px auto;
  }
  .hero .new-location-copy strong{
    font-size:clamp(21px,5vw,25px);
    line-height:1.19;
  }
  .hero .new-location-copy p{
    display:none; /* duplicate of the hero description on small handsets */
  }
  .hero .new-location-levels{gap:7px;margin-top:12px}
  .hero .new-location-levels div{padding:8px;gap:6px}
  .hero .new-location-levels strong{font-size:10px;line-height:1.4}
  .hero .location-pin-card{
    top:12px;
    right:6px;
    bottom:auto;
    max-width:90px;
    padding:7px 9px;
  }
  .hero .location-pin-card strong{font-size:27px}
  .hero .location-pin-card small{font-size:6.5px}
  .hero .new-location-decoration{top:108px;right:15px}
}
@media (max-width:380px){
  .hero .v11-brand-motto{
    gap:6px;
    padding:8px 9px;
    font-size:10.5px;
  }
  .hero .v11-brand-motto .motto-star{font-size:12px}
  .hero .hero-stats{gap:5px}
  .hero .hero-stats small{font-size:10.5px}
  .hero .hero-art.location-hero-art{min-height:295px}
  .hero .new-location-hero{min-height:280px}
}

/* Mid-width content areas: use a real tablet grid instead of scaling an
   over-padded phone layout. Smaller phones keep V22's one-column cards. */
@media (min-width:620px) and (max-width:900px){
  .v8-intro{
    display:grid;
    grid-template-columns:minmax(0,1.13fr) minmax(235px,.87fr);
    gap:clamp(15px,3vw,30px);
    align-items:center;
  }
  .v8-intro .v8-heading h2{
    font-size:clamp(31px,3.7vw,39px);
    line-height:1.2;
  }
  .v8-impact{
    max-width:none;
    padding:22px;
    transform:none;
  }
  .v8-impact strong{font-size:clamp(48px,6vw,64px)}
  .v9-special-home-cards,.v9-ticket-special-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
  }
  .v9-special-home-cards>article:nth-child(3),
  .v9-ticket-special-grid>article:nth-child(3){
    grid-column:1/-1;
  }
  .cat-profile-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
  }
  .cat-profile-image{height:clamp(210px,29vw,270px)}
  .v13-contact-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
  }
  .v8-gallery-head{
    align-items:flex-end;
    gap:18px;
  }
}
@media (min-width:620px) and (max-width:760px){
  .v9-special-home-cards article{padding:19px 18px}
  .v9-special-home-cards h3{font-size:23px}
  .v8-impact>span{font-size:10px}
}
@media (min-width:1100px){
  .hero .v11-brand-motto{
    margin:16px 0 20px;
  }
}

/* Keep the current palette and page structure without visual jumps when an
   unfolded device rotates or the browser enters split-screen mode. */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
}
/* On the home hero the prominent call-to-action is already present.
   Reveal fixed navigation only after it scrolls off screen. */
@media(max-width:510px){
  body[data-page="home"]{padding-bottom:0}
  body[data-page="home"] .mobile-book-bar{display:none}
  body[data-page="home"].home-scrolled{
    padding-bottom:calc(62px + env(safe-area-inset-bottom));
  }
  body[data-page="home"].home-scrolled .mobile-book-bar{display:flex}
}

/* Audit: compact navigation on foldables, tablets and short landscape screens. */
@media (max-width:1024px), (max-height:540px) and (max-width:1200px) {
  .header .nav {display:flex;min-height:68px;gap:9px;padding-top:9px;padding-bottom:9px}
  .header .brand {flex:0 1 auto}
  .header .header-actions {margin-left:auto;flex:0 0 auto}
  .header .site-menu-toggle {display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;gap:8px;padding:10px;border:1px solid #d1dccd;border-radius:12px;background:#fffef9;color:#3b5d43}
  .header .site-navigation {display:none;position:absolute;top:100%;left:12px;right:12px;width:auto;max-height:calc(100dvh - 85px);overflow-y:auto;flex-direction:column;align-items:stretch;gap:4px;padding:12px;border:1px solid #dce6d8;border-radius:16px;background:#fffefb;box-shadow:0 12px 28px #1b352020}
  .v8-menu-open .header .site-navigation {display:flex}
  .header .site-navigation :is(.site-link,.nav-link,.nav-cta) {display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;margin:0;padding:9px;font-size:14px}
}
.eyebrow {color:#765638}
.new-location-contact-strip a {display:inline-flex;align-items:center;min-height:44px;padding:6px 10px}
.cat-detail-photo>img {max-width:100%;height:auto;object-fit:contain}

/* Darker olive panels retain readable light text at small sizes. */
.v9-special-home-cards article:first-child,.v9-ticket-special:first-child{background:#52603d}
.v9-special-home-cards small{color:#fffdf3}
.contact-parking{padding:24px;border:1px solid #d6dfcf;border-radius:16px;margin:0 0 28px;color:#425640;background:#f0f2e9;scroll-margin-top:90px}

/* Give unfolded phones and tablets their own component seams. The original
   desktop editorial spacing remains in the component's base rules. */
@media(min-width:761px) and (max-width:1099px){
  .v9-drinks-feature{margin-bottom:28px}
  .v9-specials-home{margin-bottom:36px}
  .v8-inner-page,
  .v9-menu-page{padding-bottom:72px}
}

/* Original artwork is always contained, never cropped. Styles are library-scoped. */
.canva-library,.canva-home-stories,.canva-cat-posters,.canva-adoption-guide{margin-block:48px;scroll-margin-top:110px}
.canva-library-heading{max-width:780px;margin-bottom:22px}
.canva-library-heading h2{font-size:clamp(25px,3.5vw,40px);line-height:1.25;margin:7px 0 15px}
.canva-library-heading p{line-height:1.8}
.canva-library-tools{display:flex;align-items:end;flex-wrap:wrap;gap:14px;margin:20px 0}
.canva-library-tools label{display:flex;flex-direction:column;gap:7px;min-width:0;font-size:13px}
.canva-library-tools input,.canva-library-tools select{max-width:100%;min-height:46px;border:1px solid #c9d2c7;border-radius:8px;background:#fff;padding:9px 12px;font:inherit;font-size:16px}
.canva-library-tools label:first-child{flex:1;min-width:180px}
.canva-library-tools>span{font-size:13px;padding-bottom:10px}
.canva-poster-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start}
.canva-poster-grid.canva-featured{grid-template-columns:repeat(4,minmax(0,1fr))}
.canva-poster-card{min-width:0;border:1px solid #dce1d7;border-radius:12px;background:#fff;overflow:hidden}
.canva-poster-open{display:block;width:100%;padding:10px;background:#f4f4ee;border:0;cursor:zoom-in}
.canva-poster-open img{display:block;width:100%;height:340px;object-fit:contain;object-position:center}
.canva-poster-caption{padding:16px}
.canva-poster-caption h3{font-size:16px;line-height:1.45;margin:0 0 7px;overflow-wrap:anywhere}
.canva-poster-caption p{font-size:12px;line-height:1.5;color:#687166;margin:0 0 12px}
.canva-cat-links{display:flex;flex-wrap:wrap;gap:6px;margin:9px 0}
.canva-cat-links a{display:inline-flex;align-items:center;min-height:32px;padding:4px 8px;border:1px solid #dce1d7;border-radius:6px;font-size:12px;text-decoration:none;color:#334d3e;overflow-wrap:anywhere}
.canva-text-button{display:inline-block;background:none;border:0;padding:8px 0;min-height:40px;color:#334d3e;font:inherit;font-size:14px;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
#canva-show-more{margin:24px auto 0;display:block;min-height:46px}
#canva-show-more[hidden]{display:none}
.canva-poster-dialog{box-sizing:border-box;position:fixed;inset:0;margin:auto;width:min(1100px,94vw);max-height:92dvh;padding:30px;border:0;border-radius:14px;background:#f9f9f3;color:#26382d;overflow:auto}
.canva-poster-dialog::backdrop,.staff-library-editor::backdrop{background:rgba(18,28,23,.65)}
.canva-dialog-close{position:sticky;top:0;float:right;z-index:2;width:46px;height:46px;border:1px solid #bcc8bc;border-radius:50%;background:#fff;font-size:28px;cursor:pointer}
.canva-dialog-layout{clear:both;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:30px;align-items:start}
.canva-dialog-layout>img{display:block;width:100%;height:auto;max-height:75dvh;object-fit:contain;object-position:top}
.canva-readable-copy{white-space:pre-line;line-height:1.9;font-size:16px}
.canva-archive-note{font-size:13px;line-height:1.7;padding:15px;background:#edf0e6;border-radius:8px}
.canva-cat-facts{margin-top:25px;border-top:1px solid #d6dfd0;padding-top:16px}
.canva-cat-facts dl{margin:15px 0}
.canva-cat-facts dl>div{display:grid;grid-template-columns:minmax(100px,.55fr) minmax(0,1fr);gap:12px;padding:9px 0;border-bottom:1px solid #e4e8df}
.canva-cat-facts dt{font-size:13px;font-weight:600}
.canva-cat-facts dd{margin:0;font-size:14px;overflow-wrap:anywhere}
.canva-cat-facts small{display:block;color:#687166;line-height:1.6}
.canva-handling{background:#eef1e7;padding:14px;border-radius:8px;line-height:1.7}
.cat-profile-image img[src*="/canva/"],.cat-detail-photo>img[src*="/canva/"]{object-fit:contain!important;background:#f4f4ee}
.canva-adoption-guide{padding:25px;border:1px solid #d5ded0;border-radius:12px}
.canva-adoption-guide .faq-item p{white-space:pre-line;line-height:1.8}
/* Existing staff cat management, with a library rather than a separate login. */
.staff-library-nav{padding:20px;margin-bottom:24px;border:1px solid #d0dacc;background:#f7f8f2;border-radius:12px;min-width:0}
.staff-library-nav h2{font-size:23px;margin:0 0 10px}
.staff-library-nav p{line-height:1.65;overflow-wrap:anywhere}
.staff-library-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.staff-library-tabs button{min-height:46px;padding:9px 15px;border:1px solid #aabbad;border-radius:8px;background:#fff;color:#304638;cursor:pointer}
.staff-library-tabs button[aria-pressed=true]{background:#344e3e;color:#fff}
.staff-library-caution{font-size:12px;color:#735824;padding:12px;background:#fff5df;border-radius:7px}
.staff-library-search{display:flex;gap:12px;align-items:end;margin:15px 0}
.staff-library-search label{flex:1;display:flex;flex-direction:column;gap:7px;font-size:13px}
.staff-library-search input{width:100%;min-width:0;min-height:46px;font-size:16px;padding:9px 12px;border:1px solid #bdcabb;border-radius:8px}
.staff-library-row{display:grid;grid-template-columns:92px minmax(0,1fr) auto;align-items:center;gap:16px;padding:15px;background:#fff;border:1px solid #d6dfd0;border-radius:10px;margin-bottom:10px}
.staff-library-row>img{width:92px;height:126px;object-fit:contain;background:#f0f1eb}
.staff-library-row h3{font-size:16px;margin:5px 0;overflow-wrap:anywhere}
.staff-library-row p,.staff-library-row small{margin:4px 0;font-size:12px;color:#657360;overflow-wrap:anywhere}
.staff-library-row button,#staff-library-more{min-height:46px;border:1px solid #b5c3b0;border-radius:8px;background:#fff;padding:10px 14px;cursor:pointer}
.staff-library-faq-icon{padding:24px 12px;border-radius:8px;background:#e8eee0;text-align:center;font-weight:700}
.staff-library-audit dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.staff-library-audit dl>div{padding:15px;background:#fff;border-radius:8px}
.staff-library-audit dt{font-size:12px}.staff-library-audit dd{font-size:24px;font-weight:700;margin:8px 0 0}
.staff-source-index{max-height:360px;overflow:auto;padding:12px;background:white}
.staff-source-index p{font-size:12px;overflow-wrap:anywhere}
.staff-library-editor{box-sizing:border-box;position:fixed;inset:0;margin:auto;width:min(960px,95vw);max-height:94dvh;overflow:auto;padding:24px;border:0;border-radius:14px;background:#fff;color:#27392e}
.staff-library-editor header{display:flex;justify-content:space-between;align-items:center;gap:15px;position:sticky;top:-24px;background:#fff;z-index:2;padding:15px 0}
.staff-library-editor header h2{margin:0;font-size:22px}
.staff-library-editor button{min-height:46px;border:1px solid #aebeab;border-radius:7px;background:#f2f5ed;padding:10px 15px;cursor:pointer}
.staff-library-editor footer{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}
.staff-library-editor footer button[type=submit]{background:#344e3e;color:white}
.staff-library-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.staff-library-editor label{display:flex;flex-direction:column;gap:7px;margin:12px 0;font-size:14px}
.staff-library-editor input:not([type=checkbox]),.staff-library-editor textarea,.staff-library-editor select{box-sizing:border-box;width:100%;max-width:100%;font:inherit;font-size:16px;min-height:44px;padding:10px;border:1px solid #c2cdbd;border-radius:7px}
.staff-library-editor .staff-publish{flex-direction:row;align-items:center;min-height:46px}
.staff-library-editor input[type=checkbox]{width:21px;height:21px}
.staff-library-cat-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-height:230px;overflow:auto;border:1px solid #ccd5c6;padding:10px;border-radius:8px}
.staff-library-cat-choices label{display:flex;flex-direction:row;align-items:center;gap:8px;margin:0;min-height:46px;font-size:13px;overflow-wrap:anywhere}
#staff-library-error{color:#a23a2e;font-weight:600;line-height:1.6}
@media(max-width:1000px){.canva-poster-grid.canva-featured{grid-template-columns:repeat(2,minmax(0,1fr))}.canva-poster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){
 .canva-poster-grid{grid-template-columns:1fr}.canva-poster-grid.canva-featured{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .canva-featured .canva-poster-open img{height:220px}.canva-featured .canva-poster-caption{padding:11px}.canva-featured .canva-poster-caption h3{font-size:14px}
 .canva-dialog-layout{grid-template-columns:1fr;gap:20px}.canva-poster-dialog{padding:18px}.canva-dialog-layout>img{max-height:60dvh}
 .canva-library-tools>label{width:100%}.canva-adoption-guide{padding:17px}
 .staff-library-nav{padding:12px}.staff-library-row{grid-template-columns:70px minmax(0,1fr);gap:10px;padding:10px}.staff-library-row>img{width:70px;height:100px}.staff-library-row>button{grid-column:1/-1}
 .staff-library-audit dl{grid-template-columns:repeat(2,minmax(0,1fr))}.staff-library-form-grid{grid-template-columns:1fr;gap:0}.staff-library-cat-choices{grid-template-columns:repeat(2,minmax(0,1fr))}
 .staff-library-editor{padding:16px}.staff-library-editor header{top:-16px}.staff-library-tabs button{flex:1;white-space:nowrap;padding:8px}
}

/* Library control contrast against legacy admin button rules. */
.staff-library-row button,#staff-library-more,.staff-library-editor button,.canva-dialog-close{color:#304638}
.staff-library-editor footer button[type=submit]{color:#fff}

/* Four clear adoption steps, with generous space on touch screens. */
.v8-adoption-how>div{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:900px){.v8-adoption-how>div{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.v8-adoption-how>div{grid-template-columns:1fr}}


/* V33 — photographic cat portraits on all list surfaces.
   Artwork is never flattened into a photo card or cropped with its text. */
.cat-profile-card .cat-profile-image,
#v8-slides .v8-slide,
.canva-poster-portrait .canva-poster-open {
  background:#ecf0e9;
}
.cat-profile-card .cat-profile-image img,
#v8-slides .v8-slide > img,
.canva-poster-portrait .canva-poster-open img {
  width:100%;
  object-fit:cover !important;
  object-position:50% 42%;
  display:block;
  background:#eef1e9;
}
.cat-profile-card .cat-profile-image {
  height:auto;
  aspect-ratio: 1.16 / 1;
}
.cat-profile-card .cat-profile-image img {
  height:100%;
}
#v8-slides .v8-slide {
  height:385px;
  border:1px solid #dbe4d8;
  background:#fbfaf7;
  display:flex;
  flex-direction:column;
  text-decoration:none;
  box-shadow:0 12px 30px #344e3910;
}
#v8-slides .v8-slide > img {
  flex:1 1 auto;
  min-height:0;
  height:calc(100% - 84px);
}
#v8-slides .v8-slide::after {
  display:none;
}
#v8-slides .v8-slide > div {
  position:static;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  padding:15px 22px;
  min-height:84px;
  box-sizing:border-box;
  background:#fbfaf7;
  color:#324c3b;
}
#v8-slides .v8-slide strong {
  font-size:clamp(23px,2.6vw,29px);
  line-height:1.15;
}
#v8-slides .v8-slide span {
  font-size:12px;
  line-height:1.5;
  color:#617362;
}
.canva-poster-portrait .canva-poster-open {
  padding:0;
  border-radius:0;
}
.canva-poster-portrait .canva-poster-open img,
.canva-poster-portrait .canva-poster-open > .cat-profile-placeholder {
  height:auto;
  aspect-ratio:1 / 1;
}
.canva-poster-portrait .canva-poster-open img {
  max-height:none;
}
.canva-poster-full .canva-poster-open img {
  width:100%;
  height:auto;
  max-height:560px;
  object-fit:contain;
}
.cat-detail-photo > img {
  height:auto;
  aspect-ratio: 1 / 1;
  max-height:420px;
  object-fit:cover !important;
}
.cat-detail-photo > .cat-detail-secondary {margin-top:18px}
.cat-detail-photo .cat-original-poster {
  margin:22px 0 0;
  padding:0;
  border-radius:14px;
  background:#f3f5ef;
  overflow:hidden;
}
.cat-detail-photo .cat-original-poster > a {
  display:block;
  padding:10px;
}
.cat-detail-photo .cat-original-poster img {
  display:block;
  width:100%;
  height:auto;
  max-height:none;
  object-fit:contain !important;
}
.cat-detail-photo .cat-original-poster figcaption {
  padding:0 16px 14px;
  text-align:center;
  color:#426147;
  font-size:13px;
  font-weight:600;
}
@media(max-width:650px) {
  #v8-slides .v8-slide {height:350px}
  #v8-slides .v8-slide > div {min-height:78px;padding:12px 17px}
  .cat-profile-card .cat-profile-image {aspect-ratio:1/1}
  .canva-poster-portrait .canva-poster-open img {height:auto !important;aspect-ratio:1 / 1}
  .cat-detail-photo > img {height:auto;aspect-ratio:1/1;max-height:none}
}

/* V36: Verified new arrivals, independent real photos rather than intake sheets. */
.catfe-arrivals{margin:42px auto 0;padding-top:24px;border-top:1px solid #e0e6dd}
.catfe-arrivals-heading{max-width:760px;margin-bottom:20px}
.catfe-arrivals-heading h3{font-size:clamp(25px,3vw,37px);line-height:1.2;margin:8px 0 10px}
.catfe-arrivals-heading>p:last-child{color:#65776a;line-height:1.75;margin:0}
.catfe-arrivals-links {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 22px;
  margin-top: 17px;
}
.catfe-arrivals-links a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: #365b42;
  font-size: 14px;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 5px;
}
.catfe-arrivals-links a:hover { color: #233d2d; }
.catfe-arrivals-links a:focus-visible { outline: 2px solid #526245; outline-offset: 3px; }
.catfe-arrivals-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.catfe-arrival-card{overflow:hidden;border:1px solid #e0e7dd;border-radius:17px;color:#314b39;background:#fff;text-decoration:none;box-shadow:0 9px 24px #2e4d3110;transition:transform .2s,box-shadow .2s}
.catfe-arrival-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px #2e4d3120}
.catfe-arrival-card img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center 40%;height:auto}
.catfe-arrival-card>div{padding:16px 18px 20px;display:flex;flex-direction:column;gap:7px}
.catfe-arrival-card strong{font-size:19px}
.catfe-arrival-card span{font-size:12px;line-height:1.7;color:#677a6c}
@media(max-width:650px){.catfe-arrivals-grid{grid-template-columns:1fr;gap:15px}.catfe-arrival-card img{aspect-ratio:1.35/1}.catfe-arrivals{margin-top:28px;padding-top:20px}}
@media(prefers-reduced-motion:reduce){.catfe-arrival-card{transition:none}.catfe-arrival-card:hover{transform:none}}


/* Avoid stacking the arrivals library's generic outer margin onto the
   preceding ticket section; other library/editor surfaces stay unchanged. */
@media(max-width:760px){
  .canva-home-stories{margin-top:0;margin-bottom:24px}
}
@media(min-width:761px) and (max-width:1099px){
  .canva-home-stories{margin-top:28px;margin-bottom:32px}
}

/* Catfe Mao + Broadway Vet: veterinary care and adopter-family benefit.
   Separate from the booking app; no additional scripts or external assets. */

.vet-partner-section {
  padding-top: 14px;
  padding-bottom: clamp(32px, 3.2vw, 48px);
}

.vet-partner-home {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(285px, .85fr);
  overflow: hidden;
  border: 1px solid #d5dfd3;
  border-radius: 26px;
  background: #eff3ec;
}

.vet-partner-main {
  min-width: 0;
  padding: clamp(26px, 4.1vw, 54px);
}

.vet-partner-names {
  margin: 16px 0 22px;
  color: #526958;
  font-size: clamp(14px, 1.65vw, 18px);
  letter-spacing: -.2px;
}

.vet-partner-names span {
  padding: 0 9px;
  color: #849b85;
}

.vet-partner-names strong {
  font-weight: 800;
  color: #2b543f;
}

.vet-partner-main h2,
.vet-story-note h2,
.vet-adoption-care h2 {
  font: normal clamp(30px, 3.7vw, 49px)/1.18 Georgia, 'Noto Serif SC', serif;
  letter-spacing: -.8px;
  color: #2d4938;
}

.vet-partner-main h2 {
  max-width: 630px;
  margin: 0 0 16px;
}

.vet-partner-main > p:not(.v8-kicker):not(.vet-partner-names),
.vet-story-note p:not(.v8-kicker),
.vet-adoption-care > p:not(.v8-kicker) {
  max-width: 670px;
  color:#50634f;
  font-size: 15px;
  line-height: 1.86;
}

.vet-partner-main > p:not(.v8-kicker):not(.vet-partner-names) {
  margin: 0;
}

.vet-partner-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 13px 22px;
  margin-top: 25px;
}

.vet-partner-links a,
.vet-story-note > a,
.vet-adoption-care > a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  font-size: 13px;
  font-weight: 750;
  text-decoration: none;
  transition: background-color .15s ease, color .15s ease;
}

.vet-partner-primary {
  padding: 11px 19px;
  border-radius: 25px;
  background: #304d3b;
  color: #fff;
}

.vet-partner-primary:hover,
.vet-partner-primary:focus-visible {
  background: #1c3929;
}

.vet-partner-secondary,
.vet-story-note > a,
.vet-adoption-care > a {
  color: #315d42;
  text-decoration: underline;
  text-underline-offset: 5px;
}

.vet-partner-secondary:hover,
.vet-story-note > a:hover,
.vet-adoption-care > a:hover {
  color: #173623;
}

.vet-partner-perk {
  background: #344f3e;
  color: #fff8e8;
  padding: clamp(28px, 3.8vw, 49px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
}

.vet-perk-kicker,
.vet-offer-eyebrow {
  margin: 0 0 21px;
  color: #e5d6b0;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 1.1px;
  line-height: 1.6;
}

.vet-perk-number {
  display: flex;
  align-items: baseline;
  gap: 15px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.vet-perk-number strong {
  font: normal clamp(64px, 7.8vw, 100px)/1 Georgia, 'Noto Serif SC', serif;
  letter-spacing: -4px;
  color: #f6e2b6;
}

.vet-perk-number span {
  color: #f2ead9;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 1px;
}

.vet-partner-perk h3 {
  margin: 0 0 12px;
  font: normal clamp(24px, 2.4vw, 30px)/1.3 Georgia, 'Noto Serif SC', serif;
  color: #fff7e8;
}

.vet-partner-perk > p:last-child {
  margin: 0;
  color: #e0e8d9;
  line-height: 1.8;
  font-size: 14px;
}

.vet-story-note {
  margin: clamp(22px, 4vw, 49px) 0 0;
  padding: clamp(24px, 3.4vw, 43px);
  border-radius: 20px;
  border: 1px solid #d8e1d4;
  background: #f2f5ee;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 25px;
}

.vet-story-note h2 {
  margin: 10px 0 11px;
  font-size: clamp(24px, 3vw, 38px);
}

.vet-story-note p:not(.v8-kicker) {
  margin-bottom: 0;
}

.vet-story-note > a {
  flex: 0 0 auto;
  margin-bottom: 3px;
}

.vet-adoption-benefit {
  margin: 0 0 clamp(46px, 6vw, 76px);
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(285px, .85fr);
  overflow: hidden;
  border: 1px solid #dce2d8;
  border-radius: 23px;
  background: #f1f3ed;
}

.vet-adoption-care {
  min-width: 0;
  padding: clamp(25px, 3.3vw, 44px);
}

.vet-adoption-care h2 {
  margin: 13px 0 16px;
  font-size: clamp(29px, 3.1vw, 43px);
}

.vet-adoption-care > p:not(.v8-kicker) {
  margin: 0 0 18px;
}

.vet-adoption-offer {
  min-width: 0;
  padding: clamp(25px, 3.3vw, 43px);
  background: #e7edde;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.vet-adoption-offer .vet-offer-eyebrow {
  color: #526d52;
  margin-bottom: 8px;
}

.vet-offer-number {
  font: normal clamp(55px, 6.4vw, 83px)/1.15 Georgia, 'Noto Serif SC', serif;
  letter-spacing: -2.5px;
  color: #2e523c;
  white-space: nowrap;
}

.vet-offer-number span {
  font: 800 12px/1.4 'DM Sans', sans-serif;
  letter-spacing: 1px;
  vertical-align: middle;
}

.vet-adoption-offer > strong {
  margin: 8px 0 12px;
  font: normal clamp(20px, 2.2vw, 29px)/1.35 Georgia, 'Noto Serif SC', serif;
  color: #2c4936;
}

.vet-adoption-offer p {
  margin: 0;
  color: #536958;
  font-size: 14px;
  line-height: 1.8;
}

.vet-adoption-offer small {
  display: block;
  margin-top: 17px;
  color:#50634f;
  font-size: 11px;
  line-height: 1.65;
}

.vet-partner-care h3 {
  font-size: clamp(27px, 2.8vw, 37px);
  line-height: 1.35;
  margin: 0 0 20px;
}
.vet-partner-care .vet-perk-kicker { margin-bottom: 17px; }

@media (max-width: 820px) {
  .vet-partner-home, .vet-adoption-benefit {grid-template-columns: 1fr;}
  .vet-partner-perk {padding: 28px 30px;}
  .vet-perk-number strong {font-size: 71px;}
  .vet-story-note {flex-direction: column; align-items: start;}
  .vet-story-note > a {align-self: flex-start;}
}

@media (max-width: 540px) {
  .vet-partner-section {padding-top: 0; padding-bottom: 28px;}
  .vet-partner-home, .vet-adoption-benefit {border-radius: 18px;}
  .vet-partner-main, .vet-adoption-care, .vet-adoption-offer {padding: 24px;}
  .vet-partner-perk {padding: 27px 24px;}
  .vet-partner-names {font-size: 14px;}
  .vet-partner-links {gap: 7px 16px;}
  .vet-partner-main h2 {font-size: 32px;}
  .vet-story-note {padding: 23px 21px; margin-top: 29px;}
  .vet-story-note h2 {font-size: 27px;}
  .vet-adoption-benefit {margin-bottom: 40px;}
}

@media (prefers-reduced-motion: reduce) {
  .vet-partner-links a,
  .vet-story-note > a,
  .vet-adoption-care > a {transition: none;}
}

/* Compact boarding introduction beside the existing vet partnership on home. */
.catfe-boarding-intro{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-top:18px;padding:clamp(23px,3.5vw,34px);background:#f7f5ed;border:1px solid #e1e2d6;border-radius:22px}
.catfe-boarding-intro>div{max-width:720px;min-width:0}
.catfe-boarding-intro h3{font:normal clamp(23px,2.65vw,33px)/1.3 Georgia,'Noto Serif SC',serif;letter-spacing:-.025em;color:#304b3b;margin:9px 0 12px}
.catfe-boarding-intro p:not(.v8-kicker){font-size:14px;line-height:1.8;color:#57695c;margin:0 0 12px}
.catfe-boarding-intro .catfe-boarding-location{font-size:12px!important;color:#667462!important;margin-bottom:0!important}
.catfe-boarding-intro>a{flex:0 0 auto;text-align:center;display:inline-flex;justify-content:center;align-items:center;min-height:45px;text-decoration:none}
@media(max-width:760px){.catfe-boarding-intro{flex-direction:column;align-items:flex-start}.catfe-boarding-intro>a{align-self:flex-start}}

#adoption-steps + .vet-adoption-benefit{margin-top:clamp(32px,4.5vw,56px)}
.vet-story-note>div:first-child{min-width:0;max-width:760px}
.vet-story-visit{margin-top:15px!important;color:#48634e;font-weight:550}
.vet-story-side{flex:0 0 180px;display:flex;flex-direction:column;align-items:center;gap:15px;text-align:center}
.vet-story-brandmark{display:flex;flex-direction:column;align-items:center;gap:8px;text-decoration:none;color:#5b4d43}
.vet-story-brandmark img{width:86px;height:86px;object-fit:contain}
.vet-story-brandmark strong{font-size:14px;letter-spacing:.14em;font-weight:750}
.vet-story-side>a:last-child{color:#315d42;text-decoration:underline;text-underline-offset:4px;font-size:13px;font-weight:750}
.v8-timeline-pair{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.v8-timeline [data-catfe-count]{font-variant-numeric:tabular-nums}
@media(max-width:820px){.vet-story-side{flex:none;align-items:flex-start;text-align:left}.vet-story-brandmark{flex-direction:row;gap:12px}.vet-story-brandmark img{width:56px;height:56px}}
@media(max-width:540px){#adoption-steps + .vet-adoption-benefit{margin-top:30px}}

.catfe-image-viewer{box-sizing:border-box;width:min(1100px,96vw);height:94dvh;max-width:96vw;max-height:94dvh;padding:16px;border:0;border-radius:18px;background:#fffcf7;color:#3d2d25;overflow:hidden}
.catfe-image-viewer[open]{display:flex;flex-direction:column;gap:10px}
.catfe-image-viewer::backdrop{background:rgb(24 18 15 / .8)}
.image-viewer-tools{display:flex;justify-content:flex-end;gap:12px;flex-shrink:0}
.image-viewer-tools button{min-height:44px;min-width:48px;padding:8px 14px;border:1px solid #86634e;background:#fff8ed;color:#35281f;border-radius:10px;font:inherit;cursor:pointer}
.image-viewer-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;text-align:center}
.image-viewer-scroll img{display:block;max-width:100%;height:auto;max-height:100%;width:auto;object-fit:contain;margin:auto;cursor:default}
.image-viewer-caption{margin:0;font-size:14px;flex-shrink:0}
.image-viewer-open{overflow:hidden}
.cat-detail-photo img{cursor:default}
.cat-detail-photo img.cat-full-poster{width:100%;height:auto;aspect-ratio:auto;object-fit:contain;max-height:none}
@media(max-width:600px){.catfe-image-viewer{padding:10px;width:98vw;max-width:98vw;height:96dvh;max-height:96dvh;border-radius:12px}}

.venue-gallery {
  max-width: 1130px;
  padding-top: clamp(38px, 5vw, 64px);
  padding-bottom: clamp(40px, 5.5vw, 70px);
}
.venue-gallery-layout {
  display: grid;
  grid-template-columns: minmax(0, .91fr) minmax(0, 1.09fr);
  gap: clamp(24px, 4.5vw, 55px);
  align-items: center;
}
.venue-gallery-heading {
  min-width: 0;
}
.venue-gallery-heading .v8-kicker {
  color:#50634f;
  letter-spacing: .17em;
}
.venue-gallery-heading h2 {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(30px, 3.25vw, 42px);
  font-weight: 400;
  letter-spacing: -.025em;
  line-height: 1.28;
  text-wrap: balance;
  color: #526245;
  margin: 16px 0 16px;
}
.venue-gallery-tagline {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(19px, 2.05vw, 26px);
  font-weight: 400;
  line-height: 1.45;
  color:#705b3e;
  margin: 0 0 18px;
  text-wrap: balance;
}
.venue-gallery-intro {
  font-size: 14px;
  line-height: 1.9;
  color: #687064;
  max-width: 410px;
  margin: 0;
}
.venue-carousel-column {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  width: 100%;
  min-width: 0;
}
.venue-carousel-column .venue-carousel { width: 100%; }
.venue-bakery-link {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  min-height: 44px;
  padding: 5px 2px;
  color: #415a42;
  font-size: 14px;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 5px;
  text-decoration-thickness: 1px;
}
.venue-bakery-link:hover { color: #273e30; }
.venue-bakery-link:focus-visible {
  outline: 2px solid #526245;
  outline-offset: 3px;
}
.venue-carousel {
  min-width: 0;
  overflow: hidden;
  border-radius: 23px;
  border: 1px solid rgba(75, 91, 58, .09);
  background: #e2e5d9;
  box-shadow: 0 15px 40px rgba(43, 55, 39, .10);
  isolation: isolate;
}
.venue-slides {
  position: relative;
  height: clamp(290px, 35vw, 415px);
  background: #e2e5d9;
}
.venue-slide {
  position: absolute;
  inset: 0;
  margin: 0;
  opacity: 0;
  z-index: 0;
  pointer-events: none;
  transition: opacity 1550ms ease-in-out;
}
.venue-slide.is-active {
  opacity: 1;
  z-index: 1;
  pointer-events: auto;
}
.venue-slide a,
.venue-slide img {
  display: block;
  width: 100%;
  height: 100%;
}
.venue-slide img {
  object-fit: cover;
  object-position: center 48%;
}
.venue-slide figcaption {
  position: absolute;
  inset: auto 0 0;
  padding: 68px 24px 20px;
  background: linear-gradient(transparent, rgba(29, 37, 27, .66));
  color: rgba(255, 255, 255, .96);
  font: 400 clamp(16px, 1.7vw, 21px)/1.3 Georgia, 'Times New Roman', serif;
  letter-spacing: .01em;
  pointer-events: none;
}
.venue-slide figcaption small {
  display: block;
  font: 600 9px/1.5 system-ui, -apple-system, sans-serif;
  letter-spacing: .15em;
  color: rgba(255, 255, 255, .8);
  margin-bottom: 5px;
}
.venue-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 6px 10px;
  background: #f7f8f1;
  color: #526245;
}
.venue-controls button {
  min-width: 44px;
  min-height: 44px;
  padding: 6px 10px;
  border: 0;
  border-radius: 22px;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: 13px;
  cursor: pointer;
}
.venue-controls button:hover:not(:disabled) { background: #e7ebdf; }
.venue-controls button:focus-visible { outline: 2px solid #526245; outline-offset: -2px; }
.venue-controls button:disabled { opacity: .65; cursor: default; }
.venue-position { min-width: 48px; text-align: center; font-size: 12px; }
.venue-gallery-note,
.venue-photo-credit {
  margin: 19px 0 0;
  font-size: 12px;
  color: #687064;
  line-height: 1.7;
}
.venue-photo-credit {
  margin-top: 7px;
  color:#50634f;
  font-size: 11px;
}
@media (max-width: 760px) {
  .venue-gallery {
    padding-top: 36px;
    padding-bottom: 43px;
  }
  .venue-gallery-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 22px;
  }
  .venue-gallery-heading h2 {
    font-size: clamp(29px, 7vw, 37px);
    margin: 12px 0;
  }
  .venue-gallery-tagline {
    font-size: clamp(19px, 4.9vw, 23px);
    margin-bottom: 12px;
  }
  .venue-gallery-intro {
    font-size: 13px;
    line-height: 1.75;
    max-width: 100%;
  }
  .venue-carousel {
    border-radius: 18px;
  }
  .venue-slides {
    height: clamp(250px, 64vw, 350px);
  }
  .venue-slide figcaption {
    padding: 60px 18px 16px;
  }
  .venue-gallery-note { margin-top: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  .venue-slide { transition: none; }
}

/* Compact, tickets-first booking flow and finite mobile cat browsing. */
.booking-start-link{display:inline-flex;align-items:center;min-height:44px;padding:7px 0;color:#405c3f;font-size:13px;font-weight:700;text-decoration:underline;text-underline-offset:4px}
.booking-start-link:focus-visible{outline:3px solid #a6c49d;outline-offset:4px;border-radius:4px}
.availability-error p{margin:0 0 14px;line-height:1.7}
.availability-error .btn{min-height:44px}
/* Scope booking rules to the new two-step customer layout. */
.booking-shell.booking-step-one,
.booking-shell.booking-step-two{grid-template-columns:minmax(0,1.75fr) minmax(240px,.78fr);gap:15px}
.booking-step-one .booking-panel{padding:clamp(19px,2.4vw,28px)}
.booking-step-one .stephead{padding-bottom:13px;margin-bottom:18px}
.booking-step-one .field-label{margin:0 0 9px}
.booking-step-one .guest-row{gap:11px}
.booking-step-one .guest-control{padding:11px 13px;border-radius:13px}
.booking-step-one .note-line{margin:9px 0 11px;line-height:1.5}
.booking-step-one .slots-header{margin:18px 0 10px}
.booking-step-one .date-heading{margin:14px 0 9px}
.booking-step-one .calendar-weekdays span{padding:6px 0}
.booking-step-one .date-button{min-height:42px}
.booking-step-one .v10-holiday-key{font-size:11px;line-height:1.55}
.booking-step-one .slot-grid{gap:7px}
.booking-step-one .slot{min-height:57px;border-radius:10px}
.booking-step-one .booking-rhythm-note{font-size:11.5px;line-height:1.6}
.booking-weekly-link{display:inline-flex;align-items:center;margin:8px 0 17px;padding:7px 0;background:transparent;border:0;color:#48674a;text-decoration:underline;text-decoration-color:#b8c6b0;text-underline-offset:3px;font-family:inherit;font-size:12px;font-weight:600;line-height:1.5;cursor:pointer}
.booking-weekly-link:focus-visible,.booking-combo-toggle:focus-visible,.booking-combo-no:focus-visible{outline:3px solid #a6c49d;outline-offset:3px}
/* Recommendations appear only when the selected guest count supports a combo. */
.booking-combo-opted-out{margin:6px 0 11px}
.booking-combo-opted-out button{border:0;background:transparent;color:#70826c;text-decoration:underline;text-underline-offset:3px;font:600 11px/1.5 system-ui,sans-serif;padding:5px 0;cursor:pointer}
.booking-combo-suggestion{display:flex;align-items:center;gap:12px;margin:13px 0 6px;padding:10px 13px;border:1px solid #d7e2d1;background:#f6f9f2;border-radius:13px}
.booking-combo-suggestion-copy{flex:1;min-width:0;display:grid;gap:3px}
.booking-combo-suggestion-copy strong{font-size:12.5px;color:#415a43}
.booking-combo-suggestion-copy small{font-size:11.5px;line-height:1.55;color:#688068}
.booking-combo-prompt-actions{display:flex;align-items:center;flex-wrap:wrap;gap:9px;justify-content:flex-end}
.booking-combo-toggle,.booking-combo-no,.booking-combo-foot button{padding:7px 9px;background:transparent;border:0;color:#426445;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap}
.booking-combo-toggle{border:1px solid #c3d3bb;border-radius:9px;background:#fff;min-height:36px}
.booking-combo-no{color:#788775;font-weight:500}
.booking-combo-options{margin:8px 0 13px;border:1px solid #dce6d6;border-radius:13px;overflow:hidden;background:#fff}
.booking-combo-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:12px 14px}
.booking-combo-row+.booking-combo-row{border-top:1px solid #edf0e9}
.booking-combo-info{display:grid;gap:3px;min-width:0}
.booking-combo-info strong{font-size:13px;color:#37503d}
.booking-combo-info small{font-size:11px;color:#6a7e68;line-height:1.45}
.booking-combo-unit{font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:750;color:#416347}
.booking-combo-counter{gap:7px}
.booking-combo-counter button{width:37px;height:37px;min-width:37px;touch-action:manipulation}
.booking-combo-counter output{display:inline-block;min-width:14px;text-align:center;font-weight:800;font-size:13px;color:#405544;font-variant-numeric:tabular-nums}
.booking-combo-foot{display:flex;justify-content:space-between;align-items:center;gap:9px;padding:10px 14px;background:#f8faf6;border-top:1px solid #edf0e9}
.booking-combo-foot small{max-width:440px;font-size:11px;color:#748672;line-height:1.5}
.booking-combo-foot button{text-decoration:underline;text-underline-offset:2px}
.booking-review-inline{display:none}
.booking-summary-mini{display:flex;flex-direction:column;gap:10px;padding:18px 19px}
.booking-mini-copy{display:grid;gap:4px;min-width:0}
.booking-mini-copy>span{color:#667966;font-size:11px;line-height:1.4}
.booking-mini-copy>strong{color:#354c38;font-size:clamp(21px,2.5vw,27px);font-weight:800;font-variant-numeric:tabular-nums}
.booking-mini-copy>small{color:#50634f;font-size:11px;line-height:1.45}
.booking-mini-next{display:none}
.booking-step-two .booking-panel{padding:clamp(20px,2.6vw,29px)}
.booking-step-two .booking-verify-explainer{margin-bottom:16px}
.booking-step-two .form-grid{gap:13px}
.booking-step-two .form-field textarea{min-height:66px}
.booking-step-two .preflight-note{margin-block:12px;padding:12px 14px}
.booking-step-two .v8-otp-inline{margin-top:12px}
.booking-step-two .v8-rules-line{line-height:1.6}
/* A mobile preview stays next to the Next button while guests browse slots. */
@media(max-width:790px){
 .booking-shell.booking-step-one,.booking-shell.booking-step-two{grid-template-columns:minmax(0,1fr);gap:0}
 .booking-step-one{padding-bottom:100px}
 .booking-step-one .booking-panel{padding:clamp(14px,3.8vw,21px)}
 .booking-step-one .booking-step-actions{display:none}
 .booking-step-one .booking-summary-mini{
   box-sizing:border-box;display:flex;position:fixed;inset:auto 0 0;z-index:74;
   width:100%;max-width:none;flex-direction:row;justify-content:space-between;
   align-items:center;gap:12px;padding:10px max(16px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));
   border-radius:18px 18px 0 0;border:1px solid #dce4d5;background:#fffff9;
   box-shadow:0 -8px 27px rgba(40,67,45,.12)
 }
 .booking-step-one .booking-mini-copy{gap:1px;overflow:hidden}
 .booking-step-one .booking-mini-copy>span{font-size:10.5px}
 .booking-step-one .booking-mini-copy>strong{font-size:22px;line-height:1.15}
 .booking-step-one .booking-mini-copy>small{font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .booking-step-one .booking-mini-next{display:inline-flex;align-items:center;justify-content:center;min-width:108px;min-height:45px;flex-shrink:0;padding:10px 15px;border-radius:12px;font-size:13px}
 .booking-step-two>.booking-summary{display:none}
 .booking-review-inline{display:block;margin:17px 0 15px}
 .booking-review-inline .booking-summary{position:static;box-shadow:none;border:1px solid #dce7d7;border-radius:14px;padding:14px 15px;background:#f9fbf5}
 .booking-review-inline .summary-label{font-size:10px;letter-spacing:1.1px}
 .booking-review-inline .summary-service{margin:7px 0 10px}
 .booking-review-inline .cat-thumb{width:39px;height:39px}
 .booking-review-inline .summary-rows{gap:7px;padding:10px 0}
 .booking-review-inline .summary-total{padding-top:12px}
 .booking-review-inline .summary-total .total-line{margin-top:13px!important}
 .booking-review-inline .summary-total .total-line strong{font-size:24px}
 .booking-review-inline .summary-payment{padding:7px 9px;margin-top:11px}
 .booking-step-two .action-row{margin-top:13px}
}
/* Compact tap-friendly counts on narrow phones; two columns use less vertical space. */
@media(max-width:650px){
 .booking-intro{margin-bottom:15px}
 .booking-intro :is(h1,h2){font-size:clamp(28px,7vw,35px)}
 .booking-section{padding-top:23px;padding-bottom:30px}
 .booking-step-one .stephead{margin-bottom:11px;padding-bottom:11px}
 .booking-step-one .guest-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .booking-step-one .guest-control{display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;gap:8px;min-width:0;padding:10px 9px}
 .booking-step-one .guest-control small{font-size:10px;line-height:1.35}
 .booking-step-one .guest-control .counter{justify-content:space-between;gap:5px}
 .booking-step-one .guest-control .counter button{width:34px;height:34px;min-width:34px}
 .booking-step-one .date-heading{margin:12px 0 7px}
 .booking-step-one .date-nav{gap:6px}
 .booking-step-one .date-nav button{width:34px;height:34px}
 .booking-step-one .date-nav span{font-size:12px;min-width:108px}
 .booking-step-one .calendar-weekdays,.booking-step-one .calendar-grid{gap:2px}
 .booking-step-one .date-button{min-height:44px;border-radius:9px}
 .booking-step-one .slot-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
 .booking-step-one .slot{min-height:60px;padding:6px 3px}
 .booking-step-one .slot-rhythm-name{font-size:10px;line-height:1.25;text-align:center}
 .booking-step-one .slots-header{margin:14px 0 9px}
 .booking-combo-suggestion{align-items:flex-start;flex-wrap:wrap;gap:7px;padding:10px}
 .booking-combo-suggestion-copy{flex-basis:100%}
 .booking-combo-prompt-actions{justify-content:flex-start;width:100%;gap:11px}
 .booking-combo-toggle{min-height:36px}
 .booking-combo-row{grid-template-columns:minmax(0,1fr) auto;gap:6px 8px;padding:11px}
 .booking-combo-unit{justify-self:end}
 .booking-combo-counter{grid-column:1/-1;justify-content:flex-end}
 .booking-step-two .booking-panel{padding:16px 13px}
 .booking-step-two .form-grid{gap:12px}
 .booking-step-two .form-field input,.booking-step-two .form-field select,.booking-step-two .form-field textarea{min-height:44px}
}
/* Make cat collections finite and short on phones; do not lose the last portrait. */
@media(max-width:730px){
 .cat-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .cat-profile-card{border-radius:14px;box-shadow:0 5px 17px rgba(45,75,53,.09)}
 .cat-profile-card .cat-profile-image{height:auto;aspect-ratio:1 / 1}
 .cat-profile-info{gap:6px;padding:10px}
 .cat-profile-info strong{font-size:clamp(16px,4.2vw,21px);line-height:1.15;overflow-wrap:anywhere}
 .cat-profile-info>span:not(.cat-profile-tag){font-size:11px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 .cat-profile-tag{padding:4px 7px;font-size:9.5px}
 .cat-profile-info>b{font-size:10.5px;margin-top:auto;padding-top:4px}
 .cat-list-section{margin:25px 0 33px}
 .cat-list-section h2{margin-bottom:13px}
 .v8-gallery-head{gap:10px}
 .v8-gallery-nav{align-items:center;gap:7px;flex-wrap:nowrap}
 .v8-gallery-nav button{width:40px;height:40px;min-width:40px}
 .v8-gallery-progress{white-space:nowrap;font-size:11px;min-width:48px;text-align:center;color:#546951;font-variant-numeric:tabular-nums}
 .v8-slides{gap:10px;padding-inline:10px;padding-bottom:11px;scroll-padding-inline:10px;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
 #v8-slides .v8-slide{flex:0 0 min(295px,calc(100% - 36px));height:315px;scroll-snap-align:start;border-radius:15px}
 #v8-slides .v8-slide>div{padding:9px 13px;min-height:64px}
 #v8-slides .v8-slide>img{height:calc(100% - 64px)}
 #v8-slides .v8-slide strong{font-size:21px}
}
.v8-gallery-nav button:disabled{opacity:.35;cursor:not-allowed}
.v8-gallery-progress{white-space:nowrap;font-size:12px;color:#566d59;font-variant-numeric:tabular-nums;min-width:49px;text-align:center}
@media(max-width:360px){
 .booking-step-one .guest-control .counter button{width:31px;height:31px;min-width:31px}
 .booking-step-one .date-nav span{min-width:90px;font-size:11px}
 .booking-step-one .booking-mini-next{min-width:95px;padding-inline:10px}
 .booking-step-one .booking-mini-copy>strong{font-size:20px}
}
@media(prefers-reduced-motion:reduce){
 .booking-combo-options,.booking-summary-mini,.v8-slides{scroll-behavior:auto}
}


/* Tickets are part of the booking journey, not the drinks & cake catalogue. */
.booking-fare-strip {
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:12px 20px;
  margin:0 0 22px;
  padding:13px 18px;
  border:1px solid #dfe7d9;
  border-radius:17px;
  background:#f7f9f2;
}
.booking-fare-items {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:9px 18px;
}
.booking-fare-items>span {
  display:flex;
  align-items:baseline;
  gap:6px;
  white-space:nowrap;
}
.booking-fare-items small {font-size:11px;color:#657664}
.booking-fare-items strong {font-size:14px;color:#3f5c40;font-variant-numeric:tabular-nums}
.booking-fare-details {
  font-size:12px;
  line-height:1.5;
  font-weight:700;
  color:#426643;
  text-underline-offset:4px;
}
.booking-fare-details:hover {color:#314e34}
.booking-section .v9-ticket-packages {
  margin:clamp(34px,5vw,66px) 0 0;
}
.booking-section .v10-weekly-full-terms {margin:24px 0 0}
.booking-standard-action {margin:16px 2px 0}
.booking-standard-action a {
  color:#3f6543;
  font-size:12px;
  font-weight:700;
  text-underline-offset:4px;
}
.v9-menu-booking-link {
  margin:0 0 25px;
  font-size:13px;
  line-height:1.75;
}
.v9-menu-booking-link a {color:#4a6848;text-underline-offset:4px}
#v9-ticket-packages,#weekly-pass-terms,#booking-root {scroll-margin-top:105px}
@media(max-width:790px) {
  .booking-fare-strip {padding:13px 14px;margin-bottom:18px;align-items:flex-start}
  .booking-fare-items {gap:7px 14px}
  .booking-fare-items>span {gap:5px}
  .booking-fare-items small {font-size:10.5px}
  .booking-fare-items strong {font-size:13px}
  .booking-fare-details {font-size:11.5px}
  .booking-section .v9-ticket-packages {margin-top:34px}
  .booking-section .v10-weekly-full-terms {padding:25px 19px 20px}
}


/* Four-digit email verification: stable layout, one field, no verify button. */
.booking-step-two .otp-card {
  display:grid;
  gap:18px;
  margin:20px 0 15px;
  padding:clamp(17px,2.8vw,24px);
  border:1px solid #d2dfcf;
  border-radius:20px;
  background:linear-gradient(145deg,#f7faf3 0%,#eef3e7 100%);
  box-shadow:0 12px 30px rgba(41,66,47,.05);
  transition:border-color .2s ease,background .2s ease;
}
.otp-heading {
  display:flex;
  align-items:flex-start;
  gap:13px;
}
.otp-envelope {
  display:grid;
  place-items:center;
  flex:0 0 39px;
  height:39px;
  border-radius:12px;
  color:#526b4d;
  background:#e1eadb;
  font:normal 20px/1 sans-serif;
}
.otp-heading>div {flex:1;min-width:0}
.otp-heading strong {
  display:block;
  color:#324c39;
  font-weight:720;
  font-size:clamp(15px,1.65vw,18px);
  margin-bottom:5px;
}
.otp-heading p {
  color:#617662;
  font-size:12.5px;
  line-height:1.7;
  margin:0;
  max-width:58ch;
}
.v8-otp-actions.otp-actions {
  margin:0;
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:15px 24px;
}
.otp-actions .otp-send-button {
  flex:0 1 auto;
  min-height:49px;
  padding:11px 18px;
  border-radius:12px;
  font-size:13px;
  font-weight:680;
  white-space:normal;
  text-align:center;
  max-width:100%;
}
.otp-actions .otp-send-button[hidden],
.otp-lookup-retry[hidden] {display:none!important}
.otp-actions .otp-send-button:disabled {opacity:.65;cursor:default}
.otp-code-entry {
  min-width:0;
  display:flex;
  flex:1 1 185px;
  flex-direction:column;
  gap:6px;
}
.otp-code-entry label {
  font-size:12px;
  font-weight:650;
  color:#425c43;
  line-height:1.5;
}
.otp-code-entry input {
  box-sizing:border-box;
  width:min(100%,196px);
  min-width:0;
  min-height:52px;
  padding:10px 13px;
  border:1px solid #b8cbb3;
  border-radius:12px;
  outline-offset:2px;
  background:#fff;
  color:#314c38;
  text-align:center;
  font:700 25px/1.1 system-ui,-apple-system,sans-serif;
  letter-spacing:.33em;
  font-variant-numeric:tabular-nums;
  transition:border-color .2s ease,box-shadow .2s ease;
}
.otp-code-entry input::placeholder {color:#b9c6b8;letter-spacing:.22em}
.otp-code-entry input:focus-visible {
  outline:2px solid #849d7e;
  border-color:#80977b;
  box-shadow:0 0 0 4px rgba(112,143,109,.10);
}
.otp-code-entry input:disabled {background:#f6f7f3;color:#82917d}
.otp-code-entry input[aria-invalid="true"] {border-color:#b9786c}
.otp-code-entry small {
  color:#798b78;
  font-size:11px;
  line-height:1.6;
  max-width:45ch;
}
.otp-feedback {display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap}
.otp-feedback .v8-otp-status,
.otp-manage-actions ~ .v8-otp-status {
  margin:0;
  color:#4f6851;
  font-size:12px;
  line-height:1.7;
  overflow-wrap:anywhere;
}
.otp-feedback .v8-otp-status.is-error,
.v8-manage-lookup .v8-otp-status.is-error {color:#9d4b40}
.otp-expiry {
  display:inline-block;
  flex-shrink:0;
  color:#526d52;
  font-size:11px;
  font-weight:700;
  letter-spacing:.02em;
  font-variant-numeric:tabular-nums;
}
.otp-expiry:empty {display:none}
.otp-return-tip {
  border-top:1px solid #e1e9dc;
  margin:0;
  padding-top:13px;
  font-size:11.5px;
  line-height:1.65;
  color:#697f67;
}
.otp-card.otp-is-verified {
  border-color:#a6c4a1;
  background:#f2f8ef;
}
.otp-card.otp-is-verified .otp-envelope {
  color:#34683b;
  background:#d9ead6;
}
.otp-card.otp-has-error {border-color:#d9aca2}
.v8-manage-lookup .otp-manage-actions {
  padding:15px 14px;
  border-radius:14px;
  border:1px solid #e0e8dc;
  background:#f6f8f2;
  margin:13px 0;
}
.v8-manage-lookup .otp-code-entry input {max-width:196px}
.otp-lookup-retry {
  margin-top:8px;
  padding:10px 12px;
  border:1px solid #a9bea1;
  border-radius:10px;
  color:#446344;
  background:#fff;
  cursor:pointer;
  font-size:12px;
  font-weight:700;
}
@media(max-width:600px){
  .booking-step-two .otp-card {gap:14px;margin:16px 0;padding:16px;border-radius:16px}
  .otp-heading {gap:11px}
  .otp-envelope {flex-basis:35px;height:35px}
  .otp-heading p {font-size:12px}
  .v8-otp-actions.otp-actions {gap:12px}
  .otp-actions .otp-send-button {min-height:46px;width:100%}
  .otp-code-entry {flex-basis:100%}
  .otp-code-entry input {width:100%;max-width:196px;min-height:54px}
  .v8-manage-lookup .otp-manage-actions {padding:13px}
}
@media(prefers-reduced-motion:reduce){
  .booking-step-two .otp-card,.otp-code-entry input {transition:none}
}

/* Visit-related service emails: discreet factual notice, never an opt-in field. */
.booking-service-email-note{
  margin:10px 0 18px;
  padding:0 2px;
  color:#667862;
  font-size:12px;
  line-height:1.75;
}
@media(max-width:600px){.booking-service-email-note{font-size:11.5px}}


/* V49: the compact send action shares the same baseline as the code field. */
.otp-card .otp-actions,.v8-manage-lookup .otp-manage-actions{display:block;margin:0}
.otp-card .otp-code-entry,.v8-manage-lookup .otp-code-entry{display:block;min-width:0}
.otp-card .otp-code-entry>label,.v8-manage-lookup .otp-code-entry>label{display:block;margin:0 0 8px;font-weight:650;font-size:12px}
.otp-code-row{display:grid;grid-template-columns:minmax(0,194px) minmax(98px,125px);align-items:stretch;justify-content:start;gap:9px;width:100%;max-width:100%}
.otp-card .otp-code-row input,.v8-manage-lookup .otp-code-row input{display:block;width:100%;height:48px;min-height:48px;max-width:100%;margin:0;padding:9px 8px;border-radius:11px;font-size:23px}
.otp-actions .otp-code-row .otp-send-button,.v8-otp-actions .otp-code-row [data-v8^="otp-send"]{display:block;box-sizing:border-box;width:100%;max-width:100%;height:48px;min-height:48px;margin:0;padding:8px 9px;font-size:11.5px;line-height:1.25;font-weight:700;border-radius:11px;text-align:center;white-space:normal}
.otp-card .otp-heading{margin-bottom:0}
.otp-card .otp-heading strong{margin-bottom:0}
@media(max-width:390px){.otp-code-row{grid-template-columns:minmax(0,1.35fr) minmax(104px,1fr);gap:7px}.otp-actions .otp-code-row .otp-send-button{font-size:11px;padding:7px 5px}}

/* Keep customer fields readable and avoid Safari focus zoom on phones. */
@media(max-width:730px){
 .booking-step-two .form-field input,
 .booking-step-two .form-field select,
 .booking-step-two .form-field textarea,
 .v8-manage-lookup input,
 .v8-manage-lookup select,
 #v8-manage-ref-form input,
 #reschedule-form input,
 #reschedule-form select,
 #guest-details-form input,
 #guest-details-form select,
 #guest-details-form textarea,
 #waitlist-form input,
 #waitlist-form select,
 #waitlist-form textarea,
 #cat-adoption-form input,
 #cat-adoption-form select,
 #cat-adoption-form textarea,
 #faq-search{font-size:16px}
}

.booking-gift-field{padding:16px;border:1px solid #d5ddc9;border-radius:14px;background:#f7f8f0;margin:18px 0}.booking-gift-field summary{font-weight:600;cursor:pointer}.booking-gift-field p{font-size:14px;line-height:1.65}.booking-gift-field .form-grid{margin-top:14px}.booking-gift-status{overflow-wrap:anywhere}

/* Gift booking: exact-ticket choice and safe account balance are readable
   on phone, iPad and desktop without introducing another checkout workflow. */
.booking-gift-field{min-width:0;padding:clamp(17px,2.3vw,24px);border:1px solid #d9e3d3;
 border-radius:17px;background:#f6f8f1;margin:18px 0 22px}
.booking-gift-field[open]{background:#f7faf4;box-shadow:0 8px 26px #304c3410}
.booking-gift-field summary{min-height:40px;display:flex;align-items:center;
 font-size:15px;line-height:1.55;color:#354e3d;font-weight:700}
.booking-gift-field summary:focus-visible{outline:3px solid #89a78e;outline-offset:3px;border-radius:6px}
.booking-gift-field .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.booking-gift-field .form-field{min-width:0}
.booking-gift-field .gift-product-picker:not([hidden]){border:1px solid #d7e3d3;
 background:#fffefa;border-radius:12px;padding:12px 14px;margin:13px 0}
.booking-gift-field .gift-product-picker select{width:100%;min-height:46px}
.booking-gift-field [data-act="gift-check"]{min-height:44px;border-radius:11px;margin-top:7px}
.booking-gift-field .booking-gift-status{color:#345741;background:#eaf3e8;
 border:1px solid #dce8d9;border-radius:11px;padding:12px 14px;min-height:45px;
 font-size:13px;line-height:1.7;margin:12px 0 0;overflow-wrap:anywhere}
.booking-gift-field .booking-gift-status:empty{display:none}
.booking-gift-field .booking-gift-status a{color:#285b43;text-underline-offset:3px;font-weight:700}
@media(max-width:560px){.booking-gift-field{padding:16px}.booking-gift-field .form-grid{grid-template-columns:minmax(0,1fr)}}


/* Reading and form layout consistency for guest booking / managing visits. */
.site-page[data-show~="booking"] .booking-intro p,
.site-page[data-show~="manage"] .booking-intro p{line-height:1.75;max-width:72ch}
.booking-section .booking-help,
.booking-section .booking-note,
.booking-section .help{line-height:1.65;overflow-wrap:anywhere}
.booking-section input,
.booking-section select,
.booking-section textarea{min-width:0;max-width:100%}
.booking-section :is(label,.form-label){line-height:1.5}
.booking-section [role=alert],
.booking-section .error{line-height:1.65;overflow-wrap:anywhere}
.visit-essentials :is(p,li){line-height:1.7}
.v9-ticket-packages :is(p,li),.v10-weekly-full-terms :is(p,li){line-height:1.7}
#faq .faq-answer,#faq .faq-answer p{line-height:1.78;overflow-wrap:anywhere}
@media(max-width:720px){
 .booking-section :is(input,select,textarea){font-size:16px}
 .booking-section :is(button,[role=button]){touch-action:manipulation}
 .visit-essentials :is(p,li){line-height:1.65}
}

.followup-optin{display:flex;align-items:flex-start;gap:12px;margin:20px 0;font-size:14px;line-height:1.7;cursor:pointer}
.followup-optin input{flex:0 0 auto;width:22px;height:22px;margin:3px 0;accent-color:#747D5D}
.date-button:disabled{opacity:.35;cursor:not-allowed;background:#eee}
.location-step p,.footer-parking,.new-location-copy p{font-size:max(13px,.85rem)}
.review-highlights{padding:44px 28px;margin:38px auto;background:#f0f1e9;border-radius:20px;max-width:820px;color:#30362B}
.review-highlights blockquote{font-family:Georgia,serif;font-size:clamp(20px,3vw,26px);line-height:1.65;margin:20px 0;min-height:130px;white-space:pre-line}
.review-highlights cite{font:14px Arial,sans-serif;line-height:1.8}
.review-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:20px}
.review-controls button{min-width:44px;min-height:44px;border:1px solid #747D5D;border-radius:8px;background:#fff;color:#30362B;padding:8px 12px;cursor:pointer}
.review-highlights a{display:inline-block;color:#4c573a;margin-top:20px;text-underline-offset:4px}
.footer-extra{display:flex;gap:18px;flex-wrap:wrap;padding:20px 0;line-height:1.8;font-size:14px}
.footer-extra a{color:inherit;text-decoration:none}
.review-highlights[hidden]{display:none}

.hours-break{display:block;font-size:13px;font-weight:400;color:#626b52;margin:4px 0}
/* Quiet editorial review strip; no extra font download. */
.review-highlights{max-width:760px;padding:22px 28px;margin:28px auto;background:rgba(116,125,93,.055);border:1px solid rgba(116,125,93,.12);border-radius:16px}
.review-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;letter-spacing:.09em;color:#65704f}
.review-heading a{margin:0;font-size:12px;letter-spacing:0;text-underline-offset:3px}
.review-copy{display:flex;flex-direction:column;justify-content:center;min-height:132px;padding:12px 0 0}
.review-highlights blockquote{font-family:'Fraunces','Noto Serif SC',Georgia,serif;font-weight:400;font-size:clamp(18px,2.2vw,21px);line-height:1.55;min-height:0;margin:0 0 10px;white-space:normal;color:#46503c}
.review-highlights cite{font:12px/1.6 'DM Sans',sans-serif;color:#626957}
.hero .location-pin-card{max-width:146px}
.hero .location-pin-card small{font-size:12px;letter-spacing:0;line-height:1.45}
.hero .new-location-small{font-size:13px;line-height:1.6}
.footer-parking p,.footer-visit p,.location-step p{font-size:14px;line-height:1.8}

@media(max-width:600px){.review-highlights{width:calc(100% - 32px);padding:18px 20px;margin:22px auto}.review-copy{min-height:158px}.review-heading{flex-wrap:wrap;gap:6px}.hero .location-pin-card small{font-size:12px}.hero .new-location-levels strong{font-size:13px}}
@media(prefers-reduced-motion:reduce){.review-copy{transform:none!important;opacity:1!important}}

/* Underline the text, not the bottom edge of the mobile touch target. */
.footer-parking a,.footer-visit-links a{border-bottom:0;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px;align-items:center;line-height:1.6;min-height:44px;padding-block:8px}
.footer-visit-links{display:flex;align-items:center;flex-wrap:wrap;gap:4px 18px}
.footer-visit-links a{margin-right:0}
.footer-parking p{font-size:14px!important;line-height:1.8}

/* One footer typography and spacing system, shared by both languages. */
.footer-refined{background:#434d37;color:#f5f3e9;padding:0;border-top:0;font-family:var(--catfe-font-body)}
.footer-refined .shell{max-width:1180px}
.footer-masthead{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:38px 0 30px;border-bottom:1px solid #70795f}
.footer-identity{display:flex;align-items:center;gap:15px;color:inherit;text-decoration:none}
.footer-identity img{width:64px;height:64px;object-fit:contain;background:transparent;border-radius:0;padding:0;box-shadow:none}
.footer-identity strong{font-family:var(--catfe-font-display);font-size:29px;line-height:1.2;font-weight:500;letter-spacing:-.02em;display:block}
.footer-identity strong span{font-family:var(--catfe-font-body);font-size:23px}
.footer-identity small{display:block;font-size:10px;letter-spacing:.12em;line-height:1.7;margin-top:7px;color:#d8ddcc}
.footer-refined .footer-book{color:#fffdf5;text-decoration:none;border:1px solid #a8b291;border-radius:8px;padding:12px 20px;font-size:14px;font-weight:500;line-height:1.5;flex-shrink:0}
.footer-refined .footer-book:hover{background:#566246}
.footer-refined .footer-directory{display:grid;grid-template-columns:1fr .85fr 1.25fr;gap:64px;padding:32px 0 34px}
.footer-refined .footer-directory h2{font-family:var(--catfe-font-body);font-size:15px;line-height:1.5;font-weight:600;letter-spacing:.02em;margin:0 0 18px;color:#fffdf5}
.footer-refined .footer-directory a{display:block;width:fit-content;color:#edf0e3;text-decoration:none;font-size:14px;line-height:1.7;margin:0 0 10px;text-underline-offset:4px}
.footer-refined .footer-directory a:hover{text-decoration:underline}
.footer-refined .footer-directory .footer-phone{font-size:20px;font-weight:500;letter-spacing:.025em;line-height:1.5;margin-bottom:10px;font-variant-numeric:tabular-nums}
.footer-refined .footer-directory address{font-style:normal;font-size:14px;line-height:1.7;margin-top:20px;color:#edf0e3}
.footer-refined .footer-directory p{font-family:var(--catfe-font-body);font-size:13px;font-weight:400;line-height:1.75;color:#d8ddcc;margin:10px 0 14px}
.footer-hour-line{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:baseline;font-size:14px;line-height:1.8;padding:4px 0}
.footer-hour-line strong{font-weight:400;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.footer-refined .footer-directory .footer-session-break{margin-top:14px;padding-top:12px;border-top:1px solid #70795f;color:#e8ecdf}
.footer-refined .footer-directory .footer-hours-note{max-width:350px;margin:10px 0}
.footer-connect{display:flex;align-items:center;gap:26px;padding:20px 0;border-top:1px solid #70795f;font-size:13px;line-height:1.7;color:#d8ddcc}
.footer-connect>div{display:flex;gap:24px;flex-wrap:wrap}
.footer-connect a{font-size:14px;text-decoration:none;color:#f5f3e9;text-underline-offset:4px;padding:6px 0}
.footer-connect a:hover{text-decoration:underline}
.footer-motto{margin-left:auto}
.footer-refined .foot-flex{display:flex;align-items:center;justify-content:space-between;margin:0;padding:18px 0 24px;border-top:1px solid #70795f;color:#d8ddcc;font-family:var(--catfe-font-body);font-size:12px;line-height:1.7}
.footer-refined .foot-admin{font-family:var(--catfe-font-body);font-size:12px;color:#d8ddcc;padding:8px 0;min-height:40px;cursor:pointer}
.footer-refined a:focus-visible,.footer-refined button:focus-visible{outline:2px solid #f1dba9;outline-offset:5px}
/* Bring the adjoining map section into the same quieter hierarchy. */
.footer-visit{padding:42px 0;background:#f0f2e9}
.footer-visit h2{font-size:clamp(28px,3.2vw,40px);line-height:1.3;margin:12px 0 18px}
.footer-visit p:not(.v8-kicker){font-size:14px;line-height:1.8}
.footer-visit .footer-map-frame{height:340px;border-radius:18px;box-shadow:none}
@media(max-width:1000px){.footer-refined .footer-directory{gap:32px;grid-template-columns:1fr 1fr}.footer-hours-section{grid-column:1/-1;max-width:460px;width:100%}.footer-masthead{gap:20px}.footer-identity small{letter-spacing:.05em}}
@media(max-width:600px){.footer-masthead{align-items:flex-start;flex-direction:column;padding:28px 0;gap:24px}.footer-identity img{width:56px;height:56px}.footer-identity strong{font-size:27px}.footer-identity small{font-size:10px}.footer-refined .footer-book{width:100%;text-align:center;min-height:46px}.footer-refined .footer-directory{grid-template-columns:1fr;gap:28px;padding:28px 0}.footer-refined .footer-directory h2{font-size:15px;margin-bottom:14px}.footer-refined .footer-directory nav{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;border-block:1px solid #70795f;padding:26px 0}.footer-directory nav h2{grid-column:1/-1}.footer-refined .footer-directory nav a{margin:0;min-height:40px;display:flex;align-items:center}.footer-hours-section{grid-column:auto;max-width:none}.footer-hour-line{font-size:13px;gap:10px}.footer-connect{flex-wrap:wrap;gap:10px 20px;padding:20px 0}.footer-connect>span:first-child{width:100%}.footer-motto{margin-left:auto;font-size:12px}.footer-connect>div{gap:20px}.footer-refined .foot-flex{flex-direction:row;align-items:center;padding:14px 0 26px;gap:16px}.footer-visit{padding:30px 0}.footer-visit .footer-map-frame{height:290px}.footer-visit h2{font-size:28px}}

/* Keep weekday ranges and times aligned in every row, including Mon–Thu. */
.footer-hour-line{grid-template-columns:7rem minmax(0,1fr);column-gap:18px}
.footer-hour-line>span{white-space:nowrap;word-break:keep-all}
.footer-hour-line>strong{font-variant-numeric:tabular-nums;font-weight:500;overflow-wrap:normal;word-break:normal}
@media(max-width:600px){.footer-hour-line{grid-template-columns:6.5rem minmax(0,1fr);column-gap:12px;line-height:1.9}}

.review-highlights.shell {
  max-width: 1010px;
  margin-top: clamp(14px, 3vw, 34px);
  margin-bottom: clamp(38px, 5vw, 66px);
  padding: clamp(24px, 4vw, 42px) clamp(22px, 5vw, 55px);
  border: 1px solid #e3e6da;
  border-radius: 25px;
  background: linear-gradient(135deg, #f6f5ee, #eff1e6);
  box-shadow: 0 12px 38px rgba(59,70,49,.07);
}
.review-highlights[hidden] {display:none!important}
.review-heading {
  display:flex; flex-wrap:wrap; justify-content:space-between;
  align-items:center; gap:12px 24px; margin-bottom:21px;
}
.review-heading span {
  font:600 11px/1.5 system-ui,sans-serif;
  letter-spacing:.17em; color:#7b826d;
}
.review-heading a {
  font-size:12px; font-weight:600;
  color:#52694e; text-decoration:none; text-underline-offset:4px;
}
.review-heading a:hover,.review-heading a:focus-visible{text-decoration:underline}
.review-stars {
  margin:0 0 15px; font-size:15px; line-height:1.3;
  color:#b29860; letter-spacing:5px;
}
.review-copy {
  min-height:155px; display:flex; flex-direction:column;
  justify-content:center; gap:18px;
}
.review-copy blockquote {
  max-width:840px; margin:0;
  font:400 clamp(19px,2.3vw,27px)/1.55 Georgia,'Times New Roman',serif;
  letter-spacing:-.01em; color:#42543e; overflow-wrap:anywhere;
}
.review-copy cite {
  font-style:normal; font-size:12px; font-weight:550;
  line-height:1.6; color:#798174;
}
.review-source-note {
  margin:17px 0 0; font-size:11px; line-height:1.6; color:#899084;
}
@media(max-width:700px) {
  .review-highlights.shell {
    padding:24px 21px 25px; margin-top:10px;
    border-radius:19px;
  }
  .review-heading{margin-bottom:20px}
  .review-copy{min-height:185px;gap:15px}
  .review-copy blockquote{font-size:clamp(18px,5vw,23px);line-height:1.56}
  .review-source-note{margin-top:14px}
}

.catfe-confirm-backdrop{position:fixed;inset:0;z-index:100000;background:rgba(31,52,40,.58);display:grid;place-items:center;padding:20px;box-sizing:border-box;backdrop-filter:blur(3px)}
.catfe-confirm-panel textarea{display:block;width:100%;box-sizing:border-box;border:1px solid #cdd6c7;border-radius:12px;background:#fffef8;color:#344b3c;padding:12px;font:inherit;margin:0 0 20px;resize:vertical}
.catfe-confirm-panel{background:#fffef8;color:#2e422f;border:1px solid #dce2d3;border-radius:24px;box-shadow:0 24px 70px #172e3740;padding:28px;width:min(100%,480px);max-height:calc(100dvh - 40px);overflow:auto;box-sizing:border-box;font:16px/1.8 Arial,"Microsoft YaHei",sans-serif}
.catfe-confirm-panel h2{font:normal 28px/1.3 Georgia,serif;margin:0 0 16px}.catfe-confirm-panel p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 24px}.catfe-confirm-actions{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap}.catfe-confirm-actions button{min-height:46px;border-radius:24px;padding:10px 20px;font:700 14px/1.5 Arial,sans-serif;cursor:pointer}.catfe-confirm-cancel{background:#fffef8;color:#344b3c;border:1px solid #cdd6c7}.catfe-confirm-accept{background:#344b3c;color:#fff;border:1px solid #344b3c}.catfe-confirm-actions button:focus-visible{outline:3px solid #bc965a;outline-offset:3px}

/* Gift discovery: warm stationery, generous type and a clear choice of format. */
#gift-store-details[hidden],#gift-digital-details[hidden]{display:none}
.gift-editorial{position:relative;display:grid;grid-template-columns:1.05fr 1fr;gap:26px 45px;padding:58px 54px 0;background:#eeeede;border:1px solid #dfdfcc;border-radius:28px;overflow:hidden;isolation:isolate}
.gift-editorial::before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 70% 10%,#faf8eb 0,transparent 62%);pointer-events:none}
.gift-editorial-copy{position:relative;z-index:2;padding:8px 0 25px;align-self:center}
.gift-editorial-copy .v8-kicker{font-size:10px;letter-spacing:2px;color:#7a805f}
.gift-editorial h2{font:500 clamp(32px,3.6vw,49px)/1.2 'Fraunces','Noto Serif SC',Georgia,serif;letter-spacing:-1.2px;color:#344b3c;margin:18px 0 22px;max-width:570px}
.gift-editorial-intro{max-width:460px;font-size:15px;line-height:1.95;color:#68715e;margin:0 0 26px}
.gift-editorial-actions{display:flex;align-items:center;flex-wrap:wrap;gap:18px 24px}
.gift-store-link{font-size:12px;color:#586347;text-decoration:none;border-bottom:1px solid #9ca98e;padding:7px 0;text-underline-offset:5px}
.gift-store-link:hover{color:#233b2d;border-color:currentColor}
.gift-editorial-details{display:flex;gap:13px;flex-wrap:wrap;font-size:10px;color:#7a8069;margin-top:22px}
.gift-editorial-details span+span::before{content:'·';margin-right:13px}
.gift-postal-scene{min-width:0;min-height:355px;position:relative;display:grid;place-items:center;padding:25px 0 52px}
.gift-postal-orbit{position:absolute;width:360px;max-width:100%;aspect-ratio:1;background:#d8dfcb;border-radius:50%;top:0;right:-15px;opacity:.65}
.gift-postal-spark{position:absolute;color:#a58a54;line-height:1}.gift-spark-one{top:15px;left:5px;font-size:36px;transform:rotate(15deg)}.gift-spark-two{bottom:67px;right:-8px;font-size:30px}
.gift-envelope{position:absolute;width:88%;height:235px;left:2%;top:90px;border-radius:8px;background:#d2ba91;border:1px solid #bea67e;transform:rotate(-11deg);box-shadow:0 18px 35px #5f674420;overflow:hidden}
.gift-envelope::before,.gift-envelope::after{content:'';position:absolute;inset:0;background:linear-gradient(32deg,transparent 49.7%,#c4aa81 50%,transparent 50.3%),linear-gradient(-32deg,transparent 49.7%,#c4aa81 50%,transparent 50.3%);opacity:.7}
.gift-envelope span{position:absolute;bottom:16px;left:22px;letter-spacing:2px;font:8px Arial;color:#776445}
.gift-postcard{width:100%;max-width:365px;position:relative;transform:rotate(6deg);background:#fffaf0;color:#3e4e39;border-radius:10px;border:1px solid #d5c6a9;box-shadow:0 16px 45px #344b3c26;overflow:hidden}
.gift-postcard-top{display:flex;align-items:center;gap:10px;padding:20px 23px 15px}.gift-postcard-top img{width:40px;height:40px;object-fit:contain}.gift-postcard-top>span:not(.gift-postal-seal){font:9px/1.7 Arial;letter-spacing:1.5px}
.gift-postal-seal{margin-left:auto;border:1px solid #ad9360;outline:1px dashed #c3af8b;outline-offset:4px;padding:6px;color:#9b8155;text-align:center;font:9px/1.6 Georgia;transform:rotate(8deg)}
.gift-postcard-main{position:relative;min-height:158px;padding:22px 28px 26px;background:#e8eddd;border-top:1px solid #d8dec9;border-bottom:1px solid #d8dec9}
.gift-postcard-kicker{display:block;font:8px Arial;letter-spacing:2px;color:#738362;margin-bottom:13px}.gift-postcard-main strong{position:relative;display:block;z-index:1;max-width:250px;font:500 32px/1.15 'Fraunces','Noto Serif SC',Georgia,serif}
.gift-postcard-flower{position:absolute;right:-5px;bottom:-30px;color:#d2ddbf;font-size:140px;line-height:1;transform:rotate(-12deg)}
.gift-postcard-bottom{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:17px 23px;color:#8a7959;font:italic 14px Georgia}.gift-postcard-bottom span+span{font:7px Arial;letter-spacing:1.5px}
.gift-postal-caption{position:absolute;bottom:11px;left:0;right:0;text-align:center;transform:rotate(-4deg);font:italic 15px 'Fraunces',Georgia,serif;color:#718065}
.gift-editorial-foot{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;border-top:1px solid #d5d9c6;padding:24px 0 26px;margin-top:6px}
.gift-editorial-foot>div{display:flex;gap:12px;align-items:flex-start}.gift-editorial-foot>div>span{font:italic 17px Georgia;color:#aa9162;margin-top:2px}.gift-editorial-foot p{margin:0}.gift-editorial-foot strong{display:block;font-size:12px;line-height:1.6;color:#3d503a}.gift-editorial-foot small{display:block;font-size:10px;line-height:1.7;color:#7c826d;margin-top:3px}
.gift-format-picker{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:28px 0 30px}
.gift-format-option{position:relative;display:flex;align-items:center;justify-content:flex-start;text-align:left;gap:16px;width:100%;padding:21px 22px;border-radius:18px;border:1px solid #dddeda;background:#fffdf8;color:#65705e;font-weight:400;min-height:112px;transition:background .18s,border-color .18s,box-shadow .18s}
.gift-format-option:hover{border-color:#9da98e;background:#f6f7ee}.gift-format-option[aria-pressed=true]{border-color:#708362;background:#edf2e5;box-shadow:inset 0 0 0 1px #708362}
.gift-format-icon{flex:0 0 46px;width:46px;height:46px;display:grid;place-items:center;border-radius:50%;background:#fffdf7;color:#8e7956}.gift-format-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.4}
.gift-format-option strong{display:block;font-size:16px;color:#344b3c;margin-bottom:5px}.gift-format-option small{display:block;font-size:12px;font-weight:400;line-height:1.65}.gift-format-check{margin-left:auto;flex:none;border-radius:50%;border:1px solid #a2b18f;width:22px;height:22px;display:grid;place-items:center;font-size:12px;color:transparent}.gift-format-option[aria-pressed=true] .gift-format-check{background:#425a3c;border-color:#425a3c;color:white}
.gift-store-panel{display:grid;grid-template-columns:.8fr 1.2fr;border:1px solid #dce1d1;background:#f0f0e4;border-radius:24px;margin:12px 0 34px;overflow:hidden}
.gift-store-art{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:40px 30px;background:#e0e5d2;position:relative;min-height:350px}.gift-store-art img{width:78px;height:78px;object-fit:contain}.gift-store-paper{padding:25px 32px;text-align:center;border:1px solid #c4b389;outline:5px solid #fffcf1;outline-offset:5px;background:#fffcf1;box-shadow:0 15px 26px #344b3c16;transform:rotate(-6deg);max-width:100%}.gift-store-paper strong{display:block;font:28px/1.3 'Fraunces','Noto Serif SC',Georgia,serif}.gift-store-paper small{display:block;font-size:9px;letter-spacing:2px;margin-top:15px;color:#9b8155}
.gift-store-content{padding:40px}.gift-store-content h2{font:36px/1.25 'Fraunces','Noto Serif SC',Georgia,serif;max-width:420px}.gift-store-content>p{color:#68715e;font-size:14px;line-height:1.9}.gift-store-location{border-top:1px solid #d4d9c5;padding-top:18px;margin-top:22px}.gift-store-location strong{display:block;color:#344b3c;font-size:15px}.gift-store-location small{display:block;font-size:12px;line-height:1.8;color:#727b69;margin:5px 0 17px}.gift-store-actions{display:flex;flex-wrap:wrap;gap:12px}.gift-store-actions a{font-size:12px}.gift-store-content .gift-store-note{font-size:11px;line-height:1.8;margin:18px 0 0;color:#79816f}
@media(max-width:900px){.gift-editorial{padding:38px 30px 0;gap:20px 25px}.gift-editorial h2{font-size:36px}.gift-postal-scene{min-height:315px}.gift-postcard-main strong{font-size:27px}.gift-envelope{height:215px}.gift-postcard-top{padding:16px}.gift-postcard-bottom{padding:15px}.gift-store-content{padding:30px}}
@media(max-width:680px){.gift-editorial{grid-template-columns:1fr;padding:30px 24px 0;border-radius:22px;gap:5px}.gift-editorial h2{font-size:34px;letter-spacing:-.8px}.gift-editorial-intro{font-size:14px}.gift-editorial-copy{padding-bottom:10px}.gift-editorial-actions{gap:15px 20px}.gift-postal-scene{min-height:310px;padding:20px 18px 45px;margin-top:12px}.gift-postcard{max-width:330px}.gift-postal-orbit{width:290px;right:0}.gift-envelope{max-width:325px;left:4%;top:70px}.gift-spark-one{left:0;top:0;font-size:28px}.gift-spark-two{right:0;bottom:48px}.gift-editorial-foot{grid-template-columns:1fr;gap:16px;padding:23px 0}.gift-editorial-foot small{font-size:11px}.gift-editorial-foot strong{font-size:13px}.gift-format-picker{gap:10px;margin-top:22px}.gift-format-option{flex-wrap:wrap;align-content:start;gap:10px;padding:16px 13px;min-height:165px}.gift-format-option>span:not(.gift-format-icon):not(.gift-format-check){flex-basis:100%;order:2}.gift-format-option strong{font-size:15px}.gift-format-check{position:absolute;right:12px;top:16px}.gift-format-icon{width:38px;height:38px;flex-basis:38px}.gift-store-panel{grid-template-columns:1fr}.gift-store-art{min-height:240px;padding:30px}.gift-store-paper{display:flex;align-items:center;gap:20px;padding:16px 22px}.gift-store-paper strong{font-size:25px}.gift-store-art img{width:60px;height:60px}.gift-store-content{padding:28px 24px}.gift-store-content h2{font-size:30px}}
@media(prefers-reduced-motion:reduce){.gift-format-option{transition:none}}

#gift-payment[hidden]{display:none}.gift-payment{max-width:1020px;margin:auto}.gift-payment-heading{max-width:760px;margin:0 auto 28px}.gift-payment-heading h1{font-size:clamp(34px,5vw,52px)}.gift-payment-heading button{font-size:12px;background:transparent}.gift-payment-heading .intro{max-width:650px}#gift-stripe-checkout{padding:16px;background:#faf9f3;border:1px solid #dce2d2;border-radius:24px;min-height:380px}

/* One navigation layout shared by the public site and gift checkout. */
.header{position:sticky;top:0;z-index:90;background:#fafbf6f5;border-bottom:1px solid #e1e5d9;backdrop-filter:blur(14px)}
.header .shell.nav{max-width:1180px;width:calc(100% - 48px);margin:auto;padding:16px 0;display:flex;align-items:center;justify-content:space-between;gap:24px}
.header .brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex-shrink:0;background:none;border:0;padding:0;min-height:0}
.header .brand-mark{display:block;width:49px;height:49px}.header .brand-mark img{display:block;width:49px;height:49px;object-fit:contain;margin:0}
.header .brand-wordmark strong{display:block;font:600 24px/1.15 'Fraunces','Noto Serif SC',Georgia,serif;color:#344b3c;white-space:nowrap;letter-spacing:-.02em}.header .brand-wordmark small{display:block;font:700 9px/1.6 'DM Sans','Catfe CJK Sans',sans-serif;letter-spacing:.12em;color:#68765d}
.header .site-navigation{display:flex;align-items:center;justify-content:flex-end;gap:17px;position:static;background:none;border:0;padding:0;box-shadow:none}
.header .site-navigation :is(a,button){display:inline-flex;align-items:center;color:#485c43;text-decoration:none;font:650 12px/1.5 'DM Sans','Catfe CJK Sans',sans-serif;white-space:nowrap;min-height:36px;padding:0;border:0;border-radius:0;background:transparent}
.header .site-navigation .nav-cta{border-radius:24px;background:#405a2d;color:white;padding:10px 18px;min-height:42px;box-shadow:0 5px 14px #344b3c12}
.header .site-link[aria-current=page]{text-decoration:underline;text-underline-offset:6px}.header .header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}
.header .header-language{border:1px solid #dce1d2;background:#f8f9f0;border-radius:24px;padding:4px;display:flex;align-items:center;gap:2px;min-height:38px;color:#586b4b;font-size:11px;font-weight:700;cursor:pointer}
.header .lang-choice{padding:6px 8px;border-radius:20px;line-height:1}.header [data-active-lang=en] .lang-choice-en,.header [data-active-lang=zh] .lang-choice-zh{background:#3c5839;color:white}.header .lang-divider{display:none}
.header .site-menu-toggle{display:none}.gift-order-view .header .nav-cta{display:none}
@media(max-width:1100px){.header .shell.nav{width:calc(100% - 32px);gap:16px}.header .site-navigation{gap:11px}.header .brand-wordmark strong{font-size:21px}.header .site-navigation :is(a,button){font-size:11px}}
@media(max-width:950px){.header .shell.nav{padding:12px 0}.header .brand-mark,.header .brand-mark img{width:42px;height:42px}.header .site-menu-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #dce1d2;background:#fffef8;border-radius:20px;padding:9px 12px;min-height:40px;color:#40553a;font-size:12px}.header .menu-bars{display:flex;flex-direction:column;gap:4px}.header .menu-bars i{height:1.5px;width:15px;background:currentColor}.header .site-navigation{display:none;position:absolute;left:16px;right:16px;top:calc(100% + 6px);padding:18px;background:#fffef8;border:1px solid #dce1d2;border-radius:18px;box-shadow:0 12px 30px #344b3c20;grid-template-columns:1fr 1fr;gap:8px 16px}.v8-menu-open .header .site-navigation{display:grid}.header .site-navigation :is(a,button){font-size:14px;min-height:42px}.header .site-navigation .nav-cta{justify-content:center}.header .brand-wordmark strong{font-size:21px}}
@media(max-width:390px){.header .brand{gap:7px}.header .brand-wordmark strong{font-size:18px}.header .brand-wordmark small{font-size:8px}.header .brand-mark,.header .brand-mark img{width:36px;height:36px}.header .shell.nav{gap:8px}.header .header-actions{gap:6px}.header .header-language .lang-choice{padding:5px 6px}.header .site-menu-toggle{padding:8px}.header .menu-text{display:none}}
