/* Lueur port 4801 derived-page layer.
   VIP remains the design authority. This file maps existing page structures to
   the canonical VIP tokens, geometry, component grammar, and motion rules. */

.le-derived{
  --le-color-surface-soft:rgba(221,216,207,.26);
  min-width:320px;
  background:var(--le-color-surface);
  color:var(--le-color-ink);
}

.le-derived .skip-link{
  position:fixed;
  top:14px;
  left:14px;
  z-index:200;
  display:inline-flex;
  min-height:44px;
  align-items:center;
  padding:13px 22px;
  background:var(--le-color-surface-dark);
  color:var(--le-color-text-on-dark);
  font-family:var(--le-font-interface);
  font-size:12px;
  font-weight:500;
  line-height:1;
  letter-spacing:.14em;
  text-transform:uppercase;
  transform:translateY(-300%);
}
.le-derived .skip-link:focus{transform:none;outline:2px solid var(--le-color-text-on-dark);outline-offset:2px}
.le-derived #main-content:focus{outline:none}

/* Shared VIP navigation and footer geometry. */
.le-derived .nav.dark-nav{color:var(--le-color-ink);text-shadow:none}
.le-derived .nav.dark-nav.solid{border-bottom-color:var(--le-color-line)}
.le-derived footer{border-top-color:var(--le-color-line)}
.le-derived .fgrid .tag,
.le-derived .fgrid .cap,
.le-derived .fgrid li,
.le-derived .fbottom{color:var(--le-color-text-muted)}

/* Editorial state hero for About, Style Edit, Contact, and 404. */
.le-derived .hero-state{
  display:flex;
  min-height:clamp(620px,78svh,780px);
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:clamp(170px,15vw,220px) 56px clamp(110px,10vw,150px);
  background:var(--le-color-surface);
  text-align:center;
}
.le-derived .hero-tag{
  margin:0 0 var(--le-space-kicker-headline);
  color:var(--le-color-bronze);
  font:600 var(--le-type-kicker)/32px var(--le-font-interface);
  letter-spacing:.28em;
}
.le-derived .hero-state h1{
  max-width:900px;
  color:var(--le-color-ink);
  font:300 var(--le-type-display)/.98 var(--le-font-editorial);
  letter-spacing:-.025em;
  text-wrap:balance;
}
.le-derived .hero-state h1 em{
  display:inline-block;
  padding-bottom:.08em;
  color:var(--le-color-ink);
  font-weight:500;
  line-height:1.08;
}
.le-derived .hero-state>p{
  width:min(100%,var(--le-measure-short));
  margin:var(--le-space-headline-body) auto 0;
  color:var(--le-color-text-soft);
  font:300 var(--le-type-body-lg)/1.85 var(--le-font-interface);
}
.le-derived .hero-state>.btn,
.le-derived .hero-state>.r3-hero-actions{margin-top:42px}

/* Canonical square action system. */
.le-derived .btn{
  width:min(100%,var(--le-button-width));
  min-height:var(--le-button-height);
  padding:var(--le-button-padding);
  border:1px solid var(--le-color-text-on-dark);
  border-radius:0;
  color:var(--le-color-text-on-dark);
  background:transparent;
  font:700 var(--le-button-font-size)/32px var(--le-font-interface);
  letter-spacing:var(--le-button-letter-spacing);
}
.le-derived .btn:hover{border-color:var(--le-color-text-on-dark);background:var(--le-color-text-on-dark);color:var(--le-color-surface-dark)}
.le-derived .btn-ink{border-color:var(--le-color-surface-dark);background:var(--le-color-surface-dark);color:var(--le-color-text-on-dark)}
.le-derived .btn-ink:hover{background:transparent;color:var(--le-color-surface-dark)}
.le-derived .btn:focus-visible{outline:2px solid var(--le-color-bronze);outline-offset:4px}

