/* =========================================================
   Ownership boundary: Rebuilt shared chrome
   - Owns rebuilt header, navigation, mobile navigation, footer, and footer grid presentation.
   - Page-specific editorial files must not override shared chrome directly.
========================================================= */

/* Shared editorial ownership layer (rebuilt system primitives).
   Owns: .main-header, .nav-menu presentation, mobile-nav presentation, .main-footer,
   .footer-grid presentation, and editorial-shell/tokens.

   Rebuild boundary:
   - styles.css may retain temporary duplicate selectors for legacy compatibility.
   - rebuilt pages should rely on this file as the source of truth for shared primitives.
   - new page CSS must not add page-scoped overrides for .main-header, .nav-menu,
     .main-footer, or .footer-grid; add shared variants here instead.
*/

.main-header{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:1200;
  background:transparent;
  border-bottom:0;
  box-shadow:none;
}

.main-header::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(8,18,50,.9) 0%,rgba(12,26,61,.56) 45%,rgba(12,26,61,0) 100%);
  pointer-events:none;
  z-index:0;
}

.main-header.scrolled{
  background:transparent;
  border-bottom:0;
  box-shadow:none;
}

.main-header nav{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.4rem;
  height:72px;
  min-height:72px;
  max-width:1240px;
  margin:0 auto;
  padding:clamp(.65rem,1.9vh,1rem) clamp(1rem,2.8vw,2.5rem);
}

.main-header .logo-main{
  font-family:'Raleway',sans-serif;
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.12em;
  color:rgba(247,244,237,.95);
}

.main-header .nav-menu{
  gap:clamp(.72rem,1.25vw,1.45rem);
}

.main-header .nav-menu a,
.main-header .nav-dropdown-toggle{
  color:rgba(247,244,237,.92);
  font-family:'Raleway',sans-serif;
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.main-header .nav-dropdown-toggle{
  padding:.25rem 0;
}

.main-header .nav-menu a:not(.btn-nav)::after,
.main-header .nav-dropdown-toggle::after{background:rgba(212,170,90,.75)}

/* Shared desktop Areas dropdown mechanics.
   Presentation for the rebuilt chrome also lives here so styles.css can remain
   a legacy/global compatibility layer during cleanup. */
.main-header .nav-dropdown{
  position:relative;
  align-self:stretch;
  display:flex;
  align-items:center;
}

.main-header .nav-dropdown-toggle{
  border:0;
  background:transparent;
  cursor:pointer;
  position:relative;
}

.main-header .nav-dropdown-toggle::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-4px;
  height:1px;
  width:0;
  transition:width .25s ease;
}

.main-header .nav-dropdown-menu{
  position:absolute;
  top:calc(100% - 4px);
  left:50%;
  right:auto;
  display:block;
  overflow:visible;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateX(-50%) translateY(-.35rem);
  transition:opacity .2s ease,visibility .2s ease,transform .2s ease;
  z-index:1200;
}

.main-header .nav-dropdown:hover .nav-dropdown-menu,
.main-header .nav-dropdown:focus-within .nav-dropdown-menu,
.main-header .nav-dropdown.open .nav-dropdown-menu{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateX(-50%) translateY(0);
}

