/* Samagra Propmart: project page. Loads after base.css and header.css. */
:root{--gold:linear-gradient(180deg,#ebc794 0%,#a97c45 55%,#8a6233 100%);--olive-deep:radial-gradient(120% 90% at 85% 0%,#1c3a6e 0%,#0a1a38 45%,#071530 100%)}

.sec{padding-top:var(--gap)}
.ph{background:repeating-linear-gradient(135deg,rgba(169,124,69,.3) 0 1px,transparent 1px 14px),#ece6dc;display:flex;align-items:flex-end;padding:14px 16px;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:#7a6040}
.ph.im{background:var(--charcoal) center/cover no-repeat;color:rgba(247,244,239,.85);text-shadow:0 1px 6px rgba(0,0,0,.4);letter-spacing:.06em;text-transform:none;font-size:11px}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--leaf);flex:none}
.pi{width:18px;height:18px;fill:currentColor;flex:none}

/* framed cream button + ghost button */
.fbtn,.gbtn,.sbtn{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 28px;font:500 12.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color .3s ease,border-color .3s ease,color .3s ease}
.fbtn{background:var(--cream);color:var(--charcoal);border:0}
.fbtn::after{content:"";position:absolute;inset:4px;border:1px solid var(--brass);transition:inset .35s cubic-bezier(.2,.7,.2,1)}
.fbtn:hover::after{inset:6px}
.gbtn{color:var(--on-dark);border:1px solid rgba(247,244,239,.7)}
.gbtn:hover{background:rgba(247,244,239,.12)}

/* 1. hero */
.pjh{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;background:var(--charcoal) center/cover no-repeat;color:var(--on-dark);overflow:hidden}
.pjh::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(6,15,34,.6) 0%,rgba(6,15,34,.2) 20%,rgba(6,15,34,0) 36%),linear-gradient(to top,rgba(6,15,34,.88) 0%,rgba(6,15,34,.45) 45%,rgba(6,15,34,.12) 100%)}
.pjh>*{position:relative;z-index:1}
.pjh>.wrap{width:100%}
.pjh-in{padding-bottom:28px}
.pjh-st{display:flex;align-items:center;gap:10px;margin:0;font-size:11px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--on-dark-2)}
.pjh-h{font-family:var(--display);font-weight:500;font-size:clamp(52px,8.5vw,128px);line-height:.95;margin:18px 0 14px;letter-spacing:-.005em}
.pjh-line{font-family:var(--display);font-style:italic;font-size:clamp(20px,1.8vw,26px);color:var(--on-dark-2);margin:0 0 32px;max-width:560px}
.pjh-ctas{display:flex;gap:14px;flex-wrap:wrap}
.pjh-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 32px;padding-top:22px;padding-bottom:28px;border-top:1px solid rgba(247,244,239,.18);font-size:13px;color:var(--on-dark-2)}
.pjh-meta span{display:inline-flex;align-items:center;gap:8px}
.pjh-meta .pi{color:var(--brass)}
.pjh-meta .cap{margin-left:auto;font-size:11px;color:var(--on-dark-3)}

/* in-page nav */
.pjnav{position:sticky;top:0;z-index:30;background:rgba(247,244,239,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);transform:translateY(-100%);opacity:0;pointer-events:none;transition:transform .4s cubic-bezier(.2,.7,.2,1),opacity .3s ease}
.pjnav.on{transform:none;opacity:1;pointer-events:auto}
.pjnav-in{display:flex;align-items:center;gap:28px;height:60px}
.pjnav-t{font-family:var(--display);font-weight:500;font-size:22px;color:var(--ink);white-space:nowrap}
.pjnav-l{display:flex;gap:24px;margin:0 auto;overflow-x:auto;scrollbar-width:none}
.pjnav-l::-webkit-scrollbar{display:none}
.pjnav-l a{position:relative;font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-decoration:none;white-space:nowrap;padding:6px 0;transition:color .3s}
.pjnav-l a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--brass);transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.22,.61,.36,1)}
.pjnav-l a:hover,.pjnav-l a.cur{color:var(--ink)}
.pjnav-l a.cur::after,.pjnav-l a:hover::after{transform:scaleX(1)}
.pjnav-b{font-size:11.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--on-dark);background:var(--olive);padding:12px 18px;text-decoration:none;white-space:nowrap;transition:background-color .3s}
.pjnav-b:hover{background:var(--olive-hover)}
/* the main header steps aside while the page nav is showing */
body.pjnav-on .hdr{transform:translateY(-100%)}

