:root {
  --bg:        #0E0E10;
  --ink:       #F4F1EB;
  --muted:     rgba(244,241,235,0.6);
  --orange:    #E8482B;
  --glass:     rgba(255,255,255,0.08);
  --glass-bd:  rgba(255,255,255,0.18);
  --ease:      cubic-bezier(0.76, 0, 0.24, 1);
  --ease-out:  cubic-bezier(0.23, 1, 0.32, 1);
}
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html, body { height:100%; }
body {
  background:var(--bg); color:var(--ink);
  font-family:'Geist', -apple-system, sans-serif;
  overflow:hidden; cursor:none;
}
body.has-scroll { overflow:auto; }

/* ── CURSOR ── */
#cur { position:fixed; top:0; left:0; width:8px; height:8px; background:var(--orange); border-radius:50%; pointer-events:none; z-index:9999; transform:translate(-50%,-50%); transition:width .25s var(--ease-out), height .25s var(--ease-out); }
#ring { position:fixed; top:0; left:0; width:38px; height:38px; border:1px solid rgba(232,72,43,0.5); border-radius:50%; pointer-events:none; z-index:9998; transform:translate(-50%,-50%); transition:width .3s var(--ease-out), height .3s var(--ease-out); }
#hint { position:fixed; top:0; left:0; z-index:9997; pointer-events:none; transform:translate(-50%, calc(-50% + 40px)); font-size:.58rem; font-weight:600; letter-spacing:.28em; text-transform:uppercase; color:var(--orange); opacity:0; transition:opacity .4s ease; white-space:nowrap; }
#hint.show { opacity:.9; }
@media (hover:none),(pointer:coarse){ body{cursor:auto;} #cur,#ring,#hint{display:none;} }

/* ── HOME SLIDESHOW ── */
.slides { position:fixed; inset:0; z-index:0; }
.slide { position:absolute; inset:0; opacity:0; transform:scale(1.08); transition:opacity 1.1s var(--ease), transform 1.4s var(--ease); background-size:cover; background-position:center; }
.slide.active { opacity:1; transform:scale(1); }
.slide video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.slide::after { content:''; position:absolute; inset:0; background:rgba(14,14,16,0.42); }

/* ── CORNER FURNITURE ── */
.corner { position:fixed; z-index:10; }
.c-tl { top:34px; left:40px; }
.c-tr { top:34px; right:40px; }
.c-bc { left:50%; bottom:38px; transform:translateX(-50%); }

.brand { display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--ink); }
.brand-mark { width:36px; height:36px; }
.brand-mark svg, .brand-mark img { width:100%; height:100%; display:block; }
.brand-mark svg { fill:var(--ink); }
.brand-mark img { object-fit:contain; }
.brand-name { font-weight:600; font-size:1.3rem; letter-spacing:-.02em; }

/* ── GLASS CONTACT BUTTON ── */
.glass-btn {
  position:relative; isolation:isolate; overflow:hidden;
  display:inline-flex; align-items:center; gap:9px;
  padding:13px 26px; border-radius:100px; cursor:pointer; border:none;
  color:var(--ink); font-family:'Geist',sans-serif; font-weight:600; font-size:.82rem; letter-spacing:.04em;
  text-decoration:none;
  background:linear-gradient(135deg, rgba(255,255,255,0.22) 0%, rgba(255,255,255,0.05) 45%, rgba(255,255,255,0.12) 100%);
  backdrop-filter:blur(26px) saturate(180%); -webkit-backdrop-filter:blur(26px) saturate(180%);
  box-shadow:0 8px 30px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.45), inset 0 -1px 1px rgba(0,0,0,0.3);
  transition:transform .18s var(--ease-out), box-shadow .25s ease;
}
.glass-btn::after { content:''; position:absolute; top:0; left:-60%; width:50%; height:100%; z-index:-1; background:linear-gradient(105deg, transparent, rgba(255,255,255,0.4), transparent); transform:skewX(-18deg); transition:left .6s var(--ease-out); }
.glass-btn:hover { transform:translateY(-2px); box-shadow:0 14px 40px rgba(0,0,0,0.5), inset 0 1px 0 rgba(255,255,255,0.6); }
.glass-btn:hover::after { left:130%; }
.glass-btn:active { transform:scale(.97); }

/* ── AGENCY BUTTON ── */
.agency-btn {
  background:none; border:none; cursor:pointer; color:var(--ink); text-decoration:none;
  font-family:'Geist',sans-serif; font-weight:500; font-size:.92rem; letter-spacing:.18em; text-transform:uppercase;
  display:inline-flex; flex-direction:column; align-items:center; gap:10px;
  transition:transform .35s var(--ease-out), letter-spacing .35s var(--ease-out);
}
.agency-btn .dot { width:5px; height:5px; border-radius:50%; background:var(--orange); transition:transform .35s var(--ease-out); }
.agency-btn:hover { transform:scale(1.12); letter-spacing:.24em; }
.agency-btn:hover .dot { transform:scale(1.6); }

