:root{
  --green-950:#061b15;
  --green-900:#0a261d;
  --green-800:#0d3428;
  --green-700:#14503e;
  --gold:#c7a45a;
  --gold-light:#e6cf94;
  --cream:#f5f0e7;
  --paper:#fffdf9;
  --ink:#16211d;
  --muted:#6f766f;
  --line:#ded8cc;
  --shadow:0 22px 60px rgba(4,26,19,.13);
  --radius:22px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif;line-height:1.65}
body.menu-open{overflow:hidden}
img{max-width:100%;display:block}
button,input,textarea{font:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
.container{width:min(1180px,calc(100% - 40px));margin:auto}
.narrow{width:min(800px,100%)}
.center{text-align:center}
.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}
.eyebrow{text-transform:uppercase;letter-spacing:.21em;font-size:.72rem;font-weight:700;color:var(--gold);margin:0 0 12px}
.eyebrow.light{color:var(--gold-light)}
h1,h2,h3{font-family:"Cormorant Garamond",Georgia,serif;line-height:1.03;margin:0}
h1{font-size:clamp(4rem,8vw,7.7rem);font-weight:600;letter-spacing:-.035em}
h2{font-size:clamp(2.8rem,5vw,4.5rem);font-weight:600;letter-spacing:-.025em}
h3{font-size:2rem;font-weight:600}
.lead{font-size:1.06rem;color:#58625d;margin:22px auto 0;max-width:760px}
.section{padding:104px 0}
.section-heading{max-width:760px;margin:0 auto 48px}
.section-heading>p:last-child{color:#666f69}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;border-radius:999px;padding:13px 22px;border:1px solid transparent;font-weight:700;transition:.2s ease}
.btn:hover{transform:translateY(-1px)}
.btn-gold{background:var(--gold);color:#0d261e}
.btn-green{background:var(--green-800);color:#fff}
.btn-soft{background:#f0ece4;color:#28322d}
.btn-outline-light{border-color:rgba(255,255,255,.6);color:white;background:rgba(0,0,0,.12)}
.btn.small{min-height:40px;padding:9px 16px;font-size:.88rem}

.site-header{position:fixed;z-index:50;left:0;right:0;top:0;background:linear-gradient(to bottom,rgba(4,22,17,.92),rgba(4,22,17,.55),transparent);transition:.2s}
.site-header.scrolled{background:rgba(5,24,18,.97);box-shadow:0 8px 28px rgba(0,0,0,.15)}
.header-inner{height:92px;display:flex;align-items:center;justify-content:space-between;gap:26px}
.brand img{width:220px;height:auto}
.site-nav{display:flex;align-items:center;gap:18px;color:white;font-size:.78rem;font-weight:600}
.site-nav a{opacity:.9}
.site-nav a:hover{color:var(--gold-light)}
.site-nav .nav-cta{border:1px solid rgba(230,207,148,.65);border-radius:999px;padding:10px 16px;color:var(--gold-light)}
.menu-toggle{display:none;background:none;border:0;padding:8px}
.menu-toggle span:not(.sr-only){display:block;width:26px;height:2px;background:white;margin:5px}

.hero{min-height:780px;display:flex;align-items:flex-end;position:relative;color:white;background:
  linear-gradient(90deg,rgba(1,18,13,.88) 0%,rgba(1,18,13,.48) 48%,rgba(1,18,13,.08) 78%),
  url("https://massagebyash.co.za/hero-desktop.webp") center/cover no-repeat}
.hero-shade{position:absolute;inset:auto 0 0;height:260px;background:linear-gradient(transparent,rgba(2,18,13,.76))}
.hero-content{position:relative;z-index:2;padding-bottom:92px}
.hero-content h1{max-width:780px}
.hero-tagline{font-size:1rem;letter-spacing:.08em;margin:24px 0 30px;color:#efe8d9}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.philosophy{background:linear-gradient(#fffdf9,#f6f1e8)}
.dark-section{background:var(--green-950);color:white}
.dark-section .section-heading>p:last-child{color:#c0c9c4}

.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}
.service-card{position:relative;background:#102c23;border:1px solid rgba(225,204,150,.18);border-radius:var(--radius);overflow:hidden;box-shadow:0 24px 55px rgba(0,0,0,.19)}
.service-card img{width:100%;height:290px;object-fit:cover}
.service-body{padding:28px}
.service-body h3{color:#f7f0e2}
.service-body>p{color:#c3cec8;margin:10px 0 22px}
.popular{position:absolute;right:18px;top:18px;z-index:2;background:var(--gold);color:#0c281f;border-radius:999px;padding:7px 12px;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.price-row{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid rgba(229,208,154,.18)}
.price-row.single{grid-template-columns:1fr}
.price-option{background:transparent;border:0;color:white;padding:18px 10px;text-align:left;display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:center}
.price-option+ .price-option{border-left:1px solid rgba(229,208,154,.18)}
.price-option span{font-size:.76rem;color:#b8c2bd}
.price-option strong{font-size:1.2rem;color:var(--gold-light)}
.price-option em{font-style:normal;color:var(--gold-light);font-size:.78rem;grid-column:1/-1;margin-top:4px}
.price-option:hover{background:rgba(255,255,255,.035)}
.addon-feature{border-top:1px solid rgba(229,208,154,.18);display:flex;align-items:center;gap:14px;padding-top:18px}
.addon-feature span{color:#b8c2bd;font-size:.8rem}
.addon-feature strong{color:var(--gold-light);font-size:1.4rem;margin-left:auto}
.text-link{background:none;border:0;color:var(--gold-light);font-weight:700}

.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.info-card{background:#f6f1e8;border:1px solid #e7dfd1;padding:30px;border-radius:18px}
.info-card>span{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid #c9ab6a;color:#917337;font-size:.75rem;font-weight:800;margin-bottom:20px}
.info-card h3{font-size:1.7rem}
.info-card p{font-size:.9rem;color:#687069}

.split-section{display:grid;grid-template-columns:1.05fr .95fr;min-height:610px;background:var(--green-900);color:white}
.split-image{background:linear-gradient(rgba(5,25,18,.08),rgba(5,25,18,.08)),url("https://massagebyash.co.za/table.webp") center/cover no-repeat}
.split-content{padding:88px max(48px,8vw);display:flex;flex-direction:column;justify-content:center}
.split-content h2{margin-bottom:22px}
.status-line{display:flex;gap:9px;align-items:center;color:#cdd7d2;font-size:.9rem}
.status-dot{width:8px;height:8px;border-radius:50%;background:#75ba89;box-shadow:0 0 0 5px rgba(117,186,137,.12)}
.hours-list{margin-top:18px;border-top:1px solid rgba(255,255,255,.14)}
.hours-list div{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.hours-list span{color:#bdc7c2}
.hours-list strong{color:var(--gold-light)}
.small-note{color:#aeb9b3;font-size:.86rem}

.details-section{background:#f7f2ea}
.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}
.details-grid article{padding:20px}
.details-grid h2{font-size:3.4rem;margin-bottom:24px}
.details-grid p,.clean-list{color:#646d67}
.clean-list{padding-left:20px}
.clean-list li{margin:11px 0}

.booking-section{background:#fff}
.booking-wrap{max-width:1040px}
.booking-card{background:#faf8f4;border:1px solid #e3ddd3;border-radius:26px;box-shadow:var(--shadow);overflow:hidden}
.stepper{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid #e1dbd0;background:#f3efe8}
.step{border:0;background:none;padding:19px 10px;display:flex;align-items:center;justify-content:center;gap:9px;color:#8b8e89;font-weight:700}
.step span{width:29px;height:29px;border-radius:50%;border:1px solid #c7c9c5;display:grid;place-items:center;font-size:.8rem}
.step.active{color:var(--green-800);background:#fff}
.step.active span{background:var(--green-800);color:#fff;border-color:var(--green-800)}
.form-step{display:none;padding:42px}
.form-step.active{display:block}
.step-label{color:#9c8148;text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;font-weight:800;margin:0 0 8px}
.form-step h3{font-size:2.5rem}
.form-step>p{color:#687069}
.form-step label,.form-step fieldset{display:block;margin:24px 0 0;border:0;padding:0;font-weight:700}
.form-step label small,.form-step fieldset small{display:block;font-weight:400;color:#7b817d;margin-top:6px}
input[type=text],input[type=tel],textarea{width:100%;border:1px solid #d8d2c8;border-radius:12px;background:white;padding:14px 15px;margin-top:7px;outline:none}
input:focus,textarea:focus{border-color:#bda05d;box-shadow:0 0 0 3px rgba(189,160,93,.12)}
.choice-row{display:flex;gap:10px;margin-top:10px}
.choice{margin:0!important}
.choice input{position:absolute;opacity:0}
.choice span{display:inline-flex;border:1px solid #d2ccc2;background:white;border-radius:999px;padding:10px 16px;font-size:.9rem}
.choice input:checked+span{background:var(--green-800);color:white;border-color:var(--green-800)}
.form-actions{display:flex;justify-content:space-between;gap:12px;margin-top:34px}
.form-actions.end{justify-content:flex-end}
.service-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:24px}
.service-options button{display:flex;justify-content:space-between;gap:20px;align-items:center;text-align:left;background:#fff;border:1px solid #ded8ce;border-radius:14px;padding:15px}
.service-options button.selected{border-color:#bda05d;box-shadow:0 0 0 2px rgba(189,160,93,.14);background:#fffcf5}
.service-options small{display:block;color:#838781;font-weight:400}
.service-options strong{color:#755d2f}
.field-title{font-weight:800;color:#26322c!important;margin-top:26px!important}
.addon-check{display:block!important;margin:8px 0!important}
.addon-check input{position:absolute;opacity:0}
.addon-check span{display:flex;justify-content:space-between;gap:14px;border:1px solid #ded8ce;background:white;border-radius:14px;padding:15px}
.addon-check input:checked+span{border-color:#bda05d;background:#fffcf5;box-shadow:0 0 0 2px rgba(189,160,93,.14)}
.addon-check small{margin:0!important;color:#9d7e40!important;font-weight:800!important}
.next-available{display:flex;justify-content:space-between;gap:20px;align-items:center;background:var(--green-900);color:white;border-radius:16px;padding:18px 20px;margin:25px 0}
.next-available small{display:block;color:#b8c5bf}
.next-available strong{font-size:1rem}
.calendar-card{background:#fff;border:1px solid #ddd7cc;border-radius:18px;padding:18px;margin-top:20px}
.calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}
.calendar-head button{width:36px;height:36px;border-radius:50%;border:1px solid #ddd6c9;background:#faf7f1;font-size:1.4rem}
.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}
.calendar-weekdays span{text-align:center;font-size:.72rem;font-weight:800;color:#8b8f8a;padding:6px}
.day{aspect-ratio:1;border:1px solid transparent;border-radius:10px;background:#f5f2ec;display:grid;place-items:center;font-size:.84rem;color:#8e928e}
.day.available{background:#edf5ef;color:#204b38;border-color:#c8ddcf}
.day.limited{background:#fff7df;color:#795f24;border-color:#ead8a4}
.day.unavailable{opacity:.45}
.day.selectable:hover,.day.selected{border-color:#9e8244;box-shadow:0 0 0 2px rgba(158,130,68,.13)}
.day.selected{background:var(--green-800);color:white}
.calendar-legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:14px;color:#777e79;font-size:.72rem}
.calendar-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}
.calendar-legend i.available{background:#a9cbb4}.calendar-legend i.limited{background:#e7ca79}.calendar-legend i.unavailable{background:#d6d2cb}
.selected-date{display:flex;justify-content:space-between;gap:20px;padding:16px 2px 8px;color:#686e69}
.selected-date span{font-weight:800;color:#2b352f}
.time-slots{display:flex;gap:9px;flex-wrap:wrap}
.time-slots button{border:1px solid #d7d1c7;background:white;border-radius:999px;padding:9px 13px}
.time-slots button.selected{background:var(--green-800);color:#fff;border-color:var(--green-800)}
.muted{color:#8c918d!important;font-size:.9rem}
.review-card{background:white;border:1px solid #ddd6cc;border-radius:18px;overflow:hidden;margin-top:24px}
.review-top{padding:18px 20px;background:var(--green-900);color:white;display:flex;justify-content:space-between;gap:16px}
.review-top span{color:#bfc8c4;font-size:.8rem}
.review-card dl{margin:0;padding:8px 20px}
.review-card dl div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #eee9e0}
.review-card dl div:last-child{border-bottom:0}
.review-card dt{color:#6f756f}.review-card dd{margin:0;font-weight:800}
.optional{font-weight:400;color:#8b908c}
.terms{display:flex!important;gap:10px;align-items:flex-start;font-weight:500!important}
.terms input{margin-top:5px}
.demo-note{background:#f2eee6;border-left:3px solid var(--gold);padding:13px 15px;border-radius:8px;color:#696f6b;font-size:.84rem;margin-top:20px}

.faq-list{border-top:1px solid #ded8ce}
.faq-list details{border-bottom:1px solid #ded8ce;padding:18px 2px}
.faq-list summary{list-style:none;font-weight:800;cursor:pointer;display:flex;justify-content:space-between;gap:20px}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary:after{content:"+";font-size:1.3rem;color:#9d7e40}
.faq-list details[open] summary:after{content:"−"}
.faq-list p{color:#687069;max-width:700px}

.gallery-section{background:#f6f1e8}
.gallery-shell{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px}
.gallery-track{position:relative;min-height:600px}
.gallery-item{display:none;margin:0;position:absolute;inset:0;border-radius:24px;overflow:hidden;background:#102c23}
.gallery-item.active{display:block}
.gallery-item img{width:100%;height:600px;object-fit:cover}
.gallery-item figcaption{position:absolute;left:22px;bottom:18px;background:rgba(6,27,21,.78);color:white;padding:9px 13px;border-radius:999px;font-size:.8rem}
.gallery-arrow{width:48px;height:48px;border-radius:50%;border:1px solid #cfc6b7;background:#fff;font-size:1.8rem}
.gallery-count{text-align:center;color:#7b807c}

.site-footer{background:var(--green-950);color:#d6ddd9;padding:54px 0}
.footer-inner{text-align:center}
.footer-brand img{width:250px;margin:0 auto 18px}
.footer-inner p{color:#abb8b1}
.footer-links{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;color:var(--gold-light);font-size:.84rem;margin:20px 0}
.footer-inner small{color:#7f9188}

dialog{width:min(680px,calc(100% - 30px));border:0;border-radius:22px;padding:34px;box-shadow:0 40px 90px rgba(0,0,0,.35)}
dialog::backdrop{background:rgba(2,15,11,.75);backdrop-filter:blur(4px)}
.dialog-close{position:absolute;right:18px;top:12px;border:0;background:none;font-size:2rem;color:#6c756f}
dialog h2{font-size:3rem}
dialog pre{white-space:pre-wrap;background:#f6f2eb;border:1px solid #e1d9ce;border-radius:14px;padding:18px;font-family:Manrope,sans-serif;font-size:.86rem;max-height:360px;overflow:auto}
.dialog-note{font-size:.8rem;color:#7a817c}

@media (max-width:1050px){
  .site-nav{position:fixed;inset:0 0 0 25%;background:#071f18;padding:110px 36px 40px;display:flex;flex-direction:column;align-items:flex-start;gap:20px;transform:translateX(100%);transition:.25s}
  .site-nav.open{transform:translateX(0)}
  .menu-toggle{display:block;z-index:55}
  .service-grid,.details-grid{grid-template-columns:1fr 1fr}
  .info-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .container{width:min(100% - 28px,1180px)}
  .section{padding:76px 0}
  .header-inner{height:76px}
  .brand img{width:178px}
  .site-nav{left:10%;padding-left:28px}
  .hero{min-height:720px;background-position:62% center}
  .hero-content{padding-bottom:65px}
  .hero-tagline{font-size:.82rem}
  .service-grid,.info-grid,.details-grid{grid-template-columns:1fr}
  .service-card img{height:245px}
  .split-section{grid-template-columns:1fr}
  .split-image{min-height:360px}
  .split-content{padding:65px 28px}
  .details-grid{gap:28px}
  .form-step{padding:28px 20px}
  .step{flex-direction:column;gap:4px;padding:13px 4px}
  .step small{font-size:.64rem}
  .service-options{grid-template-columns:1fr}
  .calendar-card{padding:12px}
  .calendar-weekdays,.calendar-grid{gap:3px}
  .day{border-radius:7px;font-size:.76rem}
  .next-available,.review-top,.selected-date{align-items:flex-start;flex-direction:column}
  .form-actions{flex-direction:column-reverse}
  .form-actions .btn{width:100%}
  .gallery-shell{grid-template-columns:1fr}
  .gallery-arrow{position:absolute;z-index:3;margin-top:275px}
  #gallery-prev{left:25px}#gallery-next{right:25px}
  .gallery-track,.gallery-item img{min-height:480px;height:480px}
  .choice-row{flex-wrap:wrap}
}
