/* NEMCON — Contact: dark luxury (ELYSE ref) — huge serif word, call cards, form on a red panel, map, FAQ */
.ct{--serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;--jost:"Inter",system-ui,sans-serif;background:var(--shade-1)}

.ct-label{font-family:var(--jost);font-size:11px;letter-spacing:.24em;text-transform:uppercase;opacity:.6;margin-bottom:18px}
.ct-h{font-family:var(--serif);font-weight:400;font-size:clamp(42px,5vw,88px);line-height:.98;text-transform:uppercase;letter-spacing:.01em}
.ct-head{display:flex;justify-content:space-between;align-items:flex-end;gap:5vw;margin-bottom:10vh}
.ct-head>p{max-width:400px;font-family:var(--jost);font-size:15.5px;line-height:1.7;color:var(--ink-muted)}

/* ---------- hero ---------- */
.ct-hero{position:relative;height:100vh;height:100svh;min-height:560px;overflow:hidden;color:#fff;background:#000}
.ct-hero__img{position:absolute;inset:0}
.ct-hero__img img{width:100%;height:100%;object-fit:cover;object-position:50% 38%;animation:ctKen 26s ease-in-out infinite alternate}
@keyframes ctKen{from{transform:scale(1.02)}to{transform:scale(1.12)}}
.ct-hero::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.55),rgba(0,0,0,.25) 40%,rgba(0,0,0,.35) 60%,rgba(0,0,0,.88))}
.ct-hero__word{position:absolute;z-index:2;left:var(--pad);right:var(--pad);top:46%;transform:translateY(-50%);text-align:center;pointer-events:none}
.ct-hero__word h1{display:inline-block;font-family:var(--serif);font-weight:300;font-size:13vw;
  line-height:.82;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;
  text-shadow:0 10px 60px rgba(0,0,0,.35)}
