:root {
  --bg: #11100f;
  --text: #f3ece0;
  --dark: #1a1917;
  --accent: #b8915e;
  --accent-soft: rgba(184, 145, 94, 0.36);
  --line: rgba(229, 210, 181, 0.38);
  --line-soft: rgba(229, 210, 181, 0.18);
  --muted: rgba(243, 236, 224, 0.76);
}
* { box-sizing: border-box; }
html, body { width: 100%; height: 100%; margin: 0; overflow: hidden; background: var(--bg); }
body { font-family: "Inter", system-ui, sans-serif; color: var(--text); }
.app { position: relative; width: 100vw; height: 100vh; overflow: hidden; }
.app-bar { position: fixed; top: .9rem; left: 50%; transform: translateX(-50%); width: min(1120px, calc(100vw - 1.6rem)); min-height: 44px; padding: .5rem .85rem; border: 1px solid var(--line-soft); border-radius: 999px; background: rgba(12, 11, 10, .42); backdrop-filter: blur(12px); z-index: 35; display: grid; grid-template-columns: 1fr; align-items: center; gap: .8rem; }
.counter { font-size: 0.62rem; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(245, 234, 218, .88); white-space: nowrap; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.menu-toggle { display: none; border: 1px solid var(--line-soft); background: rgba(16, 14, 13, .55); border-radius: 999px; width: 40px; height: 40px; align-items: center; justify-content: center; cursor: pointer; }
.menu-toggle-icon, .menu-toggle-icon::before, .menu-toggle-icon::after { content: ""; display: block; width: 16px; height: 2px; background: #f4e6d0; border-radius: 99px; transition: transform 220ms ease, opacity 220ms ease; }
.menu-toggle-icon::before { transform: translateY(-5px); }
.menu-toggle-icon::after { transform: translateY(3px); }
.menu-toggle[aria-expanded="true"] .menu-toggle-icon { transform: rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle-icon::before { transform: translateY(0) rotate(90deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle-icon::after { opacity: 0; }
.top-nav { display: flex; justify-content: center; gap: .28rem; flex-wrap: wrap; }
.nav-btn { border: 1px solid transparent; background: transparent; color: rgba(241, 227, 204, .74); font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; padding: .38rem .58rem; border-radius: 999px; cursor: pointer; transition: all 220ms ease; }
.nav-btn:hover, .nav-btn:focus-visible { color: var(--text); border-color: var(--accent-soft); outline: none; }
.nav-btn.is-active { color: #fff7ea; border-color: var(--accent-soft); background: rgba(184, 145, 94, .16); }
.nav-submenu { display: none; margin-top: .25rem; gap: .35rem; align-items: center; flex-wrap: wrap; }
.nav-submenu.is-open { display: flex; }
.nav-submenu-btn { border: 1px solid var(--line-soft); background: rgba(18, 17, 16, .68); color: rgba(243, 236, 224, .88); padding: .3rem .6rem; border-radius: 999px; font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.nav-submenu-btn:hover, .nav-submenu-btn:focus-visible { border-color: var(--accent); color: #fff2df; outline: none; }
.slide-viewport, .slide { position: relative; width: 100vw; height: 100vh; }
.slide { position: absolute; inset: 0; opacity: 0; transform: scale(1.02); transition: opacity 900ms ease, transform 1300ms ease; pointer-events: none; }
.slide.is-active { opacity: 1; transform: scale(1); pointer-events: auto; }
.bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.08); transition: transform 1500ms ease, opacity 900ms ease; }
.slide.is-active .bg { transform: scale(1.01); }
.overlay { position: absolute; inset: 0; background: linear-gradient(165deg, rgba(13, 12, 11, .78), rgba(13, 12, 11, .36) 42%, rgba(13, 12, 11, .86)), linear-gradient(10deg, rgba(18, 16, 15, .7), rgba(18, 16, 15, .1) 45%); }
.overview-content { position: absolute; inset: clamp(6rem, 16vh, 8rem) clamp(1rem, 6vw, 5.4rem) clamp(1.2rem, 5vh, 2.2rem); display: grid; grid-template-columns: 1fr 1.05fr; gap: clamp(1.2rem, 3vw, 3.5rem); align-items: start; }
.overview-intro { max-width: 760px; align-self: end; justify-self: center; }
.overview-title { margin: 0; font-size: clamp(1.5rem, 4vw, 2.95rem); line-height: 1.08; max-width: 22ch; color: #f0ddc1; font-weight: 420; letter-spacing: .012em; white-space: nowrap; }
.overview-claim { margin: .6rem 0 0; font-size: clamp(.85rem, 1.45vw, 1.35rem); line-height: 1.42; max-width: 46ch; color: rgba(247, 241, 232, .93); font-weight: 350; letter-spacing: .008em; white-space: pre-line; }
.promise-list { margin-top: 1.35rem; border-top: 1px solid var(--line-soft); padding-top: .35rem; }
.service-promise { margin: .55rem 0 1rem; max-width: 590px; color: #f3dcc0; line-height: 1.5; display: flex; align-items: flex-start; gap: .58rem; font-size: .95rem; position: relative; padding-left: .28rem; }
.service-promise::before { content:""; position:absolute; left:0; top:.52rem; width:2px; height:0; background: linear-gradient(180deg, rgba(227,195,152,.95), rgba(184,145,94,.2)); border-radius:999px; }
.overview-panel { align-self: stretch; display: grid; grid-template-rows: auto 1fr; gap: .9rem; min-height: 0; }
.overview-toggle { display: inline-flex; width: fit-content; border: 1px solid var(--line-soft); border-radius: 999px; padding: .2rem; background: rgba(16, 14, 13, .42); }
.overview-toggle-btn { border: 0; background: transparent; color: rgba(241, 228, 208, .7); padding: .46rem .78rem; border-radius: 999px; font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; transition: color 220ms ease, background-color 220ms ease; }
.overview-toggle-btn:hover, .overview-toggle-btn:focus-visible { color: #fff6e7; outline: none; }
.overview-toggle-btn.is-active { color: #fff9ef; background: rgba(184, 145, 94, .2); box-shadow: inset 0 0 0 1px rgba(215, 179, 130, .35); }
.overview-view { position: relative; min-height: 420px; }
.overview-view > [data-view] { position: absolute; inset: 0; opacity: 0; transform: translateY(12px); pointer-events: none; transition: opacity 380ms ease, transform 420ms ease; }
.overview-view > [data-view].is-active { opacity: 1; transform: translateY(0); pointer-events: auto; }
.overview-flow { border-top: 1px solid var(--line); padding-top: .15rem; display: grid; align-content: start; }
.flow-step { display: grid; grid-template-columns: 36px 1fr; gap: .8rem; padding: .9rem 0; border-bottom: 1px solid var(--line-soft); }
.flow-index { width: 24px; height: 24px; border-radius: 50%; border: 1px solid rgba(205, 165, 112, .75); color: #ecd6b5; font-size: .72rem; display: inline-flex; align-items: center; justify-content: center; margin-top: .12rem; }
.flow-step h3 { margin: 0; font-size: .97rem; font-weight: 450; color: #f3ead9; }
.flow-step p { margin: .35rem 0 0; color: rgba(243, 236, 224, .74); line-height: 1.45; font-size: .88rem; max-width: 46ch; }
.flow-substep { margin-top: .5rem; padding-left: .65rem; border-left: 1px solid rgba(205,165,112,.45); font-size: .82rem; color: rgba(243,236,224,.7); }
.flow-substep strong { color: #ecd6b5; font-weight: 500; }
.overview-list { border-top: 1px solid var(--line); }
.service-item { width: 100%; border: 0; border-bottom: 1px solid var(--line-soft); background: transparent; color: inherit; padding: .84rem 0; display: grid; grid-template-columns: 30px 1fr auto; gap: .78rem; align-items: center; text-align: left; cursor: pointer; transition: transform 180ms ease, background-color 180ms ease; }
.service-item:hover, .service-item:focus-visible { background: rgba(184, 145, 94, .08); transform: translateX(4px); outline: none; }
.service-item-icon svg { width: 22px; height: 22px; stroke: var(--accent); stroke-width: 1.4; fill: none; }
.service-item-title { display: block; font-size: 1rem; color: #f6eddf; }
.service-item-meta { display: block; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: rgba(243, 236, 224, .62); margin-top: .2rem; }
.service-item strong { font-size: .88rem; color: #f2dcc0; letter-spacing: .03em; }
.service-copy, .contact-content { position: absolute; left: clamp(1.2rem, 7vw, 8vw); top: clamp(50%, 58vh, 62%); transform: translateY(-50%); width: min(62vw, 680px); }
.contact-content { left: 50%; transform: translate(-50%, -50%); text-align: center; width: min(700px, calc(100vw - 2rem)); position: relative; }
.service-title { margin: 0; font-weight: 400; font-size: clamp(2rem, 3vw, 2.75rem); letter-spacing: .01em; line-height: 1.15; max-width: 24ch; }
.service-subtext { margin: .7rem 0 0; font-size: clamp(.92rem, 1.1vw, 1.02rem); font-weight: 320; color: var(--muted); line-height: 1.5; max-width: 58ch; }
.input-wrap { position: absolute; right: clamp(1rem, 4vw, 4rem); bottom: clamp(3.2rem, 8vh, 7rem); width: clamp(120px, 16vw, 240px); }
.input-wrap img { width: 100%; display: block; border: 1px solid var(--accent-soft); box-shadow: 0 10px 24px rgba(0,0,0,.2); }
.input-wrap span { display: inline-block; margin-top: .45rem; font-size: .64rem; letter-spacing: .16em; text-transform: uppercase; color: rgba(239, 220, 192, .78); }
.inquiry-form { margin-top: 1.1rem; display: grid; gap: .72rem; width: min(520px, 92vw); margin-inline: auto; }
.inquiry-form label { display: grid; gap: .34rem; }
.inquiry-form label span { font-size: .66rem; text-transform: uppercase; letter-spacing: .14em; color: rgba(238, 220, 195, .88); }
.inquiry-form input, .inquiry-form select, .inquiry-form textarea { width: 100%; border: 1px solid var(--line); background: rgba(16, 14, 13, .45); color: #f7f1e7; padding: .72rem .78rem; font: inherit; outline: none; border-radius: 8px; }
.inquiry-form input:focus, .inquiry-form select:focus, .inquiry-form textarea:focus { border-color: var(--accent); }
.inquiry-form button { justify-self: start; border: 1px solid var(--accent); background: rgba(184, 145, 94, .18); color: #f9f0e2; padding: .62rem 1rem; border-radius: 999px; letter-spacing: .08em; text-transform: uppercase; font-size: .68rem; cursor: pointer; }
.form-feedback { margin: .2rem 0 0; font-size: .84rem; color: #ffd4c3; min-height: 1.2em; }
.form-feedback.is-success { color: #e7e0cd; }
.legal-links { display: flex; gap: .9rem; }
.legal-links a { color: #ffffff; text-decoration: none; font-size: .75rem; letter-spacing: .08em; }
.legal-links--contact { position: absolute; right: 1rem; bottom: 1rem; justify-content: flex-end; z-index: 5; }
.slide-overview .reveal-item { opacity: 0; transform: translateY(18px); }
.slide-overview.is-active .reveal-item { animation: luxuryReveal 700ms cubic-bezier(.19,.88,.35,1) forwards; }
.slide-overview.is-active .reveal-title { animation-delay: 150ms; }
.slide-overview.is-active .reveal-claim { animation-delay: 350ms; }
.slide-overview.is-active .reveal-promise { animation: luxuryReveal 720ms cubic-bezier(.19,.88,.35,1) forwards, promiseLine 620ms ease forwards; animation-delay: calc(560ms + (var(--reveal-order) * 190ms)); }
.slide-overview.is-active .reveal-panel { animation-delay: 980ms; }
.slide-overview.is-active .overview-flow.is-active .reveal-step { animation-delay: calc(1120ms + (var(--step-order) * 140ms)); }
.slide-overview.is-active .overview-list.is-active .reveal-service { animation-delay: calc(1090ms + (var(--service-order) * 100ms)); }
@keyframes luxuryReveal {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes promiseLine {
  from { }
  to { }
}
.slide-overview.is-active .reveal-promise::before { animation: promiseLineGrow 650ms ease forwards; animation-delay: calc(650ms + (var(--reveal-order) * 190ms)); }
@keyframes promiseLineGrow { from { height: 0; opacity: .25; } to { height: 1.1rem; opacity: 1; } }
@media (max-width: 980px) {
  .app-bar { top: .7rem; left: .8rem; right: .8rem; transform: none; width: auto; grid-template-columns: 1fr auto; align-items: center; border-radius: 18px; padding: .5rem .65rem; gap: .5rem; }
  .counter { display: none; }
  .menu-toggle { display: inline-flex; justify-self: end; }
  .top-nav { grid-column: 1 / -1; width: 100%; display: none; flex-direction: column; align-items: stretch; gap: .35rem; padding-top: .3rem; }
  .app-bar.is-menu-open .top-nav { display: flex; }
  .nav-btn { width: 100%; text-align: left; padding: .56rem .72rem; border-color: var(--line-soft); }
  .overview-content { inset: 7.4rem 1rem 1.2rem; grid-template-columns: 1fr; overflow: auto; }
  .overview-claim { max-width: 100%; }
  .overview-title { max-width: 100%; white-space: normal; }
  .overview-view { min-height: 360px; }
  .service-copy { left: 1rem; top: 56%; width: calc(100vw - 2rem); }
  .contact-content { left: 50%; top: 56%; width: calc(100vw - 2rem); transform: translate(-50%, -50%); }
  .legal-links--contact { position: static; margin-top: 1.1rem; justify-content: center; }
  .service-title { font-size: clamp(1.75rem, 7.2vw, 2.25rem); }
  .service-subtext { font-size: .9rem; max-width: 95%; }
  .input-wrap { width: clamp(100px, 31vw, 160px); right: 1rem; bottom: 9.8rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 1ms !important; animation-duration: 1ms !important; }
  .slide-overview .reveal-item { opacity: 1 !important; transform: none !important; animation: none !important; }
}
.input-trigger{all:unset;display:block;cursor:pointer;position:relative}
.input-trigger img{width:100%;display:block;border:1px solid var(--accent-soft);box-shadow:0 10px 24px rgba(0,0,0,.2);transition:transform .35s ease,filter .35s ease}
.input-trigger::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,11,10,.02),rgba(12,11,10,.7));opacity:0;transition:opacity .3s ease}
.input-trigger:hover img,.input-trigger:focus-visible img{transform:scale(1.04);filter:brightness(.9)}
.input-trigger:hover::after,.input-trigger:focus-visible::after{opacity:1}
.input-hover-hint{position:absolute;left:.6rem;bottom:2rem;font-size:.62rem;letter-spacing:.11em;text-transform:uppercase;padding:.3rem .55rem;border:1px solid var(--line-soft);border-radius:999px;background:rgba(15,14,13,.55);opacity:0;transition:opacity .28s ease;z-index:2}
.input-trigger:hover .input-hover-hint,.input-trigger:focus-visible .input-hover-hint{opacity:1}
.required-panel{position:absolute;right:clamp(1rem,3vw,3rem);top:clamp(6rem,16vh,8rem);width:min(460px,calc(100vw - 2rem));max-height:78vh;opacity:0;transform:translateX(36px);pointer-events:none;transition:opacity .35s ease,transform .42s cubic-bezier(.2,.8,.2,1);z-index:22}
.required-panel.is-open{opacity:1;transform:translateX(0);pointer-events:auto}
.required-panel-inner{background:rgba(20,18,16,.62);backdrop-filter:blur(20px);border:1px solid rgba(229,210,181,.26);border-radius:22px;padding:1rem;box-shadow:0 28px 80px rgba(0,0,0,.35);max-height:inherit;overflow-y:auto}
.required-panel h3{margin:.2rem 0 1rem;font-weight:450}
.required-close{border:0;background:transparent;color:#f4e9d8;font-size:1.45rem;cursor:pointer;position:absolute;right:1.15rem;top:.8rem}
.required-items{display:grid;gap:.6rem}
.required-item{display:grid;grid-template-columns:26px 1fr auto;gap:.6rem;align-items:start;padding:.6rem;border:1px solid rgba(229,210,181,.12);border-radius:14px;background:rgba(255,255,255,.02)}
.required-item-icon svg{width:20px;height:20px;stroke:var(--accent);stroke-width:1.5;fill:none}
.required-item h4{margin:0;font-size:.88rem}.required-item p{margin:.22rem 0 0;font-size:.78rem;line-height:1.4;color:var(--muted)}
.required-badge{font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;padding:.22rem .42rem;border-radius:999px;border:1px solid var(--line-soft);color:#e9dcc8}
.required-badge.is-required{background:rgba(184,145,94,.2)}
.required-cta{margin-top:.9rem;width:100%;border:1px solid var(--accent);background:rgba(184,145,94,.18);color:#f8eddc;padding:.66rem .9rem;border-radius:999px;cursor:pointer}

.required-panel-spacer{height:20px;flex-shrink:0}
.upload-feedback{margin:0;font-size:.75rem;color:rgba(241,225,202,.78)}
@media (max-width: 980px){.required-panel{left:0;right:0;top:auto;bottom:0;width:100%;max-height:86vh;transform:translateY(100%)}.required-panel.is-open{transform:translateY(0)}.required-panel-inner{border-bottom-left-radius:0;border-bottom-right-radius:0;padding:1rem 1rem calc(1.2rem + env(safe-area-inset-bottom));}}

.service-category { margin: .5rem 0 0; display: inline-flex; padding: .28rem .62rem; border-radius: 999px; border: 1px solid var(--line); background: rgba(184, 145, 94, .14); font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; color: rgba(245, 231, 210, .92); }
