
/* ---------------------------------------------------------------
   LAMECVS — private travel, Portugal
   Limestone pavement · basalt · azulejo cobalt
   Signature: the Rossio calçada wave, laid as you answer
----------------------------------------------------------------*/
:root{
  --ground:#FFFFFF;           /* warm near-white */
  --ground-2:#F4F4F4;
  --surface:#FFFFFF;          /* raised panels */
  --surface-2:#F0F0F0;        /* hover / nested */
  --ink:#0E0E0E;              /* near-black */
  --ink-soft:#3A3A3A;
  --stone:#7A7A7A;            /* muted taupe-grey, for captions */
  --accent:#0E0E0E;           /* monochrome: emphasis is black, not colour */
  --accent-deep:#000000;
  --gold:#C9A227;             /* map route only, on the dark plate */
  --hairline:rgba(14,14,14,.18);
  --hairline-soft:rgba(14,14,14,.09);
  --serif:'Instrument Serif','Times New Roman',Georgia,serif;
  --sans:'Archivo','Helvetica Neue',Arial,sans-serif;
  --mono:'Archivo','Helvetica Neue',Arial,sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);
  --pad:clamp(20px,4vw,60px);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  background:var(--ground);color:var(--ink);
  font-family:var(--sans);font-weight:400;-webkit-font-smoothing:antialiased;
  overflow-x:hidden;transition:background-color 1.1s var(--ease),color 1.1s var(--ease);
}
/* ambient: a whisper of tone from below, nothing more */
body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    linear-gradient(180deg, #FFFFFF 0%, #FAFAFA 100%);
  transition:opacity 1.2s var(--ease);
}
body.lifted::before{
  background:
    linear-gradient(180deg, #FFFFFF 0%, #F5F5F5 100%);
}
/* film grain */
body::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:45;opacity:.02;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
  mix-blend-mode:multiply;
}

.shell{min-height:100dvh;display:flex;flex-direction:column;position:relative;z-index:2}
.top{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:clamp(18px,3vw,34px) var(--pad) 0}
.mark{font-family:var(--serif);font-size:20px;letter-spacing:.24em;text-transform:uppercase;line-height:1}
.top-meta{font-family:var(--mono);font-size:10.5px;font-weight:300;letter-spacing:.13em;text-transform:uppercase;color:var(--stone);text-align:right;line-height:1.7}
.top-meta b{font-weight:400;color:var(--ink);font-variant-numeric:tabular-nums}

.stage{flex:1;display:flex;align-items:flex-start;padding:clamp(28px,5vh,70px) var(--pad)}
.stage.top-align{align-items:flex-start}
#s-intro{display:none}
#s-intro.is-active{display:flex;align-items:center;min-height:min(62vh,620px)}

.screen{display:none;width:100%}
.screen.is-active{display:block}

.rise{opacity:0;transform:translateY(14px);animation:rise .9s var(--ease) forwards;animation-delay:calc(var(--i,0)*80ms)}
@keyframes rise{to{opacity:1;transform:none}}
.fade-out{animation:fadeOut .32s var(--ease) forwards}
@keyframes fadeOut{to{opacity:0;transform:translateY(-8px)}}

/* ---------------- intro ---------------- */
.intro{max-width:1080px}
.eyebrow{font-family:var(--mono);font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--stone);margin-bottom:clamp(24px,5vh,50px)}
.lede{font-family:var(--serif);font-weight:400;font-size:clamp(2.5rem,6.4vw,5.4rem);line-height:1.02;letter-spacing:-.015em;max-width:15ch}
.lede em{font-style:italic;color:var(--accent)}
.intro p{margin-top:clamp(20px,3.5vh,32px);max-width:46ch;font-size:clamp(15px,1.15vw,17px);line-height:1.65;color:var(--stone)}
.begin-row{display:flex;align-items:center;gap:20px;margin-top:clamp(32px,5vh,54px);flex-wrap:wrap}
.kbd-hint{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--stone)}

/* ---------------- buttons ---------------- */
.btn{
  font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.09em;text-transform:uppercase;
  background:none;border:1px solid var(--ink);color:var(--ink);padding:15px 30px;cursor:pointer;
  border-radius:0;position:relative;overflow:hidden;isolation:isolate;
  transition:color .45s var(--ease),border-color .45s var(--ease);
}
.btn::before{content:"";position:absolute;inset:0;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease);z-index:0}
.btn span{position:relative;z-index:1}
.btn:hover::before,.btn:focus-visible::before{transform:scaleX(1)}
.btn:hover,.btn:focus-visible{color:var(--ground)}
.btn[disabled]{opacity:.28;pointer-events:none}
.btn-solid{background:var(--ink);border-color:var(--ink);color:var(--ground)}
.btn-solid::before{background:var(--accent-deep)}
.btn-solid:hover,.btn-solid:focus-visible{color:var(--ground);border-color:#000}
.btn-quiet{background:none;border:none;padding:0;cursor:pointer;color:var(--stone);font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;transition:color .3s var(--ease)}
.btn-quiet:hover{color:var(--ink)}
:focus-visible{outline:1px solid var(--accent);outline-offset:4px}

/* ---------------- question ---------------- */
.q-wrap{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:clamp(30px,6vw,90px);align-items:start;width:100%;max-width:1180px;margin:0 auto;min-height:min(66vh,640px)}
.q-main{max-width:820px;width:100%}
.q-count{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--stone);margin-bottom:16px}
.q-count b{color:var(--accent);font-weight:400}
.q-title{font-family:var(--serif);font-weight:400;font-size:clamp(1.9rem,3.4vw,2.9rem);line-height:1.08;letter-spacing:-.01em;max-width:22ch;min-height:1.08em}
.q-hint{font-family:var(--serif);font-style:italic;font-size:clamp(15px,1.15vw,17px);color:var(--stone);margin-top:12px;max-width:52ch;line-height:1.5;min-height:3em}

.opts{margin-top:clamp(20px,3vh,30px);border-top:1px solid var(--hairline-soft)}
.opt{
  display:flex;align-items:baseline;gap:16px;width:100%;text-align:left;background:none;border:none;
  border-bottom:1px solid var(--hairline-soft);padding:15px 12px 15px 4px;min-height:58px;cursor:pointer;color:inherit;position:relative;
  font-family:var(--sans);font-size:17px;font-weight:300;line-height:1.35;
  transition:padding-left .45s var(--ease),color .3s var(--ease);
}
.opt::after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .55s var(--ease)}
.opt:hover{padding-left:16px}
.opt:hover::after{transform:scaleX(1)}
.opt .stone{width:8px;height:8px;flex:0 0 8px;border:1px solid var(--hairline);transform:rotate(45deg);position:relative;top:-1px;transition:background .3s var(--ease),border-color .3s var(--ease),transform .5s var(--ease)}
.opt.sel .stone{background:var(--accent);border-color:var(--accent);transform:rotate(45deg) scale(1.15)}
.opt.sel{padding-left:16px}
.opt.sel::after{transform:scaleX(1)}
.opt .key{margin-left:auto;font-family:var(--mono);font-size:10px;color:var(--stone);letter-spacing:.1em;opacity:0;transition:opacity .3s var(--ease)}
.opt:hover .key{opacity:1}
.opt .sub{color:var(--stone);font-size:14px;margin-left:2px;font-weight:300}


.count-row{display:flex;align-items:center;gap:22px;margin-top:26px}
.count-row .lbl{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--stone)}
.stepper{display:flex;align-items:center;gap:16px;border:1px solid var(--hairline);padding:8px 14px}
.stepper button{background:none;border:none;cursor:pointer;color:var(--ink);font-family:var(--mono);font-size:15px;line-height:1;padding:4px 6px;transition:color .3s var(--ease)}
.stepper button:hover{color:var(--accent)}
.stepper .val{font-family:var(--mono);font-size:15px;min-width:24px;text-align:center;font-variant-numeric:tabular-nums}
.q-foot{display:flex;align-items:center;gap:26px;margin-top:32px;flex-wrap:wrap}

