:root{
  --brand:#315c55;
  --brand-deep:#203f3a;
  --brand-soft:#a8c2b4;
  --accent:#d9a37e;
  --paper:#f7f4ef;
  --soft:#e9efeb;
  --ink:#25312e;
  --muted:#66736f;
  --line:#d7dfda;
  --white:#fff;
  --radius-sm:.75rem;
  --radius:1.15rem;
  --radius-lg:1.7rem;
  --shadow:0 1rem 3rem rgba(37,49,46,.08);
  --font:Inter,Aptos,"Segoe UI",Roboto,Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font);color:var(--ink);background:var(--white);line-height:1.65}
a{color:var(--brand);text-decoration-thickness:.08em;text-underline-offset:.16em}
a:hover{color:var(--brand-deep)}
img{max-width:100%;height:auto}
.skip-link{position:absolute;left:-9999px;top:0;z-index:9999;background:var(--brand-deep);color:#fff;padding:.7rem 1rem}
.skip-link:focus{left:.75rem;top:.75rem}
:focus-visible{outline:3px solid #f0a86f!important;outline-offset:3px!important;box-shadow:none!important}
.site-header{background:rgba(255,255,255,.96);border-bottom:1px solid rgba(49,92,85,.10);backdrop-filter:blur(10px)}
.navbar{padding:.85rem 0}
.brand{display:inline-flex;align-items:center;gap:.7rem;color:var(--ink);text-decoration:none}
.brand:hover{color:var(--ink)}
.brand-mark{display:grid;place-items:center;width:2.45rem;height:2.45rem;border-radius:50%;background:var(--brand);color:#fff;font-weight:800;letter-spacing:-.03em}
.brand-copy{display:flex;flex-direction:column;line-height:1.05}
.brand-copy strong{font-size:1rem;letter-spacing:.01em}
.brand-copy small{font-size:.68rem;color:var(--muted);margin-top:.25rem}
.nav-link{position:relative;color:#33413d;font-weight:600;padding:.55rem .7rem!important}
.nav-link:hover,.nav-link:focus{color:var(--brand)}
.nav-link.active{color:var(--brand-deep);font-weight:800}
.nav-link.active::after{content:"";position:absolute;left:.7rem;right:.7rem;bottom:.15rem;height:2px;border-radius:999px;background:var(--accent)}
.nav-booking.nav-active{background:var(--brand-deep);border-color:var(--brand-deep);box-shadow:0 0 0 3px rgba(217,163,126,.34)}
.btn{border-radius:999px;font-weight:700;padding:.68rem 1.15rem}
.btn-brand{background:var(--brand);border-color:var(--brand);color:#fff}
.btn-brand:hover,.btn-brand:focus{background:var(--brand-deep);border-color:var(--brand-deep);color:#fff}
.btn-outline-brand{border:1px solid var(--brand);color:var(--brand);background:#fff}
.btn-outline-brand:hover,.btn-outline-brand:focus{background:var(--brand);color:#fff}
.hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#fbfaf7 0%,#eef4f0 100%)}
.hero::after{content:"";position:absolute;width:24rem;height:24rem;border-radius:50%;background:rgba(168,194,180,.18);right:-8rem;top:-10rem}
.hero>.container{position:relative;z-index:1}
.hero-home{padding:6.5rem 0 5.5rem}
.hero-sub{padding:5rem 0 4rem}
.hero-compact{padding:4rem 0 3rem}
.hero-image{padding:5.5rem 0}
.hero h1{font-size:clamp(2.5rem,5.8vw,5.15rem);line-height:.98;letter-spacing:-.055em;max-width:12ch;color:#23473f;margin:.7rem 0 1.35rem}
.hero-sub h1,.hero-compact h1{font-size:clamp(2.4rem,5vw,4.25rem);max-width:15ch}
.hero-lead{font-size:clamp(1.08rem,1.8vw,1.3rem);max-width:45rem;color:#51615d}
.eyebrow{display:inline-block;color:var(--brand);font-size:.77rem;font-weight:800;text-transform:uppercase;letter-spacing:.13em}
.eyebrow-light{color:#dce9e4}
.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem}
.microcopy{font-size:.86rem;color:var(--muted)}
.section{padding:5.5rem 0}
.section-compact{padding:3.5rem 0}
.section-soft{background:var(--paper)}
.section-final{background:#f2f6f3}
.section-head{max-width:47rem;margin-bottom:2.2rem}
.section-head h2,.section h2{color:#23473f;letter-spacing:-.025em}
.section-head h2{font-size:clamp(2rem,3vw,3rem);margin:.5rem 0 .75rem}
.small-head{margin-bottom:1.5rem}
.small-head h2{font-size:clamp(1.65rem,2.7vw,2.25rem)}
.lead-copy{font-size:1.18rem;color:#4e5f5a}
.photo-frame{display:grid;place-items:center;min-height:22rem;border-radius:var(--radius-lg);background:
  radial-gradient(circle at 75% 20%,rgba(217,163,126,.45),transparent 30%),
  linear-gradient(135deg,#dbe8e1,#f4e6da 55%,#bfd4c8);color:#315c55;text-align:center;box-shadow:var(--shadow);overflow:hidden}
.photo-frame span{background:rgba(255,255,255,.78);padding:1rem 1.3rem;border-radius:1rem;font-weight:700}
.photo-frame small{font-weight:500;color:var(--muted)}
.photo-hero{min-height:29rem}
.photo-wide{min-height:24rem}
.photo-alt{background:linear-gradient(135deg,#e6d8cd,#d7e5df)}
.trust-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.trust-grid article{padding:1.7rem;border-top:1px solid var(--line)}
.trust-grid h2{font-size:1.15rem;margin:.65rem 0}
.trust-grid p{color:var(--muted);margin:0}
.trust-icon{font-size:.75rem;font-weight:800;color:var(--accent)}
.service-card,.provider-card,.info-card,.contact-card,.state-preview{height:100%;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.55rem;box-shadow:0 .8rem 2.2rem rgba(37,49,46,.05)}
.service-card h2,.provider-card h2{font-size:1.3rem;margin:.6rem 0}
.service-card p,.provider-card p{color:var(--muted)}
.card-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin:.8rem 0 1.1rem}
.meta-pill,.chip-list span{display:inline-flex;align-items:center;padding:.3rem .62rem;border-radius:999px;background:var(--soft);color:#35574f;font-size:.78rem;font-weight:700}
.card-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
.provider-avatar{display:grid;place-items:center;width:5.2rem;height:5.2rem;border-radius:50%;background:linear-gradient(145deg,#c6dacf,#f0d7c6);font-size:1.15rem;font-weight:800;color:#315c55;border:4px solid #fff;box-shadow:0 .5rem 1.4rem rgba(37,49,46,.10)}
.provider-avatar.large{width:8rem;height:8rem;font-size:1.65rem}
.provider-role{color:var(--brand);font-weight:700}
.chip-list{display:flex;flex-wrap:wrap;gap:.45rem}
.content-points{display:grid;gap:1rem;margin-top:1.6rem}
.content-points article{padding:1.2rem 1.3rem;border-left:4px solid var(--brand-soft);background:#fbfcfb;border-radius:0 var(--radius-sm) var(--radius-sm) 0}
.content-points h3{font-size:1.05rem;margin-bottom:.35rem}
.content-points p{margin:0;color:var(--muted)}
.quote-card{height:100%;display:flex;flex-direction:column;justify-content:center;background:var(--brand);color:#fff;padding:2.2rem;border-radius:var(--radius-lg)}
.quote-card p{font-size:1.4rem;line-height:1.45}
.quote-card span{color:#dce9e4;font-size:.85rem}
.booking-teaser{display:grid;grid-template-columns:1.25fr 1fr auto;gap:2rem;align-items:center;background:linear-gradient(135deg,var(--brand),var(--brand-deep));color:#fff;padding:2.2rem;border-radius:var(--radius-lg)}
.booking-teaser h2{color:#fff}
.booking-teaser p{color:#e3efea}
.booking-steps-mini{display:grid;gap:.7rem}
.booking-steps-mini span{display:flex;gap:.7rem;align-items:center}
.booking-steps-mini b{display:grid;place-items:center;width:1.9rem;height:1.9rem;border-radius:50%;background:rgba(255,255,255,.14)}
.map-placeholder{min-height:20rem;border-radius:var(--radius-lg);background:
  linear-gradient(45deg,rgba(49,92,85,.06) 25%,transparent 25%,transparent 75%,rgba(49,92,85,.06) 75%),
  linear-gradient(45deg,rgba(49,92,85,.06) 25%,#eef3f0 25%,#eef3f0 75%,rgba(49,92,85,.06) 75%);
background-size:38px 38px;background-position:0 0,19px 19px;display:grid;place-items:center;text-align:center;border:1px solid var(--line)}
.map-placeholder div{background:rgba(255,255,255,.92);padding:1rem 1.3rem;border-radius:var(--radius-sm);display:flex;flex-direction:column}
.map-placeholder span{color:var(--muted);font-size:.85rem}
.opening-list{margin:1.4rem 0}
.opening-list div{display:flex;justify-content:space-between;gap:1rem;padding:.48rem 0;border-bottom:1px solid var(--line)}
.opening-list dt{font-weight:650}
.opening-list dd{margin:0;color:var(--muted);text-align:right}
.opening-list-large div{padding:.75rem 0}
.text-link{font-weight:800;text-decoration:none}
.back-link{display:inline-block;margin-bottom:1rem;font-weight:700;text-decoration:none}
.contact-card{padding:2rem}
.container-narrow{max-width:850px}
.accordion-item{border:1px solid var(--line)!important;border-radius:var(--radius-sm)!important;overflow:hidden;margin-bottom:.8rem}
.accordion-button{font-weight:750;color:var(--ink)}
.accordion-button:not(.collapsed){background:var(--soft);color:var(--brand-deep);box-shadow:none}
.accordion-button:focus{box-shadow:none}
.demo-notice,.demo-safety,.legal-warning{border:1px solid #e7c5ad;background:#fff5ee;color:#6b432b;border-radius:var(--radius-sm);padding:.85rem 1rem}
.site-footer{background:#20312d;color:#fff;padding:4.5rem 0 1.4rem}
.site-footer .brand-mark{background:#dfeae4;color:#274b43}
.site-footer .brand-copy strong{color:#fff}
.site-footer .brand-copy small,.footer-muted{color:#b7c6c1}
.footer-title{font-size:.88rem;text-transform:uppercase;letter-spacing:.08em;color:#dce8e3}
.footer-links li{margin:.35rem 0}
.site-footer a{color:#fff}
.site-footer .demo-notice{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.15);color:#dae5e1}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:1.3rem;padding-top:1rem;color:#93a8a1;font-size:.78rem}
.legal-copy h2{font-size:1.3rem;margin-top:2rem}
.legal-copy p{color:#53625e}
.error-page{padding:8rem 0;min-height:65vh;display:grid;align-items:center;background:var(--paper)}
.error-code{font-size:clamp(5rem,16vw,10rem);line-height:.8;font-weight:900;color:#ccddd4;letter-spacing:-.06em}
.booking-section{background:#f9fbfa}
.booking-stepper{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem;padding:0;margin:0 0 2rem}
.booking-stepper li{display:flex;align-items:center;gap:.55rem;color:#78837f;font-size:.85rem;font-weight:750;padding:.6rem}
.booking-stepper li span{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:#e5ebe8;color:#65716d}
.booking-stepper li.active{color:var(--brand)}
.booking-stepper li.active span,.booking-stepper li.complete span{background:var(--brand);color:#fff}
.booking-stepper li.complete{color:#45675f}
.booking-panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:2rem;box-shadow:var(--shadow)}
.selector-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.selector-card{position:relative;border:1px solid var(--line);border-radius:var(--radius);padding:1.15rem;background:#fff;text-align:left;cursor:pointer;transition:.16s ease}
.selector-card:hover{transform:translateY(-2px);border-color:#8cb0a2}
.selector-card.selected{border:2px solid var(--brand);background:#f2f7f4}
.selector-card h3{font-size:1.04rem;margin-bottom:.35rem}
.selector-card p{font-size:.88rem;color:var(--muted);margin:0}
.selector-card .provider-avatar{width:3.8rem;height:3.8rem;margin-bottom:.75rem}
.date-strip{display:flex;gap:.6rem;overflow-x:auto;padding-bottom:.4rem}
.date-btn,.slot-btn{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:.9rem;padding:.72rem .9rem;font-weight:700}
.date-btn.selected,.slot-btn.selected{background:var(--brand);border-color:var(--brand);color:#fff}
.slot-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.65rem}
.booking-nav{display:flex;justify-content:space-between;gap:1rem;margin-top:2rem}
.summary-card{border:1px solid var(--line);background:#f8fbf9;border-radius:var(--radius);padding:1.4rem}
.summary-card dl{margin:0}
.summary-card div{display:grid;grid-template-columns:10rem 1fr;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--line)}
.summary-card div:last-child{border-bottom:0}
.summary-card dt{font-weight:800}.summary-card dd{margin:0}
.success-panel{text-align:center;padding:2rem 0}
.success-mark{display:grid;place-items:center;width:4rem;height:4rem;margin:0 auto 1rem;border-radius:50%;background:#dcece4;color:#256044;font-size:2rem;font-weight:900}
.status-box{padding:1rem;border-radius:var(--radius-sm);border:1px solid}
.status-info{background:#eef5f2;border-color:#b7d0c5;color:#2f5b51}
.status-warning{background:#fff7e8;border-color:#e9c883;color:#725416}
.status-error{background:#fff0ef;border-color:#e8aaa5;color:#7b3832}
.status-success{background:#edf8f1;border-color:#a9d0b6;color:#2f6341}
.skeleton-line{height:.8rem;border-radius:999px;background:linear-gradient(90deg,#e7ece9,#f5f7f6,#e7ece9);background-size:200% 100%;animation:skeleton 1.2s infinite;margin:.7rem 0}
@keyframes skeleton{to{background-position:-200% 0}}
.force-focus{outline:3px solid #f0a86f!important;outline-offset:3px!important}
.state-preview{min-height:12rem}
.form-control,.form-select{border-radius:.7rem;padding:.72rem .82rem;border-color:#cbd6d1}
.form-control:focus,.form-select:focus{border-color:#6e9c8d;box-shadow:0 0 0 .2rem rgba(49,92,85,.12)}
@media (max-width:991.98px){
  .nav-link.active{background:var(--soft);border-radius:.65rem;padding-left:.85rem!important}
  .nav-link.active::after{display:none}
  .hero-home{padding:4.6rem 0}
  .photo-hero{min-height:22rem}
  .trust-grid{grid-template-columns:1fr}
  .booking-teaser{grid-template-columns:1fr}
  .selector-grid{grid-template-columns:repeat(2,1fr)}
  .slot-grid{grid-template-columns:repeat(4,1fr)}
}
@media (max-width:767.98px){
  .section{padding:4rem 0}
  .hero h1{font-size:clamp(2.3rem,12vw,3.4rem)}
  .hero-actions{flex-direction:column}
  .hero-actions .btn{width:100%}
  .photo-frame{min-height:18rem}
  .booking-stepper{grid-template-columns:repeat(5,auto);overflow-x:auto}
  .booking-stepper li{flex-direction:column;gap:.2rem;text-align:center;min-width:4.6rem;font-size:.72rem}
  .selector-grid{grid-template-columns:1fr}
  .slot-grid{grid-template-columns:repeat(3,1fr)}
  .booking-panel{padding:1.25rem}
  .summary-card div{grid-template-columns:1fr;gap:.1rem}
  .booking-nav{flex-direction:column-reverse}
  .booking-nav .btn{width:100%}
}
@media (max-width:430px){
  .slot-grid{grid-template-columns:repeat(2,1fr)}
}
@media (prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* V02-R2 presentation polish */
.demo-preview-bar{
  background:var(--brand-deep);
  color:#edf5f1;
  font-size:.76rem;
  letter-spacing:.015em;
}
.demo-preview-bar .container{
  min-height:2rem;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.55rem 1rem;
  flex-wrap:wrap;
  text-align:center;
}
.demo-preview-bar strong{
  color:#fff;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.69rem;
}
.site-header{
  box-shadow:0 .35rem 1.2rem rgba(37,49,46,.035);
}
.service-card,.provider-card{
  display:flex;
  flex-direction:column;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.service-card:hover,.provider-card:hover{
  transform:translateY(-3px);
  border-color:#c5d3cc;
  box-shadow:0 1rem 2.6rem rgba(37,49,46,.09);
}
.service-card .card-actions,.provider-card .card-actions{
  margin-top:auto;
  padding-top:.5rem;
}
.photo-frame{
  position:relative;
}
.photo-frame>span{
  max-width:80%;
  background:rgba(255,255,255,.86);
  box-shadow:0 .4rem 1.5rem rgba(37,49,46,.06);
}
.section-final h2{
  font-size:clamp(2rem,3.5vw,3.25rem);
}
.demo-notice{
  font-size:.88rem;
}
@media(max-width:767.98px){
  .demo-preview-bar .container{padding-top:.35rem;padding-bottom:.35rem}
}
@media(prefers-reduced-motion:reduce){
  .service-card,.provider-card{transition:none}
  .service-card:hover,.provider-card:hover{transform:none}
}

/* V02-R3 public demo */
.demo-preview-bar .container{
  justify-content:space-between;
}
.demo-preview-link{
  color:#fff;
  font-size:.72rem;
  font-weight:700;
  text-decoration:none;
  white-space:nowrap;
  border-bottom:1px solid rgba(255,255,255,.55);
}
.demo-preview-link:hover,.demo-preview-link:focus{
  color:#fff;
  border-bottom-color:#fff;
}
.footer-demo-contact{
  color:rgba(255,255,255,.62);
  font-size:.84rem;
  line-height:1.65;
}
.footer-demo-contact strong{
  color:rgba(255,255,255,.84);
}
.demo-data-note{
  display:inline-block;
  margin:.4rem 0 0;
  padding:.45rem .7rem;
  border-radius:.5rem;
  background:rgba(49,92,85,.08);
  color:#52645f;
  font-size:.82rem;
}
.legal-copy a{
  overflow-wrap:anywhere;
}
@media(max-width:767.98px){
  .demo-preview-bar .container{
    justify-content:center;
  }
  .demo-preview-link{
    width:100%;
    text-align:center;
    border-bottom:0;
    text-decoration:underline;
    text-underline-offset:.2em;
  }
}

/* V02-R4 dual booking */
.section-booking-options{
  padding-top:2rem;
}
.booking-option-card{
  background:#fff;
  border:1px solid #dbe4df;
  border-radius:1.25rem;
  padding:clamp(1.35rem,2.4vw,2rem);
  box-shadow:0 .9rem 2.4rem rgba(37,49,46,.055);
}
.booking-option-card-primary{
  border-color:#b9ccc3;
  background:linear-gradient(180deg,#fff 0%,#f7faf8 100%);
}
.booking-option-card h3{
  margin:.7rem 0 .65rem;
}
.booking-option-meta{
  min-height:1.75rem;
}
.booking-status{
  display:inline-flex;
  align-items:center;
  padding:.3rem .6rem;
  border-radius:999px;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.035em;
  text-transform:uppercase;
}
.booking-status-prototype{
  background:var(--soft);
  color:var(--brand-deep);
}
.booking-status-live{
  background:rgba(217,163,126,.18);
  color:#734c31;
}
.booking-option-list{
  margin:1rem 0 1.35rem;
  padding-left:1.15rem;
}
.booking-option-list li+li{
  margin-top:.35rem;
}