.main-header .nav-menu a:hover,
.main-header .nav-menu a.active,
.main-header .nav-dropdown.active .nav-dropdown-toggle,
.main-header .nav-dropdown.open .nav-dropdown-toggle,
.main-header .nav-dropdown-toggle:hover,
.main-header .nav-dropdown-toggle:focus-visible{color:#d4aa5a}

.main-header .nav-dropdown.active .nav-dropdown-toggle::after,
.main-header .nav-dropdown.open .nav-dropdown-toggle::after,
.main-header .nav-dropdown-toggle:hover::after,
.main-header .nav-dropdown-toggle:focus-visible::after{width:100%}

.main-header .btn-nav{
  border:1px solid rgba(184,146,58,.62);
  background:rgba(247,244,237,.08);
  color:#f7f4ed;
  border-radius:999px;
  padding:.62rem 1.15rem;
  font-size:.68rem;
  font-weight:500;
  letter-spacing:.11em;
}

.main-header .btn-nav:hover{background:rgba(184,146,58,.28);color:#f7f4ed}

/* Shared mobile navigation trigger: hidden until the mobile chrome breakpoint. */
.main-header .mobile-toggle{
  display:none;
  flex-direction:column;
  gap:5px;
  background:none;
  border:none;
  cursor:pointer;
  padding:6px;
}

.main-header .mobile-toggle span{
  display:block;
  width:24px;
  height:1.5px;
  background:#f7f4ed;
  border-radius:2px;
  transition:all .25s ease;
}

.main-header .mobile-toggle.active span{
  background:#f7f4ed;
}

/* Shared keyboard focus contract (core interactive controls).
   Exact focus treatment migrated from styles.css so shared chrome owns overlay focus affordances. */
:is(.btn-nav, .nav-dropdown-toggle, .mobile-toggle, #mobileNavOverlay a, #mobileNavOverlay .mobile-nav-close):focus-visible{
  outline:none;
  border-radius:999px;
  box-shadow:0 0 0 2px rgba(247,244,237,.95),0 0 0 4px rgba(184,146,58,.85);
}

.main-header .nav-dropdown-menu--areas{
  width:clamp(190px,15vw,220px);
  min-width:clamp(190px,15vw,220px);
  max-width:min(220px,calc(100vw - 2rem));
  text-align:center;
  background:transparent;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  border:0;
  border-radius:0;
  box-shadow:none;
  padding:clamp(1.42rem,2.35vw,1.9rem) clamp(1.05rem,1.85vw,1.5rem) clamp(1.15rem,1.95vw,1.55rem);
}

.main-header .nav-dropdown-menu--areas::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:
    linear-gradient(180deg,
      rgba(12,26,61,0) 0%,
      rgba(12,26,61,.12) 18%,
      rgba(12,26,61,.42) 48%,
      rgba(8,18,50,.66) 100%),
    radial-gradient(circle at 100% 22%,rgba(247,244,237,.055),rgba(212,170,90,0) 44%);
  backdrop-filter:blur(30px) saturate(1.22);
  -webkit-backdrop-filter:blur(30px) saturate(1.22);
  border-radius:0;
  box-shadow:0 28px 68px rgba(0,0,0,.14);
  -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.18) 18px,rgba(0,0,0,.78) 42px,#000 72px);
  mask-image:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.18) 18px,rgba(0,0,0,.78) 42px,#000 72px);
  pointer-events:none;
}

.main-header .nav-dropdown-menu--areas > *{
  position:relative;
  z-index:1;
}

.main-header .nav-dropdown-section{
  position:relative;
  padding:.1rem 0 .9rem;
}

.main-header .nav-dropdown-section + .nav-dropdown-section{
  border-top:0;
  margin-top:.85rem;
  padding-top:1.05rem;
}

.main-header .nav-dropdown-section + .nav-dropdown-section::before{
  content:"";
  position:absolute;
  top:0;
  width:min(76%,224px);
  height:1px;
}

.main-header .nav-dropdown-section:last-child{
  padding-bottom:.1rem;
}

.main-header .nav-dropdown-section ul,
.main-header .nav-dropdown-group ul{
  list-style:none;
}

.main-header .nav-dropdown-section + .nav-dropdown-section::before{
  left:50%;
  right:auto;
  background:linear-gradient(90deg,rgba(247,244,237,0),rgba(247,244,237,.22),rgba(247,244,237,0));
  transform:translateX(-50%);
}

.main-header .nav-dropdown-heading{
  font-family:'Raleway',sans-serif;
  font-size:.62rem;
  font-weight:600;
  text-transform:uppercase;
  margin:0 0 .62rem;
  color:rgba(212,170,90,.95);
  letter-spacing:.18em;
  text-align:center;
}

.main-header .nav-dropdown-menu--areas a{
  display:block;
  padding:.24rem 0;
  color:rgba(247,244,237,.92);
  transition:color .2s ease,transform .2s ease;
  font-family:'Raleway',system-ui,sans-serif;
  font-size:.78rem;
  font-weight:500;
  letter-spacing:.08em;
  line-height:1.45;
  text-transform:uppercase;
  text-align:center;
}

.main-header .nav-dropdown-menu a::after{display:none}

.main-header .nav-dropdown-menu--areas a:hover,
.main-header .nav-dropdown-menu--areas a:focus-visible,
.main-header .nav-dropdown-menu--areas a.active{
  color:#d4aa5a;
  transform:translateY(-1px);
}

/* Shared mobile navigation overlay.
   Mechanics: JS toggles #mobileNavOverlay.open, .mobile-toggle.active, and body.mobile-nav-open.
   Presentation stays in shared chrome so rebuilt pages do not depend on legacy styles.css. */
body.mobile-nav-open{
  overflow:hidden;
}

#mobileNavOverlay{
  display:none;
  position:fixed;
  inset:0;
  width:100vw;
  height:100vh;
  background:rgba(12,26,61,.98);
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
  gap:1rem;
  z-index:1400;
  list-style:none;
  margin:0;
  padding:1.2rem 1.5rem 2rem;
  overflow-y:auto;
}

#mobileNavOverlay.open{
  display:flex;
}

#mobileNavOverlay .mobile-nav-head{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid rgba(255,255,255,.12);
  padding-bottom:.8rem;
  margin-bottom:.2rem;
}