/* ---------------- calendar ---------------- */
.cal{margin-top:clamp(20px,3vh,30px);width:100%;max-width:520px}
.cal-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:14px;border-bottom:1px solid var(--hairline-soft)}
.cal-month{font-family:var(--serif);font-size:22px}
.cal-nav{display:flex;gap:6px}
.cal-nav button{background:none;border:1px solid var(--hairline);color:var(--ink);width:32px;height:32px;cursor:pointer;font-family:var(--mono);font-size:13px;line-height:1;transition:border-color .3s var(--ease),color .3s var(--ease)}
.cal-nav button:hover{border-color:var(--accent);color:var(--accent)}
.cal-nav button[disabled]{opacity:.25;pointer-events:none}
.cal-dow,.cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.cal-dow span{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--stone);text-align:center;padding:12px 0 6px}
.cal-day{
  aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;background:none;border:none;
  font-family:var(--mono);font-size:13px;color:var(--ink);cursor:pointer;position:relative;
  transition:color .25s var(--ease);font-variant-numeric:tabular-nums;
}
.cal-day.blank{pointer-events:none}
.cal-day.off{color:var(--stone);opacity:.35;pointer-events:none;text-decoration:line-through}
.cal-day:hover{color:var(--accent)}
.cal-day.in-range{background:rgba(27,75,140,.09)}
.cal-day.start,.cal-day.end{background:var(--accent);color:#fff}
.cal-day.start::after,.cal-day.end::after{content:"";position:absolute;inset:0;border:1px solid var(--accent)}
.cal-read{font-family:var(--serif);font-size:19px;margin-top:20px;line-height:1.4}
.cal-read .sm{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--stone);display:block;margin-bottom:6px}

/* ---------------- ledger ---------------- */
.ledger{border-left:1px solid var(--hairline-soft);padding-left:26px;padding-top:6px}
.ledger h4{font-family:var(--mono);font-size:10px;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--stone);margin-bottom:20px}
.ledger .row{display:flex;flex-direction:column;gap:3px;margin-bottom:15px;opacity:0;animation:rise .7s var(--ease) forwards}
.ledger .k{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--stone)}
.ledger .v{font-family:var(--serif);font-size:17px;line-height:1.25}
.ledger .empty{font-family:var(--serif);font-style:italic;color:var(--stone);font-size:15px;line-height:1.5}

/* ---------------- tiers ---------------- */
.tiers-wrap{max-width:1000px;margin:0 auto}
.tiers{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,3vw,32px);margin-top:clamp(26px,4vh,44px)}
.tier{border:1px solid var(--hairline);padding:clamp(24px,3vw,36px);display:flex;flex-direction:column;background:linear-gradient(180deg,var(--surface-2),var(--surface));transition:border-color .5s var(--ease),transform .5s var(--ease),box-shadow .5s var(--ease)}
.tier:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 24px 60px -30px rgba(0,0,0,.7)}
.tier .tag{font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--stone)}
.tier h3{font-family:var(--serif);font-weight:400;font-size:clamp(1.7rem,2.8vw,2.3rem);line-height:1.1;margin:14px 0 4px}
.tier .price{font-family:var(--serif);font-size:clamp(2.2rem,4vw,3rem);color:var(--accent);line-height:1;margin:16px 0 6px}
.tier .price small{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--stone);display:block;margin-top:10px}
.tier ul{list-style:none;margin:22px 0 28px;display:flex;flex-direction:column;gap:11px}
.tier li{font-size:14.5px;line-height:1.5;padding-left:20px;position:relative;color:var(--ink);opacity:.88}
.tier li::before{content:"";position:absolute;left:2px;top:8px;width:6px;height:6px;border:1px solid var(--accent);transform:rotate(45deg)}
.tier .btn{margin-top:auto;width:100%;text-align:center}
.tier-note{font-family:var(--serif);font-style:italic;color:var(--stone);font-size:16px;margin-top:26px;line-height:1.55;max-width:60ch}

/* ---------------- recommendation ---------------- */
.rec{max-width:1180px;margin:0 auto;padding-bottom:120px}
.rec-head{padding-bottom:30px;border-bottom:1px solid var(--hairline)}
.rec-title{font-family:var(--serif);font-size:clamp(2rem,4.4vw,3.4rem);line-height:1.04;letter-spacing:-.01em;margin:10px 0 22px}
.rec-facts{display:flex;flex-wrap:wrap;gap:22px 44px}
.fact .k{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--stone);margin-bottom:6px}
.fact .v{font-family:var(--serif);font-size:19px}

.leg{padding:clamp(30px,4vh,48px) 0;border-bottom:1px solid var(--hairline-soft)}
.leg-top{display:block}

/* rotating diptych hero */
.gallery{display:grid;grid-template-columns:1fr 1fr;gap:clamp(8px,1.2vw,16px);margin-bottom:clamp(28px,5vh,52px)}
.frame{position:relative;aspect-ratio:16/10;overflow:hidden;background:#E7E4DB;border:1px solid var(--hairline-soft)}
.frame .layer{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transform:scale(1.06);transition:opacity 1.5s var(--ease),transform 7s linear;filter:saturate(.92) contrast(1.03)}
.frame .layer.show{opacity:1;transform:scale(1)}
.frame .plate{position:absolute;inset:0;opacity:.9}
.frame .plate svg{width:100%;height:100%;display:block}
.frame::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 0 1px var(--hairline-soft), inset 0 -70px 70px -46px rgba(0,0,0,.65)}
.frame .cap{position:absolute;left:0;bottom:0;z-index:2;padding:12px 14px;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#F0EDE4;text-shadow:0 1px 10px rgba(0,0,0,.7);transition:opacity .8s var(--ease)}

.leg-idx{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--stone);margin-bottom:10px}
.leg-idx b{color:var(--accent);font-weight:400}
.leg-name{font-family:var(--serif);font-size:clamp(1.7rem,3vw,2.4rem);line-height:1.08}
.leg-dates{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--stone);margin-top:12px}
.leg-blurb{font-size:15px;line-height:1.7;opacity:.85;margin-top:16px;max-width:60ch}
.leg .house{max-width:640px}

.house{margin-top:24px;border:1px solid var(--hairline);padding:20px 22px;background:var(--surface)}
.house-row{display:flex;justify-content:space-between;gap:18px;align-items:baseline;flex-wrap:wrap}
.house-name{font-family:var(--serif);font-size:21px;line-height:1.2}
.house-name a{color:inherit;text-decoration:none;border-bottom:1px solid var(--hairline)}
.house-name a:hover{border-color:var(--accent);color:var(--accent)}
.house-cost{font-family:var(--mono);font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums}
.house-meta{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:12px;font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--stone)}
.stars{color:var(--accent)}
.house-note{font-size:14px;line-height:1.6;opacity:.8;margin-top:12px}
.swap{margin-top:16px}
.swap summary{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--stone);cursor:pointer;list-style:none}
.swap summary::-webkit-details-marker{display:none}
.swap summary::before{content:"+ ";color:var(--accent)}
.swap[open] summary::before{content:"− "}
.swap summary:hover{color:var(--ink)}
.alt{display:flex;justify-content:space-between;gap:14px;align-items:baseline;width:100%;background:none;border:none;border-top:1px solid var(--hairline-soft);padding:12px 0;cursor:pointer;color:inherit;text-align:left;transition:padding-left .4s var(--ease)}
.alt:hover{padding-left:8px}
.alt.current{opacity:.4;pointer-events:none}
.alt-name{font-family:var(--serif);font-size:16px}
.alt-meta{font-family:var(--mono);font-size:10px;color:var(--stone);letter-spacing:.1em;white-space:nowrap}

.exps{margin-top:26px}
.exps h4,.addons h4{font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--stone);margin-bottom:6px}
.exp{display:flex;gap:16px;align-items:flex-start;width:100%;background:none;border:none;border-bottom:1px solid var(--hairline-soft);padding:15px 4px;cursor:pointer;color:inherit;text-align:left;transition:padding-left .4s var(--ease)}
.exp:hover{padding-left:10px}
.exp .stone{width:8px;height:8px;flex:0 0 8px;border:1px solid var(--hairline);transform:rotate(45deg);margin-top:6px;transition:background .3s var(--ease),border-color .3s var(--ease)}
.exp.on .stone{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px rgba(159,193,232,.14)}
.exp.on .exp-name{color:var(--ink)}
.exp.on .exp-price{color:var(--accent)}
.exp-wx{display:block;margin-top:7px;font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;line-height:1.5;color:var(--stone)}
.exp-wx.poor{color:var(--ink);font-weight:400}
.exp-match{display:inline-block;margin-left:10px;font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);border-radius:2px;padding:2px 7px;vertical-align:2px}