/* Shared section rhythm and headings. */
.le-derived .sec{padding:var(--le-space-section) 56px}
.le-derived .sec-gray{background:var(--le-color-surface-soft)}
.le-derived .sec-black{
  display:grid;
  width:var(--le-measure-dark-panel);
  min-height:var(--le-min-dark-cta);
  place-items:center;
  margin:0 auto;
  padding:var(--le-padding-dark-panel);
  background:var(--le-color-surface-dark);
  color:var(--le-color-text-on-dark);
}
.le-derived .sec-head{
  width:min(100%,var(--le-measure-faq));
  margin:0 auto var(--le-space-content-break);
  text-align:center;
}
.le-derived .sec-head .cap,
.le-derived .chap .cap,
.le-derived .ocard .cap,
.le-derived .cgrid .cap,
.le-derived .article>.cap{
  color:var(--le-color-bronze);
  font:600 var(--le-type-card-eyebrow-size)/var(--le-type-card-eyebrow-leading) var(--le-font-interface);
  letter-spacing:var(--le-type-card-eyebrow-tracking);
}
.le-derived .sec-head h2{
  margin-top:var(--le-space-kicker-headline);
  color:var(--le-color-ink);
  font:300 var(--le-type-section-title)/1.05 var(--le-font-editorial);
  letter-spacing:-.022em;
  text-wrap:balance;
}
.le-derived .sec-head h2 b{font-weight:600}
.le-derived .sec-black h2{color:var(--le-color-text-on-dark)}

/* About page. */
.le-derived .statband{
  display:grid;
  width:var(--le-measure-dark-panel);
  min-height:var(--le-min-dark-statement);
  place-items:center;
  margin:0 auto;
  padding:var(--le-padding-dark-panel);
  background:var(--le-color-surface-dark);
  color:var(--le-color-text-on-dark);
}
.le-derived .statband .row{
  display:grid;
  width:min(100%,var(--le-measure-cards));
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;
}
.le-derived .stat{min-width:0;padding:16px 30px;border-left:1px solid rgba(255,255,255,.18)}
.le-derived .stat:first-child{border-left:0}
.le-derived .stat .big{color:var(--le-color-text-on-dark);font:300 clamp(36px,3.8vw,54px)/1 var(--le-font-editorial)}
.le-derived .stat .cap{margin-top:18px;color:var(--le-color-bronze-on-dark);font-size:10px;line-height:1.65;letter-spacing:.2em}
.le-derived .bio{
  width:min(100%,var(--le-measure-shell));
  grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr);
  gap:clamp(64px,8vw,112px);
}
.le-derived .bio .photo{top:110px;aspect-ratio:3/4;background:var(--le-color-surface-dark)}
.le-derived .bio .photo img{filter:saturate(.78) contrast(1.02)}
.le-derived .bio .chap{margin-top:0;padding:32px 0;border-top:1px solid var(--le-color-line)}
.le-derived .bio .chap:first-of-type{border-top-color:var(--le-color-ink)}
.le-derived .bio .chap p{margin-top:14px;color:var(--le-color-text-soft);font:300 15px/1.85 var(--le-font-interface)}
.le-derived .pull{margin:40px 0;padding:4px 0 4px 28px;border-left:2px solid var(--le-color-bronze);color:var(--le-color-text);font:300 italic clamp(25px,2.5vw,34px)/1.45 var(--le-font-editorial)}

/* Numbered editorial rows. */
.le-derived .proc,.le-derived .creds{width:min(100%,var(--le-measure-faq));max-width:none}
.le-derived .proc .row,.le-derived .creds .row{
  grid-template-columns:64px minmax(0,1fr);
  gap:28px;
  padding:34px 0;
  border-color:var(--le-color-line);
}
.le-derived .proc .row:first-child,.le-derived .creds .row:first-child{border-top-color:var(--le-color-ink)}
.le-derived .proc .no,.le-derived .creds .no{color:var(--le-color-bronze);font:300 italic 22px/1.3 var(--le-font-editorial)}
.le-derived .proc h3{color:var(--le-color-ink);font:500 clamp(23px,2.3vw,30px)/1.25 var(--le-font-editorial)}
.le-derived .proc p,.le-derived .creds p{margin-top:10px;color:var(--le-color-text-soft);font:300 15px/1.8 var(--le-font-interface)}

