/* Luvant Group — site layer on top of Industry (styles.css). Tokens only. */

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{overflow-x:hidden;-webkit-font-smoothing:antialiased;}
a{text-decoration:none;color:inherit;}
img{max-width:100%;display:block;}
.wrap{max-width:1200px;margin:0 auto;padding:0 var(--space-6);}
:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;}

/* ---------- grid backdrop (removed per feedback) ---------- */
.grid-ground{}

/* ---------- header / nav ---------- */
.site-header{
  position:sticky;top:0;z-index:50;
  background:color-mix(in srgb, var(--color-bg) 92%, transparent);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--color-divider);
}
.nav{height:76px;padding:0;}
.brand-mark{display:flex;align-items:center;gap:10px;}
.brand-mark svg{height:30px;width:30px;flex-shrink:0;}
.nav-brand{font-size:18px;letter-spacing:0.02em;}
.nav-brand .accent{color:var(--color-accent-700);}
.nav-links{display:none;align-items:center;gap:calc(var(--space-6) * 1.4);margin-left:calc(var(--space-8) * 1.4);}
.nav-links a{font-family:var(--font-body);font-size:14px;font-weight:500;color:color-mix(in srgb, var(--color-text) 88%, transparent);}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:var(--color-accent-700);}
.nav .btn{display:none;}
@media(min-width:900px){.nav-links{display:flex;}.nav .btn{display:inline-flex;}}

.menu-btn{
  margin-left:auto;display:flex;flex-direction:column;justify-content:center;gap:5px;
  width:38px;height:38px;background:none;border:none;cursor:pointer;padding:0;
}
.menu-btn span{display:block;height:2px;width:100%;background:var(--color-text);transition:transform .25s ease, opacity .25s ease;}
.menu-btn.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.menu-btn.open span:nth-child(2){opacity:0;}
.menu-btn.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
@media(min-width:900px){.menu-btn{display:none;}}

.mobile-nav{
  display:none;position:fixed;inset:76px 0 0 0;z-index:49;
  background:var(--color-bg);flex-direction:column;padding:var(--space-6);gap:0;
  border-top:1px solid var(--color-divider);overflow-y:auto;
}
.mobile-nav.open{display:flex;}
.mobile-nav a{
  font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:19px;
  color:var(--color-text);padding:var(--space-4) 0;border-bottom:1px solid var(--color-divider);
}
.mobile-nav a:hover,.mobile-nav a[aria-current="page"]{color:var(--color-accent-700);}
.mobile-nav .btn{margin-top:var(--space-4);justify-content:center;}
@media(min-width:900px){.mobile-nav{display:none !important;}}

/* ---------- hero ---------- */
.hero{padding:calc(var(--space-8)*4) 0 calc(var(--space-8)*3);position:relative;}
.eyebrow{
  font-family:var(--font-heading);font-size:12px;font-weight:var(--font-heading-weight);
  letter-spacing:0.18em;text-transform:uppercase;color:var(--color-accent-700);
  display:flex;align-items:center;gap:10px;margin-bottom:var(--space-4);
}
.eyebrow::before{content:"";width:24px;height:1px;background:var(--color-accent);display:inline-block;}
.hero h1{font-size:clamp(36px,5.4vw,60px);max-width:800px;margin-bottom:var(--space-4);}
.hero .lead{font-size:18px;max-width:560px;color:color-mix(in srgb, var(--color-text) 86%, transparent);margin-bottom:var(--space-6);}
.hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:calc(var(--space-8)*1.4);}
.plate{
  border:1px solid var(--color-divider);padding:var(--space-6);
  display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-6) calc(var(--space-6)*1.4);
}
@media(min-width:640px){.plate{grid-template-columns:repeat(4,1fr);}}
.plate .num{font-family:var(--font-heading);font-size:24px;font-weight:var(--font-heading-weight);}
.plate .lbl{font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:color-mix(in srgb, var(--color-text) 72%, transparent);margin-top:4px;}
.hero-note{margin-top:var(--space-4);font-size:13px;color:color-mix(in srgb, var(--color-text) 72%, transparent);}

/* ---------- page hero ---------- */
.page-hero{padding:calc(var(--space-8)*2.2) 0 calc(var(--space-8)*1.8);}
.breadcrumb{font-size:12.5px;color:color-mix(in srgb, var(--color-text) 72%, transparent);margin-bottom:var(--space-4);}
.breadcrumb a:hover{color:var(--color-accent-700);}
.page-hero h1{font-size:clamp(30px,4.2vw,44px);max-width:720px;margin-bottom:var(--space-3);}
.page-hero .lead{font-size:16.5px;max-width:600px;color:color-mix(in srgb, var(--color-text) 86%, transparent);}

/* ---------- sections ---------- */
.section{padding:calc(var(--space-8)*2.6) 0;}
.section-head{max-width:660px;margin-bottom:calc(var(--space-8)*1.6);}
.section-head h2{font-size:clamp(28px,3.2vw,38px);}
.bg-surface{background:var(--color-surface);}