.ct-hero__foot{position:absolute;z-index:2;left:var(--pad);right:var(--pad);bottom:13vh;display:flex;justify-content:space-between;align-items:flex-end;gap:24px}
.ct-hero__lead{font-family:var(--serif);font-weight:300;font-size:clamp(28px,2.8vw,46px);line-height:1.1;max-width:14ch}
.ct-hero__lead em{font-style:italic}
.ct-hero__status{display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.3);font-family:var(--jost);font-size:13px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:rgba(0,0,0,.2)}
.ct-dot{position:relative;width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.5)}
.ct-dot.is-open{background:#35d07f}
.ct-dot.is-open::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid #35d07f;animation:ctPing 2s var(--ease-out) infinite}
@keyframes ctPing{from{transform:scale(.6);opacity:1}to{transform:scale(1.8);opacity:0}}

/* ---------- call cards ---------- */
.ct-reach{background:var(--light-2);color:#0b0b0b;padding:18vh var(--pad) 16vh}
.ct-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.ct-card{position:relative;display:flex;flex-direction:column;min-height:340px;padding:30px 26px;overflow:hidden;isolation:isolate;background:#fff;font-family:var(--jost);transition:color .5s}
.ct-card::before{content:"";position:absolute;z-index:-1;left:var(--x,50%);top:var(--y,50%);width:100%;aspect-ratio:1;border-radius:50%;translate:-50% -50%;transform:scale(0);transform-origin:50% 50%;transition:transform .9s cubic-bezier(.22,1,.36,1);will-change:transform;backface-visibility:hidden;background:#0b0b0b}
.ct-card:hover{color:#fff}
.ct-card:hover::before{transform:scale(3.4)}
.ct-card__ico{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--red);color:#fff;margin-bottom:auto}
.ct-card__ico .ico{width:20px;height:20px}
.ct-card small{margin-top:40px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;opacity:.6}
.ct-card b{margin-top:8px;font-family:var(--serif);font-weight:400;font-size:clamp(26px,2.1vw,36px);line-height:1.05;overflow-wrap:anywhere}
.ct-card p{margin-top:10px;font-size:14px;line-height:1.6;opacity:.7}
.ct-card__go{display:inline-flex;align-items:center;gap:6px;margin-top:22px;font-size:13.5px;border-bottom:1px solid currentColor;align-self:flex-start;padding-bottom:3px}
.ct-card__go .ico{width:13px;height:13px;transition:transform .4s var(--ease-out)}
.ct-card:hover .ct-card__go .ico{transform:translate(2px,-2px)}

/* ---------- form on a red panel ---------- */
.ct-visit{background:var(--shade-1);padding:14vh var(--pad)}
.ct-panel{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);background:var(--red);color:#fff;overflow:hidden}
.ct-panel__img{position:relative;min-height:100%}
.ct-panel__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ct-panel__body{padding:9vh 5vw}
.ct-panel .ct-label{opacity:.85}
.ct-panel__p{margin:22px 0 34px;max-width:440px;font-family:var(--jost);font-size:15.5px;line-height:1.7;color:rgba(255,255,255,.88)}
.ct-form{display:grid;grid-template-columns:1fr 1fr;gap:22px 26px;font-family:var(--jost)}
.ct-form .field span{color:rgba(255,255,255,.78)}
.ct-form .field input,.ct-form .field select,.ct-form .field textarea{border-bottom-color:rgba(255,255,255,.55)}
.ct-form .field input:focus,.ct-form .field select:focus,.ct-form .field textarea:focus{border-color:#fff}
.ct-form__wide{grid-column:1/-1}
.ct-form__row{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin-top:6px}
.ct-form__row small{font-size:13px;color:rgba(255,255,255,.85)}
.ct-form__row small a{border-bottom:1px solid rgba(255,255,255,.6)}
.ct-submit{display:inline-flex;align-items:center;gap:10px;padding:15px 26px;border-radius:999px;background:#0b0b0b;color:#fff;font-family:var(--jost);font-size:14.5px;transition:background .3s,color .3s}
.ct-submit .ico{width:15px;height:15px}
.ct-submit:hover{background:#fff;color:#0b0b0b}

/* ---------- office + map ---------- */
.ct-office{background:var(--light-1);color:#0b0b0b;padding:16vh var(--pad)}
.ct-office__grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:5vw;align-items:stretch}
.ct-office dl{margin:40px 0 34px;border-top:1px solid var(--ink-hair);font-family:var(--jost)}
.ct-office dl div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px;padding:18px 0;border-bottom:1px solid var(--ink-hair)}
.ct-office dt{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-muted);padding-top:4px}
.ct-office dd{font-size:16px;line-height:1.6}
.ct-office dd a:hover{color:var(--red)}
.ct-btn{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:999px;background:#0b0b0b;color:#fff;font-family:var(--jost);font-size:14px;transition:background .3s,box-shadow .3s}
.ct-btn .ico{width:16px;height:16px}
.ct-btn:hover{background:var(--red);box-shadow:0 0 28px rgba(255,0,0,.4)}
.ct-map{position:relative;min-height:64vh;overflow:hidden;background:#dcd9d2}
.ct-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.35) contrast(1.05)}

/* ---------- FAQ ---------- */
.ct-faq{background:var(--shade-2);color:#fff;padding:16vh var(--pad)}
.ct-faq__grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:6vw;align-items:start}
.ct-faq__p{margin-top:24px;max-width:340px;font-family:var(--jost);font-size:15px;line-height:1.7;color:rgba(255,255,255,.62)}
.ct-faq__p a{color:#fff;border-bottom:1px solid rgba(255,255,255,.4)}
.ct-qs{border-top:1px solid rgba(255,255,255,.14)}
.ct-qs details{position:relative;isolation:isolate;border-bottom:1px solid rgba(255,255,255,.14)}
.ct-qs details::before{content:"";position:absolute;z-index:-1;inset:0 -24px;background:var(--red);transform:scaleX(0);transform-origin:0 50%;transition:transform .55s cubic-bezier(.22,1,.36,1);pointer-events:none}
.ct-qs details:hover::before{transform:scaleX(1)}
.ct-qs summary{position:relative;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:28px 0;list-style:none;cursor:pointer;font-family:var(--serif);font-weight:400;font-size:clamp(22px,2vw,32px);line-height:1.15;transition:color .35s var(--ease),transform .55s cubic-bezier(.22,1,.36,1),padding .55s cubic-bezier(.22,1,.36,1),text-shadow .45s}
.ct-qs summary:hover{color:#fff;padding-left:20px;transform:translateY(-3px);text-shadow:0 8px 22px rgba(0,0,0,.35)}
.ct-qs details:hover .ct-q__ico{border-color:#fff;background:rgba(255,255,255,.18)}
.ct-qs details:not([open]) summary:hover .ct-q__ico{transform:translateY(-3px) rotate(90deg) scale(1.08)}
.ct-qs summary::-webkit-details-marker{display:none}
.ct-q__ico{position:relative;flex:0 0 auto;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.3);transition:background .35s,border-color .35s,transform .5s var(--ease)}
.ct-q__ico::before,.ct-q__ico::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:1.5px;margin:-.75px -7px;background:#fff;transition:transform .5s var(--ease)}
.ct-q__ico::after{transform:rotate(90deg)}
.ct-qs details[open] .ct-q__ico{background:var(--red);border-color:var(--red);transform:rotate(180deg)}
.ct-qs details[open]:hover .ct-q__ico{background:#fff;border-color:#fff}
.ct-qs details[open]:hover .ct-q__ico::before,.ct-qs details[open]:hover .ct-q__ico::after{background:var(--red)}
.ct-qs details[open] .ct-q__ico::after{transform:rotate(0)}
.ct-qs details p{max-width:620px;padding:0 60px 30px 0;font-family:var(--jost);font-size:15.5px;line-height:1.75;color:rgba(255,255,255,.68);animation:ctOpen .6s var(--ease-out)}
.ct-qs details p a{color:#fff;border-bottom:1px solid rgba(255,255,255,.4)}
@keyframes ctOpen{from{opacity:0;transform:translateY(-8px)}}

/* ---------- responsive ---------- */
@media (max-width:1100px){ .ct-cards{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:900px){
  .ct-head{flex-direction:column;align-items:flex-start;gap:22px;margin-bottom:7vh}
  .ct-hero__foot{flex-direction:column;align-items:flex-start;bottom:104px;gap:18px}
  .ct-reach,.ct-office,.ct-faq{padding:12vh var(--pad)}
  .ct-card{min-height:280px}
  .ct-visit{padding:0}
  .ct-panel{grid-template-columns:minmax(0,1fr)}
  .ct-panel__img{min-height:46vh}
  .ct-panel__body{padding:9vh var(--pad) 10vh}
  .ct-form{grid-template-columns:minmax(0,1fr)}
  .ct-office__grid,.ct-faq__grid{grid-template-columns:minmax(0,1fr);gap:8vh}
  .ct-map{min-height:56vh}
  .ct-office dl div{grid-template-columns:90px minmax(0,1fr)}
  .ct-qs details p{padding-right:0}
}
@media (max-width:600px){ .ct-cards{grid-template-columns:minmax(0,1fr)} }


/* on the red panel the underscore rule turns white so it stays visible (user) */
.ct-panel [data-anim=underscore]::after{background:#fff}