/* Contact surfaces. */
.le-derived .r3-request{
  width:min(100%,var(--le-measure-prose));
  max-width:none;
  padding:clamp(38px,5vw,60px);
  border-color:var(--le-color-line);
}
.le-derived .r3-request h3{margin-top:24px;color:var(--le-color-ink);font:400 clamp(34px,3.4vw,48px)/1.08 var(--le-font-editorial)}
.le-derived .r3-request>p{max-width:var(--le-measure-short);margin:24px auto 42px;color:var(--le-color-text-soft);font:300 15px/1.8 var(--le-font-interface)}
.le-derived .r3-request .ch{min-height:62px;border-color:var(--le-color-line)}
.le-derived .r3-request .ch:hover .r3-state{color:var(--le-color-ink)}
.le-derived .r3-request .r3-note{color:var(--le-color-text-soft);font-size:14px}
.le-derived .r3-request .r3-foot{color:var(--le-color-bronze)}
.le-derived .ocards{width:min(100%,var(--le-measure-cards));max-width:none;gap:var(--le-gap-card)}
.le-derived .ocard{padding:var(--le-space-card);border-color:var(--le-color-line);background:var(--le-color-surface)}
.le-derived .ocard:hover{border-color:var(--le-color-bronze);background:var(--le-color-surface)}
.le-derived .ocard h3{margin:18px 0 14px;color:var(--le-color-ink);font:500 var(--le-type-card-title)/1.12 var(--le-font-editorial)}
.le-derived .ocard p{margin:0;color:var(--le-color-text-soft);font:300 15px/1.8 var(--le-font-interface)}
.le-derived .cgrid{
  width:min(100%,var(--le-measure-cards));
  max-width:none;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  text-align:left;
}
.le-derived .cgrid>a{position:relative;min-height:220px;padding:34px;border-top:1px solid var(--le-color-ink);border-bottom:1px solid var(--le-color-line);border-left:1px solid var(--le-color-line)}
.le-derived .cgrid>a:first-child{border-left:0}
.le-derived .cgrid h3{margin:24px 0 12px;color:var(--le-color-ink);font:500 30px/1.15 var(--le-font-editorial)}
.le-derived .cgrid p{color:var(--le-color-text-soft);font:300 14px/1.75 var(--le-font-interface)}
.le-derived .cgrid .r3-cta-inline{position:absolute;right:34px;bottom:26px;color:var(--le-color-bronze);text-decoration:none}
.le-derived .faq{width:min(100%,var(--le-measure-faq));max-width:none}
.le-derived .faq details,.le-derived .faq details:first-of-type{border-color:var(--le-color-line)}
.le-derived .faq summary{min-height:72px;padding:22px 4px;color:var(--le-color-ink);font:400 15px/1.6 var(--le-font-interface)}
.le-derived .faq .a{max-width:var(--le-measure-prose);padding:0 4px 26px;color:var(--le-color-text-soft);font:300 14px/1.8 var(--le-font-interface)}

/* Style Edit editorial index. */
.le-derived .le-editorial-index{padding-top:clamp(80px,8vw,118px)}
.le-derived .edition{width:min(100%,var(--le-measure-faq));max-width:none}
.le-derived .edition .toc{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  margin-bottom:var(--le-space-block-xl);
  padding:0;
  border:0;
  border-top:1px solid var(--le-color-ink);
  border-bottom:1px solid var(--le-color-line);
}
.le-derived .edition .toc>.cap{grid-column:1/-1;margin:0;padding:22px 18px;border-bottom:1px solid var(--le-color-line);color:var(--le-color-bronze)}
.le-derived .edition .toc a{padding:18px;border:0;border-top:1px solid var(--le-color-line);color:var(--le-color-text);font:400 19px/1.35 var(--le-font-editorial)}
.le-derived .edition .toc a:nth-of-type(-n+2){border-top:0}
.le-derived .edition .toc a:nth-of-type(even){border-left:1px solid var(--le-color-line)}
.le-derived .article{margin-top:var(--le-space-block-xl);padding-top:var(--le-space-block-xl);border-color:var(--le-color-line);scroll-margin-top:100px}
.le-derived .article:first-of-type{margin-top:0;padding-top:0}
.le-derived .article h2{max-width:760px;margin:24px 0 12px;color:var(--le-color-ink);font:500 clamp(34px,3.6vw,48px)/1.12 var(--le-font-editorial);letter-spacing:-.018em}
.le-derived .article .meta{margin-bottom:30px;color:var(--le-color-bronze);font:500 10px/1.6 var(--le-font-interface);letter-spacing:.18em}
.le-derived .article p,.le-derived .article li{color:var(--le-color-text-soft);font:300 15px/1.9 var(--le-font-interface)}
.le-derived .article p{margin-top:20px}
.le-derived .article ul{margin:22px 0 0;padding-left:20px}
.le-derived .article li{padding:5px 0}
.le-derived .article li b{color:var(--le-color-ink);font-weight:500}
.le-derived .article .rel{margin-top:30px;color:var(--le-color-bronze);font-size:10px;line-height:1.8;letter-spacing:.16em}
.le-derived .article .r3-cta-inline{color:var(--le-color-bronze);font:300 italic 20px/1.5 var(--le-font-editorial)}
.le-derived .article>a.cap{margin-top:28px;color:var(--le-color-text-muted);font-size:10px}