/* 2. overview */
.ov{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(40px,7vw,120px);align-items:end}
.ov-copy .h2{margin:14px 0 22px}
.ov-facts{display:grid;grid-template-columns:1fr 1fr;margin:0;border-top:2px solid var(--brass)}
.ov-facts div{padding:22px 0 18px;border-bottom:1px solid var(--line)}
.ov-facts div:nth-child(odd){padding-right:16px}
.ov-facts dt{font-family:var(--display);font-weight:500;font-size:clamp(32px,3vw,44px);line-height:1;color:var(--olive)}
.ov-facts dd{margin:8px 0 0;font-size:13px;color:var(--muted)}

/* 3. gallery */
.gal{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:300px 300px;gap:14px;margin-top:clamp(48px,5vw,72px)}
.gal figure{margin:0;min-width:0}
.gal .g1{grid-row:1/3}
.gal .ph,.gal .film{height:100%}
.film{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:var(--charcoal);color:var(--on-dark-2);text-decoration:none;font-size:12px;letter-spacing:.16em;text-transform:uppercase}
.play{width:64px;height:64px;border-radius:50%;border:1px solid rgba(169,124,69,.8);display:flex;align-items:center;justify-content:center;transition:background-color .3s,border-color .3s}
.play .pi{width:22px;height:22px;margin-left:3px;color:var(--on-dark)}
.film:hover .play{background:rgba(247,244,239,.1);border-color:var(--brass)}
.gal-note{grid-column:1/-1;margin:0;font-size:12px;color:var(--muted)}

