
:root{

--c-shell:#FAF8F7;--c-linen:#F2EDEC;--c-clay:#E3D9D8;--c-sand:#CFC3C2;
--c-muted:#857A7C;--c-ink-soft:#554D50;--c-ink:#2A2427;--c-night:#1B1618;

--c-accent:#A84159;--c-accent-deep:#863246;--c-azure:#6E8DA0;--c-azure-deep:#54707F;--c-sage:#5E7266;

--c-accent-light:#DDA0AF;

--rgb-night:27,22,24;

--surface-page:var(--c-shell);--surface-card:var(--c-linen);--surface-contrast:var(--c-clay);--surface-dark:var(--c-night);
--border-default:var(--c-sand);--border-strong:var(--c-ink);--border-focus:var(--c-accent);
--text-title:var(--c-ink);--text-body:var(--c-ink-soft);--text-tertiary:var(--c-muted);--text-on-dark:var(--c-linen);--text-on-accent:var(--c-shell);
--action-primary:var(--c-accent);--action-primary-hover:var(--c-accent-deep);--action-selected:var(--c-ink);
--status-success:var(--c-sage);--status-error:var(--c-accent);
--ornament:var(--c-azure);
--overlay-image:rgba(var(--rgb-night),.45);
}
:root{
--font-sans:"Montserrat",Jost,system-ui,sans-serif;
--font-serif:"Cormorant Garamond","EB Garamond",Georgia,serif;
--fs-display:clamp(40px,5.2vw,64px);--fs-h1:clamp(32px,4vw,48px);--fs-h2:clamp(26px,3vw,36px);--fs-h3:clamp(20px,2.2vw,26px);
--fs-h4:20px;--fs-lead:18px;--fs-body:16px;--fs-caption:13px;--fs-eyebrow:12px;
--fw-thin:200;--fw-light:300;--fw-regular:400;--fw-medium:500;
--lh-display:1.05;--lh-title:1.1;--lh-h2:1.15;--lh-h3:1.25;--lh-h4:1.3;--lh-lead:1.6;--lh-body:1.6;--lh-caption:1.5;
--ls-eyebrow:.30em;--ls-display:-.01em;
--measure:68ch;
}
:root{
--s-1:4px;--s-2:8px;--s-3:16px;--s-4:24px;--s-5:40px;--s-6:64px;--s-7:104px;
--container:1280px;--gutter:24px;--margin-desktop:40px;--margin-mobile:20px;--baseline:8px;
--bp-xl:1280px;--bp-lg:1024px;--bp-md:768px;--bp-sm:480px;
--radius-flat:0;--radius-pill:999px;
--tap-min:44px;
--rule-section:72px;--rule-weight:1px;--focus-weight:1.5px;
--shadow-none:none;
--ease-standard:cubic-bezier(.4,0,.2,1);--dur-fast:150ms;--dur-base:250ms;--dur-slow:500ms;
--texture-opacity-screen:.28;--pattern-opacity-max:.2;
}
html{background:var(--surface-page);color:var(--text-body);font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);font-weight:var(--fw-regular);-webkit-font-smoothing:antialiased}
body{margin:0}
a{color:var(--c-accent);text-decoration:none;text-decoration-color:var(--c-accent);text-underline-offset:3px}
a:hover{color:var(--c-accent-deep);text-decoration:underline}
p a{text-decoration:underline}
:focus-visible{outline:var(--focus-weight) solid var(--c-accent);outline-offset:2px}
::selection{background:var(--c-clay);color:var(--c-ink)}




:root {
  --margin-page: var(--margin-desktop); 
  --sec-y: var(--s-7);                  
  --veil-line: rgba(242, 237, 236, .28);
  --veil-line-strong: rgba(242, 237, 236, .42);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  min-height: 100vh;
  background: var(--c-shell);
  font-family: var(--font-sans);
  color: var(--text-title);
  overflow-x: hidden;
}

body.is-nav-open {
  overflow: hidden;
}


[id] {
  scroll-margin-top: 104px;
}

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 100;
  padding: 12px 20px;
  background: var(--c-night);
  color: var(--c-linen);
  font-size: var(--fs-eyebrow);
  font-weight: var(--fw-medium);
  letter-spacing: .2em;
  text-transform: uppercase;
}

.skip-link:focus {
  left: 0;
  color: var(--c-linen);
  text-decoration: none;
}