/* VIP-style inset closing panel. */
.le-derived .band{
  display:grid;
  width:var(--le-measure-dark-panel);
  min-height:var(--le-min-dark-cta);
  place-items:center;
  margin:0 auto;
  padding:var(--le-padding-dark-panel);
  background:var(--le-color-surface-dark);
}
.le-derived .band .bg{filter:saturate(.72) contrast(1.03)}
.le-derived .band .scrim{background:rgba(8,8,8,.72)}
.le-derived .band .in{width:min(100%,var(--le-measure-faq))}
.le-derived .band h2,.le-derived .sec-black h2{color:var(--le-color-text-on-dark);font:300 var(--le-type-section-title)/1.08 var(--le-font-editorial);letter-spacing:-.02em;text-wrap:balance}
.le-derived .band h2 em,.le-derived .sec-black h2 em{font-weight:500}
.le-derived .band p,.le-derived .sec-black p{width:min(100%,var(--le-measure-short));margin:28px auto 38px;color:var(--le-color-text-on-dark-soft);font:300 15px/1.8 var(--le-font-interface)}
.le-derived .band .btn{margin-top:0}

/* CTA-only application. Form logic and field order remain unchanged. */
.le-application{
  --apply-ink:var(--le-color-ink);
  --apply-soft:var(--le-color-text-soft);
  --apply-muted:var(--le-color-text-muted);
  --apply-line:var(--le-color-line);
  --apply-gold:var(--le-color-bronze);
}
.le-application.embed-mode{--apply-ink:var(--le-color-ink);--apply-soft:var(--le-color-text-soft);--apply-muted:var(--le-color-text-muted);--apply-line:var(--le-color-line);--apply-gold:var(--le-color-bronze)}
.le-application.embed-mode .apply-workspace{width:min(100%,var(--le-measure-faq))}
.le-application.embed-mode:has(.apply-result:not([hidden])) .apply-workspace{width:min(100%,var(--le-measure-shell))}
.le-application.embed-mode .apply-step legend{font-family:var(--le-font-editorial);font-weight:500}
.le-application.embed-mode .choice-list>label:has(input:checked){background:var(--le-color-surface-soft)}
.le-application.embed-mode .apply-next,
.le-application.embed-mode #resultAction .booking-primary{border-color:var(--le-color-surface-dark);background:var(--le-color-surface-dark);color:var(--le-color-text-on-dark)}
.le-application.embed-mode .apply-next:hover,
.le-application.embed-mode #resultAction .booking-primary:hover{background:var(--le-color-surface);color:var(--le-color-surface-dark)}
.le-application.embed-mode .apply-next:focus-visible,
.le-application.embed-mode .apply-back:focus-visible,
.le-application.embed-mode .choice-list>label:has(input:focus-visible){outline:2px solid var(--le-color-bronze);outline-offset:4px}

/* Legal copy stays plain and readable while its typography and rhythm inherit VIP. */
.le-legal .legal-skip{
  top:14px;
  left:14px;
  min-height:44px;
  align-items:center;
  padding:13px 22px;
  background:var(--le-color-surface-dark);
  color:var(--le-color-text-on-dark);
  font:500 12px/1 var(--le-font-interface);
  letter-spacing:.14em;
  text-transform:uppercase;
}
.le-legal .legal-skip:focus{outline:2px solid var(--le-color-text-on-dark);outline-offset:2px}
.le-legal .legal-main{
  width:min(calc(100% - 112px),var(--le-measure-faq));
  margin:0 auto;
  padding:clamp(180px,15vw,224px) 0 var(--le-space-section);
  color:var(--le-color-ink);
  font-family:var(--le-font-interface);
}
.le-legal .legal-document>h1{
  max-width:880px;
  margin:0;
  color:var(--le-color-ink);
  font-family:var(--le-font-editorial);
  font-size:clamp(46px,5.6vw,72px);
  font-weight:300;
  line-height:1.02;
  letter-spacing:-.025em;
  text-wrap:balance;
}
.le-legal .legal-updated{
  margin:var(--le-space-headline-body) 0 0;
  color:var(--le-color-bronze);
  font-family:var(--le-font-interface);
  font-size:var(--le-type-kicker);
  font-weight:600;
  line-height:1.6;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.le-legal .legal-document>section{
  margin-top:var(--le-space-content-break);
  padding-top:var(--le-space-content-break);
  border-top:1px solid var(--le-color-line);
  scroll-margin-top:96px;
}
.le-legal .legal-document>section:first-of-type{
  margin-top:var(--le-space-block-xl);
  border-top-color:var(--le-color-ink);
}
.le-legal .legal-document h2{
  max-width:760px;
  margin:0 0 24px;
  color:var(--le-color-ink);
  font-family:var(--le-font-editorial);
  font-size:clamp(25px,2.6vw,34px);
  font-weight:500;
  line-height:1.2;
  letter-spacing:-.012em;
}
.le-legal .legal-document p,
.le-legal .legal-document li{
  max-width:760px;
  margin:0 0 18px;
  color:var(--le-color-text-soft);
  font-family:var(--le-font-interface);
  font-size:15px;
  font-weight:300;
  line-height:1.85;
}
.le-legal .legal-document a{color:var(--le-color-ink);text-decoration-color:var(--le-color-bronze);text-underline-offset:5px}
.le-legal .legal-document a:focus-visible{outline:2px solid var(--le-color-bronze);outline-offset:4px}
.le-legal .legal-document code{font-size:.92em}

/* Missing-route recovery stays quiet and useful. */
.le-404 .hero-state{min-height:max(720px,100svh)}
.le-404 .le-hero-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:42px}
.le-404 .le-hero-actions .btn{margin:0}
.le-404 .loc-line{margin-top:38px;color:var(--le-color-text-muted);font:300 italic 16px/1.6 var(--le-font-editorial)}
.le-404 .loc-line a{color:var(--le-color-ink);text-underline-offset:5px}