/* 4. location */
.loc{background:var(--olive-deep);color:var(--on-dark-2);margin-top:var(--gap);padding-bottom:var(--gap)}
.loc-in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,6vw,96px);align-items:center}
.loc .h2{margin:14px 0 18px}
.dist{list-style:none;margin:28px 0 26px;padding:0;border-top:1px solid rgba(224,181,126,.6)}
.loc .h2{color:var(--on-dark)}
.loc .link{color:var(--on-dark);border-color:#e0b57e}
.dist li{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:4px 16px;padding:14px 0;border-bottom:1px solid rgba(247,244,239,.14);font-size:16px;color:var(--on-dark)}
.dist b{font-family:var(--display);font-weight:500;font-size:26px;color:#e0b57e}
.dist em{grid-column:1/-1;font-style:normal;font-size:12px;color:var(--muted);margin-top:-6px}
.map{position:relative;aspect-ratio:600/460;background:var(--cream);overflow:hidden;box-shadow:0 30px 60px -30px rgba(0,0,0,.45);outline:1px solid rgba(224,181,126,.7);outline-offset:8px}
.map-svg{position:absolute;inset:0;width:100%;height:100%}
.map-svg path{fill:none}
.map-svg .ct{stroke:var(--brass);stroke-width:.8;opacity:.45}
.map-svg .rv{stroke:#9DB0B6;stroke-width:3;opacity:.7}
.map-svg .rd{stroke:var(--muted);stroke-width:1.2;stroke-dasharray:5 5;opacity:.6}
.pin{position:absolute;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;gap:6px;font-family:var(--display);font-weight:500;font-size:20px;color:var(--ink);white-space:nowrap}
.pin i{order:2;width:14px;height:14px;border-radius:50%;background:var(--olive);box-shadow:0 0 0 6px rgba(10,26,56,.15)}
@media (prefers-reduced-motion:no-preference){.pin i{animation:pulse 2.6s ease-out infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(10,26,56,.35)}100%{box-shadow:0 0 0 16px rgba(10,26,56,0)}}}
.mtag{position:absolute;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}

/* 5. plans */
.plan-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.plan .h2{margin-top:14px}
.tabs{display:flex;gap:4px;border:1px solid var(--line);padding:4px;background:var(--cream)}
.tabs button{min-height:42px;padding:0 18px;border:0;background:none;font:500 12px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);cursor:pointer;transition:background-color .3s,color .3s}
.tabs button[aria-selected="true"]{background:var(--olive);color:var(--on-dark)}
.plan-body{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:clamp(32px,4vw,64px);margin-top:36px;align-items:start}
.drawing{position:relative;background:#f3efe6;border:1px solid var(--line);aspect-ratio:640/420}
.drawing svg{position:absolute;inset:0;width:100%;height:100%}
.drawing .ct{fill:none;stroke:var(--line);stroke-width:1}
.drawing .road{fill:none;stroke:var(--stone);stroke-width:10;stroke-linecap:round}
.drawing .vl{fill:var(--olive);stroke:var(--olive);stroke-width:1.2;transition:fill .3s,stroke .3s}
.drawing .vl.hl{fill:#c99a5f;stroke:#8a6233}
.dcap{position:absolute;left:14px;bottom:12px;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.pt{display:none}
.pt.on{display:block;animation:fadeup .45s cubic-bezier(.2,.7,.2,1)}
@keyframes fadeup{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.pt h3{font-family:var(--display);font-weight:500;font-size:30px;line-height:1.15;color:var(--ink);margin:0 0 12px}
.pt p{margin:0;color:var(--body)}
.pt dl{margin:0;border-top:1px solid var(--line)}
.pt dl div{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line)}
.pt dt{font-size:13px;color:var(--muted)}
.pt dd{margin:0;font-family:var(--display);font-weight:500;font-size:24px;color:var(--olive)}
.wabtn{display:inline-flex;align-items:center;gap:10px;margin-top:26px;min-height:50px;padding:0 20px;border:1px solid var(--olive);color:var(--olive);font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;transition:background-color .3s}
.wabtn:hover{background:var(--olive-tint)}

/* 6. estate */
.est .h2{margin:14px 0 36px}
.est-g{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 32px}
.est-g li{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;align-items:start}
.est-g .pi{grid-row:1/3;width:28px;height:28px;color:var(--olive);margin-top:2px}
.est-g li .pi{width:60px;height:60px;padding:16px;border-radius:50%;background:var(--olive-tint);transition:background-color .35s,color .35s,transform .35s cubic-bezier(.2,.7,.2,1)}
.est-g li:hover .pi{background:var(--olive);color:var(--cream);transform:translateY(-3px)}
.est-g b{font-family:var(--display);font-weight:500;font-size:24px;line-height:1.2;color:var(--ink)}
.est-g span{font-size:14px;color:var(--muted)}

/* 7. built for the hills */
.bfh{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(40px,6vw,96px);align-items:start}
.bfh-fig{margin:0}
.bfh-fig .ph{aspect-ratio:1/1}
.bfh-fig figcaption{margin-top:12px;font-size:13px;color:var(--muted)}
.bfh .h2{margin:14px 0 26px}
.bsteps2{list-style:none;margin:0;padding:0;display:grid;gap:22px}
.bsteps2 li{display:grid;grid-template-columns:44px 1fr;align-items:baseline}
.bsteps2 li>span{font-family:var(--display);font-weight:500;font-size:22px;color:var(--brass)}
.bsteps2 b{font-family:var(--display);font-weight:500;font-size:24px;color:var(--ink)}
.bsteps2 p{margin:4px 0 0;font-size:15px;color:var(--muted)}
.docs{display:flex;gap:12px;align-items:flex-start;margin:30px 0 22px;padding:18px 20px;background:var(--olive-tint);border-left:2px solid var(--olive);font-size:14px;color:var(--ink)}
.docs .pi{color:var(--olive);margin-top:1px}

/* 8. progress */
.prog-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:32px}
.prog .label{display:flex;align-items:center;gap:8px}
.prog .h2{margin-top:14px}
.prog-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.prog-row figure{margin:0;min-width:0}
.prog-row .ph{aspect-ratio:4/3}
.prog-row figcaption{margin-top:12px;font-size:14px;color:var(--body)}
.prog-row figcaption b{display:block;font-family:var(--display);font-weight:500;font-size:22px;color:var(--ink)}

/* 9. stay & earn */
.se{background:var(--charcoal);color:var(--on-dark-2);margin-top:var(--gap);padding:var(--gap) 0}
.se-in{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(40px,6vw,96px);align-items:center}
.se-img{aspect-ratio:4/3;background:center/cover}
.se .label{color:#e0b57e}
.se-img{box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.se .h2{color:var(--on-dark);margin:14px 0 18px}
.se .p{color:var(--on-dark-2);margin-bottom:28px}
.se-ctas{display:flex;flex-wrap:wrap;align-items:center;gap:20px 28px}
.se .link{color:var(--on-dark);border-color:var(--brass)}

/* 10. quote */
.qt{text-align:center}
.qt blockquote{margin:0 auto;max-width:900px;font-family:var(--display);font-style:italic;font-size:clamp(30px,3.6vw,52px);line-height:1.2;color:var(--olive)}
.qt-by{margin:22px 0 0;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}

/* 11. FAQ */
.faq-in{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(40px,6vw,96px);align-items:start}
.faq .h2{margin:14px 0 14px}
.faq .p{margin-bottom:20px}
.acc details{border-bottom:1px solid var(--line)}
.acc details:first-child{border-top:1px solid var(--line)}
.acc summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:44px;padding:22px 0;font-family:var(--display);font-weight:500;font-size:clamp(22px,1.9vw,26px);line-height:1.25;color:var(--ink)}
.acc summary::-webkit-details-marker{display:none}
.acc summary i{position:relative;flex:none;width:14px;height:14px}
.acc summary i::before,.acc summary i::after{content:"";position:absolute;left:0;top:6.5px;width:14px;height:1px;background:var(--olive);transition:transform .3s ease}
.acc summary i::after{transform:rotate(90deg)}
.acc details[open] summary i::after{transform:rotate(0)}
.acc details p{margin:0 0 22px;max-width:620px}

/* 12. price form */
.cta{background:var(--olive-deep);color:var(--on-dark-2);margin-top:var(--gap);padding-bottom:var(--gap)}
.cta .h2{color:var(--on-dark)}
.cta-in{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(40px,6vw,96px);align-items:start}
.cta .h2{margin:14px 0 26px}
.promise2{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.promise2 li{display:flex;align-items:center;gap:12px;font-size:15px}
.promise2 .pi{color:var(--olive);width:22px;height:22px}
.pform{position:relative;background:var(--cream);border:0;padding:32px;display:grid;gap:20px;box-shadow:0 40px 80px -40px rgba(0,0,0,.55)}
.pform::before{content:"";position:absolute;inset:8px;border:1px solid rgba(169,124,69,.55);pointer-events:none}
.pform>*{position:relative}
.pform label{display:grid;gap:8px;font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.pform input[type=text],.pform input[type=tel],.pform select{width:100%;min-width:0;height:48px;border:0;border-bottom:1px solid #8f97a8;background:transparent;font:400 17px var(--sans);letter-spacing:0;text-transform:none;color:var(--ink);border-radius:0;-webkit-appearance:none;appearance:none}
.pform input:focus,.pform select:focus{outline:none;border-bottom:1.5px solid var(--olive)}
.ph-in{display:flex;gap:12px}
.ph-in select{flex:0 0 76px}
.pform .chk{display:flex;gap:10px;align-items:flex-start;font-size:13px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--body)}
.pform .chk input{margin-top:3px;accent-color:var(--olive)}
.sbtn{width:100%;background:var(--olive);color:var(--on-dark);border:0}
.sbtn::after{content:"";position:absolute;inset:4px;border:1px solid rgba(224,181,126,.6)}
.sbtn:hover{background:var(--olive-hover)}
.fnote{margin:-6px 0 0;font-size:12px;color:var(--muted)}

/* reveals (JS adds .js on <html>) */
@media (prefers-reduced-motion:no-preference){
  .js .pjh-st,.js .pjh-line,.js .pjh-ctas,.js .pjh-meta{animation:up .9s cubic-bezier(.2,.7,.2,1) both}
  .js .pjh-st{animation-delay:.2s}.js .pjh-line{animation-delay:.75s}.js .pjh-ctas{animation-delay:.9s}.js .pjh-meta{animation-delay:1.1s}
  .js .pjh-h .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
  .js .pjh-h .w>span{display:inline-block;animation:rise 1s cubic-bezier(.2,.75,.2,1) both}
  @keyframes rise{from{transform:translateY(105%)}to{transform:none}}
  @keyframes up{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
  .js .rvh{opacity:0;transform:translateY(16px);transition:opacity .9s ease,transform 1s cubic-bezier(.2,.7,.2,1)}
  .js .rvh.in{opacity:1;transform:none}
  .js .rvi{clip-path:inset(100% 0 0 0);transition:clip-path 1.3s cubic-bezier(.65,0,.25,1)}
  .js .rvi.in{clip-path:inset(0 0 0 0)}
}

/* phone */
@media (max-width:900px){
  :root{--gap:76px}
  .h2{font-size:34px;line-height:1.1}
  .pjh-in{padding-bottom:20px}
  .pjh-ctas{flex-direction:column;align-items:stretch}
  .pjh-meta{gap:8px 20px;font-size:12.5px;padding-bottom:22px}
  .pjh-meta .cap{margin-left:0;flex-basis:100%}
  .pjnav-in{height:52px;gap:16px}
  .pjnav-t,.pjnav-b{display:none}
  .pjnav-l{margin:0;gap:20px}
  .ov,.loc-in,.plan-body,.bfh,.se-in,.faq-in,.cta-in{grid-template-columns:1fr}
  .gal{grid-template-columns:1fr 1fr;grid-template-rows:auto;gap:8px;padding-left:0;padding-right:0}
  .gal .g1{grid-row:auto;grid-column:1/-1}
  .gal .g1 .ph{aspect-ratio:4/3}
  .gal .g2 .ph,.gal .g3 .film{aspect-ratio:1/1;height:auto}
  .gal-note{padding:0 var(--pad)}
  .map{margin:0 calc(var(--pad)*-1)}
  .tabs{width:100%;overflow-x:auto}
  .tabs button{flex:1;padding:0 10px;white-space:nowrap}
  .est-g{grid-template-columns:1fr 1fr;gap:28px 16px}
  .est-g li{grid-template-columns:1fr}
  .est-g .pi{grid-row:auto;margin-bottom:6px}
  .est-g b{font-size:22px}
  .bfh-fig{margin:0 calc(var(--pad)*-1)}
  .bfh-fig .ph{aspect-ratio:4/3}
  .bfh-fig figcaption{padding:0 var(--pad)}
  .prog-row{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin:0 calc(var(--pad)*-1);padding:0 var(--pad);scrollbar-width:none}
  .prog-row::-webkit-scrollbar{display:none}
  .prog-row figure{flex:0 0 78%;scroll-snap-align:start;scroll-margin-left:var(--pad)}
  .se{padding-top:0}
  .se-img{margin:0 calc(var(--pad)*-1)}
  .se-ctas{flex-direction:column;align-items:stretch}
  .se-ctas .link{align-self:flex-start}
  .qt blockquote{font-size:30px}
  .pform{padding:22px 18px}
}

/* text diet: tighter rhythm once eyebrows and extra lines are gone */
.ov-copy .h2,.loc .h2,.est .h2,.bfh .h2,.prog .h2,.faq .h2,.cta .h2{margin-top:0}
.loc .dist{margin-top:8px}
.bfh{align-items:center}
.bfh .docs{margin-top:0}
.est-g li{grid-template-columns:auto 1fr;align-items:center}
.est-g .pi{grid-row:auto;margin:0}
.est-g li{gap:4px 18px}
.prog-head{margin-bottom:28px}
.prog-row figcaption{font-size:13px;color:var(--muted);letter-spacing:.02em}
.se .h2{margin-top:0}
.pt h3{margin-bottom:0}
.cta-in{align-items:center}
@media (max-width:900px){.est-g li{grid-template-columns:auto 1fr}.est-g .pi{margin:0}.est-g b{font-size:20px}}

/* colour pass: a short line under price heading, phone tweaks */
.cta .h2::after{content:"";display:block;width:36px;height:1px;background:#e0b57e;margin-top:24px}
@media (max-width:900px){.est-g li .pi{width:42px;height:42px;padding:11px}.est-g li{gap:4px 12px}.est-g b{font-size:19px}.map{outline:0}.pform{padding:24px 20px}}

/* ===== attractive pass ===== */
/* gallery: photos open up slowly on hover */
.gal figure{overflow:hidden;position:relative}
.gal .ph.im{transition:clip-path 1.3s cubic-bezier(.65,0,.25,1),transform 1.2s cubic-bezier(.2,.7,.2,1)}
.gal figure:hover .ph.im{transform:scale(1.04)}
.gal figure::after{content:"";position:absolute;inset:10px;border:1px solid rgba(247,244,239,.0);transition:border-color .5s;pointer-events:none}
.gal figure:hover::after{border-color:rgba(224,181,126,.8)}
/* map: a live route from Rishikesh to the project */
.map-svg .rt{stroke:var(--olive);stroke-width:2.2;stroke-dasharray:2 12;stroke-linecap:round;opacity:.9}
@media (prefers-reduced-motion:no-preference){.map-svg .rt{animation:route 1.6s linear infinite}@keyframes route{to{stroke-dashoffset:-28}}}
/* plans: the details sit in a framed card */
.ptypes{position:relative;background:var(--sand);padding:34px 30px 32px}
.ptypes::after{content:"";position:absolute;inset:8px;border:1px solid rgba(169,124,69,.6);pointer-events:none}
.ptypes>*{position:relative;z-index:1}
.ptypes .wabtn{width:100%;justify-content:center;background:var(--olive);color:var(--on-dark);border-color:var(--olive)}
.ptypes .wabtn:hover{background:var(--olive-hover)}
.drawing .vl{cursor:default;transition:fill .3s,stroke .3s,transform .3s}
/* estate: tiles */
.est-g{gap:14px}
.est-g li{grid-template-columns:auto 1fr;align-items:center;gap:4px 18px;padding:22px 24px;border:1px solid var(--line);background:#fff;transition:background-color .35s,border-color .35s,transform .35s cubic-bezier(.2,.7,.2,1)}
.est-g li:hover{background:var(--olive);border-color:var(--olive);transform:translateY(-3px)}
.est-g li:hover b{color:var(--on-dark)}
.est-g li:hover .pi{background:rgba(247,244,239,.14);color:#e0b57e;transform:none}
.est-g b{transition:color .35s}
/* built for the hills: framed photo with a number badge */
.bfh-fig{position:relative}
.bfh-fig::before{content:"";position:absolute;left:-18px;top:-18px;width:100%;aspect-ratio:1/1;border:1px solid var(--brass);z-index:-1}
.bfh{position:relative;z-index:0}
.bfh-badge{position:absolute;right:-28px;bottom:56px;display:flex;flex-direction:column;gap:4px;padding:20px 24px;background:var(--olive);color:var(--on-dark-2);box-shadow:0 24px 48px -24px rgba(0,0,0,.5)}
.bfh-badge b{font-family:var(--display);font-weight:500;font-size:40px;line-height:1;color:#e0b57e}
.bfh-badge span{font-size:12px;letter-spacing:.14em;text-transform:uppercase}
/* progress: a timeline above the photos */
.prog-row{position:relative;padding-top:34px}
.prog-row::before{content:"";position:absolute;left:0;right:0;top:6px;height:1px;background:var(--brass)}
.prog-row figure{position:relative}
.prog-row figure::before{content:"";position:absolute;left:0;top:-34px;width:11px;height:11px;border-radius:50%;background:var(--cream);border:1px solid var(--brass)}
.prog-row figure:last-child::before{background:var(--leaf);border-color:var(--leaf);box-shadow:0 0 0 5px rgba(224,181,126,.18)}
.prog-row .ph{transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.prog-row figure:hover .ph{transform:translateY(-4px)}
/* quote: brass marks */
.qt{position:relative}
.qt::before{content:"\201C";display:block;font-family:var(--display);font-size:120px;line-height:.6;color:var(--brass);opacity:.6;margin-bottom:14px}
@media (max-width:900px){
  .ptypes{padding:28px 22px}
  .est-g li{padding:16px 14px;gap:4px 12px}
  .bfh-fig::before{display:none}
  .bfh-badge{right:auto;left:var(--pad);bottom:60px;padding:16px 18px}
  .bfh-badge b{font-size:32px}
  .prog-row{padding-top:34px}
  .prog-row::before{left:var(--pad);right:auto;width:calc(78% * 3 + 24px)}
  .qt::before{font-size:90px}
}

/* ===== buttons that look like buttons ===== */
:root{--arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M220.24,132.24l-72,72a6,6,0,0,1-8.48-8.48L201.51,134H40a6,6,0,0,1,0-12H201.51L139.76,60.24a6,6,0,0,1,8.48-8.48l72,72A6,6,0,0,1,220.24,132.24Z'/%3E%3C/svg%3E")}
/* arrow that slides on hover, shared by every button */
main .link::after,.fbtn::before,.gbtn::before,.sbtn::before{content:"";order:2;width:16px;height:16px;flex:none;background:currentColor;-webkit-mask:var(--arrow) center/contain no-repeat;mask:var(--arrow) center/contain no-repeat;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
main .link:hover::after,.fbtn:hover::before,.gbtn:hover::before,.sbtn:hover::before{transform:translateX(4px)}
/* filled buttons: a little depth so they sit above the page */
.fbtn,.gbtn,.sbtn{gap:14px;min-height:56px;transition:background-color .3s,color .3s,border-color .3s,box-shadow .35s,transform .35s cubic-bezier(.2,.7,.2,1)}
.fbtn{box-shadow:0 14px 30px -14px rgba(0,0,0,.55)}
.fbtn:hover{background:#fff;transform:translateY(-2px);box-shadow:0 20px 36px -16px rgba(0,0,0,.6)}
.gbtn{background:rgba(247,244,239,.08);backdrop-filter:blur(6px);border-color:rgba(247,244,239,.85)}
.gbtn:hover{background:var(--cream);color:var(--charcoal);transform:translateY(-2px)}
.sbtn{box-shadow:0 14px 30px -14px rgba(6,17,38,.6)}
.sbtn:hover{transform:translateY(-2px)}
/* secondary buttons (were plain underlined text) */
main .link{display:inline-flex;align-items:center;gap:12px;min-height:50px;padding:0 22px;border:1px solid var(--olive);background:transparent;color:var(--olive);font-size:12px;font-weight:500;letter-spacing:.16em;text-decoration:none;transition:background-color .3s,color .3s,border-color .3s,transform .35s cubic-bezier(.2,.7,.2,1)}
main .link:hover{background:var(--olive);color:var(--on-dark);transform:translateY(-2px)}
.loc .link,.se .link{color:var(--on-dark);border-color:rgba(247,244,239,.7)}
.loc .link:hover,.se .link:hover{background:var(--cream);color:var(--olive);border-color:var(--cream)}
.faq .link{margin-top:6px}
@media (max-width:900px){main .link{min-height:48px}}