@keyframes conceptDrift {
  0%   { transform: scale(1.05) translate3d(0, 0, 0); }
  50%  { transform: scale(1.17) translate3d(-2.4%, -1.6%, 0); }
  100% { transform: scale(1.05) translate3d(0, 0, 0); }
}

@keyframes conceptDriftSlow {
  0%   { transform: scale(1.06) translate3d(0, 0, 0); }
  50%  { transform: scale(1.14) translate3d(1.8%, -1%, 0); }
  100% { transform: scale(1.06) translate3d(0, 0, 0); }
}

@keyframes icCue {
  0%   { transform: scaleY(0); transform-origin: top; opacity: 0; }
  35%  { transform: scaleY(1); transform-origin: top; opacity: 1; }
  65%  { transform: scaleY(1); transform-origin: bottom; opacity: 1; }
  100% { transform: scaleY(0); transform-origin: bottom; opacity: 0; }
}

@keyframes conceptRise {
  from { opacity: 0; transform: translate3d(0, 22px, 0); }
  to   { opacity: 1; transform: translate3d(0, 0, 0); }
}



.wrap {
  max-width: calc(var(--container) + var(--margin-page) * 2);
  margin: 0 auto;
  padding-left: var(--margin-page);
  padding-right: var(--margin-page);
}

.sec {
  padding-top: var(--sec-y);
  padding-bottom: var(--sec-y);
}

.sec--tight-bottom { padding-bottom: var(--s-6); }
.sec--flush-top    { padding-top: 0; }
.sec--linen        { background: var(--c-linen); }
.sec--center       { text-align: center; }


.cols {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(var(--col-min, 300px), 1fr));
  gap: var(--s-6);
  align-items: start;
}

.cols--middle { align-items: center; }

.stack-2 { display: flex; flex-direction: column; gap: var(--s-2); }
.stack-3 { display: flex; flex-direction: column; gap: var(--s-3); }
.stack-4 { display: flex; flex-direction: column; gap: var(--s-4); }
.stack-5 { display: flex; flex-direction: column; gap: var(--s-5); }

.hr { height: 1px; background: var(--c-sand); }



.eyebrow {
  display: block;
  font-family: var(--font-sans);
  font-size: var(--fs-eyebrow);
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  line-height: 1.3;
  color: var(--text-tertiary);
}

.eyebrow--accent { color: var(--c-accent); }
.eyebrow--light  { color: var(--text-on-dark); }

.rule {
  width: var(--rule-section);
  height: 1px;
  margin: 0;
  border: 0;
  background: var(--c-accent);
}

.h2 {
  margin: 0;
  font-size: var(--fs-h2);
  font-weight: var(--fw-light);
  line-height: var(--lh-h2);
  color: var(--text-title);
}

.h3 {
  margin: 0;
  font-size: var(--fs-h3);
  font-weight: var(--fw-regular);
  line-height: var(--lh-h3);
  color: var(--text-title);
}

.h4 {
  margin: 0;
  font-size: var(--fs-h4);
  font-weight: var(--fw-medium);
  line-height: var(--lh-h4);
  color: var(--text-title);
}

.lead {
  margin: 0;
  font-size: var(--fs-lead);
  font-weight: var(--fw-light);
  line-height: var(--lh-lead);
  color: var(--text-body);
}

.body {
  margin: 0;
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--text-body);
}

.caption {
  margin: 0;
  font-size: var(--fs-caption);
  line-height: var(--lh-caption);
  color: var(--text-tertiary);
}


.quote {
  margin: 0;
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: var(--fw-light);
  font-size: clamp(24px, 2.6vw, 32px);
  line-height: 1.15;
  color: var(--text-title);
}

.quote--sm { font-size: clamp(22px, 2.2vw, 28px); line-height: 1.2; }

.measure-16 { max-width: 16ch; }
.measure-20 { max-width: 20ch; }
.measure-22 { max-width: 22ch; }
.measure-24 { max-width: 24ch; }
.measure-26 { max-width: 26ch; }
.measure-34 { max-width: 34ch; }
.measure-38 { max-width: 38ch; }
.measure-44 { max-width: 44ch; }
.measure-48 { max-width: 48ch; }
.measure-52 { max-width: 52ch; }
.measure-56 { max-width: 56ch; }
.measure-60 { max-width: 60ch; }