#mobileNavOverlay .mobile-nav-head p{
  margin:0;
  color:rgba(212,170,90,.95);
  font-size:.72rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:700;
}

#mobileNavOverlay .mobile-nav-close{
  border:0;
  background:transparent;
  color:rgba(255,255,255,.9);
  font-size:2rem;
  line-height:1;
  cursor:pointer;
  padding:0;
}

#mobileNavOverlay .mobile-nav-list{
  list-style:none;
  width:100%;
}

#mobileNavOverlay > .mobile-nav-list > li{
  padding:.4rem 0;
  border-bottom:1px solid rgba(255,255,255,.08);
}

#mobileNavOverlay li{
  list-style:none;
}

#mobileNavOverlay a{
  font-size:1.15rem;
  color:#fff;
  text-decoration:none;
  font-family:'Cormorant Garamond',serif;
  font-weight:400;
  letter-spacing:.03em;
  display:block;
  padding:.25rem 0;
}

#mobileNavOverlay a:hover,
#mobileNavOverlay a.active,
#mobileNavOverlay a:focus-visible{
  color:var(--gold-lt);
}

#mobileNavOverlay .btn-nav{
  border:1px solid rgba(184,146,58,.55);
  border-radius:999px;
  padding:.65rem 1rem;
  color:#d4aa5a;
  display:inline-block;
  margin-top:.25rem;
}

#mobileNavOverlay .mobile-nav-title{
  display:block;
  font-size:.8rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(212,170,90,.92);
  margin-bottom:.55rem;
  font-weight:600;
}

#mobileNavOverlay .mobile-nav-group{
  margin-bottom:.65rem;
}

#mobileNavOverlay .mobile-nav-group p{
  font-size:.7rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(255,255,255,.62);
  margin:.4rem 0;
  font-weight:600;
}

#mobileNavOverlay .mobile-nav-group a{
  font-size:1rem;
  line-height:1.35;
}

@media (max-width:968px){
  .main-header .nav-menu{
    display:none;
  }

  .main-header .mobile-toggle{
    display:flex;
  }

  .main-header .nav-dropdown-menu{
    display:none;
  }
}

.main-footer{
  background:#0c1a3d;
  border-top:1px solid rgba(184,146,58,.15);
  color:rgba(247,244,237,.87);
  padding:clamp(2.2rem,4.5vw,3.4rem) 0 .85rem;
}

.main-footer::before{display:none}
.main-footer .container{max-width:1240px}
.main-footer .footer-grid{
  display:grid;
  grid-template-columns:minmax(280px,1.35fr) minmax(180px,.72fr) minmax(210px,.8fr);
  align-items:start;
  gap:clamp(1.2rem,2.2vw,2rem);
  margin-bottom:clamp(1.4rem,2.8vw,2.6rem);
}

.main-footer .footer-brand{justify-self:start;max-width:520px}
.main-footer .footer-brand p{margin-bottom:1rem}
.main-footer .footer-brand-note{margin-top:1rem;color:rgba(247,244,237,.72)}
.main-footer .footer-contact{justify-self:end;min-width:180px;padding-left:0}
.main-footer .footer-profiles{justify-self:end;min-width:210px;margin-top:.5rem}
.main-footer .footer-support{display:contents}
.main-footer .footer-links{display:none}
.main-footer .logo-footer{
  color:#fff;
  display:block;
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(1.9rem,3vw,2.35rem);
  font-weight:400;
  line-height:1.06;
  margin-bottom:.65rem;
}

.main-footer .footer-contact h4,
.main-footer .footer-profiles__title{
  color:#d4aa5a;
  font-family:'Cormorant Garamond',serif;
  font-size:1.18rem;
  font-weight:500;
  letter-spacing:.015em;
  line-height:1.2;
  text-transform:none;
  margin:0 0 .65rem;
}

.main-footer ul{
  list-style:none;
  margin:0;
  padding:0;
}