/* ── COUNTER + TICKS ── */
.svc-counter { position:fixed; bottom:38px; right:48px; z-index:10; font-size:.82rem; letter-spacing:.12em; color:var(--ink); opacity:.8; }
.svc-counter .cur { color:var(--orange); font-size:1.3rem; font-weight:700; }
.svc-counter .tot { opacity:.6; }
.ticks { position:fixed; top:50%; right:40px; transform:translateY(-50%); display:flex; flex-direction:column; gap:9px; z-index:10; }
.tick { width:2px; height:18px; background:rgba(244,241,235,0.25); cursor:pointer; border:none; padding:0; transition:background .3s ease, height .3s ease; }
.tick.active { background:var(--orange); height:28px; }

/* ── CONTACT PAGE ── */
body.page-contact { overflow-y:auto; background:#FFFFFF; }
.contact-wrap { min-height:100vh; display:grid; grid-template-columns:1fr 1.1fr; }
.contact-img { background:#000000; background-size:cover; background-position:center; min-height:100vh; }
.contact-img video { width:100%; height:100%; object-fit:cover; display:block; }
.contact-form-side { background:#FFFFFF; color:#141416; padding:90px 64px; display:flex; flex-direction:column; justify-content:center; }
.contact-title { font-weight:700; font-size:clamp(2rem,3.4vw,3.2rem); line-height:1.05; letter-spacing:-.03em; margin-bottom:18px; color:#141416; }
.contact-intro { color:#5a5a5e; font-size:1rem; line-height:1.7; max-width:520px; margin-bottom:36px; }
.contact-meta { display:flex; flex-direction:column; gap:10px; margin-top:32px; padding-top:24px; border-top:1px solid rgba(20,20,22,0.1); }
.contact-meta a { color:#141416; text-decoration:none; font-size:.92rem; font-weight:500; }
.contact-meta a:hover { color:var(--orange); }

/* ── NATIVE CONTACT FORM ── */
.ek-contact-form { display:block; }
.ek-contact-form .req { color:var(--orange); margin-left:2px; }

/* honeypot: visually hidden, accessibility-friendly */
.ek-honeypot { position:absolute !important; left:-9999px !important; top:-9999px !important; width:1px; height:1px; overflow:hidden; }

/* success state */
.ek-form-success { padding:32px; border-radius:14px; background:#F4F1EB; border:1px solid rgba(20,20,22,0.08); text-align:center; margin-bottom:24px; }
.ek-form-success-icon { width:56px; height:56px; border-radius:50%; background:var(--orange); color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.5rem; margin:0 auto 18px; }
.ek-form-success h3 { font-size:1.35rem; font-weight:700; color:#141416; margin-bottom:10px; letter-spacing:-.02em; }
.ek-form-success p { color:#5a5a5e; font-size:.98rem; line-height:1.65; margin-bottom:22px; }

/* error notice */
.ek-form-error { background:#fff5f0; border:1px solid var(--orange); border-radius:11px; padding:14px 18px; margin-bottom:20px; font-size:.92rem; color:#141416; line-height:1.55; display:flex; flex-direction:column; gap:4px; }
.ek-form-error strong { font-weight:600; }

/* native :invalid feedback on touched fields */
.ek-contact-form input:invalid:not(:placeholder-shown):not(:focus),
.ek-contact-form textarea:invalid:not(:placeholder-shown):not(:focus) { border-color:var(--orange); }
.f-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.fg { display:flex; flex-direction:column; gap:8px; margin-bottom:18px; }
.fg label { font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:#5a5a5e; font-weight:600; }
.fg input, .fg textarea, .fg select { background:#FFFFFF; border:1px solid rgba(20,20,22,0.16); border-radius:11px; padding:14px 16px; color:#141416; font-family:'Geist',sans-serif; font-size:.95rem; outline:none; width:100%; transition:border-color .2s ease, box-shadow .2s ease; -webkit-appearance:none; appearance:none; }
.fg select { background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' stroke='%23141416' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>"); background-repeat:no-repeat; background-position:right 18px center; padding-right:42px; }
.fg select option { background:#FFFFFF; color:#141416; padding:10px; }
.fg input:focus, .fg textarea:focus, .fg select:focus { border-color:var(--orange); box-shadow:0 0 0 3px rgba(232,72,43,0.12); }
.fg textarea { resize:vertical; min-height:130px; }
.fg input::placeholder, .fg textarea::placeholder { color:rgba(20,20,22,0.4); }
.submit-btn { width:100%; margin-top:8px; padding:18px; border-radius:12px; cursor:pointer; border:none; color:#FFFFFF; background:#141416; font-family:'Geist',sans-serif; font-weight:600; font-size:.95rem; letter-spacing:.04em; transition:transform .18s var(--ease-out), background .25s ease; }
.submit-btn:hover { transform:translateY(-2px); background:var(--orange); }
.submit-btn:active { transform:scale(.98); }

/* ── ABOUT / CTA SPLIT PAGE ── */
body.page-about { overflow-y:auto; background:#FFFFFF; }
.split { display:flex; min-height:100vh; }
.split-half { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:70px; text-align:center; position:relative; }
.split-light { background:#FFFFFF; color:#141416; }
.split-img { background:#000000; background-size:cover; background-position:center; }
.split-img video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.split-eyebrow { font-size:.72rem; font-weight:600; letter-spacing:.24em; text-transform:uppercase; margin-bottom:24px; opacity:.6; }
.split-h { font-weight:700; font-size:clamp(2rem,3.2vw,3.2rem); line-height:1.08; letter-spacing:-.03em; margin-bottom:26px; max-width:460px; }
.split-p { font-size:1.04rem; line-height:1.75; max-width:440px; margin-bottom:38px; opacity:.78; }
.split-cta { display:inline-flex; align-items:center; gap:10px; padding:15px 32px; border-radius:100px; font-weight:600; font-size:.9rem; letter-spacing:.04em; text-decoration:none; cursor:pointer; border:none; transition:transform .2s var(--ease-out), background .25s ease, color .25s ease; }
.split-light .split-cta { background:#141416; color:#FFFFFF; }
.split-light .split-cta:hover { transform:translateY(-3px); background:var(--orange); color:var(--ink); }

/* ── FAQ ACCORDION ── */
.faq-section { background:#FFFFFF; color:#141416; padding:120px 64px 140px; border-top:1px solid rgba(20,20,22,0.08); }
.faq-inner { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1fr 1.4fr; gap:80px; align-items:start; }
.faq-head { position:sticky; top:120px; }
.faq-eyebrow { font-size:.72rem; font-weight:600; letter-spacing:.24em; text-transform:uppercase; color:var(--orange); margin-bottom:18px; }
.faq-h { font-weight:700; font-size:clamp(2rem,3.2vw,3rem); line-height:1.05; letter-spacing:-.03em; color:#141416; }
.faq-list { display:flex; flex-direction:column; }
.faq-item { border-bottom:1px solid rgba(20,20,22,0.12); }
.faq-item:first-child { border-top:1px solid rgba(20,20,22,0.12); }
.faq-q { width:100%; background:none; border:none; cursor:pointer; padding:26px 0; display:flex; align-items:center; justify-content:space-between; gap:24px; font-family:'Geist',sans-serif; font-weight:600; font-size:1.08rem; color:#141416; text-align:left; letter-spacing:-.005em; line-height:1.4; transition:color .25s ease; }
.faq-q:hover { color:var(--orange); }
.faq-icon { width:36px; height:36px; flex-shrink:0; border-radius:50%; background:#F4F1EB; display:flex; align-items:center; justify-content:center; position:relative; transition:background .25s ease, transform .35s var(--ease); }
.faq-icon::before, .faq-icon::after { content:''; position:absolute; background:#141416; transition:transform .35s var(--ease), background .25s ease; }
.faq-icon::before { width:12px; height:1.5px; }
.faq-icon::after { width:1.5px; height:12px; }
.faq-item.open .faq-icon { background:var(--orange); transform:rotate(180deg); }
.faq-item.open .faq-icon::before { background:#FFFFFF; }
.faq-item.open .faq-icon::after { transform:rotate(90deg); background:#FFFFFF; }
.faq-a { max-height:0; overflow:hidden; transition:max-height .5s var(--ease), padding-bottom .5s var(--ease); }
.faq-a-inner { padding-right:60px; font-size:1rem; line-height:1.75; color:#5a5a5e; opacity:0; transform:translateY(-6px); transition:opacity .35s ease .1s, transform .35s var(--ease) .1s; }
.faq-item.open .faq-a { max-height:600px; padding-bottom:28px; }
.faq-item.open .faq-a-inner { opacity:1; transform:translateY(0); }

/* ── BACK BUTTON ── */
.back-btn { position:fixed; top:34px; left:40px; z-index:20; display:inline-flex; align-items:center; gap:9px; color:var(--ink); background:none; border:none; cursor:pointer; font-family:'Geist',sans-serif; font-weight:600; font-size:.82rem; letter-spacing:.04em; text-decoration:none; transition:transform .2s var(--ease-out); }
.back-btn:hover { transform:translateX(-4px); color:var(--orange); }

/* ── RESPONSIVE ── */
@media (max-width:860px){
  .contact-wrap { grid-template-columns:1fr; }
  .contact-img { min-height:300px; }
  .split { flex-direction:column; }
  .split-img { min-height:50vh; }
  .f-row { grid-template-columns:1fr; }
  .ticks { right:18px; }
  .c-tl { left:20px; } .c-tr { right:20px; }
  .faq-section { padding:80px 24px 100px; }
  .faq-inner { grid-template-columns:1fr; gap:40px; }
  .faq-head { position:static; }
  .faq-a-inner { padding-right:0; }
  .contact-form-side { padding:60px 24px; }
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after { transition-duration:.01ms !important; animation-duration:.01ms !important; }
}