/* ---------- blueprint grid cards ---------- */
.grid-cards{display:grid;gap:var(--space-6);grid-template-columns:1fr;}
@media(min-width:700px){.grid-cards.cols-2{grid-template-columns:repeat(2,1fr);}}
@media(min-width:900px){.grid-cards.cols-3{grid-template-columns:repeat(3,1fr);}.grid-cards.cols-4{grid-template-columns:repeat(4,1fr);}}
.grid-cards .card{gap:var(--space-3);padding:calc(var(--space-6)*1.1);}
.grid-cards .card .card-title{font-size:18px;}
.grid-cards .card .card-body{font-size:14.5px;opacity:0.85;}
.card.blueprint{transition:border-color .25s ease, box-shadow .25s ease, transform .25s ease;}
.card.blueprint:hover{border-color:var(--color-accent);box-shadow:var(--shadow-md);transform:translateY(-2px);}

.two-col-layout{display:grid;gap:calc(var(--space-8)*1.6);}
@media(min-width:900px){.two-col-layout{grid-template-columns:1fr 1fr;align-items:start;}}
.copy p{color:color-mix(in srgb, var(--color-text) 88%, transparent);font-size:16px;margin-bottom:var(--space-4);max-width:520px;}

/* ---------- dark plate (procurement / section dividers) ---------- */
.plate-dark{background:var(--color-accent-900);color:var(--color-neutral-100);}
.plate-dark .section-head h2{color:var(--color-neutral-100);}
.plate-dark .eyebrow{color:var(--color-accent-300);}
.plate-dark .eyebrow::before{background:var(--color-accent-300);}
.plate-dark .section-head .sub{color:color-mix(in srgb, var(--color-neutral-100) 70%, transparent);margin-top:var(--space-3);font-size:15.5px;}
.doc-frame{border:1px solid color-mix(in srgb, var(--color-accent-300) 45%, transparent);}
.doc-row{display:grid;grid-template-columns:44px 1fr;gap:var(--space-4);padding:var(--space-6) calc(var(--space-6)*1.2);border-bottom:1px solid color-mix(in srgb, var(--color-neutral-100) 12%, transparent);}
.doc-row:last-child{border-bottom:none;}
.doc-row .idx{font-family:var(--font-heading);font-weight:var(--font-heading-weight);color:var(--color-accent-300);font-size:14px;}
.doc-row h3{font-size:16px;margin-bottom:6px;}
.doc-row p{font-size:14.5px;color:color-mix(in srgb, var(--color-neutral-100) 78%, transparent);margin:0;max-width:620px;}
.doc-foot{padding:var(--space-4) calc(var(--space-6)*1.2);border-top:1px solid color-mix(in srgb, var(--color-accent-300) 45%, transparent);font-size:13px;color:color-mix(in srgb, var(--color-neutral-100) 55%, transparent);display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2);}

/* ---------- steps ---------- */
.steps{display:flex;flex-direction:column;}
.step{display:grid;grid-template-columns:auto 1fr;gap:var(--space-4);padding-bottom:calc(var(--space-6)*1.5);position:relative;}
.step:last-child{padding-bottom:0;}
.step-num{
  width:38px;height:38px;flex-shrink:0;border:1px solid var(--color-accent);color:var(--color-accent-700);
  display:flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:14px;
  position:relative;z-index:2;background:var(--color-bg);
}
.step:not(:last-child)::before{content:"";position:absolute;left:18px;top:38px;bottom:0;width:1px;background:var(--color-divider);}
.step h3{font-size:16px;margin-bottom:4px;}
.step p{font-size:14.5px;color:color-mix(in srgb, var(--color-text) 85%, transparent);max-width:560px;margin:0;}

/* ---------- criteria / faq rows ---------- */
.criteria-grid{border-top:1px solid var(--color-divider);}
.criteria-row{display:grid;gap:6px;padding:var(--space-6) 0;border-bottom:1px solid var(--color-divider);}
@media(min-width:760px){.criteria-row{grid-template-columns:280px 1fr;gap:var(--space-6);}}
.criteria-row h3{font-size:16px;}
.criteria-row p{font-size:14.5px;color:color-mix(in srgb, var(--color-text) 85%, transparent);max-width:620px;margin:0;}

