/* ==========================================================================
   CENTS MOULD — Design System
   Dongguan Cents Precision Manufacturing Co., Ltd.
   Precision Injection Moulds & Plastic Injection Molding | Est. 2003
   ========================================================================== */

/* ---------- 1. Tokens ---------- */
:root{
  --navy-900:#061220;
  --navy-800:#0A1B2E;
  --navy-700:#0E2540;
  --navy-600:#143054;
  --navy-500:#1B3D68;

  --orange-500:#F58220;
  --orange-400:#FF9A2E;
  --orange-600:#D96C0C;

  --blue-500:#1B6CB0;
  --blue-400:#2E8BD4;
  --blue-100:#E4F0FA;

  --steel-100:#F4F7FA;
  --steel-200:#E6EDF4;
  --steel-300:#CFDBE7;
  --steel-500:#7C8FA5;
  --ink-900:#0F1B27;
  --ink-700:#33465A;
  --ink-500:#5A6E82;

  --white:#FFFFFF;

  --radius-sm:6px;
  --radius:12px;
  --radius-lg:20px;

  --shadow-sm:0 2px 8px rgba(6,18,32,.08);
  --shadow:0 10px 30px rgba(6,18,32,.12);
  --shadow-lg:0 24px 60px rgba(6,18,32,.22);

  --container:1220px;
  --header-h:78px;

  --font-head:'Archivo','Barlow Condensed','Oswald',-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  --font-body:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
}

