/* =========================================================
   Swiss Butter London — main stylesheet
   Variables + base live in the inlined critical CSS (header.php)
   ========================================================= */

/* ---------- Layout primitives ---------- */
.sb-wrap{width:100%;max-width:1240px;margin:0 auto;padding:0 clamp(18px,5vw,64px)}
.sb-section{padding:40px 0}
@media(min-width:600px){.sb-section{padding:60px 0}}
@media(min-width:1024px){.sb-section{padding:100px 0}}

.sb-eyebrow{display:inline-block;font-family:'Inter',sans-serif;font-size:.76rem;letter-spacing:.32em;text-transform:uppercase;color:var(--sb-gold);margin-bottom:1rem}
.sb-shead{max-width:720px;margin:0 auto clamp(34px,6vw,64px);text-align:center}
.sb-shead--left{margin-left:0;text-align:left}
.sb-shead h2{font-size:clamp(30px,5vw,52px)}
.sb-shead__sub{color:var(--sb-muted);font-size:1.05rem;margin-top:.6rem}

p{margin:0 0 1rem}
strong{color:var(--sb-cream)}
.sb-link-gold{color:var(--sb-gold);font-weight:600;transition:opacity .25s}
.sb-link-gold:hover{opacity:.8}

/* ---------- Buttons (base in critical) ---------- */
.sb-btn--lg{padding:1.1em 2.2em;font-size:.85rem}

/* ---------- Hero extras ---------- */
.sb-hero__lede{font-size:clamp(1rem,2.4vw,1.3rem);color:var(--sb-text);max-width:560px;margin:1.2rem 0 2rem;opacity:.92}
.sb-hero__actions{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:2.2rem}
.sb-hero__meta{display:flex;flex-wrap:wrap;gap:22px;font-size:.85rem;letter-spacing:.05em;color:var(--sb-cream)}
.sb-hero__meta span{position:relative;padding-left:0}
.sb-hero__meta span:first-child{color:var(--sb-gold);font-weight:600}
.sb-hero__scroll{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);width:26px;height:42px;border:2px solid rgba(244,238,225,.4);border-radius:14px;display:none}
@media(min-width:861px){.sb-hero__scroll{display:block}}
.sb-hero__scroll span{position:absolute;left:50%;top:8px;width:4px;height:8px;background:var(--sb-gold);border-radius:2px;transform:translateX(-50%);animation:sb-scroll 1.6s infinite}
@keyframes sb-scroll{0%{opacity:0;transform:translate(-50%,0)}40%{opacity:1}80%{opacity:0;transform:translate(-50%,12px)}}

/* ---------- Social proof strip ---------- */
.sb-proof{background:var(--sb-charcoal);border-top:1px solid rgba(224,169,75,.14);border-bottom:1px solid rgba(224,169,75,.14)}
.sb-proof__track{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:repeat(2,1fr);gap:0;padding:0 clamp(18px,5vw,64px)}
@media(min-width:861px){.sb-proof__track{grid-template-columns:repeat(4,1fr)}}
.sb-proof__item{text-align:center;padding:28px 14px;border-right:1px solid rgba(244,238,225,.08)}
.sb-proof__item:nth-child(2n){border-right:0}
@media(min-width:861px){.sb-proof__item:nth-child(2n){border-right:1px solid rgba(244,238,225,.08)}.sb-proof__item:last-child{border-right:0}}
.sb-proof__num{display:block;font-family:'Playfair Display',serif;font-size:clamp(26px,4vw,40px);font-weight:800;color:var(--sb-gold);line-height:1}
.sb-proof__label{display:block;margin-top:.5rem;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--sb-muted)}