.mt-2 { margin-top: var(--s-2); }
.mt-3 { margin-top: var(--s-3); }
.mt-4 { margin-top: var(--s-4); }
.mt-5 { margin-top: var(--s-5); }
.mb-3 { margin-bottom: var(--s-3); }
.mb-4 { margin-bottom: var(--s-4); }
.mb-5 { margin-bottom: var(--s-5); }
.mb-6 { margin-bottom: var(--s-6); }
.mx-auto { margin-left: auto; margin-right: auto; }


.on-dark { color: var(--c-linen); }
.on-dark-soft { color: var(--c-linen); opacity: .88; }



.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--s-2);
  min-height: var(--tap-min);
  padding: 0 28px;
  border: 1px solid transparent;
  border-radius: var(--radius-pill);
  background: transparent;
  box-shadow: none;
  font-family: var(--font-sans);
  font-size: var(--fs-eyebrow);
  font-weight: var(--fw-medium);
  letter-spacing: .2em;
  line-height: 1;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background var(--dur-fast) var(--ease-standard),
              color var(--dur-fast) var(--ease-standard);
}

.btn:hover { text-decoration: none; }

.btn--primary { background: var(--action-primary); color: var(--text-on-accent); }
.btn--primary:hover { background: var(--action-primary-hover); color: var(--text-on-accent); }

.btn--secondary { color: var(--c-ink); border-color: var(--c-ink); }
.btn--secondary:hover { background: var(--c-clay); color: var(--c-ink); }

.btn--inverse { color: var(--c-linen); border-color: var(--c-linen); }
.btn--inverse:hover { background: var(--c-linen); color: var(--c-night); }



.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 60;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-4);
  padding: 22px var(--margin-page);
}


.site-header::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--c-night);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--dur-base) var(--ease-standard);
}

.site-header.is-scrolled::before { opacity: 1; }

.site-header > * { position: relative; z-index: 1; }


.brand {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  font-size: 15px;
  font-weight: var(--fw-light);
  letter-spacing: .30em;
  text-transform: uppercase;
  color: var(--c-linen);
  text-decoration: none;
  white-space: nowrap;
}

.brand:hover { color: var(--c-linen); text-decoration: none; }

.brand__sig {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 15px;
  font-weight: var(--fw-light);
  letter-spacing: 0;
  text-transform: none;
  color: var(--c-accent-light);
}

.nav {
  display: flex;
  flex: 1 1 auto;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
  gap: 26px;
}

.nav a {
  padding: 6px 0;
  border-bottom: 1px solid transparent;
  font-size: 12px;
  font-weight: var(--fw-medium);
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--c-linen);
  text-decoration: none;
  white-space: nowrap;
  opacity: .82;
  transition: opacity var(--dur-fast) var(--ease-standard);
}

.nav a:hover { opacity: 1; color: var(--c-linen); text-decoration: none; }


.nav a[aria-current="page"] { opacity: 1; border-bottom-color: var(--c-linen); }

.header-cta { flex: 0 0 auto; display: flex; }

.nav-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: var(--tap-min);
  height: var(--tap-min);
  margin-right: -10px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--c-linen);
  cursor: pointer;
}


.nav-panel {
  position: fixed;
  inset: 0;
  z-index: 70;
  display: none;
  flex-direction: column;
  background: var(--c-night);
  padding: 22px var(--margin-page) var(--s-6);
}

.nav-panel.is-open { display: flex; }

.nav-panel__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-4);
}

.nav-panel__links {
  display: flex;
  flex-direction: column;
  gap: var(--s-4);
  margin-top: var(--s-6);
}

.nav-panel__links a {
  padding: 6px 0;
  border-bottom: 1px solid transparent;
  align-self: flex-start;
  font-size: 20px;
  font-weight: var(--fw-light);
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--c-linen);
  text-decoration: none;
  opacity: .82;
}

.nav-panel__links a:hover { opacity: 1; color: var(--c-linen); text-decoration: none; }
.nav-panel__links a[aria-current="page"] { opacity: 1; border-bottom-color: var(--c-linen); }

.nav-panel__cta { margin-top: var(--s-6); align-self: flex-start; }



.hero {
  position: relative;
  height: 100vh;
  height: 100svh;
  min-height: 720px;
  overflow: hidden;
  background: var(--c-night);
}

.hero__media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  animation: conceptDrift 38s var(--ease-standard) infinite;
  will-change: transform;
}