.main-footer li{margin-bottom:.5rem}
.main-footer a{text-decoration:none;transition:color .2s ease}
.main-footer p,
.main-footer li,
.main-footer a{color:rgba(247,244,237,.87);font-size:.91rem;line-height:1.6}
.main-footer a:hover,
.main-footer a:focus-visible{color:#d4aa5a}
.main-footer .footer-profiles__list{display:grid;gap:.5rem}

.main-footer .footer-bottom{
  border-top:1px solid rgba(247,244,237,.09);
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  margin-top:clamp(.65rem,1.3vw,1rem);
  padding-top:.65rem;
  gap:.45rem;
  width:min(1180px,calc(100vw - 52px));
  margin-left:auto;
  margin-right:auto;
}

.main-footer .footer-bottom p{margin:0}
.main-footer .footer-bottom p,
.main-footer .footer-bottom a{color:rgba(247,244,237,.64);font-size:.74rem;line-height:1.45}

@media (max-width:900px){
  .main-header nav{height:70px;min-height:70px}
  .main-footer .footer-grid{grid-template-columns:1fr;gap:1.25rem}
  .main-footer .footer-support{display:grid;grid-template-columns:1fr}
  .main-footer .footer-bottom{flex-direction:column;text-align:center}
}

@media (max-width:768px){
  .main-header nav{height:68px;min-height:68px}
  .main-header .logo-main{font-size:.68rem;letter-spacing:.11em}
}

@media (max-width:1020px){
  .main-header::before{background:linear-gradient(180deg,rgba(8,18,50,.94),rgba(12,26,61,.68))}
}

/* ==========================================================
   Ownership boundary: Editorial tokens
   - Shared editorial variables mapped from styles.css brand tokens.
   - Keep tokens primitive and page-family neutral.
   ========================================================== */

:root{
  --site-header-height:72px;
  --editorial-page-width:min(1180px,calc(100vw - 52px));
  --editorial-page-width-mobile:calc(100vw - 32px);
  --editorial-space-1:.65rem;
  --editorial-space-2:1rem;
  --editorial-space-3:1.4rem;
  --editorial-space-4:2rem;
  --editorial-space-5:2.8rem;
  --editorial-space-6:4.2rem;
  --editorial-radius-card:0;
  --editorial-rule:1px solid rgba(12,26,61,.12);
  --editorial-rule-strong:1px solid rgba(12,26,61,.18);
  /* Forward editorial tokens map to shared brand tokens from styles.css to reduce drift. */
  --editorial-ink:var(--text, #1a1a2e);
  --editorial-navy:var(--navy, #0c1a3d);
  --editorial-gold:var(--gold, #b8923a);
  --editorial-gold-light:var(--gold-lt, #d4aa5a);
  --editorial-cream:var(--cream, #f7f4ed);
  --editorial-sand:var(--sand, #e8e1d0);
}

@media (max-width:900px){
  :root{--site-header-height:70px}
}

@media (max-width:768px){
  :root{--site-header-height:68px}
}

/* ==========================================================
   Ownership boundary: Layout primitives
   - Generic shell, section, cluster, stack, and split helpers only.
   - Do not encode page-family composition here.
   ========================================================== */

.editorial-section{
  padding:clamp(4.9rem,8.4vw,5.8rem) 0;
}

.editorial-shell{
  width:var(--editorial-page-width);
  margin:0 auto;
}

.editorial-cluster{
  display:flex;
  flex-wrap:wrap;
  gap:var(--editorial-space-2);
  align-items:center;
}

.editorial-stack{
  display:grid;
  gap:var(--editorial-space-3);
}

.editorial-split{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(1.2rem,2.8vw,2rem);
}

/* ==========================================================
   Ownership boundary: Typography/eyebrow primitives
   - Reusable labels and editorial type accents shared across rebuilt pages.
   ========================================================== */

.editorial-eyebrow{
  display:flex;
  align-items:center;
  gap:var(--editorial-eyebrow-gap,.9rem);
  font-size:var(--editorial-eyebrow-font-size,.67rem);
  letter-spacing:var(--editorial-eyebrow-letter-spacing,.3em);
  line-height:var(--editorial-eyebrow-line-height,normal);
  text-transform:uppercase;
  color:var(--editorial-eyebrow-color,var(--editorial-gold-light));
  font-weight:var(--editorial-eyebrow-font-weight,700);
}

.editorial-eyebrow::before{
  content:"";
  display:inline-block;
  width:var(--editorial-eyebrow-rule-width,2.8rem);
  height:1px;
  background:currentColor;
  opacity:var(--editorial-eyebrow-rule-opacity,1);
}

.editorial-eyebrow--dark{
  --editorial-eyebrow-color:var(--editorial-gold);
}

.editorial-eyebrow--light{
  --editorial-eyebrow-color:var(--editorial-gold-light);
}

.editorial-eyebrow--compact{
  --editorial-eyebrow-gap:.85rem;
  --editorial-eyebrow-font-size:.66rem;
  --editorial-eyebrow-letter-spacing:.18em;
  --editorial-eyebrow-rule-width:34px;
}

.editorial-eyebrow--no-rule::before{
  content:none;
}

.editorial-label{
  color:var(--editorial-label-color,var(--editorial-gold));
  font-size:var(--editorial-label-font-size,.67rem);
  font-weight:var(--editorial-label-font-weight,700);
  letter-spacing:var(--editorial-label-letter-spacing,.28em);
  line-height:var(--editorial-label-line-height,normal);
  text-transform:uppercase;
}

.editorial-label--rail{
  --editorial-label-font-size:.58rem;
  --editorial-label-font-weight:800;
  --editorial-label-letter-spacing:.17em;
  --editorial-label-line-height:1.5;
}


/* ==========================================================
   Ownership boundary: Editorial note, pull, and caption primitives
   - Owns low-level reusable callout typography, rules, and label treatment.
   - Page-family CSS owns placement, sizing, sticky/rail behavior, and composition.
   ========================================================== */

.editorial-note{
  border-top:var(--editorial-note-border-top,0);
  border-left:var(--editorial-note-border-left,0);
  padding-top:var(--editorial-note-padding-top,0);
  padding-left:var(--editorial-note-padding-left,0);
  color:var(--editorial-note-color,rgba(26,26,46,.58));
  font-size:var(--editorial-note-font-size,.88rem);
  letter-spacing:var(--editorial-note-letter-spacing,normal);
  line-height:var(--editorial-note-line-height,1.72);
  text-align:var(--editorial-note-text-align,inherit);
  text-transform:var(--editorial-note-text-transform,none);
}

.editorial-note :where(p){
  margin:var(--editorial-note-paragraph-margin,0);
  color:var(--editorial-note-paragraph-color,currentColor);
  font-size:var(--editorial-note-paragraph-font-size,inherit);
  letter-spacing:var(--editorial-note-paragraph-letter-spacing,inherit);
  line-height:var(--editorial-note-paragraph-line-height,inherit);
  text-transform:var(--editorial-note-paragraph-text-transform,inherit);
}

.editorial-note :where(b,.editorial-note__label){
  display:block;
  margin-bottom:var(--editorial-note-label-margin-bottom,.65rem);
  color:var(--editorial-note-label-color,var(--editorial-gold));
  font-size:var(--editorial-note-label-font-size,.66rem);
  font-weight:var(--editorial-note-label-font-weight,700);
  letter-spacing:var(--editorial-note-label-letter-spacing,.18em);
  line-height:var(--editorial-note-label-line-height,normal);
  text-transform:uppercase;
}

.editorial-note--dark{
  --editorial-note-color:rgba(255,255,255,.68);
  --editorial-note-paragraph-color:rgba(247,244,237,.66);
  --editorial-note-label-color:var(--editorial-gold-light);
}

.editorial-note--light{
  --editorial-note-color:rgba(26,26,46,.58);
  --editorial-note-label-color:var(--editorial-gold);
}

.editorial-note--rail{
  --editorial-note-border-left:1px solid var(--editorial-note-rule-color,rgba(184,146,58,.48));
  --editorial-note-padding-left:1rem;
}

.editorial-pull{
  border-top:var(--editorial-pull-border-top,0);
  border-left:var(--editorial-pull-border-left,0);
  padding-top:var(--editorial-pull-padding-top,0);
  padding-left:var(--editorial-pull-padding-left,0);
  color:var(--editorial-pull-color,var(--editorial-navy));
  font-family:var(--editorial-pull-font-family,'Cormorant Garamond',serif);
  font-size:var(--editorial-pull-font-size,clamp(1.55rem,2.6vw,2.35rem));
  font-weight:var(--editorial-pull-font-weight,300);
  letter-spacing:var(--editorial-pull-letter-spacing,-.045em);
  line-height:var(--editorial-pull-line-height,1.08);
  text-align:var(--editorial-pull-text-align,left);
  text-wrap:var(--editorial-pull-text-wrap,balance);
}

.editorial-pull--dark{
  --editorial-pull-color:#fff;
}

.editorial-pull :where(span,.editorial-pull__label){
  display:block;
  margin-top:var(--editorial-pull-label-margin-top,.7rem);
  color:var(--editorial-pull-label-color,var(--editorial-gold));
  font-family:var(--editorial-pull-label-font-family,'Raleway',sans-serif);
  font-size:var(--editorial-pull-label-font-size,.66rem);
  font-weight:var(--editorial-pull-label-font-weight,700);
  letter-spacing:var(--editorial-pull-label-letter-spacing,.18em);
  line-height:var(--editorial-pull-label-line-height,normal);
  text-transform:uppercase;
}

.editorial-caption{
  border-top:var(--editorial-caption-border-top,0);
  border-left:var(--editorial-caption-border-left,0);
  padding-top:var(--editorial-caption-padding-top,0);
  padding-left:var(--editorial-caption-padding-left,0);
  color:var(--editorial-caption-color,rgba(26,26,46,.48));
  font-size:var(--editorial-caption-font-size,.78rem);
  letter-spacing:var(--editorial-caption-letter-spacing,normal);
  line-height:var(--editorial-caption-line-height,1.5);
  text-transform:var(--editorial-caption-text-transform,none);
}

.editorial-caption--dark{
  --editorial-caption-color:rgba(247,244,237,.6);
}

.editorial-caption :where(p){
  margin:var(--editorial-caption-paragraph-margin,0);
  color:var(--editorial-caption-paragraph-color,currentColor);
  font-size:var(--editorial-caption-paragraph-font-size,inherit);
  letter-spacing:var(--editorial-caption-paragraph-letter-spacing,inherit);
  line-height:var(--editorial-caption-paragraph-line-height,inherit);
  text-transform:var(--editorial-caption-paragraph-text-transform,inherit);
}

/* ==========================================================
   Ownership boundary: Button/action primitives
   - Shared editorial buttons and action-link lists.
   - Page-specific CTA layout remains in page-family CSS.
   ========================================================== */

.editorial-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:var(--editorial-btn-min-height,48px);
  padding:var(--editorial-btn-padding,0);
  border:var(--editorial-btn-border,0 solid transparent);
  border-radius:var(--editorial-btn-radius,999px);
  color:var(--editorial-btn-color,inherit);
  background:var(--editorial-btn-background,transparent);
  box-shadow:var(--editorial-btn-shadow,none);
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:var(--editorial-btn-letter-spacing,.13em);
  font-size:var(--editorial-btn-font-size,.72rem);
  font-weight:var(--editorial-btn-font-weight,700);
  cursor:pointer;
  transition:transform .2s ease,background .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease;
}


.editorial-btn--primary{
  --editorial-btn-min-height:44px;
  --editorial-btn-padding:.74rem 1.08rem;
  --editorial-btn-background:var(--editorial-gold);
  --editorial-btn-color:#fff;
  --editorial-btn-shadow:var(--editorial-btn-primary-shadow,0 14px 34px rgba(184,146,58,.25));
}

.editorial-btn--primary:hover{
  --editorial-btn-background:var(--editorial-gold-light);
  --editorial-btn-shadow:var(--editorial-btn-primary-hover-shadow,var(--editorial-btn-primary-shadow,0 14px 34px rgba(184,146,58,.25)));
}

.editorial-btn--dark{
  --editorial-btn-border:1px solid var(--editorial-navy);
  --editorial-btn-background:var(--editorial-navy);
  --editorial-btn-color:#fff;
  --editorial-btn-shadow:none;
}

.editorial-btn--dark:hover{
  --editorial-btn-border:1px solid var(--editorial-gold);
  --editorial-btn-background:var(--editorial-gold);
  --editorial-btn-color:var(--editorial-navy);
}

.editorial-btn--outline-light,
.editorial-btn--outline-dark{
  --editorial-btn-min-height:auto;
  --editorial-btn-padding:.25rem 0;
  --editorial-btn-radius:0;
  --editorial-btn-shadow:none;
  border:0;
  border-bottom:1px solid var(--editorial-btn-outline-rule,rgba(184,146,58,.68));
}

.editorial-btn--outline-light{
  --editorial-btn-color:rgba(255,255,255,.82);
  --editorial-btn-outline-rule:rgba(212,170,90,.58);
}

.editorial-btn--outline-dark{
  --editorial-btn-color:var(--editorial-navy);
  --editorial-btn-outline-rule:rgba(184,146,58,.68);
}

.editorial-inline-actions a{
  color:inherit;
  text-decoration:none;
  border-bottom:var(--editorial-inline-action-border,0);
  padding-bottom:var(--editorial-inline-action-padding-bottom,0);
}

.editorial-inline-actions a:not(:last-child)::after{
  content:'·';
  margin-left:var(--editorial-inline-action-separator-space,.9rem);
  color:var(--editorial-inline-action-separator-color,rgba(184,146,58,.7));
}

.editorial-btn:hover{
  transform:translateY(-2px);
}

.editorial-btn:focus-visible{
  outline:none;
  box-shadow:0 0 0 2px rgba(247,244,237,.95),0 0 0 4px rgba(184,146,58,.45);
}

.editorial-btn:disabled,
.editorial-btn[aria-disabled="true"]{
  opacity:.6;
  pointer-events:none;
}


.editorial-action-list{
  display:grid;
  gap:0;
  border-top:1px solid var(--editorial-action-rule-color,rgba(12,26,61,.14));
}

.editorial-action-link{
  display:grid;
  grid-template-columns:1fr auto;
  gap:1rem;
  align-items:center;
  padding:var(--editorial-action-link-padding,.82rem 0);
  border-bottom:1px solid var(--editorial-action-rule-color,rgba(12,26,61,.14));
  color:var(--editorial-action-link-color,var(--editorial-navy));
  font-size:var(--editorial-action-link-font-size,.66rem);
  font-weight:800;
  letter-spacing:.13em;
  line-height:1.4;
  text-decoration:none;
  text-transform:uppercase;
}

.editorial-action-link::after{
  content:"→";
  color:var(--editorial-action-link-arrow-color,var(--editorial-gold));
  font-size:.95rem;
  line-height:1;
  transition:transform 160ms ease;
}

.editorial-action-link:hover::after{
  transform:translateX(4px);
}

/* ==========================================================
   Ownership boundary: Card/surface/image primitives
   - Low-level surfaces, cards, and image frames only.
   - Avoid broad generic grids that flatten editorial hierarchy.
   ========================================================== */

.editorial-card{
  border-top:var(--editorial-rule);
  border-bottom:var(--editorial-rule);
  padding:clamp(1.6rem,3vw,2.5rem) 0;
}

.editorial-surface-cream{background:var(--editorial-cream)}
.editorial-surface-sand{background:var(--editorial-sand)}
.editorial-surface-navy{background:var(--editorial-navy);color:#fff}

.editorial-image-frame{
  border:1px solid rgba(12,26,61,.12);
  box-shadow:0 24px 70px rgba(12,26,61,.12);
}

/* ==========================================================
   Ownership boundary: Form primitives
   - Shared inputs, textareas, selects, form sheets, consent, and noscript support.
   - Legacy form compatibility remains in styles.css until migrated.
   ========================================================== */

.editorial-input,
.editorial-textarea,
.editorial-select{
  width:100%;
  min-height:var(--editorial-field-min-height,48px);
  border:1px solid rgba(12,26,61,.2);
  border-radius:var(--editorial-field-radius,0);
  background:#fff;
  color:var(--editorial-ink);
  padding:.8rem .95rem;
  font:500 .9rem/1.5 'Raleway',sans-serif;
  transition:border-color .2s ease,background .2s ease,box-shadow .2s ease;
}

.editorial-input::placeholder,
.editorial-textarea::placeholder{
  color:rgba(26,26,46,.38);
}

.editorial-select,
select.editorial-input{
  appearance:none;
  -webkit-appearance:none;
}

.editorial-input:focus-visible,
.editorial-textarea:focus-visible,
.editorial-select:focus-visible{
  outline:none;
  border-color:rgba(184,146,58,.72);
  box-shadow:0 0 0 2px rgba(247,244,237,.95),0 0 0 4px rgba(184,146,58,.45);
}

/* Shared editorial form primitives */
.editorial-form-frame{
  position:relative;
  isolation:isolate;
}

.editorial-form-outline{
  position:absolute;
  inset:var(--editorial-form-outline-inset,18px -14px -14px 18px);
  z-index:-1;
  border:1px solid var(--editorial-form-outline-color,rgba(184,146,58,.48));
  pointer-events:none;
}

@media (max-width:680px){
  .editorial-form-outline{
    display:none;
  }
}

.editorial-form-sheet{
  position:relative;
  z-index:1;
  border:1px solid rgba(12,26,61,.14);
  border-left:7px solid var(--editorial-gold);
  border-radius:var(--editorial-form-radius,0);
  background:var(--editorial-form-background,linear-gradient(180deg,rgba(255,255,255,.98),rgba(252,249,242,.94)));
  padding:var(--editorial-form-padding,clamp(1.5rem,3.4vw,2.3rem));
  color:var(--editorial-ink);
  box-shadow:0 12px 30px rgba(12,26,61,.055);
}

.editorial-form-header{
  margin-bottom:var(--editorial-form-header-margin,1.5rem);
  border-bottom:1px solid rgba(12,26,61,.12);
  padding-bottom:var(--editorial-form-header-padding,1.25rem);
}

.editorial-form-grid,
.editorial-form-sheet form[data-lead-form="seller"] .editorial-form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--editorial-form-grid-gap,1.25rem 1.75rem);
}

.editorial-form-field{
  display:grid;
  gap:var(--editorial-form-field-gap,.6rem);
  margin-top:var(--editorial-form-field-margin-top,1.25rem);
}

.editorial-form-grid:first-of-type .editorial-form-field{
  margin-top:0;
}

.editorial-form-field label,
.editorial-form-label,
.editorial-form-sheet form[data-lead-form="seller"] .editorial-form-field label{
  display:block;
  margin:0;
  color:var(--editorial-form-label-color,rgba(26,26,46,.7));
  text-transform:uppercase;
  font-size:var(--editorial-form-label-size,.74rem);
  font-weight:var(--editorial-form-label-weight,800);
  letter-spacing:var(--editorial-form-label-spacing,.1em);
}

.editorial-input--line,
.editorial-select--line,
.editorial-textarea--boxed,
.editorial-form-sheet .editorial-input--line,
.editorial-form-sheet .editorial-select--line,
.editorial-form-sheet .editorial-textarea--boxed,
.editorial-form-sheet .editorial-form-field input.editorial-input--line,
.editorial-form-sheet .editorial-form-field select.editorial-input--line,
.editorial-form-sheet .editorial-form-field textarea.editorial-textarea--boxed{
  border:0;
  border-bottom:1px solid rgba(12,26,61,.23);
  background:transparent;
  padding:.8rem 0;
  border-radius:0;
  color:var(--editorial-ink);
  font-size:.96rem;
  font-weight:400;
  box-shadow:none;
  min-height:0;
}

.editorial-input--line:focus-visible,
.editorial-select--line:focus-visible,
.editorial-form-sheet .editorial-input--line:focus-visible,
.editorial-form-sheet .editorial-select--line:focus-visible,
.editorial-form-sheet .editorial-form-field input.editorial-input--line:focus-visible,
.editorial-form-sheet .editorial-form-field select.editorial-input--line:focus-visible{
  border-color:var(--editorial-gold);
  box-shadow:0 1px 0 var(--editorial-gold);
}

.editorial-textarea--boxed,
.editorial-form-sheet .editorial-textarea--boxed,
.editorial-form-sheet .editorial-form-field textarea.editorial-textarea--boxed{
  min-height:136px;
  resize:vertical;
  border:1px solid rgba(12,26,61,.14);
  background:rgba(255,255,255,.35);
  padding:.9rem;
}

.editorial-textarea--boxed:focus-visible,
.editorial-form-sheet .editorial-textarea--boxed:focus-visible,
.editorial-form-sheet .editorial-form-field textarea.editorial-textarea--boxed:focus-visible{
  border-color:rgba(184,146,58,.7);
  box-shadow:inset 0 0 0 1px rgba(184,146,58,.18);
}

.editorial-submit--block{
  width:100%;
  margin-top:var(--editorial-submit-margin-top,1.25rem);
  cursor:pointer;
}

.editorial-form-sheet [data-submit-button]:disabled,
.editorial-form-sheet .form-submit:disabled{
  opacity:.6;
  cursor:not-allowed;
  transform:none !important;
}

.editorial-form-sheet [data-form-message],
.editorial-form-sheet .form-message{
  display:none;
  margin:var(--editorial-form-message-margin,1rem 0 0);
  border:1px solid transparent;
  padding:var(--editorial-form-message-padding,.85rem 1rem);
  color:var(--editorial-form-message-color,var(--editorial-ink));
  font-size:var(--editorial-form-message-size,.88rem);
  font-weight:700;
  line-height:1.5;
}

.editorial-form-sheet [data-form-message].success,
.editorial-form-sheet .form-message.success{
  border-color:rgba(24,121,78,.24);
  background:rgba(24,121,78,.08);
  color:#1f6b4b;
}

.editorial-form-sheet [data-form-message].error,
.editorial-form-sheet .form-message.error{
  border-color:rgba(148,45,45,.24);
  background:rgba(148,45,45,.08);
  color:#8a3030;
}

.editorial-form-consent{
  margin:var(--editorial-form-consent-margin,1rem 0 0);
  border:var(--editorial-form-consent-border,0);
  border-top:var(--editorial-form-consent-border-top,1px solid rgba(12,26,61,.1));
  border-radius:var(--editorial-form-consent-radius,0);
  background:var(--editorial-form-consent-background,transparent);
  padding:var(--editorial-form-consent-padding,1rem 0 0);
}

.editorial-form-consent p,
.editorial-form-noscript{
  margin:0;
  color:var(--editorial-form-consent-color,rgba(26,26,46,.55));
  font-size:var(--editorial-form-consent-size,.76rem);
  line-height:var(--editorial-form-consent-line-height,1.65);
}

.editorial-form-consent a,
.editorial-form-noscript a{
  border-bottom:1px solid rgba(184,146,58,.5);
  color:var(--editorial-navy);
  text-decoration:none;
  font-weight:800;
}

.editorial-form-consent a:hover,
.editorial-form-consent a:focus-visible,
.editorial-form-noscript a:hover,
.editorial-form-noscript a:focus-visible{
  color:var(--editorial-gold);
}

.editorial-form-noscript{
  margin-top:var(--editorial-form-noscript-margin-top,1rem);
}

/* ==========================================================
   Ownership boundary: FAQ primitives
   - Reusable editorial FAQ disclosure styles.
   - Page-level FAQ support remains in styles.css until migrated.
   ========================================================== */

.editorial-faq details{
  border-top:var(--editorial-rule);
  padding:.9rem 0;
}

.editorial-faq details:last-child{
  border-bottom:var(--editorial-rule);
}

.editorial-faq summary{
  list-style:none;
  cursor:pointer;
  font-family:'Cormorant Garamond',serif;
  font-size:1.5rem;
  color:var(--editorial-navy);
}

@media (max-width:1100px){
  .editorial-split{grid-template-columns:1fr}
}

@media (max-width:720px){
  .editorial-shell{width:var(--editorial-page-width-mobile)}
  .editorial-section{padding:4.3rem 0}
}
