/* GEODOMAS Resort · polish v3 · proof / close / micro-detail layer · 2026-09-23 */

/* Media-status discipline: concept imagery and realized references must read differently. */
.media-status{
  position:absolute;z-index:5;top:18px;right:18px;display:inline-flex;align-items:center;gap:7px;
  padding:7px 10px;border:1px solid #ffffff42;border-radius:999px;background:#07130f86;color:#fff;
  backdrop-filter:blur(12px);font-size:.56rem;font-weight:950;letter-spacing:.13em;text-transform:uppercase;
  box-shadow:0 8px 22px #0002;
}
.media-status:before{content:"";width:6px;height:6px;border-radius:50%;background:#d7b87d}
.media-status.is-reference{background:#caa469;color:#07130f;border-color:#ead6ae}
.media-status.is-reference:before{background:#183a2f}
.component-card.is-realized:before{display:none}

/* Give the darker product section a more precise architectural datum. */
#components .component-intro{position:relative;padding-top:2px}
#components .component-intro:after{
  content:"RESORT SYSTEM LIBRARY";position:absolute;right:0;top:6px;color:#ffffff40;
  font-size:.55rem;font-weight:950;letter-spacing:.18em;
}
.source-note{display:flex;align-items:flex-start;gap:10px;max-width:1040px}
.source-note:before{content:"i";flex:0 0 19px;width:19px;height:19px;display:grid;place-items:center;border:1px solid currentColor;border-radius:50%;font:800 .64rem/1 sans-serif;opacity:.78}

/* CTA system: primary masterplanning route, secondary project assessment route. */
.btn.cta-master{box-shadow:0 14px 34px #caa46928}
.btn.cta-master:after{content:"↗";margin-left:9px;font-size:.86em;transition:transform .2s var(--ease-premium)}
.btn.cta-master:hover:after{transform:translate(2px,-2px)}
.btn.cta-assessment:after{content:"→";margin-left:9px;transition:transform .2s var(--ease-premium)}
.btn.cta-assessment:hover:after{transform:translateX(3px)}

/* More deliberate crops for system/product imagery. */
.component-card img[src$="glamp-430-hub.webp"]{object-position:50% 48%}
.component-card img[src$="sport-648.webp"]{object-position:50% 46%}
.component-card img[src$="event-450.webp"]{object-position:50% 52%}
.component-card img[src$="glamp-600.webp"]{object-position:50% 45%}
.scenario img[src$="wellness-resort.webp"]{object-position:50% 48%}
.scenario img[src$="shared-hub.webp"]{object-position:50% 46%}

/* Closing section: form and footer should feel like one deliberate ending. */
.leadsec{padding-bottom:clamp(96px,10vw,148px)}
.project-close{
  position:relative;overflow:hidden;padding:72px 0 34px;background:#040c09;color:#d8e1dc;
  border-top:1px solid #ffffff10;
}
.project-close:before{
  content:"";position:absolute;width:520px;height:520px;right:-180px;top:-310px;border:1px solid #caa46922;border-radius:50%;
  box-shadow:0 0 0 80px #caa46908,0 0 0 160px #caa46904;
}
.foot-main{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:80px;padding-bottom:52px}
.foot-brand{max-width:590px}
.foot-kicker{display:block;color:#d9bb86;font-size:.62rem;font-weight:950;letter-spacing:.19em;text-transform:uppercase;margin-bottom:14px}
.foot-brand h2{max-width:9ch;margin:0 0 18px;font:500 clamp(2.7rem,4.8vw,5.2rem)/.93 var(--serif);letter-spacing:-.055em;color:#fff}
.foot-brand p{max-width:52ch;margin:0;color:#98aaa1;font-size:.92rem}
.foot-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}
.foot-nav{display:grid;grid-template-columns:1fr 1fr;gap:34px 44px;align-content:start;padding-top:6px}
.foot-nav-group{display:grid;gap:8px}
.foot-nav-group b{margin-bottom:5px;color:#d9bb86;font-size:.59rem;letter-spacing:.16em;text-transform:uppercase}
.foot-nav-group a{width:max-content;max-width:100%;color:#becbc5;font-size:.84rem;transition:color .18s,transform .18s}
.foot-nav-group a:hover{color:#fff;transform:translateX(3px)}
.foot-bottom{position:relative;display:flex;justify-content:space-between;gap:24px;padding-top:24px;border-top:1px solid #ffffff12;color:#72857c;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}
.foot-bottom strong{color:#a9b8b1;letter-spacing:.15em}

/* Scroll-to-top becomes visible only after the first chapters. */
.back-top{
  position:fixed;z-index:24;right:20px;bottom:20px;width:46px;height:46px;display:grid;place-items:center;
  border:1px solid #ffffff32;border-radius:50%;background:#07130ee8;color:#fff;backdrop-filter:blur(12px);
  box-shadow:0 12px 32px #0004;opacity:0;visibility:hidden;transform:translateY(8px);cursor:pointer;
  transition:opacity .24s,visibility .24s,transform .24s,background .24s;
}
.back-top.is-visible{opacity:1;visibility:visible;transform:none}
.back-top:hover{background:#183a2f}

/* Micro finish */
.family-content,.archetype-copy,.component-copy,.scenario-copy{padding-right:4px}
.component-spec{line-height:1.45}
.step b,.flow-card b{font-variant-numeric:tabular-nums}
.form button:disabled{opacity:.65;cursor:wait;transform:none}

@media(max-width:1000px){
  #components .component-intro:after{display:none}
  .foot-main{grid-template-columns:1fr;gap:46px}
  .foot-nav{max-width:620px}
}
@media(max-width:760px){
  .media-status{top:12px;right:12px;padding:6px 8px;font-size:.5rem}
  .source-note{font-size:.72rem}
  .project-close{padding:58px 0 28px}
  .foot-main{padding-bottom:38px;gap:38px}
  .foot-brand h2{font-size:clamp(2.65rem,13vw,4rem)}
  .foot-nav{grid-template-columns:1fr 1fr;gap:28px 20px}
  .foot-bottom{flex-direction:column;gap:8px;line-height:1.6}
  .back-top{right:14px;bottom:14px;width:42px;height:42px}
}
@media(max-width:430px){.foot-nav{grid-template-columns:1fr}.foot-actions{display:grid}.foot-actions .btn{width:100%}}

/* V4 production finish: compact footer on narrow phones; static footer avoids runtime layout swap. */
@media(max-width:430px){
  .foot-nav{grid-template-columns:1fr 1fr;gap:24px 16px}
  .foot-nav-group a{width:auto}
  .foot-actions{display:grid}
}