.hero__veil { position: absolute; inset: 0; }
.hero__veil--side   { background: linear-gradient(90deg, rgba(var(--rgb-night),.92) 0%, rgba(var(--rgb-night),.72) 34%, rgba(var(--rgb-night),.28) 68%, rgba(var(--rgb-night),.10) 100%); }
.hero__veil--bottom { background: linear-gradient(0deg,  rgba(var(--rgb-night),.88) 0%, rgba(var(--rgb-night),.55) 32%, rgba(var(--rgb-night),.12) 62%, rgba(var(--rgb-night),0) 85%); }
.hero__veil--top    { background: linear-gradient(180deg, rgba(var(--rgb-night),.60) 0%, rgba(var(--rgb-night),0) 24%); }

.hero__inner {
  position: relative;
  height: 100%;
  display: grid;
  grid-template-rows: 1fr auto;
  padding: 0 var(--margin-page) var(--s-5);
}

.hero__row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--s-6);
  animation: conceptRise 900ms var(--ease-standard) both;
}

.hero__copy { min-width: min(100%, 520px); }

.hero__title {
  margin: 0;
  font-size: clamp(56px, 10.5vw, 168px);
  font-weight: var(--fw-thin);
  line-height: .92;
  letter-spacing: -.045em;
  text-transform: uppercase;
  color: var(--c-linen);
}


.hero__sig {
  display: block;
  margin-top: var(--s-2);
  font-family: var(--font-serif);
  font-style: italic;
  font-size: clamp(24px, 3.4vw, 46px);
  font-weight: var(--fw-light);
  line-height: 1;
  letter-spacing: 0;
  text-transform: none;
  color: var(--c-accent-light);
}

.hero__lead {
  margin: var(--s-4) 0 0;
  max-width: 32ch;
  font-size: clamp(17px, 1.6vw, 22px);
  font-weight: var(--fw-light);
  line-height: 1.5;
  color: var(--c-linen);
  opacity: .9;
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-3);
  margin-top: var(--s-5);
}

.hero__cue {
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 1px;
  height: 64px;
  background: rgba(242, 237, 236, .5);
  animation: icCue 3600ms var(--ease-standard) infinite;
}


.stats {
  display: flex;
  flex-wrap: wrap;
  border-left: 1px solid var(--veil-line);
}

.stats__cell {
  padding: 0 26px;
  border-right: 1px solid var(--veil-line);
}

.stats__cell:last-child { border-right: 0; }

.stats__n {
  font-size: clamp(28px, 2.9vw, 40px);
  font-weight: var(--fw-thin);
  line-height: 1;
  color: var(--c-linen);
  white-space: nowrap;
}

.stats__u {
  font-size: .5em;
  font-weight: var(--fw-light);
  opacity: .75;
}

.stats__l {
  margin-top: 10px;
  font-size: 12px;
  font-weight: var(--fw-medium);
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--c-linen);
  opacity: .7;
}



.subhero {
  position: relative;
  overflow: hidden;
  background: var(--c-night);
}

.subhero--services { height: 62vh; min-height: 460px; }
.subhero--contact  { height: 52vh; min-height: 400px; }

.subhero__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  will-change: transform;
}

.subhero--services .subhero__img { animation: conceptDriftSlow 44s var(--ease-standard) infinite; }
.subhero--contact  .subhero__img { animation: conceptDriftSlow 46s var(--ease-standard) infinite; }

.subhero__veil { position: absolute; inset: 0; }
.subhero--services .subhero__veil { background: linear-gradient(0deg, rgba(var(--rgb-night),.84) 0%, rgba(var(--rgb-night),.34) 52%, rgba(var(--rgb-night),.42) 100%); }

.subhero--contact  .subhero__veil { background: linear-gradient(0deg, rgba(var(--rgb-night),.86) 0%, rgba(var(--rgb-night),.42) 54%, rgba(var(--rgb-night),.60) 100%); }

.subhero__inner {
  position: relative;
  height: 100%;
  display: flex;
  align-items: flex-end;
  max-width: calc(var(--container) + var(--margin-page) * 2);
  margin: 0 auto;
  padding: 0 var(--margin-page) var(--s-6);
}

.subhero__title {
  margin: var(--s-3) 0 0;
  font-size: clamp(44px, 7vw, 104px);
  font-weight: var(--fw-thin);
  line-height: .98;
  letter-spacing: -.02em;
  color: var(--c-linen);
}



.sec-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--s-4);
  margin-bottom: var(--s-6);
}