/* weather block on the recommendation */
.weather{margin-bottom:clamp(24px,4vh,42px);border:1px solid var(--hairline-soft);background:linear-gradient(180deg,var(--surface-2),var(--surface));padding:clamp(16px,2vw,22px) clamp(18px,2.4vw,26px)}
.weather-read{font-size:14.5px;line-height:1.6;color:var(--ink-soft)}
.weather-k{display:inline-block;font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-right:12px;vertical-align:1px}
.weather-advisory{margin-top:12px;padding-top:12px;border-top:1px solid var(--hairline-soft);font-family:var(--serif);font-style:italic;font-size:clamp(15px,1.5vw,18px);line-height:1.5;color:var(--ink)}
.exp-body{flex:1}
.exp-name{font-size:15.5px;line-height:1.35}
.exp-desc{font-size:13.5px;line-height:1.55;color:var(--stone);margin-top:5px}
.exp-price{font-family:var(--mono);font-size:12px;white-space:nowrap;padding-top:2px;font-variant-numeric:tabular-nums}

.addons{margin-top:clamp(34px,5vh,56px)}
.addons h3{font-family:var(--serif);font-size:clamp(1.6rem,2.6vw,2.1rem);margin-bottom:6px;font-weight:400}
.addons .sub{color:var(--stone);font-size:15px;line-height:1.6;max-width:52ch;margin-bottom:20px}
.addon-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,44px)}

.summary{margin-top:clamp(36px,5vh,60px);border-top:1px solid var(--hairline);padding-top:30px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,64px)}
.lines{display:flex;flex-direction:column;gap:12px}
.line{display:flex;justify-content:space-between;gap:16px;font-size:15px;padding-bottom:11px;border-bottom:1px solid var(--hairline-soft)}
.line .amt{font-family:var(--mono);font-variant-numeric:tabular-nums}
.line.total{border-bottom:none;padding-top:6px;font-family:var(--serif);font-size:24px}
.line.total .amt{font-family:var(--serif);font-size:24px}
.meter{margin-top:20px}
.meter-bar{height:2px;background:var(--hairline);position:relative;overflow:hidden}
.meter-fill{position:absolute;left:0;top:0;height:100%;background:var(--accent);transition:width .8s var(--ease)}
.meter-fill.over{background:#6E6B62}
.meter-note{font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--stone);margin-top:10px;display:flex;justify-content:space-between;gap:14px}

.fields{display:grid;grid-template-columns:1fr 1fr;gap:20px 24px}
.field{display:flex;flex-direction:column}
.field.wide{grid-column:1/-1}
.field label{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--stone);margin-bottom:9px}
.field input,.field textarea{background:none;border:none;border-bottom:1px solid var(--hairline);font-family:var(--serif);font-size:18px;color:var(--ink);padding:6px 0 10px;resize:none;transition:border-color .4s var(--ease)}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--accent)}
.field input::placeholder,.field textarea::placeholder{color:var(--stone);opacity:.55;font-style:italic}
.send-foot{grid-column:1/-1;display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:4px}
.sent{font-family:var(--serif);font-size:clamp(1.3rem,2.2vw,1.8rem);line-height:1.4}
.sent .ref{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--stone);margin-top:16px}
.sources{font-family:var(--mono);font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--stone);line-height:1.9;margin-top:42px;padding-top:20px;border-top:1px solid var(--hairline-soft)}

/* running total */
.railbar{
  position:fixed;left:0;right:0;bottom:0;z-index:40;display:none;
  padding:14px var(--pad);background:rgba(244,242,236,.94);backdrop-filter:blur(10px);
  border-top:1px solid var(--hairline);
  justify-content:space-between;align-items:center;gap:20px;
}
body.show-rail .railbar{display:flex}
.railbar .l{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--stone)}
.railbar .r{font-family:var(--serif);font-size:22px;color:var(--ink)}
body.show-rail .pavement{padding-bottom:76px}

/* ---------------- calçada wave ---------------- */
.pavement{padding:0 var(--pad) clamp(16px,2.6vh,26px)}
.wave-box{position:relative;height:40px}
.wave-box svg{display:block;width:100%;height:40px;overflow:visible}
.wave-base{stroke:var(--hairline-soft);stroke-width:1;fill:none}
.wave-line{stroke:var(--accent);stroke-width:1.4;fill:none;stroke-linecap:round;transition:stroke-dashoffset 1.05s var(--ease)}
.colophon{display:flex;justify-content:space-between;gap:20px;margin-top:12px;font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--stone)}

@media(max-width:980px){
  .q-wrap{grid-template-columns:1fr}
  .ledger{display:none}
  .tiers,.addon-grid,.summary,.fields{grid-template-columns:1fr}
  .frame{aspect-ratio:4/5}
  .lede{max-width:none}
  .top-meta .hide-sm{display:none}
  .colophon span:last-child{display:none}
}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .rise{opacity:1;transform:none}
}

/* ============================================================
   LANDING SITE
============================================================ */
#site{position:relative;z-index:2}
.reveal{opacity:0;transform:translateY(24px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* nav */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;
  padding:22px clamp(20px,4vw,60px);transition:background-color .5s var(--ease),padding .5s var(--ease),border-color .5s var(--ease);
  border-bottom:1px solid transparent;
}
.nav.solid{background:rgba(9,15,22,.82);backdrop-filter:blur(14px);border-bottom-color:var(--hairline-soft);padding-top:16px;padding-bottom:16px}
.nav-mark{font-family:var(--serif);font-size:21px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink);text-decoration:none}
.nav-links{display:flex;align-items:center;gap:clamp(18px,2.5vw,38px)}
.nav-links a{font-family:var(--sans);font-weight:600;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);text-decoration:none;transition:color .3s var(--ease)}
.nav-links a:hover{color:var(--accent)}
.nav-cta{
  font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;
  background:var(--accent);color:#0A1017;border:1px solid var(--accent);padding:11px 20px;transition:background .4s var(--ease),color .4s var(--ease)
}
.nav-cta:hover{background:transparent;color:var(--accent)}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px}
.nav-toggle span{width:24px;height:1.5px;background:var(--ink);transition:transform .3s var(--ease),opacity .3s var(--ease)}

/* hero */
.hero{position:relative;height:100dvh;min-height:620px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}
.hero-media{position:absolute;inset:0}
.hero-media img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);animation:heroZoom 18s var(--ease) forwards;filter:saturate(.92)}
@keyframes heroZoom{to{transform:scale(1)}}
.hero-scrim{position:absolute;inset:0;background:
  linear-gradient(180deg, rgba(9,15,22,.55) 0%, rgba(9,15,22,.12) 34%, rgba(9,15,22,.62) 82%, rgba(9,15,22,.95) 100%),
  radial-gradient(90% 60% at 20% 100%, rgba(10,16,23,.7), transparent 60%)}
.hero-inner{position:relative;z-index:2;padding:0 clamp(20px,4vw,60px) clamp(28px,6vh,72px);max-width:1000px}
.hero-eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--accent);margin-bottom:22px;opacity:0;animation:rise .9s var(--ease) .2s forwards}
.hero-title{font-family:var(--sans);font-weight:600;font-size:clamp(1.7rem,4.4vw,3.6rem);line-height:1.05;white-space:nowrap;letter-spacing:-.02em;color:#fff;opacity:0;animation:rise 1s var(--ease) .34s forwards}
.hero-title em{font-style:normal;color:var(--accent)}
.hero-sub{margin-top:22px;max-width:52ch;font-size:clamp(15px,1.3vw,18px);line-height:1.6;color:rgba(236,231,219,.86);opacity:0;animation:rise 1s var(--ease) .5s forwards}
.hero-row{display:flex;align-items:center;gap:26px;margin-top:clamp(26px,4vh,40px);flex-wrap:wrap;opacity:0;animation:rise 1s var(--ease) .64s forwards}
.hero-scroll{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);text-decoration:none;transition:color .3s var(--ease)}
.hero-scroll:hover{color:var(--accent)}
.hero-foot{position:relative;z-index:2;display:flex;justify-content:space-between;gap:20px;padding:0 clamp(20px,4vw,60px) 22px;
  font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--stone);opacity:0;animation:rise 1s var(--ease) .8s forwards}