/* ---------- forms ---------- */
.form-panel{border:1px solid var(--color-divider);padding:calc(var(--space-6)*1.3);}
.form-panel .kicker{font-family:var(--font-heading);font-size:12px;font-weight:var(--font-heading-weight);letter-spacing:0.1em;text-transform:uppercase;color:var(--color-accent-700);margin-bottom:6px;}
.form-panel .sub{font-size:14px;color:color-mix(in srgb, var(--color-text) 82%, transparent);margin-bottom:var(--space-6);}
.field{margin-bottom:var(--space-4);}
.two-col{display:grid;grid-template-columns:1fr;gap:var(--space-4);}
@media(min-width:560px){.two-col{grid-template-columns:1fr 1fr;}}
.field .input.error{border-color:#a4453b;}
.field .err-msg{font-size:12px;color:#a4453b;margin-top:5px;display:none;}
.field .input.error + .err-msg{display:block;}
.form-note{font-size:12.5px;color:color-mix(in srgb, var(--color-text) 72%, transparent);margin-top:var(--space-4);text-align:center;}

.channel-list{display:flex;flex-direction:column;border-top:1px solid var(--color-divider);}
.channel{display:flex;gap:var(--space-4);align-items:flex-start;padding:var(--space-4) 0;border-bottom:1px solid var(--color-divider);}
.channel .ic{width:36px;height:36px;border:1px solid var(--color-accent);color:var(--color-accent-700);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.channel p{font-size:12.5px;font-weight:var(--font-heading-weight);font-family:var(--font-heading);margin-bottom:3px;}
.channel span,.channel a{font-size:14.5px;color:color-mix(in srgb, var(--color-text) 86%, transparent);}
.channel a:hover{color:var(--color-accent-700);}

/* ---------- overrides ---------- */
.btn-primary{color:#fff;}
.btn-primary{transition:background-color .2s ease, transform .15s ease, box-shadow .2s ease;}
.btn-primary:hover{background:var(--color-accent-700);transform:translateY(-1px);box-shadow:var(--shadow-sm);}
.btn-primary:active{background:var(--color-accent-800);transform:translateY(0);box-shadow:none;}
.nav .btn-primary,.mobile-nav .btn-primary{color:#fff;}
.nav .btn-primary:hover,.mobile-nav .btn-primary:hover,.nav .btn-primary:active,.mobile-nav .btn-primary:active{color:#fff;}
.duotone::after{content:none;} /* photos kept natural — vivid accent read poorly as a color-blend tint */

/* ---------- photography ---------- */
.photo-grid{display:grid;gap:var(--space-6);grid-template-columns:1fr;}
@media(min-width:760px){.photo-grid{grid-template-columns:1.3fr 1fr;align-items:stretch;}}
.photo-grid figure{margin:0;height:100%;}
.photo-grid .duotone{height:100%;min-height:280px;}
.photo-grid .duotone img{width:100%;height:100%;object-fit:cover;}
.photo-grid figcaption{margin-top:var(--space-2);}

/* ---------- CTA band ---------- */
.cta-band{background:var(--color-surface);text-align:center;}
.cta-band h2{font-size:clamp(24px,3vw,32px);margin-bottom:var(--space-4);}
.cta-band p{color:color-mix(in srgb, var(--color-text) 84%, transparent);max-width:520px;margin:0 auto var(--space-6);}
.cta-actions{display:flex;justify-content:center;gap:var(--space-3);flex-wrap:wrap;}

/* ---------- footer ---------- */
.site-footer{background:var(--color-accent-900);color:color-mix(in srgb, var(--color-neutral-100) 62%, transparent);padding:calc(var(--space-8)*1.6) 0 var(--space-6);}
.footer-top{display:flex;flex-direction:column;gap:var(--space-8);border-bottom:1px solid color-mix(in srgb, var(--color-neutral-100) 14%, transparent);padding-bottom:calc(var(--space-8)*1.1);margin-bottom:var(--space-6);}
@media(min-width:760px){.footer-top{flex-direction:row;justify-content:space-between;align-items:flex-start;}}
.footer-brand{display:flex;align-items:center;gap:10px;}
.footer-brand svg{height:24px;width:24px;}
.footer-brand span{font-family:var(--font-heading);font-weight:var(--font-heading-weight);color:var(--color-neutral-100);font-size:15px;}
.footer-brand-col{max-width:320px;}
.footer-tagline{font-size:13px;margin-top:var(--space-4);line-height:1.6;}
.footer-cols{display:flex;gap:calc(var(--space-8)*1.5);flex-wrap:wrap;font-size:13.5px;}
.footer-col-title{display:block;font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:color-mix(in srgb, var(--color-neutral-100) 45%, transparent);margin-bottom:var(--space-3);}
.footer-cols a,.footer-static{display:block;margin-bottom:var(--space-2);}
.footer-cols a:hover{color:var(--color-accent-300);}
.footer-bottom{display:flex;flex-direction:column;gap:var(--space-2);font-size:12.5px;}
@media(min-width:760px){.footer-bottom{flex-direction:row;justify-content:space-between;}}
.footer-bottom a:hover{color:var(--color-accent-300);}

/* ---------- privacy / legal doc ---------- */
.legal h2{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:20px;margin-bottom:var(--space-3);}
.legal p,.legal li{color:color-mix(in srgb, var(--color-text) 86%, transparent);}
.legal p{margin-bottom:var(--space-6);}
.legal ul{margin:0 0 var(--space-6) var(--space-6);line-height:2;}
.legal .eff{border-left:2px solid var(--color-accent);padding-left:var(--space-4);margin-bottom:calc(var(--space-8)*1.2);font-size:13px;color:color-mix(in srgb, var(--color-text) 76%, transparent);}

/* ---------- scroll reveal ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .55s ease, transform .55s ease;}
.reveal.is-visible{opacity:1;transform:translateY(0);}

@media(prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{transition:none !important;}
  .reveal{opacity:1 !important;transform:none !important;}
}