.svc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1px;
  background: var(--c-sand);
}

.svc {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
  min-height: 290px;
  padding: var(--s-5) var(--s-4);
  background: var(--c-linen);
}

.svc__icon { display: inline-flex; color: var(--c-accent); }



.steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--s-5);
}

.step {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
  padding-top: var(--s-4);
  border-top: 1px solid var(--c-sand);
}

.step__n {
  font-size: var(--fs-h2);
  font-weight: var(--fw-thin);
  line-height: 1;
  color: var(--c-accent);
}



.sim {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--s-6);
  align-items: start;
}

.stepper {
  display: flex;
  align-items: center;
  gap: var(--s-4);
}

.stepper__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: var(--tap-min);
  height: var(--tap-min);
  border: 1px solid var(--c-ink);
  border-radius: var(--radius-pill);
  background: transparent;
  color: var(--c-ink);
  font-family: var(--font-sans);
  font-size: 18px;
  font-weight: var(--fw-light);
  line-height: 1;
  cursor: pointer;
  transition: background var(--dur-fast) var(--ease-standard);
}

.stepper__btn:hover:not(:disabled) { background: var(--c-clay); }
.stepper__btn:disabled { opacity: .35; cursor: default; }

.stepper__val {
  min-width: 2.6ch;
  font-size: clamp(36px, 4vw, 48px);
  font-weight: var(--fw-thin);
  line-height: 1;
  text-align: center;
  color: var(--text-title);
}

.stepper__val--wide { min-width: 4.6ch; }

.sim__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--s-3);
}

.sim__label { font-size: var(--fs-body); color: var(--text-body); }
.sim__label--strong { color: var(--text-title); }
.sim__label--nowrap { white-space: nowrap; }

.sim__gross {
  font-size: clamp(32px, 3.6vw, 48px);
  font-weight: var(--fw-thin);
  line-height: 1;
  color: var(--c-accent);
  white-space: nowrap;
}

.sim__fee {
  font-size: var(--fs-h4);
  font-weight: var(--fw-light);
  color: var(--text-body);
  white-space: nowrap;
}

.sim__net {
  font-size: clamp(32px, 3.6vw, 48px);
  font-weight: var(--fw-thin);
  line-height: 1;
  color: var(--c-accent);
  white-space: nowrap;
}


.sim__quote {
  padding: var(--s-4);
  background: var(--c-shell);
  border-left: 1px solid var(--c-accent);
}



.price-figure {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--s-3);
  margin: var(--s-4) 0 var(--s-3);
}

.price-figure__n {
  font-size: clamp(56px, 7vw, 104px);
  font-weight: var(--fw-thin);
  line-height: .95;
  letter-spacing: -.02em;
  color: var(--text-title);
}

.price-list {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  list-style: none;
}

.price-list li {
  display: flex;
  align-items: center;
  gap: var(--s-3);
  padding: var(--s-4) 0;
  border-bottom: 1px solid var(--c-sand);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--text-title);
}

.price-list svg { flex: none; color: var(--c-sage); }




.rating {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--s-6);
  align-items: center;
}

.rating__score {
  display: flex;
  align-items: baseline;
  gap: var(--s-2);
}

.rating__n {
  font-size: clamp(64px, 8vw, 112px);
  font-weight: var(--fw-thin);
  line-height: .9;
  letter-spacing: -.02em;
  color: var(--c-accent);
}

.rating__over {
  font-size: var(--fs-h3);
  font-weight: var(--fw-light);
  color: var(--text-tertiary);
}

.rating__bars {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
  margin: 0;
  padding: 0;
  list-style: none;
}

.rating__row {
  display: grid;
  grid-template-columns: 5.5ch 1fr 5ch;
  gap: var(--s-3);
  align-items: center;
  font-size: var(--fs-caption);
  color: var(--text-tertiary);
}


.rating__track { display: block; height: 3px; background: var(--c-sand); }
.rating__fill  { display: block; height: 100%; background: var(--c-accent); }
.rating__pct   { text-align: right; font-variant-numeric: tabular-nums; }


.checks {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2);
  margin: 0;
  padding: 0;
  list-style: none;
}

.checks li {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
  min-height: 36px;
  padding: 0 16px;
  border: 1px solid var(--c-sand);
  border-radius: var(--radius-pill);
  font-size: 12px;
  font-weight: var(--fw-medium);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--text-body);
}