/* promise */
.promise{max-width:1400px;margin:0 auto;padding:clamp(120px,22vh,240px) clamp(24px,6vw,90px) clamp(90px,16vh,180px)}
.promise-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,90px);align-items:center}
.promise-copy{display:flex;flex-direction:column;justify-content:center;gap:clamp(28px,5vh,56px)}
.promise-lead{font-family:var(--serif);font-weight:400;font-size:clamp(2.4rem,5.2vw,4.6rem);line-height:1.02;letter-spacing:-.015em;text-transform:uppercase;margin:0;color:var(--ink)}
.promise-sub{font-family:var(--sans);font-size:16px;line-height:1.75;color:var(--ink-soft);max-width:42ch;margin:0}
.promise-media{margin:0;overflow:hidden;background:var(--surface);aspect-ratio:4/5}
.promise-media img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:860px){.promise-split{grid-template-columns:1fr}.promise-media{aspect-ratio:3/2}}
.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(32px,4vw,64px);margin-top:clamp(90px,16vh,170px)}
@media(max-width:1080px){.pillars{grid-template-columns:repeat(2,1fr)}}
.pillar-n{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--accent)}
.pillar h3{font-family:var(--serif);font-weight:700;font-size:clamp(1.4rem,2.2vw,1.9rem);line-height:1.15;margin:0 0 12px}
.pillar p{font-size:16px;line-height:1.85;color:var(--ink-soft);max-width:34ch}

/* regions */
.regions{max-width:1400px;margin:0 auto;padding:clamp(110px,20vh,210px) clamp(24px,6vw,90px)}
.eyebrow{font-family:var(--mono);font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--accent)}
.regions-head{max-width:680px;margin-bottom:clamp(70px,12vh,120px)}
.regions-head h2,.history h2,.faqs h2,.contact h2{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,4.4vw,3.4rem);line-height:1.05;letter-spacing:-.01em;margin:14px 0 0}
.regions-head p{margin-top:24px;font-size:17px;line-height:1.8;color:var(--ink-soft);max-width:52ch}
.region-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,64px)}
.region{position:relative;overflow:hidden;background:var(--surface);aspect-ratio:3/2}
.region-wide{grid-column:1/-1;aspect-ratio:21/9}
.region-media{position:absolute;inset:0}
.region-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease),filter .8s var(--ease);filter:saturate(.9)}
.region:hover .region-media img{transform:scale(1.05);filter:saturate(1.05)}
.region::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(8,13,20,.28) 55%,rgba(8,13,20,.9) 100%)}
.region-label{position:absolute;left:0;bottom:0;z-index:2;padding:clamp(20px,2.5vw,34px);max-width:44ch}
.region-k{font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}
.region-label h3{font-family:var(--serif);font-weight:400;font-size:clamp(1.5rem,2.6vw,2.3rem);line-height:1.08;margin:8px 0 6px;color:#fff}
.region-label p{font-size:14px;line-height:1.55;color:rgba(236,231,219,.82);max-width:40ch}
.regions-cta{display:flex;align-items:center;gap:24px;margin-top:clamp(30px,5vh,50px);flex-wrap:wrap}
.regions-note{font-family:var(--serif);font-style:italic;font-size:16px;color:var(--stone)}

/* history */
.history{border-top:1px solid var(--hairline-soft)}
.history-grid{max-width:1180px;margin:0 auto;padding:clamp(110px,20vh,210px) clamp(24px,6vw,90px);display:grid;grid-template-columns:200px minmax(0,1fr);gap:clamp(32px,7vw,120px)}
.history-eyebrow{font-family:var(--mono);font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--accent);padding-top:8px}
.history-body{max-width:66ch}
.history-body p{margin-top:26px;font-size:17px;line-height:1.9;color:var(--ink-soft);max-width:60ch}
.history-body p:first-of-type{margin-top:24px}
.history-stats{display:flex;gap:clamp(40px,7vw,110px);margin-top:clamp(60px,11vh,110px);flex-wrap:wrap}
.stat{display:flex;flex-direction:column;gap:6px}
.stat-n{font-family:var(--serif);font-size:clamp(2rem,3.2vw,2.6rem);color:var(--accent);line-height:1}
.stat-l{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--stone)}

/* reviews */
.reviews{border-top:1px solid var(--hairline-soft);max-width:1400px;margin:0 auto;padding:clamp(110px,20vh,210px) clamp(24px,6vw,90px)}
.reviews-head{margin-bottom:clamp(60px,11vh,110px)}
.reviews-head h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.9rem,3.6vw,3rem);line-height:1.06;letter-spacing:-.01em;margin-top:14px}
.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,4vw,64px)}
.review{border:none;border-top:1px solid var(--hairline);background:none;padding:clamp(28px,3vw,40px) 0 0;display:flex;flex-direction:column}
.review-stars{color:var(--accent);letter-spacing:.28em;font-size:13px;margin-bottom:18px}
.review-q{font-family:var(--serif);font-size:clamp(1.05rem,1.4vw,1.3rem);line-height:1.5;color:var(--ink)}
.review-by{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:auto;padding-top:24px}
.review-name{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.review-place{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--stone)}

/* faqs */
.faqs{border-top:1px solid var(--hairline-soft);max-width:1040px;margin:0 auto;padding:clamp(110px,20vh,210px) clamp(24px,6vw,90px)}
.faqs-head{margin-bottom:clamp(56px,10vh,100px)}
.faq{border-bottom:1px solid var(--hairline-soft)}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;list-style:none;padding:32px 0;
  font-family:var(--serif);font-size:clamp(1.15rem,1.9vw,1.5rem);color:var(--ink);transition:color .3s var(--ease)}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--accent)}
.faq-mk{position:relative;width:14px;height:14px;flex:0 0 14px}
.faq-mk::before,.faq-mk::after{content:"";position:absolute;background:var(--accent);transition:transform .35s var(--ease),opacity .35s var(--ease)}
.faq-mk::before{left:0;top:6.25px;width:14px;height:1.5px}
.faq-mk::after{left:6.25px;top:0;width:1.5px;height:14px}
.faq[open] .faq-mk::after{transform:scaleY(0);opacity:0}
.faq-a{overflow:hidden;padding-bottom:8px}
.faq-a p{font-size:15px;line-height:1.75;color:var(--ink-soft);max-width:70ch;margin-bottom:14px}
.faq-a p:last-child{margin-bottom:22px}
.faq-legal{font-family:var(--mono);font-size:10px;letter-spacing:.06em;line-height:1.9;color:var(--stone);margin-top:34px;text-transform:uppercase}

/* contact */
.contact{border-top:1px solid var(--hairline-soft)}
.contact-grid{max-width:1180px;margin:0 auto;padding:clamp(110px,20vh,210px) clamp(24px,6vw,90px);display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,6vw,90px);align-items:start}
.contact-lead{margin-top:20px;font-size:16px;line-height:1.7;color:var(--ink-soft);max-width:40ch}
.contact-detail{border-left:1px solid var(--hairline-soft);padding-left:clamp(22px,3vw,44px)}
.cd-row{display:flex;flex-direction:column;gap:5px;padding:16px 0;border-bottom:1px solid var(--hairline-soft)}
.cd-k{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--stone)}
.cd-row a,.cd-row span:not(.cd-k){font-family:var(--serif);font-size:20px;color:var(--ink);text-decoration:none;transition:color .3s var(--ease)}
.cd-row a:hover{color:var(--accent)}
.cd-cta{margin-top:26px}

/* site footer */
.site-foot{border-top:1px solid var(--hairline-soft);padding:clamp(64px,10vh,110px) clamp(24px,6vw,90px);display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between}
.sf-mark{font-family:var(--serif);font-size:20px;letter-spacing:.22em;text-transform:uppercase}
.sf-cols{display:flex;gap:clamp(16px,2.5vw,34px);flex-wrap:wrap}
.sf-cols a{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);text-decoration:none;transition:color .3s var(--ease)}
.sf-cols a:hover{color:var(--accent)}
.sf-fine{flex-basis:100%;font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--stone);line-height:1.8;padding-top:14px;border-top:1px solid var(--hairline-soft)}

/* ============================================================
   PLANNER OVERLAY
============================================================ */
#planner{position:fixed;inset:0;z-index:200;overflow-y:auto;background:var(--ground);display:none}
#planner.open{display:block}
body.planner-open{overflow:hidden}
.planner-close{
  position:fixed;top:20px;left:clamp(20px,4vw,60px);z-index:210;background:rgba(244,242,236,.8);backdrop-filter:blur(10px);
  border:1px solid var(--hairline);color:var(--ink);cursor:pointer;padding:9px 16px;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;transition:border-color .3s var(--ease),color .3s var(--ease)
}
.planner-close:hover{border-color:var(--ink);color:var(--ink)}