/* ---------- Menu ---------- */
.sb-menu{background:var(--sb-black)}
.sb-menu__grid{display:grid;gap:clamp(34px,5vw,64px)}
@media(min-width:768px){.sb-menu__grid{grid-template-columns:1fr 1fr}}
@media(min-width:1024px){.sb-menu__grid{grid-template-columns:repeat(3,1fr);align-items:start}}
.sb-menu__group{background:linear-gradient(180deg,rgba(255,255,255,.02),rgba(255,255,255,0));border:1px solid rgba(244,238,225,.08);border-radius:6px;padding:clamp(24px,4vw,38px)}
.sb-menu__gtitle{font-size:1.5rem;color:var(--sb-gold);margin-bottom:.5rem}
.sb-menu__note{font-size:.9rem;color:var(--sb-muted);margin-bottom:1.4rem;font-style:italic}
.sb-menu__list{list-style:none;margin:0;padding:0}
.sb-menu__item{padding:1rem 0;border-bottom:1px dashed rgba(244,238,225,.1)}
.sb-menu__item:last-child{border-bottom:0}
.sb-menu__row{display:flex;align-items:baseline;gap:.6rem}
.sb-menu__name{font-family:'Playfair Display',serif;font-size:1.15rem;color:var(--sb-cream);font-weight:600}
.sb-menu__dots{flex:1;border-bottom:1px dotted rgba(244,238,225,.25);transform:translateY(-3px)}
.sb-menu__price{color:var(--sb-gold);font-weight:600;white-space:nowrap}
.sb-menu__desc{font-size:.92rem;color:var(--sb-muted);margin:.35rem 0 0}
.sb-menu__cta{text-align:center;margin-top:clamp(34px,5vw,56px)}

/* ---------- About ---------- */
.sb-about__grid{display:grid;gap:clamp(34px,6vw,72px);align-items:center}
@media(min-width:861px){.sb-about__grid{grid-template-columns:1fr 1.05fr}}
.sb-about__media{position:relative}
.sb-about__media img{width:100%;border-radius:8px;aspect-ratio:3/2;object-fit:cover;box-shadow:0 30px 60px rgba(0,0,0,.45)}
.sb-about__badge{position:absolute;right:-12px;bottom:-22px;background:var(--sb-gold);color:#1a1303;border-radius:8px;padding:16px 22px;text-align:center;box-shadow:0 14px 30px rgba(0,0,0,.4)}
@media(min-width:861px){.sb-about__badge{right:-28px}}
.sb-about__badge-num{display:block;font-family:'Playfair Display',serif;font-weight:800;font-size:1rem}
.sb-about__badge-label{display:block;font-size:.78rem;font-weight:600;letter-spacing:.04em}
.sb-about__body h2{font-size:clamp(28px,4.4vw,46px)}
.sb-about__body p{color:var(--sb-text);opacity:.9}
.sb-about__sign{margin-top:1.6rem;font-family:'Playfair Display',serif;font-style:italic;font-size:1.2rem;color:var(--sb-gold)}

/* ---------- Cards (shared) ---------- */
.sb-cards{display:grid;grid-template-columns:1fr;gap:22px}
@media(min-width:600px){.sb-cards{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.sb-cards{grid-template-columns:repeat(3,1fr)}}
.sb-card{background:var(--sb-charcoal);border:1px solid rgba(244,238,225,.08);border-radius:8px;padding:clamp(24px,3vw,34px);transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease}
.sb-card:hover{transform:translateY(-6px);border-color:rgba(224,169,75,.5);box-shadow:0 22px 44px rgba(0,0,0,.4)}

/* ---------- Process / USP ---------- */
.sb-usp__num{font-family:'Playfair Display',serif;font-size:2.6rem;font-weight:800;color:rgba(224,169,75,.35);line-height:1;display:block;margin-bottom:.4rem}
.sb-usp h3{font-size:1.4rem}
.sb-usp p{color:var(--sb-muted);margin:0}

/* ---------- Testimonials ---------- */
.sb-tests{background:var(--sb-charcoal)}
.sb-test__stars{color:var(--sb-gold);letter-spacing:2px;margin-bottom:1rem}
.sb-test blockquote{margin:0 0 1.4rem;font-family:'Playfair Display',serif;font-size:1.12rem;font-style:italic;line-height:1.5;color:var(--sb-cream)}
.sb-test figcaption{display:flex;flex-direction:column}
.sb-test__name{font-weight:600;color:var(--sb-text)}
.sb-test__role{font-size:.8rem;color:var(--sb-muted);text-transform:uppercase;letter-spacing:.08em}

/* ---------- Gallery masonry ---------- */
.sb-masonry{column-count:1;column-gap:16px}
@media(min-width:600px){.sb-masonry{column-count:2}}
@media(min-width:1024px){.sb-masonry{column-count:3}}
.sb-masonry__item{position:relative;break-inside:avoid;margin-bottom:16px;border-radius:8px;overflow:hidden}
.sb-masonry__item img{width:100%;display:block;transition:transform .5s ease}
.sb-masonry__item figcaption{position:absolute;left:0;right:0;bottom:0;padding:30px 18px 14px;font-size:.82rem;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.8));opacity:0;transform:translateY(8px);transition:opacity .35s,transform .35s}
.sb-masonry__item:hover img{transform:scale(1.06)}
.sb-masonry__item:hover figcaption{opacity:1;transform:translateY(0)}