/* ---------- 2. Reset ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.72;
  color:var(--ink-700);
  background:var(--white);
  overflow-x:hidden;
}
img{max-width:100%;display:block;height:auto;}
a{color:var(--blue-500);text-decoration:none;transition:color .2s ease;}
a:hover{color:var(--orange-500);}
ul,ol{margin:0 0 1em;padding-left:1.15em;}
li{margin:.35em 0;}
h1,h2,h3,h4,h5{font-family:var(--font-head);color:var(--ink-900);line-height:1.14;margin:0 0 .5em;font-weight:800;letter-spacing:-.01em;}
p{margin:0 0 1.1em;}
strong{color:var(--ink-900);font-weight:700;}
hr{border:0;border-top:1px solid var(--steel-300);margin:2.5rem 0;}
:focus-visible{outline:3px solid var(--orange-500);outline-offset:3px;}

/* ---------- 3. Layout ---------- */
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 24px;}
.container--narrow{max-width:900px;}
.section{padding:92px 0;position:relative;}
.section--tight{padding:64px 0;}
.section--dark{background:var(--navy-800);color:#C6D6E6;}
.section--dark h2,.section--dark h3,.section--dark h4{color:#fff;}
.section--steel{background:var(--steel-100);}
.section--navy-grad{background:linear-gradient(150deg,var(--navy-900) 0%,var(--navy-700) 55%,var(--navy-600) 100%);color:#C6D6E6;}
.section--navy-grad h2,.section--navy-grad h3{color:#fff;}
.grid{display:grid;gap:28px;}
.grid--2{grid-template-columns:repeat(2,1fr);}
.grid--3{grid-template-columns:repeat(3,1fr);}
.grid--4{grid-template-columns:repeat(4,1fr);}
.center{text-align:center;}

/* ---------- 4. Typography — 3D / dimensional effects ---------- */
/* Multi-layer extruded type: the "stereo" effect requested for selling points */
.t3d{
  /* Base fill must be light: this class is used on dark heroes and its shadow
     stack is white-to-grey. Without an explicit colour the h1 inherited the dark
     body ink and the letters rendered as hollow outlines instead of solid type. */
  color:#EDF3F9;
  text-shadow:
    0 1px 0 rgba(255,255,255,.55),
    0 2px 0 rgba(203,215,228,.95),
    0 3px 0 rgba(186,200,215,.95),
    0 4px 0 rgba(168,184,202,.95),
    0 5px 0 rgba(150,168,189,.95),
    0 6px 1px rgba(6,18,32,.28),
    0 0 6px rgba(6,18,32,.14),
    0 2px 3px rgba(6,18,32,.28),
    0 9px 16px rgba(6,18,32,.30);
}
.t3d--orange{
  color:#FFB55E;
  text-shadow:
    0 1px 0 rgba(255,255,255,.35),
    0 2px 0 #F0801A,
    0 3px 0 #D96C0C,
    0 4px 0 #B85A08,
    0 5px 0 #964905,
    0 6px 1px rgba(0,0,0,.35),
    0 2px 3px rgba(0,0,0,.35),
    0 9px 18px rgba(0,0,0,.45);
}
.t3d--blue{
  color:#BFE0FF;
  text-shadow:
    0 1px 0 rgba(255,255,255,.30),
    0 2px 0 #2E8BD4,
    0 3px 0 #1B6CB0,
    0 4px 0 #14548C,
    0 5px 0 #0E3F6B,
    0 6px 1px rgba(0,0,0,.35),
    0 2px 3px rgba(0,0,0,.35),
    0 9px 18px rgba(0,0,0,.45);
}
.t3d--dark{
  color:#0F1B27;
  text-shadow:
    0 1px 0 #fff,
    0 2px 0 #E3EAF2,
    0 3px 0 #CDD9E6,
    0 4px 0 #B6C6D8,
    0 5px 0 #9FB3C9,
    0 6px 1px rgba(6,18,32,.18),
    0 9px 14px rgba(6,18,32,.20);
}
/* Glossy gradient fill with a subtle bevel */
.t-gloss{
  background:linear-gradient(180deg,#FFFFFF 0%,#D8E6F5 42%,#8FB4D8 58%,#FFFFFF 100%);
  -webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;
  filter:drop-shadow(0 3px 2px rgba(6,18,32,.45)) drop-shadow(0 10px 16px rgba(6,18,32,.35));
}
.t-gloss--orange{
  background:linear-gradient(180deg,#FFF3E0 0%,#FFC177 40%,#F58220 62%,#FFD9A8 100%);
  -webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;
  filter:drop-shadow(0 3px 2px rgba(6,18,32,.5)) drop-shadow(0 10px 16px rgba(6,18,32,.4));
}
/* Outline-only type for layered headlines */
.t-outline{
  color:transparent;
  -webkit-text-stroke:2px rgba(245,130,32,.85);
  text-shadow:none;
}
.t-outline--light{-webkit-text-stroke:2px rgba(255,255,255,.45);}

/* Display scale — deliberately varied sizes so selling points read at a glance */
.t-display{font-size:clamp(3rem,8.5vw,6.2rem);line-height:.98;letter-spacing:-.035em;text-transform:uppercase;}
.t-xl{font-size:clamp(2.3rem,5.2vw,3.9rem);line-height:1.03;letter-spacing:-.025em;text-transform:uppercase;}
.t-lg{font-size:clamp(1.85rem,3.6vw,2.7rem);line-height:1.1;letter-spacing:-.02em;}
.t-md{font-size:clamp(1.35rem,2.4vw,1.85rem);line-height:1.2;}
.t-num{font-size:clamp(3.4rem,9vw,6.6rem);line-height:.9;letter-spacing:-.045em;}

.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-head);font-weight:800;font-size:.82rem;
  letter-spacing:.19em;text-transform:uppercase;
  color:var(--orange-500);margin-bottom:14px;
}
.eyebrow::before{content:"";width:34px;height:3px;background:var(--orange-500);border-radius:2px;}
.section--dark .eyebrow,.section--navy-grad .eyebrow{color:var(--orange-400);}
.lead{font-size:1.14rem;line-height:1.78;color:var(--ink-500);}
.section--dark .lead,.section--navy-grad .lead{color:#A9BED3;}
.section__head{max-width:820px;margin-bottom:52px;}
.section__head--center{margin-left:auto;margin-right:auto;text-align:center;}
.section__head--center .eyebrow{justify-content:center;}

/* Highlighted inline keyword chips inside body copy (SEO/GEO signals) */
.kw{color:var(--ink-900);font-weight:700;border-bottom:2px solid rgba(245,130,32,.4);}
.section--dark .kw,.section--navy-grad .kw{color:#fff;border-bottom-color:rgba(245,130,32,.55);}
.section--dark a,.section--navy-grad a{color:var(--orange-400);}
.section--dark a:hover,.section--navy-grad a:hover{color:#FFD9A8;}
/* Inline <strong> must not inherit the dark body colour on dark backgrounds */
.hero strong,
.section--dark strong,
.section--navy-grad strong,
.cta strong,
.card--dark strong,
.footer strong,
.hero em,
.section--dark em,
.section--navy-grad em,
.cta em{color:#FFFFFF;}
.hero a strong,
.section--dark a strong,
.section--navy-grad a strong{color:inherit;}

.tag{
  display:inline-block;padding:5px 13px;border-radius:999px;
  font-size:.76rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
  background:var(--blue-100);color:var(--blue-500);
}
.tag--orange{background:#FDECD9;color:var(--orange-600);}
.tag--dark{background:rgba(255,255,255,.1);color:#CFE1F2;}

/* ---------- 5. Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:15px 30px;border-radius:var(--radius-sm);border:0;cursor:pointer;
  font-family:var(--font-head);font-weight:800;font-size:.95rem;
  letter-spacing:.05em;text-transform:uppercase;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease;
}
.btn--primary{background:linear-gradient(180deg,var(--orange-400),var(--orange-600));color:#fff;box-shadow:0 6px 18px rgba(217,108,12,.38);}
.btn--primary:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(217,108,12,.5);color:#fff;}
.btn--ghost{background:transparent;color:#fff;box-shadow:inset 0 0 0 2px rgba(255,255,255,.55);}
.btn--ghost:hover{background:#fff;color:var(--navy-800);transform:translateY(-2px);}
.btn--dark{background:var(--navy-700);color:#fff;}
.btn--dark:hover{background:var(--navy-500);color:#fff;transform:translateY(-2px);}
.btn--outline{background:transparent;color:var(--navy-700);box-shadow:inset 0 0 0 2px var(--steel-300);}
.btn--outline:hover{box-shadow:inset 0 0 0 2px var(--orange-500);color:var(--orange-600);}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px;}

/* ---------- 6. Header ---------- */
.topbar{
  background:var(--navy-900);color:#8FA9C2;font-size:.8rem;
  letter-spacing:.04em;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.07);
}
.topbar__inner{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;align-items:center;}
.topbar a{color:#C3D6E8;}
.topbar a:hover{color:var(--orange-400);}

.header{
  position:sticky;top:0;z-index:900;
  background:rgba(10,27,46,.97);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(255,255,255,.08);
  transition:box-shadow .25s ease;
}
.header.is-scrolled{box-shadow:0 8px 30px rgba(0,0,0,.35);}
.header__inner{display:flex;align-items:center;justify-content:space-between;gap:22px;height:var(--header-h);}

.logo{display:flex;align-items:center;gap:12px;flex-shrink:0;}
.logo__mark{
  width:44px;height:44px;border-radius:50%;flex-shrink:0;
  background:conic-gradient(from 210deg,var(--orange-500) 0deg,var(--orange-400) 200deg,var(--orange-600) 340deg,var(--orange-500) 360deg);
  display:grid;place-items:center;position:relative;
  box-shadow:0 4px 14px rgba(245,130,32,.4);
}
.logo__mark::after{content:"";width:26px;height:26px;border-radius:50%;background:var(--navy-800);}
.logo__text{line-height:1.05;}
.logo__name{font-family:var(--font-head);font-weight:900;font-size:1.5rem;letter-spacing:-.02em;color:#fff;display:block;}
.logo__name em{font-style:normal;color:var(--orange-500);}
.logo__sub{font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:#7E9AB5;font-weight:600;}

.nav{display:flex;align-items:center;gap:4px;}
.nav a{
  color:#C3D6E8;font-family:var(--font-head);font-weight:700;font-size:.85rem;
  letter-spacing:.045em;text-transform:uppercase;padding:9px 13px;border-radius:var(--radius-sm);
}
.nav a:hover{color:#fff;background:rgba(255,255,255,.08);}
.nav a.is-active{color:var(--orange-400);background:rgba(245,130,32,.13);}
.header__cta{flex-shrink:0;}
.header__cta .btn{padding:11px 22px;font-size:.82rem;}

.burger{display:none;background:none;border:0;cursor:pointer;padding:10px;width:46px;height:46px;}
.burger span{display:block;height:2px;background:#fff;margin:5px 0;border-radius:2px;transition:.3s;}
.burger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.burger.is-open span:nth-child(2){opacity:0;}
.burger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ---------- 7. Hero ---------- */
.hero{position:relative;background:var(--navy-900);overflow:hidden;}
.hero__media{position:absolute;inset:0;}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:center;}
.hero__media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(6,18,32,.96) 0%,rgba(6,18,32,.9) 42%,rgba(10,27,46,.62) 68%,rgba(10,27,46,.32) 100%);
}
.hero__inner{position:relative;z-index:2;padding:118px 0 108px;max-width:790px;}
.hero h1{margin-bottom:22px;}
.hero__sub{font-size:1.2rem;line-height:1.75;color:#B9CDE0;max-width:610px;}
.hero__meta{display:flex;flex-wrap:wrap;gap:26px;margin-top:38px;padding-top:30px;border-top:1px solid rgba(255,255,255,.14);}
.hero__meta div{min-width:118px;}
.hero__meta b{display:block;font-family:var(--font-head);font-size:1.7rem;color:var(--orange-400);line-height:1.1;}
.hero__meta span{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:#8FA9C2;}

.hero--page .hero__inner{padding:82px 0 72px;max-width:900px;}
.breadcrumb{font-size:.82rem;color:#8FA9C2;margin-bottom:16px;letter-spacing:.04em;}
.breadcrumb a{color:#A9BED3;}
.breadcrumb span{color:var(--orange-400);}

/* ---------- 8. Trust / stat bar ---------- */
.statbar{background:var(--navy-700);border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);}
.statbar__grid{display:grid;grid-template-columns:repeat(5,1fr);}
.statbar__item{padding:30px 20px;text-align:center;border-right:1px solid rgba(255,255,255,.09);}
.statbar__item:last-child{border-right:0;}
.statbar__item b{display:block;font-family:var(--font-head);font-weight:900;font-size:2.1rem;line-height:1.05;}
.statbar__item span{display:block;margin-top:6px;font-size:.76rem;letter-spacing:.11em;text-transform:uppercase;color:#93AEC7;}

/* ---------- 9. Selling-point blocks (image + 3D headline) ---------- */
.sp{display:grid;grid-template-columns:1fr 1fr;gap:0;border-radius:var(--radius-lg);overflow:hidden;background:#fff;box-shadow:var(--shadow);margin-bottom:38px;}
.sp:last-child{margin-bottom:0;}
.sp--flip .sp__media{order:2;}
.sp__media{position:relative;min-height:390px;overflow:hidden;background:var(--navy-800);}
.sp__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.3,1);}
.sp:hover .sp__media img{transform:scale(1.05);}
.sp__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,18,32,.16),rgba(6,18,32,.5));}
.sp__badge{
  position:absolute;z-index:2;top:22px;left:22px;
  width:66px;height:66px;border-radius:50%;
  display:grid;place-items:center;
  font-family:var(--font-head);font-weight:900;font-size:1.5rem;color:#fff;
  background:linear-gradient(160deg,var(--orange-400),var(--orange-600));
  box-shadow:0 8px 22px rgba(0,0,0,.42),inset 0 -3px 0 rgba(0,0,0,.2),inset 0 3px 0 rgba(255,255,255,.3);
}
.sp__caption{
  position:absolute;z-index:2;left:22px;right:22px;bottom:20px;
  font-family:var(--font-head);font-weight:800;font-size:.83rem;
  letter-spacing:.14em;text-transform:uppercase;color:#fff;
  text-shadow:0 2px 6px rgba(0,0,0,.75);
}
.sp__body{padding:46px 44px;display:flex;flex-direction:column;justify-content:center;}
.sp__body h3{margin-bottom:16px;}
.sp__body p{color:var(--ink-500);margin-bottom:0;}
.sp__body .kw{color:var(--ink-900);}
.sp__list{list-style:none;padding:0;margin:20px 0 0;}
.sp__list li{position:relative;padding-left:28px;color:var(--ink-700);font-size:.97rem;}
.sp__list li::before{
  content:"";position:absolute;left:0;top:.62em;width:14px;height:6px;
  border-left:2.5px solid var(--orange-500);border-bottom:2.5px solid var(--orange-500);
  transform:rotate(-45deg);
}
.sp__kpi{
  display:inline-flex;align-items:baseline;gap:8px;margin-bottom:12px;
  font-family:var(--font-head);font-weight:900;font-size:2.5rem;line-height:1;
}
.sp__kpi small{font-size:.86rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--steel-500);}

/* ---------- 10. Cards ---------- */
.card{
  background:#fff;border-radius:var(--radius);padding:34px 30px;
  box-shadow:var(--shadow-sm);border:1px solid var(--steel-200);
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
  position:relative;overflow:hidden;
}
.card::before{content:"";position:absolute;left:0;top:0;height:4px;width:0;background:var(--orange-500);transition:width .35s ease;}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:var(--steel-300);}
.card:hover::before{width:100%;}
.card h3{margin-bottom:12px;font-size:1.22rem;}
.card p:last-child{margin-bottom:0;}
.card__icon{
  width:56px;height:56px;border-radius:var(--radius-sm);display:grid;place-items:center;
  margin-bottom:20px;background:linear-gradient(160deg,var(--navy-700),var(--navy-500));
  box-shadow:inset 0 -3px 0 rgba(0,0,0,.25),inset 0 3px 0 rgba(255,255,255,.14);
}
.card__icon svg{width:28px;height:28px;stroke:var(--orange-400);fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;}
.card__num{
  position:absolute;right:20px;top:14px;
  font-family:var(--font-head);font-weight:900;font-size:3.4rem;line-height:1;
  color:var(--steel-200);
}
.card--dark{background:var(--navy-700);border-color:rgba(255,255,255,.1);color:#B9CDE0;}
.card--dark h3{color:#fff;}
.card--dark .card__num{color:rgba(255,255,255,.09);}
.card--dark .card__icon{background:linear-gradient(160deg,rgba(255,255,255,.14),rgba(255,255,255,.05));}

/* ---------- 11. Image + text split ---------- */
.split{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center;}
.split--reverse .split__media{order:2;}
.split__media{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);position:relative;}
.split__media img{width:100%;}
.split__media--frame{border:6px solid #fff;}

/* ---------- 12. Process timeline ---------- */
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:0;counter-reset:flow;}
.flow__step{position:relative;padding:0 22px 0 0;}
.flow__step::after{
  content:"";position:absolute;left:52px;right:-6px;top:25px;height:2px;
  background:repeating-linear-gradient(90deg,var(--steel-300) 0 8px,transparent 8px 16px);
}
.flow__step:last-child::after{display:none;}
.flow__n{
  width:52px;height:52px;border-radius:50%;display:grid;place-items:center;
  font-family:var(--font-head);font-weight:900;font-size:1.15rem;color:#fff;
  background:linear-gradient(160deg,var(--orange-400),var(--orange-600));
  box-shadow:0 6px 16px rgba(217,108,12,.35),inset 0 -3px 0 rgba(0,0,0,.2);
  position:relative;z-index:2;margin-bottom:18px;
}
.flow__step h4{font-size:1.05rem;margin-bottom:8px;}
.flow__step p{font-size:.92rem;color:var(--ink-500);margin:0;}
.section--dark .flow__step p,.section--navy-grad .flow__step p{color:#94AEC8;}
.section--dark .flow__n,.section--navy-grad .flow__n{box-shadow:0 6px 16px rgba(0,0,0,.4),inset 0 -3px 0 rgba(0,0,0,.2);}

/* ---------- 13. Tables ---------- */
.table-wrap{overflow-x:auto;border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--steel-200);background:#fff;}
table.data{width:100%;border-collapse:collapse;font-size:.9rem;min-width:720px;}
table.data thead th{
  background:var(--navy-700);color:#fff;font-family:var(--font-head);font-weight:800;
  font-size:.78rem;letter-spacing:.09em;text-transform:uppercase;
  padding:14px 16px;text-align:left;white-space:nowrap;
}
table.data td{padding:13px 16px;border-bottom:1px solid var(--steel-200);color:var(--ink-700);vertical-align:top;}
table.data tbody tr:nth-child(even){background:var(--steel-100);}
table.data tbody tr:hover{background:#FDF3E8;}
table.data td b{color:var(--ink-900);}
table.data td.hl{color:var(--orange-600);font-weight:700;}

/* ---------- 14. Accordion (FAQ) ---------- */
.faq{border-top:1px solid var(--steel-300);}
.faq__item{border-bottom:1px solid var(--steel-300);}
.faq__q{
  width:100%;background:none;border:0;cursor:pointer;text-align:left;
  padding:24px 52px 24px 0;position:relative;
  font-family:var(--font-head);font-weight:800;font-size:1.1rem;color:var(--ink-900);
  line-height:1.4;transition:color .2s ease;
}
.faq__q:hover{color:var(--orange-600);}
.faq__q::after{
  content:"";position:absolute;right:8px;top:50%;width:14px;height:14px;
  border-right:2.5px solid var(--orange-500);border-bottom:2.5px solid var(--orange-500);
  transform:translateY(-70%) rotate(45deg);transition:transform .3s ease;
}
.faq__item.is-open .faq__q::after{transform:translateY(-25%) rotate(225deg);}
.faq__a{max-height:0;overflow:hidden;transition:max-height .38s ease;}
.faq__a-inner{padding:0 60px 26px 0;color:var(--ink-500);}
.faq__a-inner p:last-child{margin-bottom:0;}
.section--dark .faq,.section--dark .faq__item{border-color:rgba(255,255,255,.14);}
.section--dark .faq__q{color:#fff;}

/* ---------- 15. Forms ---------- */
.form{display:grid;gap:18px;}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.field{display:flex;flex-direction:column;gap:7px;}
.field label{font-family:var(--font-head);font-weight:700;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-700);}
.field input,.field select,.field textarea{
  font-family:var(--font-body);font-size:1rem;color:var(--ink-900);
  padding:13px 15px;border:1px solid var(--steel-300);border-radius:var(--radius-sm);
  background:#fff;transition:border-color .2s ease,box-shadow .2s ease;width:100%;
}
.field textarea{resize:vertical;min-height:130px;}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--orange-500);box-shadow:0 0 0 3px rgba(245,130,32,.16);
}
.form__note{font-size:.84rem;color:var(--steel-500);}

/* ---------- 16. CTA band ---------- */
.cta{
  position:relative;background:var(--navy-800);color:#fff;overflow:hidden;
  border-radius:var(--radius-lg);
}
.cta__inner{padding:64px 56px;position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap;}
.cta::before{
  content:"";position:absolute;right:-90px;top:-90px;width:380px;height:380px;border-radius:50%;
  background:radial-gradient(circle,rgba(245,130,32,.34),transparent 68%);
}
.cta::after{
  content:"";position:absolute;left:-60px;bottom:-120px;width:300px;height:300px;border-radius:50%;
  background:radial-gradient(circle,rgba(27,108,176,.35),transparent 70%);
}
.cta h2{margin-bottom:10px;}
.cta p{color:#A9BED3;margin:0;max-width:560px;}

/* ---------- 17. Footer ---------- */
.footer{background:var(--navy-900);color:#8FA9C2;font-size:.92rem;padding:66px 0 0;}
.footer h4{color:#fff;font-size:1rem;letter-spacing:.05em;text-transform:uppercase;margin-bottom:18px;}
.footer a{color:#A9BED3;}
.footer a:hover{color:var(--orange-400);}
.footer ul{list-style:none;padding:0;margin:0;}
.footer li{margin:.5em 0;}
.footer__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr;gap:42px;padding-bottom:48px;}
.footer__brand p{color:#8FA9C2;line-height:1.7;}
.footer__kw{margin-top:22px;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);}
.footer__kw span{
  display:inline-block;font-size:.72rem;color:#7E9AB5;margin:3px 8px 3px 0;
  padding:3px 9px;border:1px solid rgba(255,255,255,.12);border-radius:4px;
}
.footer__bottom{
  border-top:1px solid rgba(255,255,255,.1);padding:22px 0;
  display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:.83rem;color:#6C89A4;
}

/* ---------- 18. Animations ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.3,1);}
.reveal.is-in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;}
  html{scroll-behavior:auto;}
  *{animation-duration:.001ms !important;transition-duration:.001ms !important;}
}

/* ---------- 19. Utilities ---------- */
.mt-0{margin-top:0;}
.mb-0{margin-bottom:0;}
.mt-2{margin-top:1.4rem;}
.mt-3{margin-top:2.2rem;}
.mt-4{margin-top:3rem;}
.mb-3{margin-bottom:2.2rem;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.ratio-4x3{aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius);box-shadow:var(--shadow);}
.ratio-4x3 img{width:100%;height:100%;object-fit:cover;}
.ratio-16x9{aspect-ratio:16/9;overflow:hidden;border-radius:var(--radius);box-shadow:var(--shadow);}
.ratio-16x9 img{width:100%;height:100%;object-fit:cover;}

/* ---------- 20. Responsive ---------- */
@media (max-width:1080px){
  .nav{display:none;position:absolute;top:var(--header-h);left:0;right:0;
    background:var(--navy-800);flex-direction:column;align-items:stretch;
    padding:14px;gap:2px;border-bottom:1px solid rgba(255,255,255,.1);
    box-shadow:0 18px 40px rgba(0,0,0,.45);}
  .nav.is-open{display:flex;}
  .nav a{padding:14px 16px;font-size:.95rem;}
  .burger{display:block;}
  .header__cta{display:none;}
  .statbar__grid{grid-template-columns:repeat(2,1fr);}
  .statbar__item:nth-child(2n){border-right:0;}
  .statbar__item{border-bottom:1px solid rgba(255,255,255,.09);}
  .grid--4{grid-template-columns:repeat(2,1fr);}
  .flow{grid-template-columns:repeat(2,1fr);gap:34px 0;}
  .flow__step::after{display:none;}
  .footer__grid{grid-template-columns:1fr 1fr;gap:34px;}
}
@media (max-width:820px){
  body{font-size:16px;}
  .section{padding:64px 0;}
  .sp{grid-template-columns:1fr;}
  .sp--flip .sp__media{order:0;}
  .sp__media{min-height:270px;}
  .sp__body{padding:34px 26px;}
  .split{grid-template-columns:1fr;gap:32px;}
  .split--reverse .split__media{order:0;}
  .grid--2,.grid--3,.grid--4{grid-template-columns:1fr;}
  .form__row{grid-template-columns:1fr;}
  .cta__inner{padding:44px 26px;}
  .hero__inner{padding:78px 0 68px;}
  .hero__meta{gap:18px;}
  .hero__meta div{min-width:96px;}
  .footer__grid{grid-template-columns:1fr;}
}
@media (max-width:520px){
  .container{padding:0 18px;}
  .statbar__grid{grid-template-columns:1fr;}
  .statbar__item{border-right:0;}
  .flow{grid-template-columns:1fr;}
}