@media(max-width:820px){
  .nav-toggle{display:flex}
  .nav-links{position:fixed;inset:0 0 0 auto;width:min(80vw,320px);flex-direction:column;align-items:flex-start;justify-content:center;gap:28px;
    padding:40px;background:rgba(244,242,236,.98);backdrop-filter:blur(14px);transform:translateX(100%);transition:transform .4s var(--ease);border-left:1px solid var(--hairline-soft)}
  .nav-links.open{transform:none}
  .nav-links.open a{color:var(--ink)!important}
  .nav-links a{font-size:14px}
  .pillars{grid-template-columns:1fr;gap:34px}
  .region-grid{grid-template-columns:1fr}
  .region,.region-wide{aspect-ratio:3/2}
  .history-grid,.contact-grid{grid-template-columns:1fr}
  .review-grid{grid-template-columns:1fr}
  .contact-detail{border-left:none;border-top:1px solid var(--hairline-soft);padding-left:0;padding-top:24px}
  .planner-close{top:14px}
}
/* =====================================================================
   LANDING — light, warm, editorial (scoped to #site only).
   The planner overlay keeps its dark palette.
   ===================================================================== */
#site{
  --ground:#FFFFFF;      /* warm near-white */
  --surface:#FFFFFF;     /* lifted */
  --surface-2:#F0F0F0;
  --ink:#0E0E0E;         /* near-black */
  --ink-soft:#3A3A3A;
  --stone:#7A7A7A;       /* muted grey */
  --accent:#0E0E0E;      /* monochrome: emphasis is black */
  --accent-deep:#000000;
  --hairline:rgba(14,14,14,.18);
  --hairline-soft:rgba(14,14,14,.09);
  position:relative;z-index:1;background:var(--ground);color:var(--ink);
}
#site::selection,#site *::selection{background:var(--ink);color:var(--ground)}

/* nav — white over the hero photo, near-white when scrolled */
#site .nav-mark{color:#fff}
#site .nav-links a{color:rgba(255,255,255,.9)}
#site .nav-links a:hover{color:#fff}
#site .nav-toggle span{background:#fff}
#site .nav.solid{background:rgba(244,242,236,.92);backdrop-filter:blur(14px);border-bottom-color:var(--hairline-soft)}
#site .nav.solid .nav-mark{color:var(--ink)}
#site .nav.solid .nav-links a{color:var(--ink-soft)}
#site .nav.solid .nav-links a:hover{color:var(--ink)}
#site .nav.solid .nav-toggle span{background:var(--ink)}
#site .nav-cta{background:#fff;color:var(--ink);border-color:#fff}
#site .nav-cta:hover{background:transparent;color:#fff;border-color:#fff}
#site .nav.solid .nav-cta{background:var(--ink);color:var(--ground);border-color:var(--ink)}
#site .nav.solid .nav-cta:hover{background:transparent;color:var(--ink);border-color:var(--ink)}

/* buttons: black primary, ink outline secondary */
#site .btn{border-color:var(--ink);color:var(--ink)}
#site .btn::before{background:var(--ink)}
#site .btn:hover,#site .btn:focus-visible{color:var(--ground)}
#site .btn-solid{background:var(--ink);border-color:var(--ink);color:var(--ground)}
#site .btn-solid::before{background:#000}
#site .btn-solid:hover,#site .btn-solid:focus-visible{color:var(--ground);border-color:#000}

/* hero — colour photo, restrained mono scrim, large calm headline */
#site .hero{min-height:660px}
#site .hero-media{background:linear-gradient(160deg,#cfccc3,#a9a69d 60%,#6f6d66)}
#site .hero-media img{filter:none}
#site .hero-scrim{background:
  linear-gradient(180deg, rgba(12,12,10,.40) 0%, rgba(12,12,10,.04) 26%, rgba(12,12,10,.10) 60%, rgba(12,12,10,.62) 100%)}
#site .hero-eyebrow{color:rgba(255,255,255,.9)}
#site .hero-title{font-size:clamp(1.7rem,4.4vw,3.6rem);letter-spacing:-.02em;color:#fff}
#site .hero-title em{color:#fff}
#site .hero-sub{color:rgba(255,255,255,.9)}
#site .hero-scroll{color:rgba(255,255,255,.82)}
#site .hero-scroll:hover{color:#fff}
#site .hero-foot{color:rgba(255,255,255,.72)}

/* feature band */
.assurance{border-bottom:1px solid var(--hairline-soft);background:var(--surface)}
.assurance-in{max-width:1400px;margin:0 auto;padding:clamp(48px,8vh,88px) clamp(24px,6vw,90px);
  display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,3vw,44px)}
.assurance .f{display:flex;flex-direction:column;gap:8px}
.assurance .fn{font-family:var(--serif);font-size:clamp(1.5rem,2.4vw,2.1rem);line-height:1;color:var(--ink)}
.assurance .fl{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--stone);line-height:1.5}

/* promise pillars */
#site .promise-lead{color:var(--ink)}
#site .pillar-n{color:var(--ink)}
#site .pillar p{color:var(--ink-soft)}

/* regions — neutral placeholder behind full-colour photos */
#site .region{background:var(--surface-2)}
#site .region-media{background:linear-gradient(160deg,#cfccc3,#9d9a91 65%,#67655e)}
#site .region-media img{filter:none}
#site .region::after{background:linear-gradient(180deg,transparent 28%,rgba(12,12,10,.22) 54%,rgba(10,10,8,.86) 100%)}
#site .region-k{color:rgba(255,255,255,.9)}
#site .regions-note{color:var(--stone)}

/* history */
#site .history{border-top-color:var(--hairline-soft)}
#site .history-body p{color:var(--ink-soft)}
#site .stat-n{color:var(--ink)}

/* reviews — plain editorial pull-quotes, no cards */
#site .reviews{border-top-color:var(--hairline-soft)}
#site .review{border:none;background:none;padding:0;border-top:2px solid var(--ink);padding-top:26px}
#site .review-stars{color:var(--ink);font-size:12px;letter-spacing:.3em;margin-bottom:20px}
#site .review-q{font-family:var(--serif);font-size:clamp(1.2rem,1.7vw,1.55rem);line-height:1.42;color:var(--ink)}
#site .review-by{padding-top:26px}
#site .review-name{color:var(--ink)}
#site .review-place{color:var(--stone)}

/* faqs */
#site .faqs{border-top-color:var(--hairline-soft)}
#site .faq summary{color:var(--ink)}
#site .faq summary:hover{color:var(--ink-soft)}
#site .faq-a p{color:var(--ink-soft)}
#site .faq-legal{color:var(--stone)}
#site .faq-mk::before,#site .faq-mk::after{background:var(--ink)}

/* contact + footer */
#site .contact-lead{color:var(--ink-soft)}
#site .contact-detail a{color:var(--ink)}
#site .site-foot{border-top:1px solid var(--hairline-soft);color:var(--ink-soft)}
#site .sf-mark{color:var(--ink)}
#site .sf-cols a{color:var(--ink-soft)}
#site .sf-cols a:hover{color:var(--ink)}
#site .sf-fine{color:var(--stone)}

@media(max-width:760px){
  .assurance-in{grid-template-columns:1fr 1fr;gap:22px}
}

/* wordmark: keep the barless A (Λ) in the same serif as the rest of the name */
.nav-mark,.sf-mark,.mark,.planner-close{font-family:var(--serif)}
.nav-mark,.sf-mark,.mark{font-feature-settings:"case" on}


/* ---- Locations / Experiences / Properties tiles ---- */
.tiles{max-width:1400px;margin:0 auto;padding:0 clamp(24px,6vw,90px) clamp(80px,14vh,160px);display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,34px)}
.tile{position:relative;display:block;overflow:hidden;text-decoration:none;aspect-ratio:4/5;background:var(--ink)}
.tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.2,1);filter:brightness(.86)}
.tile:hover img{transform:scale(1.05)}
.tile-t{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 12%;font-family:var(--serif);font-weight:400;font-size:clamp(1.4rem,2.4vw,2.3rem);line-height:1.1;color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.45)}
@media(max-width:820px){.tiles{grid-template-columns:1fr}}

/* ---- Language select ---- */
.lang-select{position:relative;display:inline-flex;align-items:center;margin-left:6px}
.lang-select select{appearance:none;background:none;border:1px solid color-mix(in oklab,currentColor 30%,transparent);color:inherit;font-family:var(--sans);font-weight:600;font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:7px 26px 7px 10px;cursor:pointer}
.lang-select select:focus{outline:none;border-color:currentColor}
.lang-caret{position:absolute;right:9px;font-size:10px;pointer-events:none;opacity:.7}