/* ---------- FAQ accordion ---------- */
.sb-faq__wrap{max-width:840px}
.sb-accordion{border-top:1px solid rgba(244,238,225,.12)}
.sb-acc__item{border-bottom:1px solid rgba(244,238,225,.12)}
.sb-acc__q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px;background:none;border:0;cursor:pointer;text-align:left;padding:1.3rem 0;font-family:'Playfair Display',serif;font-size:1.12rem;color:var(--sb-cream)}
.sb-acc__icon{position:relative;width:18px;height:18px;flex:0 0 18px}
.sb-acc__icon::before,.sb-acc__icon::after{content:"";position:absolute;background:var(--sb-gold);transition:transform .3s}
.sb-acc__icon::before{top:8px;left:0;width:18px;height:2px}
.sb-acc__icon::after{left:8px;top:0;width:2px;height:18px}
.sb-acc__q[aria-expanded="true"] .sb-acc__icon::after{transform:scaleY(0)}
.sb-acc__a{overflow:hidden;max-height:0;transition:max-height .35s ease}
.sb-acc__a p{color:var(--sb-muted);padding:0 0 1.4rem;margin:0}

/* ---------- Location ---------- */
.sb-loc{background:var(--sb-charcoal)}
.sb-loc__grid{display:grid;gap:clamp(28px,4vw,52px)}
@media(min-width:861px){.sb-loc__grid{grid-template-columns:1fr 1fr;align-items:stretch}}
.sb-loc__info h2{font-size:clamp(26px,3.6vw,40px)}
.sb-loc__addr{color:var(--sb-gold);font-size:1.05rem}
.sb-loc__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:1.6rem}
.sb-loc__map{min-height:340px;border-radius:8px;overflow:hidden;border:1px solid rgba(244,238,225,.12)}
.sb-loc__map iframe{display:block;width:100%;height:100%;min-height:340px;filter:grayscale(.3) contrast(1.05)}

/* ---------- Hours list ---------- */
.sb-hours-list{list-style:none;margin:1.4rem 0 0;padding:0}
.sb-hours-list li{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid rgba(244,238,225,.08);font-size:.92rem}
.sb-hours-list li span:first-child{color:var(--sb-muted)}
.sb-hours-list li span:last-child{color:var(--sb-text);font-weight:500}
.sb-hours-list--lg li{padding:.7rem 0;font-size:1rem}

/* ---------- Final CTA ---------- */
.sb-cta{background-size:cover;background-position:center;text-align:center}
.sb-cta__inner{max-width:680px;margin:0 auto}
.sb-cta h2{font-size:clamp(32px,6vw,60px)}
.sb-cta p{color:var(--sb-text);opacity:.9;font-size:1.08rem}
.sb-cta__actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:2rem}

/* ---------- Page hero ---------- */
.sb-pagehero{padding:calc(96px + 6vh) 0 6vh;background:linear-gradient(180deg,var(--sb-charcoal),var(--sb-black));border-bottom:1px solid rgba(224,169,75,.14);text-align:center}
.sb-pagehero h1{font-size:clamp(34px,6vw,64px)}
.sb-pagehero__sub{color:var(--sb-muted);max-width:620px;margin:.6rem auto 0;font-size:1.05rem}

/* ---------- Prose (legal/content pages) ---------- */
.sb-prose{max-width:820px}
.sb-prose h2{font-size:1.9rem;margin-top:2rem}
.sb-prose h3{font-size:1.4rem;margin-top:1.6rem}
.sb-prose p,.sb-prose li{color:var(--sb-text);opacity:.9}
.sb-prose ul,.sb-prose ol{padding-left:1.3rem}
.sb-prose a{color:var(--sb-gold);text-decoration:underline}