@media(max-width:880px){
  .le-derived .hero-state{min-height:620px;padding:140px 24px 96px}
  .le-derived .hero-state h1{font-size:clamp(48px,14vw,64px);line-height:1.02}
  .le-derived .hero-state>p{font-size:15px;line-height:1.75}
  .le-style-edit .hero-state{min-height:0;padding:112px 24px 48px}
  .le-style-edit .hero-state h1{font-size:clamp(40px,11.5vw,48px)}
  .le-style-edit .hero-state + .sec{padding-top:40px}
  .le-style-edit .article .rel a{min-height:44px}
  .le-derived .btn{min-height:60px;padding:16px 28px}
  .le-derived .sec{padding:110px 24px}
  .le-derived .sec-black,.le-derived .statband,.le-derived .band{width:100%;min-height:459px;padding:88px 24px}
  .le-derived .statband .row{grid-template-columns:1fr 1fr}
  .le-derived .stat{padding:24px 16px;border-top:1px solid rgba(255,255,255,.18);border-left:0}
  .le-derived .stat:nth-child(-n+2){border-top:0}
  .le-derived .stat:nth-child(even){border-left:1px solid rgba(255,255,255,.18)}
  .le-derived .bio{grid-template-columns:1fr;gap:64px}
  .le-derived .bio .photo{max-width:520px}
  .le-derived .proc .row,.le-derived .creds .row{grid-template-columns:46px minmax(0,1fr);gap:18px;padding:28px 0}
  .le-derived .ocards{grid-template-columns:1fr}
  .le-derived .cgrid{grid-template-columns:1fr}
  .le-derived .cgrid>a{min-height:180px;border-left:0}
  .le-derived .cgrid>a+a{border-top-color:var(--le-color-line)}
  .le-derived .edition .toc{grid-template-columns:1fr}
  .le-derived .edition .toc a,.le-derived .edition .toc a:nth-of-type(even){border-top:1px solid var(--le-color-line);border-left:0}
  .le-derived .edition .toc a:first-of-type{border-top:0}
  .le-derived .article{margin-top:84px;padding-top:84px}
  .le-derived .article h2{font-size:clamp(34px,9.5vw,44px)}
  .le-derived .article p,.le-derived .article li{font-size:15px;line-height:1.82}
  .le-legal .legal-main{width:calc(100% - 48px);padding:132px 0 104px}
  .le-legal .legal-document>h1{font-size:clamp(38px,11.5vw,52px);line-height:1.04}
  .le-legal .legal-document>section,
  .le-legal .legal-document>section:first-of-type{margin-top:72px;padding-top:72px}
  .le-legal .legal-document h2{font-size:clamp(24px,7vw,30px)}
  .le-404 .le-hero-actions{width:100%;max-width:342px}
  .le-404 .le-hero-actions .btn{width:100%}
}

@media(max-width:380px){
  .le-derived .hero-state,.le-derived .sec,.le-derived .sec-black,.le-derived .statband,.le-derived .band{padding-right:20px;padding-left:20px}
  .le-derived .r3-request{padding:36px 20px}
  .le-derived .stat .big{font-size:32px}
}

@media(prefers-reduced-motion:reduce){
  .le-derived .fade{opacity:1;transform:none;transition:none}
  .le-derived .btn,.le-derived .ocard,.le-derived .faq summary::after{transition:none}
}