.checks svg { flex: none; color: var(--c-sage); }



.zone {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 560px;
  overflow: hidden;
  background: var(--c-night);
}

.zone__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  animation: conceptDriftSlow 48s var(--ease-standard) infinite;
  will-change: transform;
}

.zone__veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(var(--rgb-night),.88) 0%, rgba(var(--rgb-night),.30) 46%, rgba(var(--rgb-night),.05) 100%);
}

.zone__inner {
  position: relative;
  width: 100%;
  max-width: calc(var(--container) + var(--margin-page) * 2);
  margin: 0 auto;
  padding: var(--s-6) var(--margin-page);
}

.pills {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2);
}

.pill {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0 18px;
  border: 1px solid var(--veil-line-strong);
  border-radius: var(--radius-pill);
  font-size: 12px;
  font-weight: var(--fw-medium);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--c-linen);
}


.pill--soft { border-color: var(--veil-line); opacity: .72; }



.portrait {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--s-6);
  align-items: center;
}

.portrait__media {
  aspect-ratio: 4 / 5;
  overflow: hidden;
}

.portrait__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.facts {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
}

.facts div {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--s-2) var(--s-4);
  padding: var(--s-3) 0;
  border-top: 1px solid var(--c-sand);
}

.facts dt {
  font-size: 12px;
  font-weight: var(--fw-medium);
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--text-tertiary);
}

.facts dd {
  margin: 0;
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--text-title);
}



.faq { display: flex; flex-direction: column; }

.faq__item { border-top: 1px solid var(--c-sand); }
.faq__item:last-child { border-bottom: 1px solid var(--c-sand); }

.faq__h { margin: 0; }

.faq__q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-4);
  width: 100%;
  min-height: 96px;
  padding: var(--s-3) 0;
  border: 0;
  background: transparent;
  font-family: var(--font-sans);
  font-size: var(--fs-lead);
  font-weight: var(--fw-light);
  line-height: 1.4;
  text-align: left;
  color: var(--text-title);
  cursor: pointer;
}

.faq__sign {
  flex: none;
  font-size: 20px;
  font-weight: var(--fw-thin);
  color: var(--c-accent);
}

.faq__a {
  margin: 0 0 var(--s-4);
  padding-right: var(--s-6);
  max-width: 60ch;
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--text-body);
}




.detail-stack {
  display: flex;
  flex-direction: column;
  gap: 1px;
  background: var(--c-sand);
}

.detail {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--s-5) var(--s-6);
  padding: var(--s-5) 0;
  background: var(--c-shell);
}

.detail__head {
  display: flex;
  align-items: flex-start;
  gap: var(--s-4);
}

.detail__n {
  flex: none;
  padding-top: 8px;
  font-size: 12px;
  font-weight: var(--fw-medium);
  letter-spacing: .22em;
  color: var(--c-accent);
}

.detail__points {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2) var(--s-4);
  margin: 0;
  padding: 0;
  list-style: none;
}

.detail__points li {
  display: flex;
  align-items: flex-start;
  gap: var(--s-2);
  font-size: var(--fs-caption);
  line-height: var(--lh-caption);
  color: var(--text-tertiary);
}


.detail__points li::before {
  content: "—";
  flex: none;
  color: var(--c-azure);
}


.split__media {
  aspect-ratio: 4 / 5;
  overflow: hidden;
}

.split__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}



.coord {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-top: var(--s-3);
  border-top: 1px solid var(--c-sand);
}

.coord__l {
  font-size: 12px;
  font-weight: var(--fw-medium);
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--text-tertiary);
}

.coord__v {
  font-size: var(--fs-lead);
  font-weight: var(--fw-light);
  color: var(--text-title);
}


.channels {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1px;
  background: var(--c-sand);
}

.channel {
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
  padding: var(--s-4);
  background: var(--c-shell);
  text-decoration: none;
  transition: background var(--dur-fast) var(--ease-standard);
}

.channel:hover { background: var(--c-linen); text-decoration: none; }

.channel__top {
  display: flex;
  align-items: center;
  gap: var(--s-2);
  color: var(--c-accent);
}

.channel__name {
  font-size: 12px;
  font-weight: var(--fw-medium);
  letter-spacing: .22em;
  text-transform: uppercase;
}

.channel__desc {
  font-size: var(--fs-caption);
  line-height: var(--lh-caption);
  color: var(--text-body);
}

