/* site-p30: upgrades, form, wayfinding (#wf), before/after, vero scenes */

/* ---- Wayfinding sticky label ---- */
#wf{position:sticky;top:var(--hdr-h,56px);z-index:90;height:32px;display:flex;align-items:center;
  padding:0 var(--gutter,1.25rem);background:rgba(44,47,50,.92);backdrop-filter:blur(8px);
  font:600 .75rem/1 Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase;
  color:var(--sage,#d7e8bc);opacity:0;pointer-events:none;transition:opacity .2s}
#wf.on{opacity:1;pointer-events:auto}
#wf .wf-t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wf-prog{display:flex;gap:2px;margin-left:auto;flex-shrink:0}
.wf-seg{width:24px;height:3px;border-radius:1.5px;background:rgba(215,232,188,.2)}
.wf-seg.fill{background:var(--sage,#d7e8bc)}

/* Force header hidden while upgrades switcher is pinned */
html.up-sw-on .hdr{transform:translateY(-100%)!important;pointer-events:none}

/* ---- Upgrades section ---- */
.up-opener{text-align:center;padding:3rem 0 2rem}
.up-num{font:var(--t-display);font-size:clamp(80px,20vw,240px);line-height:.9;color:var(--sage,#d7e8bc);margin:0}
.up-sub{font:var(--t-body);color:var(--sage,#d7e8bc);opacity:.7;margin:.5rem 0 0}
.up-index{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;padding:1rem 0}
.up-index a{font:600 .75rem/1 Inter,sans-serif;letter-spacing:.06em;text-transform:uppercase;
  color:var(--sage,#d7e8bc);text-decoration:none;padding:.5rem .75rem;border:1px solid rgba(215,232,188,.2);
  border-radius:999px;white-space:nowrap;min-height:44px;display:inline-flex;align-items:center}
.up-index a:hover,.up-index a:focus-visible{border-color:var(--accent,#e9f056);color:var(--accent,#e9f056)}

/* Upgrades sticky switcher */
.up-sw{position:sticky;top:var(--wf-top,88px);z-index:89;height:44px;display:flex;align-items:center;gap:.5rem;
  padding:0 var(--gutter,1.25rem);background:rgba(44,47,50,.95);backdrop-filter:blur(8px);
  overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.up-sw::-webkit-scrollbar{display:none}
.up-sw .up-chip{font:600 .7rem/1 Inter,sans-serif;letter-spacing:.06em;text-transform:uppercase;
  color:var(--sage,#d7e8bc);text-decoration:none;padding:.35rem .6rem;border:1px solid rgba(215,232,188,.15);
  border-radius:999px;white-space:nowrap;min-height:36px;display:inline-flex;align-items:center;flex-shrink:0}
.up-sw .up-chip.cur{border-color:var(--accent,#e9f056);color:var(--accent,#e9f056)}
.up-sw .up-of{margin-left:auto;font:600 .65rem/1 Inter,sans-serif;letter-spacing:.06em;
  color:rgba(215,232,188,.5);white-space:nowrap;flex-shrink:0}

/* Room scenes */
.up-room{border-top:1px solid rgba(215,232,188,.08);padding:2rem 0}
.up-room-head{display:flex;align-items:center;gap:.75rem;cursor:pointer;min-height:72px;padding:.5rem 0}
.up-room-head h3{font:var(--t-h3);margin:0;flex:1}
.up-room-head .up-cnt{font:600 .75rem/1 Inter,sans-serif;letter-spacing:.06em;color:rgba(215,232,188,.5)}
.up-room-head .up-thumb{width:56px;height:56px;border-radius:4px;object-fit:cover;flex-shrink:0}
.up-room-head .up-arrow{width:24px;height:24px;transition:transform .2s;color:var(--sage,#d7e8bc);flex-shrink:0}
.up-room[open] .up-arrow{transform:rotate(180deg)}
.up-room-body{padding:0 0 1rem}

/* Upgrade items */
.up-item{margin:1.5rem 0}
.up-item-photo{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:2px}
@media(min-width:900px){.up-item-photo{aspect-ratio:16/9}}
.up-item h4{font:var(--t-h4);margin:.75rem 0 .25rem}
.up-item p{font:var(--t-body);margin:0;opacity:.8}
.up-item-typo{padding:.75rem 0;border-bottom:1px solid rgba(215,232,188,.06)}
.up-item-typo h4{margin:0}

/* Before/after comparison */
.ba{position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:2px;touch-action:pan-y}
@media(min-width:900px){.ba{aspect-ratio:16/9}}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba .ba-before{clip-path:inset(0 calc(100% - var(--p,50%)) 0 0)}
.ba .ba-handle{position:absolute;top:0;bottom:0;left:var(--p,50%);width:2px;background:#fff;
  transform:translateX(-50%);pointer-events:none;z-index:2}
.ba .ba-handle::before{content:'';position:absolute;top:50%;left:50%;width:44px;height:44px;
  border-radius:50%;border:2px solid #fff;background:rgba(44,47,50,.6);
  transform:translate(-50%,-50%)}
.ba input[type=range]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;z-index:3;margin:0}
.ba .ba-label{position:absolute;top:50%;padding:.25rem .5rem;font:600 .7rem/1 Inter,sans-serif;
  letter-spacing:.06em;text-transform:uppercase;color:#fff;z-index:1;
  text-shadow:0 1px 3px rgba(0,0,0,.6)}
.ba .ba-label-before{left:.75rem;transform:translateY(-50%)}
.ba .ba-label-after{right:.75rem;transform:translateY(-50%)}
/* Fallback: side by side */
@media(prefers-reduced-motion:reduce){
  .ba{display:flex;flex-direction:column;gap:1rem;aspect-ratio:auto}
  .ba img{position:static;aspect-ratio:4/5;width:100%}
  .ba .ba-handle,.ba input[type=range],.ba .ba-label{display:none}
  .ba .ba-before{clip-path:none}
}

/* Detail pairs */
.up-details{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin:1rem 0}
.up-details img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:2px}

/* Closing line */
.up-close{text-align:center;padding:2rem 0;font:var(--t-body);opacity:.7}

/* ---- Vero Beach scenes ---- */
.vb-scene{padding:2rem 0;border-top:1px solid rgba(215,232,188,.06)}
.vb-scene .vb-eye{font:600 .75rem/1 Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase;
  color:var(--sage,#d7e8bc);opacity:.6;margin:0 0 .5rem}
.vb-scene h3{font:var(--t-h3);margin:0 0 1rem}
.vb-scene p{font:var(--t-body);margin:0 0 .75rem}
.vb-photo{width:100%;border-radius:2px;margin:1rem 0}
.vb-photo img{width:100%;height:auto;display:block;border-radius:2px}
.vb-credit{font:400 .7rem/1.4 Inter,sans-serif;color:rgba(215,232,188,.45);margin:.25rem 0 .75rem}
.vb-credit a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.vb-drive{font:600 .75rem/1 Inter,sans-serif;letter-spacing:.06em;color:rgba(215,232,188,.5);margin:.75rem 0 0}

/* Art and culture plates */
.vb-plates{display:grid;gap:1.5rem;margin:1rem 0}
@media(min-width:900px){.vb-plates{grid-template-columns:1fr 1fr}}
.vb-plate{display:flex;flex-direction:column;gap:.75rem}
.vb-plate img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:2px}
.vb-plate h4{font:var(--t-h4);margin:0}
.vb-plate p{font:var(--t-body);margin:0}

/* Nature zoom scene */
.vb-zoom{position:relative;overflow:hidden;border-radius:2px;margin:1rem 0}
.vb-zoom img{width:100%;height:auto;display:block;transition:transform .6s ease-out}

/* Travel line */
.vb-travel{padding:1.5rem 0;font:var(--t-body)}
.vb-travel .vb-airports{font:600 .85rem/1.6 Inter,sans-serif;letter-spacing:.02em}
.vb-travel .vb-method{font:400 .7rem/1.4 Inter,sans-serif;color:rgba(215,232,188,.45);margin:.5rem 0 0}

/* Photo credits drawer */
.vb-cred{margin:1.5rem 0}
.vb-cred summary{font:600 .75rem/1 Inter,sans-serif;letter-spacing:.06em;text-transform:uppercase;
  color:var(--sage,#d7e8bc);cursor:pointer;list-style:none;padding:.5rem 0}
.vb-cred summary::-webkit-details-marker{display:none}
.vb-cred-list{margin:.5rem 0;padding:0;list-style:none}
.vb-cred-list li{font:400 .7rem/1.5 Inter,sans-serif;color:rgba(215,232,188,.5);padding:.25rem 0;
  border-bottom:1px solid rgba(215,232,188,.04)}
.vb-cred-list a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* ---- Request form ---- */
.req-form{max-width:540px;margin:0 auto;padding:2rem 0}
.req-form .rf-f{margin:0 0 1.25rem}
.req-form label{display:block;font:600 .8rem/1.3 Inter,sans-serif;letter-spacing:.04em;
  color:var(--sage,#d7e8bc);margin:0 0 .35rem}
.req-form input[type=text],.req-form input[type=email],.req-form input[type=date],
.req-form input[type=tel],.req-form textarea,.req-form select{
  display:block;width:100%;font:400 1rem/1.5 Inter,sans-serif;color:var(--sage,#d7e8bc);
  background:rgba(215,232,188,.06);border:1px solid rgba(215,232,188,.15);border-radius:4px;
  padding:.75rem .875rem;min-height:48px;box-sizing:border-box}
.req-form textarea{min-height:100px;resize:vertical}
.req-form input:focus,.req-form textarea:focus,.req-form select:focus{
  outline:2px solid var(--accent,#e9f056);outline-offset:1px;border-color:var(--accent,#e9f056)}
.req-form .rf-err{font:400 .75rem/1.3 Inter,sans-serif;color:#f87171;margin:.25rem 0 0;display:none}
.req-form .rf-err.on{display:block}

/* No-agent reassurance under the agent question */
.rf-note{margin:-.5rem 0 1.25rem;padding:.85rem 1rem;border-left:2px solid var(--accent,#e9f056);
  background:rgba(233,240,86,.06);font:400 .9rem/1.5 Inter,sans-serif;color:var(--sage,#d7e8bc)}
.rf-note strong{color:var(--paper,#e6ecbd);font-weight:600}

/* Role radios */
.rf-role{display:flex;gap:.5rem;margin:.35rem 0}
.rf-role label{display:flex;align-items:center;gap:.5rem;padding:.65rem 1rem;
  border:1px solid rgba(215,232,188,.15);border-radius:4px;cursor:pointer;min-height:44px;flex:1;
  font:400 .9rem/1.3 Inter,sans-serif;color:var(--sage,#d7e8bc)}
.rf-role input{accent-color:var(--accent,#e9f056)}
.rf-role label:has(input:checked){border-color:var(--accent,#e9f056)}
.rf-role label:focus-within{outline:2px solid var(--accent,#e9f056);outline-offset:1px}

/* Consent */
.rf-consent{display:flex;gap:.75rem;align-items:flex-start;margin:1rem 0;padding:.75rem;
  border:1px solid rgba(215,232,188,.08);border-radius:4px}
.rf-consent input[type=checkbox]{flex-shrink:0;width:20px;height:20px;margin-top:2px;
  accent-color:var(--accent,#e9f056)}
.rf-consent .rf-consent-label{font:400 .75rem/1.5 Inter,sans-serif;color:rgba(215,232,188,.65)}

/* Honeypot */
.rf-hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}

/* Submit */
.rf-submit{display:flex;align-items:center;gap:1rem;margin:1.5rem 0 0}
.rf-submit .btn{min-height:48px;min-width:200px}
.rf-submit .rf-priv{font:400 .7rem/1.3 Inter,sans-serif;color:rgba(215,232,188,.4)}
.rf-submit .rf-priv a{color:inherit;text-decoration:underline}

/* Alert summary */
.rf-alert{background:rgba(248,113,113,.1);border:1px solid rgba(248,113,113,.3);border-radius:4px;
  padding:.75rem 1rem;margin:0 0 1rem;font:400 .8rem/1.5 Inter,sans-serif;color:#fca5a5;display:none}
.rf-alert.on{display:block}
.rf-alert a{color:#fca5a5;text-decoration:underline}

/* Success panel */
.rf-ok{text-align:center;padding:2rem 0;display:none}
.rf-ok.on{display:block}
.rf-ok h3{font:var(--t-h3);margin:0 0 .5rem}
.rf-ok p{font:var(--t-body);margin:0 0 1rem}

/* Spinner */
.rf-spin{display:none;width:20px;height:20px;border:2px solid rgba(44,47,50,.3);border-top-color:var(--caviar,#2c2f32);
  border-radius:50%;animation:rf-spin .6s linear infinite}
.rf-spin.on{display:block}
@keyframes rf-spin{to{transform:rotate(360deg)}}

/* ---- Distance table inside details ---- */
.dist-wrap{margin:1rem 0}
.dist-wrap summary{font:600 .8rem/1.3 Inter,sans-serif;letter-spacing:.04em;color:var(--sage,#d7e8bc);
  cursor:pointer;padding:.5rem 0}

/* pass2: Vero opener, trim the sky (crop toward the walkway) */
#vb-beach .vb-photo img{aspect-ratio:16/10;object-fit:cover;object-position:50% 78%}
