:root{
    --navy:#16130F;
    --navy-deep:#0B0906;
    --navy-mid:#241F18;
    --sand:#C6A15B;
    --sand-light:#DCC087;
    --cream:#F3EEE3;
    --cream-dim:#EAE2D2;
    --charcoal:#2A251E;
    --bronze:#8A6B34;
    --white:#ffffff;
    --line:rgba(22,19,15,0.14);
    --line-on-navy:rgba(243,238,227,0.18);
    box-sizing:border-box;
    padding-top:env(safe-area-inset-top,0px);
    padding-bottom:env(safe-area-inset-bottom,0px);
  }
  *,*::before,*::after{box-sizing:inherit;}
  html{scroll-behavior:smooth; scroll-padding-top:calc(84px + env(safe-area-inset-top,0px));}
  html,body{height:100%;}
  body{
    margin:0;
    background:var(--cream);
    color:var(--charcoal);
    font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  h1,h2,h3,h4,.display{
    font-family:'Bricolage Grotesque','Inter',sans-serif;
    font-weight:700;
    letter-spacing:-0.01em;
    margin:0;
    color:var(--navy);
  }
  a{color:inherit; text-decoration:none;}
  img,svg{max-width:100%; display:block;}
  button{font-family:inherit; cursor:pointer;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 28px;}
  @media (max-width:640px){ .wrap{padding:0 20px;} }

  a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
    outline:2px solid var(--bronze); outline-offset:3px;
  }

  @media (prefers-reduced-motion: reduce){
    *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
  }

  /* ---------- NAV ---------- */
  header.site-nav{
    position:sticky; top:0; z-index:500;
    background:rgba(246,241,230,0.92);
    backdrop-filter:saturate(160%) blur(10px);
    -webkit-backdrop-filter:saturate(160%) blur(10px);
    border-bottom:1px solid var(--line);
    padding-top:env(safe-area-inset-top,0px);
  }
  .nav-inner{
    max-width:1180px; margin:0 auto; padding:0 28px;
    height:78px; display:flex; align-items:center; justify-content:space-between; gap:18px;
  }
  .wordmark{
    font-family:'Bricolage Grotesque',sans-serif; font-weight:800; font-size:1.28rem;
    letter-spacing:0.01em; color:var(--navy); display:flex; align-items:baseline; gap:.35em; flex-shrink:0;
  }
  .wordmark span{color:var(--bronze); font-weight:700; font-size:0.62em;}
  .brand-mark{ height:1.5em; width:auto; display:inline-block; vertical-align:middle; margin-right:0.05em; }
  nav.primary{display:flex; align-items:center; gap:1.9rem; flex:1;}
  nav.primary a{
    font-size:0.96rem; font-weight:500; color:var(--navy); position:relative; padding:6px 0;
  }
  nav.primary a::after{
    content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--bronze);
    transform:scaleX(0); transform-origin:left; transition:transform .25s ease;
  }
  nav.primary a.active::after, nav.primary a:hover::after{ transform:scaleX(1); }
  nav.primary a.active{color:var(--navy); font-weight:600;}
  .cta-btn{
    display:inline-flex; align-items:center; justify-content:center; gap:.5em;
    background:var(--navy); color:var(--cream); font-weight:600; font-size:0.92rem;
    padding:13px 24px; border-radius:2px; border:1px solid var(--navy);
    transition:background .2s ease, color .2s ease, transform .15s ease;
    white-space:nowrap;
  }
  .cta-btn:hover{ background:var(--navy-deep); transform:translateY(-1px); }
  .cta-btn.ghost{ background:transparent; color:var(--navy); border-color:var(--navy); }
  .cta-btn.ghost:hover{ background:var(--navy); color:var(--cream); }
  .cta-btn.on-navy{ background:var(--sand); color:var(--navy-deep); border-color:var(--sand); }
  .cta-btn.on-navy:hover{ background:var(--sand-light); }
  .cta-btn.on-navy.ghost{ background:transparent; color:var(--cream); border-color:var(--line-on-navy); }
  .cta-btn.on-navy.ghost:hover{ background:rgba(246,241,230,0.1); border-color:var(--sand); }

  .nav-right{ display:flex; align-items:center; gap:14px; flex-shrink:0; }
  .lang-toggle{
    display:flex; border:1px solid var(--line); border-radius:20px; overflow:hidden; flex-shrink:0;
  }
  .lang-toggle button{
    background:transparent; border:none; padding:7px 13px; font-size:0.78rem; font-weight:700;
    color:var(--navy); letter-spacing:0.03em; transition:background .18s ease, color .18s ease;
  }
  .lang-toggle button.active{ background:var(--navy); color:var(--cream); }

  .nav-cta-desktop{ display:flex; }
  .menu-toggle{
    display:none; background:none; border:none; width:40px; height:40px; position:relative; flex-shrink:0;
  }
  .menu-toggle span{
    position:absolute; left:8px; right:8px; height:2px; background:var(--navy);
    transition:transform .25s ease, opacity .2s ease;
  }
  .menu-toggle span:nth-child(1){ top:14px; }
  .menu-toggle span:nth-child(2){ top:20px; }
  .menu-toggle span:nth-child(3){ top:26px; }
  .menu-toggle.open span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
  .menu-toggle.open span:nth-child(2){ opacity:0; }
  .menu-toggle.open span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

  .mobile-menu{
    display:none; position:fixed; inset:78px 0 0 0; background:var(--cream);
    z-index:400; padding:8px 28px 40px; overflow-y:auto;
    transform:translateY(-8px); opacity:0; pointer-events:none;
    transition:opacity .22s ease, transform .22s ease;
  }
  .mobile-menu.show{ display:block; opacity:1; transform:translateY(0); pointer-events:auto; }
  .mobile-menu a.m-link{
    display:block; font-family:'Bricolage Grotesque',sans-serif; font-weight:600;
    font-size:1.5rem; color:var(--navy); padding:16px 0; border-bottom:1px solid var(--line);
  }
  .mobile-menu .cta-btn{ margin-top:24px; width:100%; }
  .mobile-menu .lang-toggle{ margin-top:20px; width:fit-content; }

  @media (max-width:900px){
    nav.primary{ display:none; }
    .nav-cta-desktop{ display:none; }
    .menu-toggle{ display:block; }
  }
  @media (max-width:520px){
    .lang-toggle{ display:none; }
  }

  /* ---------- PAGES ---------- */
  .page{ display:none; }
  .page.active{ display:block; }

  section{ padding:96px 0; }
  section.tight{ padding:64px 0; }
  @media (max-width:760px){
    section{ padding:64px 0; }
    section.tight{ padding:44px 0; }
  }
  section.on-navy{ background:var(--navy); color:var(--cream); }
  section.on-navy h1, section.on-navy h2, section.on-navy h3, section.on-navy h4{ color:var(--cream); }
  section.on-navy .muted{ color:rgba(246,241,230,0.72); }
  section.on-cream-dim{ background:var(--cream-dim); }

  .eyebrow{ font-size:0.82rem; font-weight:600; color:var(--bronze); margin-bottom:14px; }
  p.lede{ font-size:1.12rem; line-height:1.65; color:var(--charcoal); max-width:640px; }
  section.on-navy p.lede{ color:rgba(246,241,230,0.85); }
  .muted{ color:rgba(42,41,36,0.66); }

  /* ---------- HERO ---------- */
  .hero{
    background:var(--navy);
    color:var(--cream);
    position:relative;
    overflow:hidden;
    padding:64px 0 0;
  }
  .hero-inner{
    max-width:1180px; margin:0 auto; padding:56px 28px 0;
    display:grid; grid-template-columns:1.15fr 0.85fr; gap:40px; align-items:end;
    position:relative; z-index:2;
  }
  .hero h1{
    font-size:clamp(2.6rem, 6vw, 4.6rem);
    line-height:0.98;
    letter-spacing:-0.02em;
    color:var(--cream);
  }
  .hero h1 em{ font-style:normal; color:var(--sand); }
  .hero .sub{
    margin-top:26px; font-size:1.18rem; color:rgba(246,241,230,0.86); max-width:500px;
  }
  .hero .support{
    margin-top:18px; font-size:1rem; color:rgba(246,241,230,0.62); max-width:480px;
  }
  .hero .cta-row{ margin-top:38px; display:flex; gap:14px; flex-wrap:wrap; }
  .hero-mark{ align-self:stretch; display:flex; align-items:flex-end; justify-content:center; }
  .hero-mark img{ width:100%; max-width:300px; filter:drop-shadow(0 18px 40px rgba(0,0,0,0.35)); }
  .hero-strip{
    margin-top:56px; border-top:1px solid var(--line-on-navy);
    padding:22px 0; display:flex; gap:0; overflow:hidden; position:relative;
  }
  .hero-strip .track{
    display:flex; gap:56px; white-space:nowrap; animation:scrollstrip 28s linear infinite;
  }
  .hero-strip span{
    font-family:'Bricolage Grotesque',sans-serif; font-weight:600; font-size:0.95rem;
    color:rgba(246,241,230,0.5); letter-spacing:0.02em;
  }
  @keyframes scrollstrip{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

  @media (max-width:900px){
    .hero-inner{ grid-template-columns:1fr; }
    .hero-mark{ order:-1; max-width:200px; margin:0 auto 8px; }
  }

  /* ---------- BOXING SPOTLIGHT ---------- */
  .boxing-spotlight{
    background:var(--cream); position:relative;
  }
  .boxing-content{ max-width:760px; padding-top:8px; }
  .boxing-points{ margin-top:28px; display:flex; flex-direction:column; gap:16px; }
  .boxing-points .bp{ display:flex; gap:14px; align-items:flex-start; }
  .boxing-points .bp .dot{ width:8px; height:8px; border-radius:50%; background:var(--sand); margin-top:8px; flex-shrink:0; }
  .boxing-points .bp p{ margin:0; font-size:0.98rem; color:var(--charcoal); }
  .boxing-points .bp strong{ color:var(--navy); }

  /* ---------- OFFER CARDS ---------- */
  .offer-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line);
    border:1px solid var(--line); margin-top:48px;
  }
  .offer-card{
    background:var(--cream); padding:40px 32px; display:flex; flex-direction:column; gap:16px;
    transition:background .2s ease;
  }
  .offer-card:hover{ background:var(--white); }
  .offer-card.lead{ background:var(--navy); color:var(--cream); }
  .offer-card.lead h3{ color:var(--cream); }
  .offer-card.lead p{ color:rgba(246,241,230,0.82); }
  .offer-card.lead .link-out{ color:var(--sand); border-bottom-color:var(--sand); }
  .offer-card.lead .tag-list span{ border-color:var(--line-on-navy); color:var(--cream); }
  .offer-card h3{ font-size:1.3rem; }
  .offer-card .tag-list{ display:flex; flex-wrap:wrap; gap:8px; margin:4px 0 6px; }
  .offer-card .tag-list span{
    font-size:0.78rem; color:var(--navy); border:1px solid var(--line); padding:4px 10px; border-radius:20px;
  }
  .offer-card p{ color:var(--charcoal); font-size:0.98rem; flex:1; }
  .offer-card .link-out{ font-weight:600; color:var(--navy); border-bottom:1px solid var(--sand); align-self:flex-start; padding-bottom:2px; }
  @media (max-width:900px){ .offer-grid{ grid-template-columns:1fr; } }

  /* ---------- PROCESS ---------- */
  .process{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px; margin-top:52px; }
  .process-step{ border-top:2px solid var(--navy); padding-top:20px; }
  .process-step .num{ font-family:'Bricolage Grotesque',sans-serif; font-weight:700; font-size:0.95rem; color:var(--bronze); }
  .process-step h4{ font-size:1.2rem; margin-top:10px; }
  .process-step p{ margin-top:10px; color:var(--charcoal); }
  @media (max-width:760px){ .process{ grid-template-columns:1fr; gap:32px; } }

  /* ---------- TWO COL ---------- */
  .two-col{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px; align-items:center; }
  @media (max-width:900px){ .two-col{ grid-template-columns:1fr; gap:36px; } }
  .focus-list{ display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
  .focus-list span{
    font-size:0.85rem; border:1px solid var(--line); padding:7px 14px; border-radius:20px; color:var(--navy);
  }
  section.on-navy .focus-list span{ border-color:var(--line-on-navy); color:var(--cream); }

  /* ---------- FINAL CTA ---------- */
  .final-cta{ text-align:left; }
  .final-cta h2{ font-size:clamp(2rem,4.4vw,3.1rem); max-width:820px; }
  .final-cta .cta-row{ margin-top:32px; display:flex; gap:14px; flex-wrap:wrap; }

  /* ---------- PAGE HEADER (inner pages) ---------- */
  .page-header{ background:var(--navy); color:var(--cream); padding:120px 0 56px; }
  .page-header .eyebrow{ color:var(--sand); }
  .page-header h1{ font-size:clamp(2.3rem,5vw,3.6rem); color:var(--cream); }
  .page-header p{ margin-top:16px; font-size:1.08rem; color:rgba(246,241,230,0.82); max-width:600px; }

  /* ---------- PRICING ---------- */
  .price-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:44px; }
  @media (max-width:960px){ .price-grid{ grid-template-columns:1fr; } }
  .price-card{
    background:var(--white); border:1px solid var(--line); padding:34px 28px;
    display:flex; flex-direction:column; gap:6px; position:relative;
  }
  .price-card.featured{ border-color:var(--navy); }
  .price-card.featured::before{
    content:attr(data-badge); position:absolute; top:-13px; left:28px; background:var(--navy); color:var(--cream);
    font-size:0.72rem; font-weight:600; padding:5px 12px; letter-spacing:0.02em;
  }
  .price-card h4{ font-size:1.05rem; letter-spacing:0.01em; }
  .price-card .freq{ color:var(--bronze); font-weight:600; font-size:0.9rem; margin-top:2px; }
  .price-card .amount{ font-family:'Bricolage Grotesque',sans-serif; font-size:2.2rem; font-weight:700; color:var(--navy); margin-top:14px; }
  .price-card .amount small{ font-family:'Inter',sans-serif; font-size:0.95rem; font-weight:500; color:var(--charcoal); }
  .price-card .indication{ font-size:0.86rem; color:var(--charcoal); opacity:0.7; }
  .price-card .commit{ margin-top:12px; font-size:0.9rem; color:var(--charcoal); border-top:1px solid var(--line); padding-top:12px; }

  .duo-block{
    margin-top:72px; background:var(--cream-dim); border:1px solid var(--line); padding:44px 36px;
  }
  .duo-block h3{ font-size:1.5rem; }
  .duo-block p{ margin-top:10px; max-width:560px; color:var(--charcoal); }
  .duo-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:32px; }
  @media (max-width:700px){ .duo-grid{ grid-template-columns:1fr; } }
  .duo-card{ background:var(--white); border:1px solid var(--line); padding:26px 24px; }
  .duo-card .freq{ color:var(--bronze); font-weight:600; font-size:0.9rem; }
  .duo-card .amount{ font-family:'Bricolage Grotesque',sans-serif; font-size:1.7rem; font-weight:700; color:var(--navy); margin-top:8px; }
  .duo-card .indication{ font-size:0.85rem; opacity:0.7; margin-top:4px; }

  .info-note{
    margin-top:40px; border-left:2px solid var(--sand); padding:18px 24px; background:var(--cream-dim);
    font-size:0.94rem; color:var(--charcoal); max-width:680px;
  }
  .info-note p{ margin:4px 0; }

  /* ---------- GROUP TABLE ---------- */
  .group-table-wrap{ margin-top:44px; overflow-x:auto; border:1px solid var(--line); }
  table.group-table{ border-collapse:collapse; width:100%; min-width:640px; }
  table.group-table th, table.group-table td{
    padding:18px 22px; text-align:left; border-bottom:1px solid var(--line);
  }
  table.group-table thead th{
    background:var(--navy); color:var(--cream); font-weight:600; font-size:0.9rem; letter-spacing:0.01em;
  }
  table.group-table thead th:first-child{ min-width:180px; }
  table.group-table tbody tr:nth-child(even){ background:var(--cream-dim); }
  table.group-table td.size-cell{ font-weight:600; color:var(--navy); }
  table.group-table td.price-cell{ font-family:'Bricolage Grotesque',sans-serif; font-weight:700; color:var(--navy); }
  table.group-table caption{ text-align:left; caption-side:top; padding-bottom:4px; font-size:0.9rem; color:var(--charcoal); opacity:0.75; }

  .bullet-list{ margin-top:36px; display:grid; grid-template-columns:repeat(2,1fr); gap:14px 40px; max-width:900px; }
  @media (max-width:700px){ .bullet-list{ grid-template-columns:1fr; } }
  .bullet-list li{ list-style:none; padding-left:20px; position:relative; font-size:0.96rem; color:var(--charcoal); }
  .bullet-list li::before{ content:""; position:absolute; left:0; top:9px; width:7px; height:7px; background:var(--sand); border-radius:50%; }

  /* ---------- B2B SERVICES ---------- */
  .service-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:48px; }
  @media (max-width:900px){ .service-grid{ grid-template-columns:1fr; } }
  .service-card{ background:var(--white); padding:36px 28px; }
  .service-card.lead{ background:var(--navy); }
  .service-card.lead h4, .service-card.lead p{ color:var(--cream); }
  .service-card.lead p{ opacity:0.85; }
  .service-card h4{ font-size:1.12rem; }
  .service-card p{ margin-top:10px; font-size:0.95rem; color:var(--charcoal); }

  .quote-band{
    margin-top:64px; background:var(--navy); color:var(--cream); padding:48px 44px;
    display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
  }
  .quote-band p{ max-width:520px; font-size:1.05rem; color:rgba(246,241,230,0.88); }

  /* ---------- FORMS ---------- */
  form.card-form{
    background:var(--white); border:1px solid var(--line); padding:38px 34px; margin-top:40px;
    display:grid; grid-template-columns:1fr 1fr; gap:20px 20px; max-width:760px;
  }
  form.card-form .full{ grid-column:1 / -1; }
  @media (max-width:640px){
    form.card-form{ grid-template-columns:1fr; padding:26px 22px; }
  }
  .field label{ display:block; font-size:0.86rem; font-weight:600; color:var(--navy); margin-bottom:7px; }
  .field input, .field select, .field textarea{
    width:100%; border:1px solid var(--line); background:var(--cream); padding:12px 14px;
    font-family:'Inter',sans-serif; font-size:0.96rem; color:var(--charcoal); border-radius:2px;
  }
  .field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--navy); background:var(--white); }
  .field textarea{ resize:vertical; min-height:96px; }
  .check-row{ display:flex; gap:10px; align-items:flex-start; font-size:0.88rem; color:var(--charcoal); }
  .check-row input{ margin-top:3px; width:auto; }
  form.card-form .submit-row{ margin-top:6px; display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
  .form-note{ font-size:0.86rem; color:var(--charcoal); opacity:0.7; }
  .form-success{
    display:none; background:var(--cream-dim); border:1px solid var(--sand); padding:26px 28px; margin-top:40px; max-width:760px;
  }
  .form-success.show{ display:block; }
  .form-success h4{ font-size:1.1rem; }
  .form-success p{ margin-top:8px; color:var(--charcoal); }

  /* ---------- CONTACT PAGE ---------- */
  .contact-grid{ display:grid; grid-template-columns:1.3fr 0.9fr; gap:56px; align-items:start; }
  @media (max-width:900px){ .contact-grid{ grid-template-columns:1fr; } }
  .contact-details{ border-top:2px solid var(--navy); padding-top:24px; }
  .contact-details h4{ font-size:1.1rem; }
  .contact-details .row{ margin-top:18px; }
  .contact-details .row .label{ font-size:0.82rem; color:var(--bronze); font-weight:600; }
  .contact-details .row .val{ margin-top:4px; font-size:1rem; }

  /* ---------- FOOTER ---------- */
  footer{ background:var(--navy-deep); color:rgba(246,241,230,0.75); padding:64px 0 32px; }
  .footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; }
  @media (max-width:700px){ .footer-grid{ grid-template-columns:1fr; gap:32px; } }
  footer .wordmark{ color:var(--cream); }
  footer .wordmark span{ color:var(--sand); }
  footer p.tagline{ margin-top:14px; max-width:280px; font-size:0.92rem; }
  footer h5{ color:var(--cream); font-size:0.86rem; font-weight:600; letter-spacing:0.02em; margin-bottom:14px; }
  footer ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
  footer ul a{ font-size:0.92rem; }
  footer ul a:hover{ color:var(--sand); }
  .footer-bottom{
    margin-top:52px; padding-top:24px; border-top:1px solid rgba(246,241,230,0.12);
    display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:0.82rem;
  }
  .footer-bottom a:hover{ color:var(--sand); }

  .hero h1, .hero .sub, .hero .support, .hero .cta-row{
    opacity:0; transform:translateY(14px);
    animation:heroIn .7s ease forwards;
  }
  .hero .sub{ animation-delay:.12s; }
  .hero .support{ animation-delay:.2s; }
  .hero .cta-row{ animation-delay:.3s; }
  @keyframes heroIn{ to{ opacity:1; transform:translateY(0);} }
