/* ===== DESIGN TOKENS — unchanged from Protege Homepage Concept ===== */
:root{
  --red:#C8102E; --red-deep:#a50d26; --cream:#EBE3D7; --cream-soft:#F6F1E9;
  --green:#1F4633; --ink:#2b2b30; --muted:#57575d; --white:#fff; --line:#e7dfd2;
  --display:"Abril Fatface",Georgia,serif; --body:"Quicksand",system-ui,sans-serif;
  --container:1180px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--ink);background:var(--white);font-weight:400;line-height:1.7;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--container);margin:0 auto;padding:0 24px}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.15}
section{padding:90px 0}
.sec-title{font-family:var(--display);color:var(--red);text-align:center;font-size:clamp(2rem,4vw,2.9rem);margin-bottom:14px}
.btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--body);font-weight:600;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;padding:.85rem 1.8rem;border-radius:999px;transition:.2s;cursor:pointer;border:2px solid transparent}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:var(--red-deep)}
.btn-white{background:#fff;color:var(--red);border-color:#fff}
.btn-white:hover{background:transparent;color:#fff}
.btn-outline-red{border-color:var(--red);color:var(--red)}
.btn-outline-red:hover{background:var(--red);color:#fff}
.btn:disabled{opacity:.65;cursor:wait}

/* NAV — same styling, links removed (paid traffic, no exits) */
header.nav{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line)}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:24px;height:94px}
.nav-logo img{height:70px}
.nav-right{display:flex;align-items:center;gap:22px}
.phoneblock{display:inline-flex;flex-direction:column;gap:3px;white-space:nowrap;padding:4px 0}
.phoneblock .lbl{font-family:var(--body);font-weight:700;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;color:var(--red);line-height:1}
.phoneblock .num{display:inline-flex;align-items:center;gap:9px;font-family:var(--body);font-weight:700;font-size:1.32rem;color:var(--ink);line-height:1.15;transition:.2s}
.phoneblock .num svg{width:19px;height:19px;flex:none}
.phoneblock:hover .num{color:var(--red)}
.phoneblock--onred .lbl{color:#ffd7dd}
.phoneblock--onred .num{color:#fff}
.phoneblock--onred:hover .num{color:#ffd7dd}

/* HERO — client photo on brand green */
.hero{position:relative;padding:0;min-height:84vh;display:flex;align-items:center;background:#2e3527 url('../images/herobg.webp') 76% center/cover no-repeat}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(to right,rgba(20,26,18,.72) 0%,rgba(20,26,18,.4) 34%,rgba(20,26,18,0) 62%)}
.hero-inner{position:relative;z-index:2;color:#fff;padding:0 24px;max-width:var(--container);margin:0 auto;width:100%}
.hero-inner h1{font-size:clamp(2.6rem,5.2vw,4.4rem);color:#fff;max-width:13ch;line-height:1.04;text-wrap:balance}
.hero-inner h1 span{color:#fff}
.hero-inner p{font-size:1.14rem;margin:1.2rem 0 2rem;max-width:42ch;color:#eae6de}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
@media(max-width:900px){
  .hero{min-height:82vh;align-items:flex-end;background-position:50% top;padding-bottom:78px}
  .hero::after{background:linear-gradient(to top,rgba(20,26,18,.94) 0%,rgba(20,26,18,.78) 34%,rgba(20,26,18,.25) 68%,rgba(20,26,18,.1) 100%)}
  .hero-inner p{max-width:none}
}

/* INTRO — same cream block */
.intro,.compare{position:relative;text-align:center;overflow:hidden;background:#EBE2D6}
.intro .deco{position:absolute;top:0;left:-40px;width:340px;opacity:1;pointer-events:none}
.intro .body{max-width:720px;margin:0 auto;position:relative;z-index:2}
.intro .body p{color:#3f3f45;font-size:1.06rem}

/* CATEGORY TILES — same .cat component, 3 across */
.cats .sec-title{margin-bottom:40px}
.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.cat-grid--3{grid-template-columns:repeat(3,1fr)}
.cat{position:relative;aspect-ratio:3/4.1;border-radius:12px;overflow:hidden;display:flex;align-items:flex-end;transition:.2s}
.cat:hover{transform:translateY(-4px)}
.cat>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cat::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(18,9,11,.78),rgba(18,9,11,.12) 52%,transparent)}
.cat-in{position:relative;z-index:2;padding:24px;color:#fff;width:100%}
.cat-in h3{font-family:var(--display);color:#fff;font-size:1.5rem;line-height:1.06;margin-bottom:16px;text-shadow:0 1px 14px rgba(0,0,0,.45)}
.cat-in .btn{font-size:.76rem;padding:.75rem 1.4rem}
.cat-in .price{display:block;font-family:var(--body);font-weight:700;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:#ffd7dd;margin-bottom:8px}
.cat-in .note{display:block;font-size:.9rem;color:#f0e8e0;margin:-6px 0 14px;line-height:1.5}
.cat--light{background:#EBE2D6}
.cat--light::after{display:none}
.cat--light>img{object-fit:contain;object-position:top center;top:-6%}
.cat--light .cat-in h3{color:var(--ink);text-shadow:none}
@media(max-width:900px){
  .cat-grid,.cat-grid--3{grid-template-columns:1fr;gap:14px}
  .cat{aspect-ratio:auto;min-height:290px}
  .cat-in{padding:22px}
  .cat-in h3{font-size:1.4rem;margin-bottom:12px}
}

/* BANDS — same component */
.band{position:relative;min-height:520px;display:flex;align-items:center;background-size:cover;background-position:center;background-repeat:no-repeat}
.band::after{content:"";position:absolute;inset:0;background:linear-gradient(to right,rgba(20,10,12,.62),rgba(20,10,12,.15) 60%,transparent)}
.band--salon{min-height:560px;background-position:center 40%}
.band--salon::after{background:linear-gradient(to right,rgba(18,9,11,.8),rgba(18,9,11,.42) 46%,rgba(18,9,11,.12) 100%)}
.band-inner{position:relative;z-index:2;color:#fff;max-width:var(--container);margin:0 auto;padding:0 24px;width:100%}
.band-inner h2{font-family:var(--display);color:#fff;font-size:clamp(2rem,3.8vw,3rem);max-width:12ch;text-shadow:0 2px 20px rgba(0,0,0,.35)}
.band-inner p{margin:1rem 0 1.7rem;max-width:34ch;color:#f4eee7;font-size:1.05rem}
.band-inner ul{list-style:none;margin:1rem 0 1.7rem;max-width:38ch;display:grid;gap:.55rem;color:#f4eee7;font-size:1.02rem}
.band-inner ul li::before{content:"—";color:#ffd7dd;margin-right:10px}

/* PRIVATE ROOM CARD */
.band--room{min-height:520px;background-position:center 45%;padding:76px 0}
.band--room::after{background:rgba(18,9,11,.34)}
.band-inner .roomcard{background:#fff;max-width:520px;padding:44px 46px;border-radius:12px;color:var(--ink)}
.band-inner .roomcard h2{font-family:var(--display);font-size:clamp(1.9rem,3.4vw,2.6rem);color:var(--ink);line-height:1.12;max-width:none;text-shadow:none}
.band-inner .roomcard p{color:#3f3f45;font-size:1.04rem;margin:16px 0 0;max-width:none}
.band-inner .roomcard .btn{margin-top:24px}
.roommeta{margin-top:26px;padding-top:18px;border-top:1px solid var(--line);font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--green)}
@media(max-width:900px){.band--room{padding:48px 0}.band-inner .roomcard{padding:28px 24px}}

/* RED BAND — same .signup component, used as closing CTA */
.signup{background:var(--red);color:#fff;text-align:center}
.signup h2{font-family:var(--display);color:#fff;font-size:clamp(2rem,3.8vw,2.8rem)}
.signup p{margin:1rem auto 1.8rem;max-width:46ch;color:#ffe3e7}
.closeform{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;align-items:flex-end;max-width:720px;margin:0 auto}
.closeform .field{flex:1 1 220px;margin:0;text-align:left}
.signup .closeform label{color:#ffd7dd}
.signup .closeform input{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.45);color:#fff}
.signup .closeform input:focus{background:#fff;color:var(--ink);border-color:#fff}
.signup .closeform input::placeholder{color:#ffd7dd}
.closeform .btn{flex:0 0 auto;height:52px}
.closenote{margin-top:22px!important;font-size:.9rem}
.closenote a{color:#fff;font-weight:700;border-bottom:1px solid rgba(255,255,255,.5)}
@media(max-width:600px){.closeform .field{flex:1 1 100%}.closeform .btn{width:100%}}

/* FOOTER — minimal, ad page */
footer{background:var(--cream);padding:54px 0 26px}
.foot-min{display:flex;flex-direction:column;align-items:center;text-align:center;gap:20px}
.foot-mark{width:108px}
.foot-lines a{display:inline-block;padding:7px 0}
.foot-lines{display:grid;gap:7px;font-size:.92rem;color:#4a4a4f}
.foot-lines a:hover{color:var(--red)}
.foot-bottom{border-top:1px solid var(--line);margin-top:10px;padding-top:20px;width:100%;display:flex;justify-content:center;gap:20px;flex-wrap:wrap;color:var(--muted);font-size:.82rem}

/* ===== NEW COMPONENTS — built only from the tokens above ===== */

/* ENQUIRY FORM */
.enquire{background:#EBE2D6}
.enq-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.enq-copy h2{font-family:var(--display);color:var(--red);font-size:clamp(1.9rem,3.4vw,2.6rem);margin-bottom:14px}
.enq-copy p{color:#3f3f45;font-size:1.06rem;margin-bottom:1rem}
.enq-copy .call{font-weight:600;color:var(--ink)}
.enq-copy .call a{color:var(--red)}
.card{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 38px rgba(0,0,0,.1);padding:34px}
.field{margin-bottom:18px}
.field label{display:block;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--green);margin-bottom:7px}
.field input,.field select{width:100%;font-family:var(--body);font-size:1rem;color:var(--ink);background:var(--cream-soft);border:1px solid var(--line);border-radius:8px;padding:.85rem 1rem;transition:.2s}
.field input:focus,.field select:focus{outline:none;border-color:var(--red);background:#fff}
.checks{border:0}
.checks legend{display:block;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--green);margin-bottom:10px}
.chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:4px}
.chips .chip{display:inline-flex;align-items:center;border:1px solid var(--line);background:var(--cream-soft);border-radius:999px;padding:12px 18px;font-size:.93rem;font-weight:500;color:var(--ink);cursor:pointer;transition:.18s;text-transform:none;letter-spacing:0;line-height:1.2}
.chips .chip:hover{border-color:var(--red)}
.chips .chip input{position:absolute;opacity:0;width:0;height:0;margin:0;padding:0}
.chips .chip:has(input:checked){background:var(--red);border-color:var(--red);color:#fff}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:600px){.row2{grid-template-columns:1fr;gap:0}}
.otherbox{width:100%;font-family:var(--body);font-size:1rem;color:var(--ink);background:var(--cream-soft);border:1px solid var(--line);border-radius:8px;padding:.85rem 1rem;margin-top:2px}
.otherbox:focus{outline:none;border-color:var(--red);background:#fff}

.card .btn{width:100%}
.fineprint{font-size:.82rem;color:var(--muted);margin-top:14px;text-align:center;line-height:1.5}
@media(max-width:900px){.enq-grid{grid-template-columns:1fr;gap:32px}.card{padding:26px}}

/* FORM STATUS */
.form-status{margin-top:14px;font-size:.92rem;line-height:1.45;text-align:center}
.form-status--ok{color:var(--green);font-weight:600}
.form-status--err{color:var(--red);font-weight:600;padding:12px 14px;background:rgba(200,16,46,.08);border-radius:8px}
.signup .form-status--ok{color:#fff}
.signup .form-status--err{color:#ffe3e7;background:rgba(0,0,0,.18)}
.form-success{display:none;text-align:center;padding:8px 0 4px}
.form-success h3{font-family:var(--display);font-size:1.7rem;color:var(--green);margin-bottom:10px;line-height:1.2}
.form-success p{color:#3f3f45;font-size:1.05rem;max-width:34ch;margin:0 auto}
.card.is-sent > :not(.form-success){display:none}
.card.is-sent .form-success{display:block}
.closeform.is-sent{display:block;max-width:520px}
.closeform.is-sent > :not(.form-success){display:none}
.closeform.is-sent .form-success{display:block}
.signup .form-success h3{color:#fff}
.signup .form-success p{color:#ffe3e7}
.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0;overflow:hidden}

/* COMPARISON CARDS */
.card--flat{box-shadow:none;padding:28px}
.cmp-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:44px}
.cmp-grid--3{grid-template-columns:repeat(3,1fr);gap:20px}
.cmp{display:flex;flex-direction:column}
.cmp .spec:last-of-type{margin-bottom:auto}
.cmp .name{font-family:var(--display);font-weight:400;font-size:1.6rem;color:var(--ink);line-height:1.1}
.cmp .from{font-weight:700;color:var(--red);font-size:1.02rem;margin:8px 0 18px}
.spec{display:flex;justify-content:space-between;gap:18px;padding:11px 0;border-bottom:1px solid var(--line);font-size:.95rem;color:var(--muted)}
.spec:last-of-type{border-bottom:0}
.spec b{font-weight:600;color:var(--ink);text-align:right}
.cmp .btn{margin-top:22px;width:100%}
@media(max-width:900px){.cmp-grid,.cmp-grid--3{grid-template-columns:1fr;gap:16px}}

/* REVIEWS */
.reviews{background:#fff}
.stars{color:#F2A900;letter-spacing:.18em;font-size:1rem;margin-bottom:12px}
.rev-rail{overflow:hidden;margin-top:44px;position:relative}
.rev-rail::before,.rev-rail::after{content:"";position:absolute;top:0;bottom:0;width:60px;z-index:2;pointer-events:none}
.rev-rail::before{left:0;background:linear-gradient(to right,#fff,rgba(255,255,255,0))}
.rev-rail::after{right:0;background:linear-gradient(to left,#fff,rgba(255,255,255,0))}
.rev-track{display:flex;gap:20px;padding:4px;width:max-content}
body.anim .rev-track{animation:revscroll 80s linear infinite}
.rev-rail:hover .rev-track,.rev-rail:focus-within .rev-track{animation-play-state:paused}
@keyframes revscroll{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 10px))}}
.rev{flex:0 0 340px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:30px;display:flex;flex-direction:column}
.rev p{font-size:1.05rem;color:#3f3f45}
.rev .who{margin-top:auto;padding-top:16px;font-weight:700;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--green)}
.rev .src{font-weight:400;letter-spacing:0;text-transform:none;color:var(--muted);font-size:.82rem}
@media(max-width:900px){.rev{flex:0 0 78vw;padding:24px}.rev-rail::before,.rev-rail::after{width:28px}}
@media(prefers-reduced-motion:reduce){
  body.anim .rev-track{animation:none}
  .rev-rail{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
  .rev-rail::-webkit-scrollbar{display:none}
  .rev{scroll-snap-align:start}
}

/* FAQ */
.faq-list{max-width:820px;margin:44px auto 0}
.faq-list details{border-bottom:1px solid var(--line);padding:20px 0}
.faq-list summary{cursor:pointer;padding:8px 0;list-style:none;font-weight:600;font-size:1.05rem;color:var(--ink);display:flex;justify-content:space-between;gap:20px}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";color:var(--red);font-size:1.4rem;line-height:1}
.faq-list details[open] summary::after{content:"–"}
.faq-list details p{margin-top:14px;color:#3f3f45}

/* STICKY MOBILE CALL BAR */
.callbar{display:none}
@media(max-width:900px){
  .callbar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:80;border-top:1px solid var(--line);box-shadow:0 -6px 20px rgba(0,0,0,.12)}
  .callbar a{padding:16px 10px;text-align:center;font-weight:700;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}
  .callbar .c-call{background:#fff;color:var(--red)}
  .callbar .c-form{background:var(--red);color:#fff}
  body{padding-bottom:56px}
}

/* PLACEHOLDER MARKER — delete these before going live */
.todo{background:#fff3b0;color:#6b4e00;padding:0 .3em;border-radius:3px;font-weight:600}

@media(max-width:900px){
  .nav-right .phoneblock{display:none}
  .nav-in{height:72px}
  .nav-logo img{height:52px}
  .enq-copy .call,.enq-copy .phoneblock{display:none}
  .roommeta{line-height:1.9}
  .hero{min-height:74vh}
  
  .intro .deco{display:none}
  section{padding:52px 0}
}

/* SUBTLE REVEAL — only active once JS confirms support */
body.anim [data-r]{opacity:0;transform:translateY(20px);transition:opacity .75s cubic-bezier(.22,.61,.36,1),transform .75s cubic-bezier(.22,.61,.36,1);transition-delay:var(--d,0ms)}
body.anim [data-r].in{opacity:1;transform:none}
body.anim .hero-inner>*{opacity:0;transform:translateY(22px);animation:heroUp .9s cubic-bezier(.22,.61,.36,1) forwards}
body.anim .hero-inner>h1{animation-delay:.12s}
body.anim .hero-inner>p{animation-delay:.26s}
body.anim .hero-inner>.hero-actions{animation-delay:.4s}
@keyframes heroUp{to{opacity:1;transform:none}}
.cat,.rev,.cmp{will-change:transform}
.cmp{transition:transform .25s ease,border-color .25s ease}
.cmp:hover{transform:translateY(-4px)}
.rev{transition:transform .25s ease}
.rev:hover{transform:translateY(-3px)}
@media(prefers-reduced-motion:reduce){
  body.anim [data-r],body.anim .hero-inner>*{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}
  .cmp:hover,.rev:hover{transform:none}
}