.form-card {
  padding: var(--s-5);
  background: var(--c-linen);
}

.form {
  display: flex;
  flex-direction: column;
  gap: var(--s-4);
  margin-top: var(--s-4);
}

.field {
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
  font-family: var(--font-sans);
}

.field__label {
  font-size: var(--fs-eyebrow);
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  color: var(--text-tertiary);
}

.field input,
.field textarea,
.field select {
  min-height: var(--tap-min);
  padding: 0 var(--s-3);
  border: 1px solid var(--c-sand);
  border-radius: 0;
  background: var(--c-shell);
  outline: none;
  font-family: inherit;
  font-size: var(--fs-body);
  color: var(--c-ink);
  transition: border-color var(--dur-fast) var(--ease-standard);
}

.field textarea {
  min-height: 96px;
  padding: var(--s-3);
  line-height: var(--lh-body);
  resize: vertical;
}


.field input:focus,
.field textarea:focus,
.field select:focus {
  border-color: var(--c-accent);
  box-shadow: inset 0 0 0 .5px var(--c-accent);
}

.field input:focus-visible,
.field textarea:focus-visible,
.field select:focus-visible { outline: none; }

.field__hint {
  font-size: var(--fs-caption);
  line-height: var(--lh-caption);
  color: var(--text-tertiary);
}

.form__sent {
  margin: 0;
  font-size: var(--fs-caption);
  line-height: var(--lh-caption);
  color: var(--c-sage);
}



.site-footer {
  background: var(--c-night);
  color: var(--text-on-dark);
}

.site-footer__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--s-5);
  align-items: start;
  padding-top: var(--s-6);
  padding-bottom: var(--s-5);
}

.site-footer__brand {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  font-size: 15px;
  font-weight: var(--fw-light);
  letter-spacing: .30em;
  text-transform: uppercase;
  color: var(--c-linen);
}

.site-footer__desc {
  margin: var(--s-3) 0 0;
  max-width: 34ch;
  font-size: var(--fs-caption);
  line-height: var(--lh-caption);
  color: var(--c-linen);
  opacity: .7;
}

.f-col {
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
}

.f-col__head {
  font-size: 12px;
  font-weight: var(--fw-medium);
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--c-linen);
  opacity: .55;
}

.f-col a,
.f-col span:not(.f-col__head) {
  font-size: var(--fs-body);
  color: var(--c-linen);
  text-decoration: none;
  opacity: .85;
}

.f-col a:hover { opacity: 1; color: var(--c-linen); text-decoration: none; }

.f-bottom { padding-bottom: var(--s-5); }


.f-rule { height: 1px; background: var(--c-azure); opacity: .5; }

.f-note {
  margin: var(--s-3) 0 0;
  font-size: var(--fs-caption);
  line-height: var(--lh-caption);
  color: var(--c-linen);
  opacity: .55;
}

.f-note a { color: var(--c-linen); text-decoration: underline; }



@media (max-width: 960px) {
  .nav,
  .header-cta { display: none; }

  .nav-toggle { display: inline-flex; }
}

@media (max-width: 768px) {
  :root {
    --margin-page: var(--margin-mobile); 
    --sec-y: var(--s-6);                 
  }

  [id] { scroll-margin-top: 88px; }

  
  .hero {
    height: auto;
    min-height: 100vh;
    min-height: 100svh;
  }

  .hero__inner {
    height: auto;
    min-height: 100vh;
    min-height: 100svh;
    padding-top: 96px; 
  }

  .hero__row { gap: var(--s-5); }

  
  .stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--s-3) 0;
    width: 100%;
    border-left: 0;
  }

  .stats__cell {
    padding: 0 0 0 18px;
    border-right: 0;
    border-left: 1px solid var(--veil-line);
  }

  .subhero--services { height: 56vh; }
  .subhero--contact  { height: 46vh; }

  .zone { min-height: 480px; }

  .sec-head { margin-bottom: var(--s-5); }

  .faq__a { padding-right: 0; }

  .cols,
  .sim,
  .rating,
  .portrait { gap: var(--s-5); }

  .split__media,
  .portrait__media { aspect-ratio: 3 / 2; }

  .site-footer__grid { gap: var(--s-4); }
}

@media (max-width: 480px) {
  .hero__actions .btn,
  .nav-panel__cta .btn { width: 100%; }

  .hero__actions { flex-direction: column; align-items: stretch; }

  .stepper { gap: var(--s-3); }

  .form-card { padding: var(--s-4); }
}