.history-grid{grid-template-columns:180px minmax(0,1fr) minmax(0,400px)}
.history-figure{margin:0}
.history-figure img{width:100%;height:100%;max-height:640px;display:block;object-fit:cover}
@media (max-width:900px){.history-grid{grid-template-columns:1fr}.history-figure img{max-height:none}}

/* ============================================================
   MOBILE PASS — tighter rhythm, readable type, usable nav
   ============================================================ */
@media (max-width:820px){
  html{overflow-x:clip}body{overflow-x:clip}

  /* --- nav --- */
  #site .nav,.nav{padding-left:20px;padding-right:20px;padding-top:16px;padding-bottom:16px}
  .nav-mark{font-size:18px;letter-spacing:.18em}
  .nav-toggle{z-index:120;position:relative}
  .nav-links{z-index:110;width:min(88vw,360px);gap:22px;padding:96px 28px 40px;overflow-y:auto;justify-content:flex-start;
    box-shadow:-20px 0 60px rgba(0,0,0,.18)}
  #site .nav-links{background:#fff}
  .nav-links a,#site .nav-links a,#site .nav.solid .nav-links a{color:var(--ink)!important;font-size:15px;letter-spacing:.1em}
  .nav-links .lang-select{margin-left:0;width:100%}
  .nav-links .lang-select select{width:100%;color:var(--ink);border-color:rgba(14,14,14,.25);padding:12px 30px 12px 12px;font-size:12px}
  .nav-links .lang-caret{color:var(--ink)}
  .nav-links .nav-cta{display:inline-flex!important;width:100%;justify-content:center;margin-top:8px}
  #site .nav-links .nav-cta,#site .nav.solid .nav-links .nav-cta{background:var(--ink);color:var(--ground);border-color:var(--ink)}
  body.menu-open{overflow:hidden}

  /* --- hero --- */
  #site .hero,.hero{min-height:0;height:88svh}
  .hero-inner{padding:0 20px 26px}
  .hero-eyebrow{font-size:9.5px;letter-spacing:.18em;margin-bottom:14px}
  #site .hero-title,.hero-title{white-space:normal;font-size:clamp(1.85rem,8.6vw,2.6rem);line-height:1.08}
  .hero-sub{margin-top:16px;font-size:15px;line-height:1.55;max-width:36ch}
  .hero-row{gap:16px;margin-top:24px}
  .hero-row .btn{display:none!important}
  .hero-scroll{font-size:10px}
  .hero-foot{flex-direction:column;gap:4px;padding:0 20px 18px;font-size:8.5px;line-height:1.6}
  .hero-foot .hide-sm{display:none}

  /* --- shared section rhythm --- */
  .promise,.regions,.reviews,.faqs,.history-grid,.contact-grid,.tiles{
    padding-left:20px;padding-right:20px}
  .promise{padding-top:64px;padding-bottom:56px}
  .regions,.reviews,.faqs{padding-top:64px;padding-bottom:64px}
  .history-grid,.contact-grid{padding-top:64px;padding-bottom:64px;gap:36px}

  /* --- promise --- */
  .promise-split{gap:28px}
  .promise-copy{gap:18px}
  .promise-lead{font-size:clamp(2rem,9vw,2.8rem);line-height:1.05}
  .promise-sub{font-size:15px;line-height:1.6}
  .promise-media{aspect-ratio:4/3}
  .pillars{margin-top:56px;gap:38px}
  .pillar h3{font-size:1.25rem;margin-bottom:8px}
  .pillar p{font-size:15px;line-height:1.62;max-width:none}

  /* --- regions --- */
  .regions-head{margin-bottom:34px}
  .regions-head h2{font-size:clamp(1.7rem,7.4vw,2.3rem)}
  .regions-head p{margin-top:16px;font-size:15px;line-height:1.6}
  .region-grid{gap:18px}
  .region,.region-wide{aspect-ratio:4/5}
  #site .region::after{background:linear-gradient(180deg,transparent 22%,rgba(10,10,8,.45) 58%,rgba(8,8,6,.92) 100%)}
  .region-label{padding:20px;max-width:none}
  .region-label h3{font-size:1.5rem;margin:6px 0 6px}
  .region-label p{font-size:13.5px;line-height:1.5;max-width:none}
  .regions-cta{margin-top:32px;gap:14px}
  .regions-cta .btn{width:100%;justify-content:center;text-align:center;padding:16px 20px}
  .regions-note{font-size:14px}

  /* --- tiles --- */
  .tiles{padding-bottom:64px;gap:14px}
  .tile{aspect-ratio:3/2}
  .tile-t{font-size:1.5rem}

  /* --- reviews --- */
  .reviews-head{margin-bottom:34px}
  .review-grid{gap:34px}
  #site .review{padding-top:20px}
  .review-q,#site .review-q{font-size:1.05rem;line-height:1.5}
  .review-by{padding-top:18px;flex-wrap:wrap;gap:4px}

  /* --- faqs --- */
  .faqs-head{margin-bottom:32px}
  .faq summary{padding:22px 0;font-size:1.05rem;gap:14px}
  .faq-a p{font-size:14.5px;line-height:1.65}

  /* --- history / contact --- */
  .history-body p{margin-top:18px;font-size:15.5px;line-height:1.7;max-width:none}
  .history-figure img{max-height:420px}
  .contact-lead{font-size:15.5px;line-height:1.7}

  /* --- footer --- */
  .site-foot{padding:52px 20px;gap:20px;align-items:flex-start}
  .sf-cols{gap:12px 18px}
  .sf-fine{font-size:8.5px;line-height:1.75;padding-top:16px}
}

@media (max-width:820px){
  /* dim the page behind the open menu */
  .nav-scrim{position:fixed;inset:0;z-index:45;background:rgba(10,10,8,.45);opacity:0;pointer-events:none;transition:opacity .35s ease}
  body.menu-open .nav-scrim{opacity:1;pointer-events:auto}
}

/* burger -> X */
.nav-toggle.is-open span:first-child{transform:translateY(3.25px) rotate(45deg)}
.nav-toggle.is-open span:last-child{transform:translateY(-3.25px) rotate(-45deg)}

@media (max-width:820px){
  body.menu-open .nav,body.menu-open #site .nav.solid{z-index:130;background:transparent!important;border-color:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  body.menu-open .nav-mark{opacity:0;pointer-events:none}
  body.menu-open .nav-toggle span{background:var(--ink)}
}