/* ---------- Contact ---------- */
.sb-contact__grid{display:grid;gap:clamp(30px,5vw,60px)}
@media(min-width:861px){.sb-contact__grid{grid-template-columns:1.3fr 1fr}}
.sb-form label{display:block;margin-bottom:1rem;font-size:.85rem;letter-spacing:.05em;text-transform:uppercase;color:var(--sb-muted)}
.sb-form input,.sb-form textarea{display:block;width:100%;margin-top:.4rem;background:var(--sb-black);border:1px solid rgba(244,238,225,.18);border-radius:4px;padding:.85rem 1rem;color:var(--sb-text);font-family:inherit;font-size:1rem;text-transform:none;letter-spacing:0}
.sb-form input:focus,.sb-form textarea:focus{outline:none;border-color:var(--sb-gold)}
.sb-form__row{display:grid;gap:0}
@media(min-width:600px){.sb-form__row{grid-template-columns:1fr 1fr;gap:1rem}}
.sb-hp{position:absolute;left:-9999px}
.sb-notice{padding:1rem 1.2rem;border-radius:6px;margin-bottom:1.2rem}
.sb-notice--ok{background:rgba(31,61,43,.5);border:1px solid var(--sb-green);color:#cfe7d6}
.sb-notice--err{background:rgba(120,40,40,.35);border:1px solid #9c4b4b;color:#f2cdcd}

/* ---------- Footer ---------- */
.sb-footer{background:#0d0b06;border-top:1px solid rgba(224,169,75,.18);padding:clamp(48px,7vw,90px) 0 30px}
.sb-footer__grid{max-width:1240px;margin:0 auto;padding:0 clamp(18px,5vw,64px);display:grid;gap:34px}
@media(min-width:680px){.sb-footer__grid{grid-template-columns:1fr 1fr}}
@media(min-width:1024px){.sb-footer__grid{grid-template-columns:1.6fr 1fr 1fr 1fr}}
.sb-logo--footer{font-size:1.5rem;margin-bottom:1rem;display:inline-block}
.sb-footer__brand p{color:var(--sb-muted);max-width:340px}
.sb-footer h4{font-family:'Inter',sans-serif;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sb-gold);margin:0 0 1rem}
.sb-footer__col p{margin:.3rem 0;color:var(--sb-muted);font-size:.92rem}
.sb-footer__col a:hover{color:var(--sb-gold)}
.sb-social{display:flex;gap:16px;margin-top:1.2rem}
.sb-social a{font-size:.85rem;color:var(--sb-text);position:relative}
.sb-social a:hover{color:var(--sb-gold)}
.sb-footer__menu{list-style:none;margin:0;padding:0}
.sb-footer__menu li{margin:.35rem 0}
.sb-footer__menu a{color:var(--sb-muted);font-size:.92rem}
.sb-footer__menu a:hover{color:var(--sb-gold)}
.sb-footer__bottom{max-width:1240px;margin:40px auto 0;padding:24px clamp(18px,5vw,64px) 0;border-top:1px solid rgba(244,238,225,.08);display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;font-size:.82rem;color:var(--sb-muted)}
.sb-footer__bottom a{color:var(--sb-gold)}

/* ---------- Menu (header nav) list reset when WP outputs <li> ---------- */
.sb-nav li,.sb-overlay li{list-style:none}
.sb-overlay ul{margin:0;padding:0;display:flex;flex-direction:column;gap:22px;align-items:center}

/* ---------- Misc ---------- */
.sb-fallback{width:100%;aspect-ratio:3/2;border-radius:8px;background:linear-gradient(135deg,#1a1a1a,#2d2d2d)}
.sb-404{padding-top:calc(120px + 6vh)}
.sb-pagination{margin-top:40px;display:flex;justify-content:center}
.sb-pagination a,.sb-pagination span{padding:.5rem .9rem;color:var(--sb-text)}
.sb-pagination .current{color:var(--sb-gold)}
img.wp-image-5,.sb-hero__bg{will-change:transform}

/* ---------- Scroll reveal ---------- */
.sb-reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.sb-reveal.is-in{opacity:1;transform:none}

/* ---------- Reduced motion ---------- */
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.sb-reveal{opacity:1;transform:none}}