@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }

  .hero__media,
  .subhero__img,
  .zone__img,
  .hero__row,
  .hero__cue {
    animation: none;
  }

  .hero__cue { opacity: 1; transform: none; }

  * { transition-duration: .01ms !important; }
}

@font-face{font-family:Manrope;src:url('../../assets/manrope-latin.woff2') format('woff2');font-weight:200 800;font-display:swap}:root{--font-sans:Manrope,system-ui,sans-serif;--font-serif:Georgia,serif;--fw-thin:300;--text-tertiary:#655c55}
.site-header{position:relative;background:var(--c-night);padding:16px var(--margin-page)}.site-header::before{display:none}.nav a{min-height:44px;display:flex;align-items:center}.hero{height:calc(100svh - 128px);min-height:690px}.hero__title{font-size:clamp(54px,10vw,144px)}.hero__row,.hero__media{animation:none;will-change:auto}.hero__inner{padding-bottom:40px}.hero__copy{min-width:0}.stats{max-width:420px}.stats__n{font-size:26px;opacity:.8}.stats__l{font-size:12px;letter-spacing:.08em}.hero__veil--side{background:linear-gradient(90deg,rgba(26,23,20,.8),rgba(26,23,20,.34))}.svc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.svc h3{margin-top:0}.btn{min-height:44px}.eyebrow--accent{color:var(--c-accent-deep)}.caption{color:#655c55}
@media(max-width:960px){.header-cta{display:flex}.brand{font-size:13px;letter-spacing:.14em}.header-cta .btn{font-size:10px;letter-spacing:.08em;padding:10px 12px}.hero__row{gap:32px}.hero{height:auto;min-height:0}.hero__inner{min-height:760px;padding-top:200px;gap:0}.hero__title{font-size:clamp(48px,11vw,90px)}}
@media(max-width:600px){.hero__inner{min-height:690px;padding-top:130px;padding-bottom:32px}.hero__title{font-size:clamp(44px,11vw,66px)}.hero__lead{font-size:17px;max-width:27ch}.hero__actions{gap:12px}.hero__actions .btn{font-size:10px;letter-spacing:.08em;padding:12px}.stats{width:100%;max-width:none}.stats__cell{padding-top:10px;padding-bottom:10px}.stats__l{font-size:11px;letter-spacing:.03em}.svc-grid{grid-template-columns:1fr}.header-cta .btn{max-width:128px;text-align:center}.brand{white-space:normal;max-width:42%}}

.concept-notice{position:relative;z-index:70;display:flex;align-items:center;justify-content:space-between;gap:8px 24px;padding:10px 28px;min-height:48px;background:#f7f7f2;color:#20221e;font:500 12px/1.5 system-ui,sans-serif;letter-spacing:.025em}
.concept-notice a{color:#20221e;text-decoration:underline;display:inline-flex;align-items:center;min-height:28px}
.concept-contact{background:#f7f7f2;color:#20221e;padding:64px max(24px,5vw)}
.concept-contact h2{font:400 clamp(30px,4vw,52px)/1.1 Georgia,serif;margin:12px 0 24px}
.concept-contact p{max-width:65ch;line-height:1.6}
.concept-contact a{display:inline-flex;align-items:center;min-height:44px;color:#20221e;text-decoration:underline;font-weight:600}
.concept-footer{padding:24px max(24px,5vw);background:#20221e;color:#f7f7f2;font:13px/1.6 system-ui,sans-serif}
.concept-footer a{color:inherit;text-decoration:underline;min-height:44px;display:inline-flex;align-items:center}
:focus-visible{outline:3px solid #426ea6;outline-offset:4px}
@media(max-width:600px){.concept-notice{padding:8px 20px;flex-wrap:wrap;font-size:11px;gap:0 12px}.concept-notice a{min-height:32px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Revue visuelle : aligner les repères et garder le bouton mobile lisible. */
.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 0;border:0;width:420px}
.stats__cell,.stats__cell:last-child{border-right:0;border-left:1px solid var(--veil-line);padding:0 20px}
@media(max-width:600px){.stats{width:100%}.stats__cell{padding:0 16px}.header-cta .btn{font-size:11px;min-width:110px;padding:12px 16px}.hero__title{line-height:1.05}}

@media(max-width:359px){.cols{grid-template-columns:minmax(0,1fr)}}