/* ---- Locations page ---- */
.locations{border-top:1px solid var(--hairline-soft)}
.loc-head{max-width:1400px;margin:0 auto;padding:clamp(80px,16vh,170px) clamp(24px,6vw,90px) clamp(36px,6vh,64px)}
.loc-head h2{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,4.4vw,3.4rem);line-height:1.05;letter-spacing:-.01em;margin:14px 0 0}
.loc-lead{margin-top:20px;max-width:56ch;font-size:17px;line-height:1.8;color:var(--ink-soft)}
.loc-grid{max-width:1400px;margin:0 auto;padding:0 clamp(24px,6vw,90px);display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,48px) clamp(18px,2.4vw,34px)}
.loc-card{margin:0}
.loc-media{position:relative;overflow:hidden;aspect-ratio:4/5;background:var(--ink)}
.loc-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.2,1);filter:brightness(.9)}
.loc-card:hover .loc-media img{transform:scale(1.05)}
.loc-slider .loc-track{display:flex;height:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.loc-slider .loc-track::-webkit-scrollbar{display:none}
.loc-slider .loc-track img{flex:0 0 100%;scroll-snap-align:center;transform:none!important}
.loc-slider::after{content:"";position:absolute;left:0;right:0;bottom:10px;height:4px;background:linear-gradient(90deg,rgba(255,255,255,.85) 33.3%,rgba(255,255,255,.3) 33.3%);background-size:100% 100%;pointer-events:none;width:44px;margin:0 auto;border-radius:2px}
.loc-empty{background:linear-gradient(180deg,#e9e6e0,#d8d4cc)}
.loc-card h3{margin:18px 0 0;font-family:var(--sans,Archivo,sans-serif);font-weight:700;font-size:15px;letter-spacing:.02em;text-transform:uppercase}
.loc-card p{margin-top:10px;font-size:15px;line-height:1.75;color:var(--ink-soft);max-width:42ch}
.loc-cta{max-width:1400px;margin:0 auto;padding:clamp(60px,12vh,140px) clamp(24px,6vw,90px)}
@media(max-width:980px){.loc-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){
  .loc-grid{grid-template-columns:1fr;gap:28px}
  .loc-media{aspect-ratio:3/2}
  .loc-head{padding-top:64px;padding-bottom:28px}
  .loc-cta{padding-top:48px;padding-bottom:64px}
}

/* Experiences: "and more" tile */
.loc-more{display:flex;align-items:center;justify-content:center}
.loc-more span{font-family:var(--serif,'Instrument Serif',serif);font-size:clamp(34px,4vw,54px);color:var(--ink-soft);letter-spacing:.04em}

/* Contact form */
.contact-form-wrap{padding:0 clamp(24px,6vw,90px) clamp(80px,12vw,180px)}
.cf-inner{max-width:760px;margin:0 auto}
.cf-inner h2{margin:8px 0 36px}
.cf-form{display:flex;flex-direction:column;gap:22px}
.cf-row{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.cf-field{display:flex;flex-direction:column;gap:8px}
.cf-field>span{font-family:var(--sans,Archivo,sans-serif);font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.cf-field input,.cf-field textarea{font-family:var(--sans,Archivo,sans-serif);font-size:15px;color:var(--ink,#0a0a08);background:transparent;border:1px solid rgba(10,10,8,.18);border-radius:0;padding:14px 16px;outline:none;transition:border-color .2s}
.cf-field input:focus,.cf-field textarea:focus{border-color:var(--ink,#0a0a08)}
.cf-field textarea{resize:vertical}
.cf-err{font-style:normal;font-size:12px;color:#a3352b}
.cf-form .btn{align-self:flex-start;margin-top:6px}
.cf-success{border-top:1px solid rgba(10,10,8,.14);padding-top:28px}
.cf-success-t{font-family:var(--serif,'Instrument Serif',serif);font-size:clamp(24px,3vw,34px);margin:0}
.cf-success-s{margin:10px 0 24px;color:var(--ink-soft);font-size:15px}
@media(max-width:700px){.cf-row{grid-template-columns:1fr}}

/* Properties message modal */
.prop-modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;background:rgba(10,10,8,.62);backdrop-filter:blur(6px);padding:24px}
.prop-modal[hidden]{display:none}
.prop-modal-box{background:#fbfaf7;max-width:560px;width:100%;padding:clamp(36px,5vw,64px);border:1px solid rgba(10,10,8,.08);box-shadow:0 40px 90px -40px rgba(10,10,8,.45);animation:propIn .45s cubic-bezier(.2,.7,.2,1)}
@keyframes propIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.prop-modal-eyebrow{display:block;font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:700;opacity:.5;margin-bottom:22px}
.prop-modal-t{font-family:var(--serif,'Instrument Serif',serif);font-size:clamp(26px,3.4vw,38px);line-height:1.18;letter-spacing:-.01em;margin:0 0 18px}
.prop-modal-sub{font-size:15px;line-height:1.75;opacity:.66;margin:0 0 34px;max-width:46ch}
.prop-modal-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.prop-modal-actions .btn-quiet{border-color:transparent;opacity:.55}
.prop-modal-actions .btn-quiet:hover{opacity:1}

/* ============================================================
   PLANNER — same header language as the site
============================================================ */
#planner .nav.solid{background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--hairline-soft)}
#planner .nav-mark{background:none;border:none;cursor:pointer;color:var(--ink);padding:0}
#planner .nav-links a,#planner .planner-back{
  font-family:var(--sans);font-weight:600;font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-soft);text-decoration:none;background:none;border:none;cursor:pointer;padding:0;
  transition:color .3s var(--ease)
}
#planner .nav-links a:hover,#planner .planner-back:hover{color:var(--ink)}
#planner .planner-back{color:var(--ink);font-weight:700}
#planner .shell{padding-top:clamp(78px,10vh,104px)}
@media(max-width:820px){
  #planner .nav-links a{display:none}
  #planner .nav-links{gap:0}
  #planner .planner-back{font-size:11px}
}
#planner .q-hint,#planner .ledger .empty,#planner .ledger{font-family:var(--sans);font-style:normal}
#planner .q-hint{font-size:13px;color:var(--stone)}

/* ============ PRICING (landing) ============ */
.pricing{padding:clamp(90px,14vh,190px) var(--gut);max-width:1180px;margin:0 auto}
.pricing-head{max-width:62ch;margin-bottom:clamp(40px,6vh,72px)}
.pricing-head h2{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,4.4vw,3.4rem);line-height:1.05;margin:.3em 0}
.pricing-sub{color:var(--stone);font-size:15.5px;line-height:1.75;max-width:60ch}
.pricing-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,64px)}
.price-card{border:1px solid var(--hairline);padding:clamp(26px,3.4vw,44px);display:flex;flex-direction:column}
.price-card h3{font-family:var(--serif);font-weight:400;font-size:clamp(1.4rem,2.4vw,2rem);margin:0}
.price-fig{font-weight:700;font-size:clamp(2rem,4vw,2.8rem);letter-spacing:-.02em;margin:.35em 0 .5em}
.price-lede{color:var(--ink);font-size:15px;line-height:1.7;margin:0 0 20px}
.price-card ul{list-style:none;padding:0;margin:0 0 28px;border-top:1px solid var(--hairline-soft)}
.price-card ul li{padding:11px 0;border-bottom:1px solid var(--hairline-soft);color:var(--stone);font-size:14px;line-height:1.5}
.price-card .btn{align-self:flex-start;margin-top:auto}
.pricing-note{margin-top:clamp(24px,4vh,40px);color:var(--stone);font-size:12.5px;line-height:1.7;max-width:78ch}
@media (max-width:820px){ .pricing-grid{grid-template-columns:1fr} }

/* Book / Contact actions inside the recommendation */
.rec-act{display:inline-block;margin-top:10px;padding:7px 16px;border:1px solid currentColor;
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;text-decoration:none;color:inherit;
  transition:background .25s var(--ease),color .25s var(--ease)}
.rec-act:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.exp[role="button"]{cursor:pointer}

/* Admin data-sync page */
.admin-shell{max-width:900px;margin:0 auto;padding:80px 24px 120px;font-family:'Archivo',system-ui,sans-serif;color:var(--ink)}
.admin-shell h1{font-size:26px;font-weight:700;letter-spacing:-.01em;margin:0 0 14px}
.admin-lead{max-width:56ch;font-size:14px;line-height:1.7;opacity:.75;margin:0 0 32px}
.admin-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.admin-row input{flex:1 1 240px;padding:12px 14px;border:1px solid rgba(10,10,8,.2);font:inherit;font-size:14px;background:#fff;color:inherit}
.admin-row button{padding:12px 22px;border:1px solid var(--ink);background:var(--ink);color:#fff;
  font:inherit;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
.admin-row button:disabled{opacity:.4;cursor:not-allowed}
.admin-status{margin:20px 0 0;font-size:14px}
.admin-table{width:100%;margin-top:36px;border-collapse:collapse;font-size:13px}
.admin-table th,.admin-table td{text-align:left;padding:10px 12px;border-bottom:1px solid rgba(10,10,8,.12);vertical-align:top}
.admin-table th{font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;opacity:.6}
.admin-ghost{background:#fff!important;color:var(--ink)!important}
.admin-linkbtn{display:inline-block;padding:12px 22px;border:1px solid var(--ink);background:var(--ink);color:#fff;
  font-family:'Archivo',system-ui,sans-serif;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;text-decoration:none}

/* Planner, exact budget entry */
.amount-row{display:flex;align-items:baseline;gap:10px;margin:18px 0 6px;flex-wrap:wrap}
.amount-row .cur{font-family:'Archivo',sans-serif;font-size:34px;font-weight:600;color:var(--ink)}
.amount-input{font-family:'Archivo',sans-serif;font-size:34px;font-weight:600;color:var(--ink);
  background:transparent;border:0;border-bottom:1px solid var(--hairline);padding:4px 2px;width:220px;max-width:60vw;outline:none}
.amount-input:focus{border-bottom-color:var(--ink)}
.amount-input::placeholder{color:var(--stone);opacity:.5}
.amount-row .per{font-family:'Archivo',sans-serif;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--stone)}
@media (max-width:640px){.amount-row .cur,.amount-input{font-size:26px}.amount-input{width:160px}}

/* ===== Journey map, scroll drawn ===== */
.journey{display:grid;grid-template-columns:minmax(300px,440px) 1fr;gap:clamp(28px,5vw,80px);align-items:start}
.journey-map{position:sticky;top:76px}
.jm-stage{position:relative;background:var(--ink);padding:clamp(16px,2vw,26px) clamp(14px,1.8vw,22px) clamp(96px,12vh,132px);
  overflow:hidden}
.jm-stage::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 80% at 30% 10%,rgba(255,255,255,.06),transparent 60%)}
.jm-svg{width:100%;height:auto;max-height:66vh;display:block;overflow:visible;position:relative;z-index:1}
.jm-shape{fill:rgba(255,255,255,.045);stroke:rgba(255,255,255,.34);stroke-width:.8;stroke-linejoin:round}
.jm-isle rect{fill:none;stroke:rgba(255,255,255,.2);stroke-width:.7;stroke-dasharray:3 3}
.jm-isle-k{font-family:var(--sans);font-size:6.5px;letter-spacing:.14em;text-transform:uppercase;fill:rgba(255,255,255,.5)}
.jm-ghost{fill:none;stroke:rgba(255,255,255,.14);stroke-width:.9;stroke-dasharray:2 4}
.jm-draw{fill:none;stroke:var(--gold);stroke-width:1.5;stroke-linecap:round;
  filter:drop-shadow(0 0 4px rgba(200,169,106,.45))}
.jm-draw.air{stroke-dasharray:none}
.jm-marker-glow{opacity:.9}
.jm-glyph-fill{fill:#fff}
.pin{cursor:pointer}
.pin-hit{fill:transparent}
.pin-dot{fill:rgba(255,255,255,.55);transition:r .3s var(--ease)}
.pin.done .pin-dot{fill:var(--gold)}
.pin-halo{fill:none;stroke:var(--gold);stroke-width:.8;opacity:.5}
.pin-halo.two{opacity:.2}
.pin-ring{fill:none;stroke:rgba(255,255,255,.85);stroke-width:1.2}
.pin-label{font-family:var(--sans);font-size:8px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;fill:rgba(255,255,255,.55)}
.pin-label.on{fill:#fff;font-size:9.5px}
.pin-sub{font-family:var(--sans);font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;fill:var(--gold)}

.jm-card{position:absolute;left:clamp(14px,1.8vw,22px);right:clamp(14px,1.8vw,22px);bottom:clamp(30px,4vh,44px);z-index:2}
.jm-card-in{display:flex;gap:14px;align-items:center;cursor:pointer;
  background:rgba(255,255,255,.06);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.14);
  padding:10px;animation:jm-card-in .6s var(--ease) both}
@keyframes jm-card-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.jm-card-media{width:78px;height:78px;flex:0 0 78px;overflow:hidden;background:rgba(255,255,255,.08)}
.jm-card-media img,.jm-card-media svg{width:100%;height:100%;object-fit:cover;display:block}
.jm-card-body{display:flex;flex-direction:column;gap:3px;min-width:0}
.jm-card-k{font-family:var(--sans);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.jm-card-t{font-family:var(--serif);font-weight:400;font-size:19px;line-height:1.1;color:#fff}
.jm-card-h{font-size:12.5px;color:rgba(255,255,255,.82);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jm-card-m{font-family:var(--sans);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5)}

.jm-prog{position:absolute;left:0;right:0;bottom:0;height:2px;background:rgba(255,255,255,.12);z-index:2}
.jm-prog span{display:block;height:100%;background:var(--gold);transform:scaleX(0);transform-origin:left;
  transition:transform .25s linear}

.jm-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:18px}
.jm-chip{border:1px solid rgba(14,14,14,.16);background:none;cursor:pointer;padding:7px 11px;border-radius:0;
  font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);transition:all .3s var(--ease)}
.jm-chip .jm-chip-k{display:block;font-size:8px;font-weight:400;letter-spacing:.16em;opacity:.7}
.jm-chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.jm-foot{margin-top:20px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.jm-hint{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--stone)}

/* each stop reads as a chapter, so the line has room to draw */
.journey-legs .leg{min-height:78vh;display:flex;flex-direction:column;justify-content:center}
@media (max-width:900px){
  .journey{grid-template-columns:1fr}
  .journey-map{position:sticky;top:64px;z-index:3;background:var(--ground);padding-bottom:8px}
  .jm-svg{max-height:44vh;margin:0 auto}
  .jm-stage{padding-bottom:clamp(76px,11vh,104px)}
  .jm-card-media{width:58px;height:58px;flex:0 0 58px}
  .jm-card-t{font-size:16px}
  .journey-legs .leg{min-height:0}
}


/* Route detail: travel in, city background, three stays, day by day */
.leg-travel{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:baseline;margin:14px 0 4px;font-size:14px;color:var(--stone);line-height:1.55}
.leg-travel-k{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);white-space:nowrap}
.leg-background{margin-top:12px;font-size:15px;line-height:1.7;color:var(--stone);max-width:62ch}
.picks{margin-top:clamp(20px,3vh,32px)}
.picks h4,.dayplan h4{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--stone);margin:0 0 14px}
.pick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.pick{display:flex;flex-direction:column;gap:6px;text-align:left;background:none;border:1px solid var(--hairline-soft);padding:16px;cursor:pointer;color:inherit;transition:border-color .4s var(--ease),transform .4s var(--ease)}
.pick:hover{border-color:var(--ink);transform:translateY(-2px)}
.pick.current{border-color:var(--ink);opacity:1;pointer-events:none}
.pick.current .pick-rank{color:var(--ink)}
.pick-rank{font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--stone)}
.pick-name{font-family:var(--serif);font-size:18px;line-height:1.25}
.pick-meta,.pick-total{font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--stone)}
.pick-why,.pick-suits{font-size:13px;line-height:1.6;color:var(--stone)}
.pick-suits{opacity:.8}
.dayplan{margin-top:clamp(24px,4vh,44px)}
.day{display:grid;grid-template-columns:120px 1fr;gap:20px;padding:18px 0;border-top:1px solid var(--hairline-soft)}
.day-head{display:flex;flex-direction:column;gap:4px}
.day-n{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase}
.day-date{font-size:12px;color:var(--stone)}
.day-body h5{font-family:var(--serif);font-size:19px;margin:0 0 8px;font-weight:400}
.day-wx{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--stone);margin-bottom:8px}
.day-note{font-size:13px;color:var(--stone);margin:0 0 10px;line-height:1.6}
.day-part{font-size:14px;line-height:1.7;margin:0 0 6px;max-width:62ch}
.day-part b{font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;margin-right:8px;color:var(--stone);font-weight:400}
@media (max-width:820px){
  .pick-grid{grid-template-columns:1fr}
  .day{grid-template-columns:1fr;gap:8px}
  .day-head{flex-direction:row;gap:10px;align-items:baseline}
}

/* ===== Hour by hour spine (results page) ===== */
.journey.no-map{grid-template-columns:1fr;max-width:1000px;margin:0 auto}
.journey.no-map .journey-legs .leg{min-height:0;display:block;padding:clamp(34px,6vh,72px) 0;border-top:1px solid var(--hairline-soft)}
.journey.no-map .journey-legs .leg:first-child{border-top:none;padding-top:0}
.journey-doc{margin-top:clamp(24px,4vh,44px);padding-top:20px;border-top:1px solid var(--hairline-soft)}
.day-title{font-family:var(--serif);font-size:20px;font-weight:400;margin:0 0 8px}
.spine{list-style:none;margin:12px 0 0;padding:0 0 0 2px;position:relative}
.spine:before{content:'';position:absolute;left:9px;top:8px;bottom:8px;width:1px;background:var(--hairline-soft)}
.ev{position:relative;display:grid;grid-template-columns:78px 1fr;gap:16px;padding:12px 0 12px 34px}
.ev-dot{position:absolute;left:0;top:14px;width:19px;height:19px;border-radius:50%;background:var(--ground);
  border:1px solid var(--hairline-soft);display:flex;align-items:center;justify-content:center;font-size:10px;line-height:1}
.ev-time{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--stone);padding-top:4px}
.ev-body h5{font-family:var(--sans);font-size:13.5px;font-weight:600;letter-spacing:.01em;margin:0 0 3px}
.ev-body p{font-size:14px;line-height:1.7;color:var(--stone);margin:0;max-width:62ch}
.ev-body .rec-act{margin-top:8px}
@media (max-width:820px){
  .ev{grid-template-columns:1fr;gap:4px;padding-left:30px}
  .ev-dot{top:10px}
}
