/* ============================================================
   ArtAmber — Hangzhou ArtAmber Culture Creative Co., Ltd.

   Palette: Factory Blue (approved in colour review).
   Craft:   Carbon-informed industrial system — square geometry,
            hairline hierarchy, light-weight display type, no
            drop shadows, no decorative gradients.
   ============================================================ */
:root{
  /* --- brand (approved) --- */
  --primary:#1B4F9C;
  --primary-hover:#174688;
  --primary-dark:#143C77;
  --primary-press:#0F2C58;
  --ink-deep:#121A26;

  --cta:#F09000;
  --cta-hover:#D97D00;
  --cta-ink:#1E2836;

  /* logo accents — used functionally, never as decoration */
  --acc-red:#D8000C;
  --acc-cyan:#0089B8;
  --acc-green:#5A9B1E;
  --acc-orange:#F09000;

  /* --- surfaces: canvas, one grey, one charcoal --- */
  --canvas:#FFFFFF;
  --surface-1:#F4F5F7;
  --surface-2:#E6E9ED;
  --inverse:#121A26;
  --inverse-2:#1D2836;

  /* --- ink --- */
  --ink:#15202E;
  --ink-muted:#525E70;
  --ink-subtle:#7B8698;
  --inverse-ink:#FFFFFF;
  --inverse-ink-muted:#AFBCCC;

  /* --- lines: the whole hierarchy system --- */
  --line:#DCE1E8;
  --line-strong:#15202E;

  --wrap:1240px;
  --r:0px;          /* square geometry */
  --r-sm:2px;
  --font:"IBM Plex Sans","Helvetica Neue",-apple-system,BlinkMacSystemFont,Arial,"PingFang SC",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);font-size:16px;font-weight:400;line-height:1.5;
  letter-spacing:.16px;color:var(--ink-muted);background:var(--canvas);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block;height:auto}
picture{display:block}
a{color:var(--primary);text-decoration:none}
a:hover{color:var(--primary-dark);text-decoration:underline;text-underline-offset:3px}
:focus-visible{outline:2px solid var(--primary);outline-offset:2px}

/* --- type scale: light display, regular body (Carbon signature) --- */
h1,h2,h3,h4{color:var(--ink);margin:0 0 .45em;letter-spacing:-.4px}
h1{font-size:clamp(2.15rem,5vw,4.15rem);font-weight:300;line-height:1.1}
h2{font-size:clamp(1.75rem,3.3vw,2.75rem);font-weight:300;line-height:1.16;letter-spacing:-.3px}
h3{font-size:1.28rem;font-weight:500;line-height:1.3;letter-spacing:-.1px}
h4{font-size:1rem;font-weight:600;letter-spacing:0}
p{margin:0 0 1.1em}
ul,ol{margin:0 0 1.1em;padding-left:1.2em}
strong{font-weight:600;color:var(--ink)}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 32px}
.narrow{max-width:790px}
.center{text-align:center}

/* ============================ buttons ============================ */
.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:34px;
  min-height:48px;padding:12px 16px;border:1px solid transparent;border-radius:var(--r);
  font:inherit;font-size:.94rem;font-weight:500;letter-spacing:.16px;
  cursor:pointer;transition:background-color .12s linear,border-color .12s linear,color .12s linear}
.btn::after{content:"\2192";font-size:1.05em;line-height:1;opacity:.9}
.btn-primary{background:var(--cta);color:var(--cta-ink);border-color:var(--cta)}
.btn-primary:hover{background:var(--cta-hover);border-color:var(--cta-hover);color:var(--cta-ink);text-decoration:none}
.btn-outline{background:transparent;color:var(--primary);border-color:var(--primary)}
.btn-outline:hover{background:var(--primary);color:#fff;text-decoration:none}
.btn-solid{background:var(--primary);color:#fff;border-color:var(--primary)}
.btn-solid:hover{background:var(--primary-dark);color:#fff;text-decoration:none}
.btn-ghost-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}
.btn-ghost-light:hover{background:#fff;color:var(--ink-deep);border-color:#fff;text-decoration:none}
.btn-sm{min-height:38px;padding:8px 13px;font-size:.85rem;gap:16px}
.btn-lg{min-height:54px;padding:15px 20px;font-size:1rem;gap:44px}
.btn-plain::after{content:none}

/* ============================ header ============================ */
.skip{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip:focus{position:fixed;left:0;top:0;width:auto;height:auto;clip-path:none;z-index:200;
  padding:12px 20px;background:var(--primary);color:#fff;font-weight:600}

.site-header{position:sticky;top:0;z-index:60;background:var(--canvas);border-bottom:1px solid var(--line)}
.topbar{background:var(--inverse);color:var(--inverse-ink-muted);font-size:.78rem;letter-spacing:.2px}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;gap:18px;
  min-height:34px;flex-wrap:wrap;padding-top:5px;padding-bottom:5px}
.topbar a{color:#DCE5EF}
.topbar a:hover{color:#fff}
.topbar-info{display:flex;gap:22px;flex-wrap:wrap}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px}
.brand{display:flex;align-items:center;gap:13px;flex-shrink:0}
.brand:hover{text-decoration:none}
.brand img{height:30px;width:auto}
.brand-txt{display:flex;flex-direction:column;line-height:1.2;border-left:1px solid var(--line);padding-left:13px}
.brand-txt b{color:var(--ink);font-size:.86rem;font-weight:600;white-space:nowrap;letter-spacing:0}
.brand-txt span{color:var(--ink-subtle);font-size:.66rem;white-space:nowrap;letter-spacing:.3px}
.nav-links{display:flex;align-items:center;gap:0;list-style:none;margin:0;padding:0}
.nav-links a{display:block;padding:20px 12px;color:var(--ink-muted);font-size:.88rem;
  font-weight:400;letter-spacing:.16px;border-bottom:2px solid transparent;transition:.12s linear}
.nav-links a:hover{color:var(--ink);background:var(--surface-1);text-decoration:none}
.nav-links a.active{color:var(--ink);font-weight:600;border-bottom-color:var(--primary)}
.nav-right{display:flex;align-items:center;gap:10px}
.nav-toggle{display:none;background:none;border:1px solid var(--line);padding:9px;cursor:pointer;border-radius:var(--r)}
.nav-toggle span{display:block;width:18px;height:1.5px;background:var(--ink);margin:4px 0}

.lang{position:relative}
.lang-btn{display:flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--line);
  border-radius:var(--r);padding:8px 11px;font:inherit;font-size:.82rem;font-weight:500;color:var(--ink);cursor:pointer}
.lang-btn:hover{border-color:var(--primary);color:var(--primary)}
.lang-menu{position:absolute;right:0;top:calc(100% + 4px);background:#fff;border:1px solid var(--line);
  min-width:158px;padding:0;display:none;z-index:70;list-style:none;margin:0}
.lang-menu.open{display:block}
.lang-menu li{margin:0;border-bottom:1px solid var(--line)}
.lang-menu li:last-child{border-bottom:0}
.lang-menu a{display:block;padding:11px 14px;font-size:.86rem;color:var(--ink)}
.lang-menu a:hover{background:var(--surface-1);text-decoration:none}
.lang-menu a[aria-current="true"]{color:var(--primary);font-weight:600}
.nav-cta-mobile{display:none}

/* ============================ rhythm ============================ */
section{padding:88px 0}
.sec-alt{background:var(--surface-1)}
.sec-dark{background:var(--inverse);color:var(--inverse-ink-muted)}
.sec-tight-top{padding-top:56px;padding-bottom:0}
.sec-head{max-width:720px;margin-bottom:52px}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.sec-head h2{margin-bottom:16px}
.sec-head p{font-size:1.12rem;line-height:1.5;color:var(--ink-muted);margin-bottom:0}
.eyebrow{display:block;font-size:.875rem;font-weight:400;letter-spacing:.16px;
  color:var(--primary);margin-bottom:14px;padding-left:14px;border-left:2px solid var(--primary)}
.sec-head.center .eyebrow,.center>.eyebrow{display:inline-block;border-left:0;padding-left:0;
  border-bottom:1px solid var(--primary);padding-bottom:4px;margin-bottom:18px}
.brand-rule{display:none}
.mid{margin-top:48px}
.mt{margin-top:10px}
.mt-l{margin-top:44px}
.lead-muted{font-size:1.1rem;color:var(--ink-muted)}
.fineprint{font-size:.83rem;color:var(--ink-subtle);margin-top:18px}

/* ============================ hero ============================ */
.hero{background:var(--canvas);border-bottom:1px solid var(--line);padding:0;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;align-items:stretch;min-height:min(78vh,660px)}
.hero-copy{padding:74px 56px 74px 0;display:flex;flex-direction:column;justify-content:center}
.hero h1{margin-bottom:24px;max-width:12.5em}
.hero-lead{font-size:1.16rem;line-height:1.55;color:var(--ink-muted);max-width:33em;margin-bottom:34px}
.hero-cta{display:flex;gap:0;flex-wrap:wrap;margin-bottom:0}
.hero-cta .btn{min-width:236px}
.hero-media{position:relative;margin-right:calc(50% - 50vw)}
.hero-media picture{width:100%}
.hero-media img{width:100%;height:auto}
.hero-badges{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.badge{background:var(--canvas);padding:18px 20px;display:flex;align-items:center;gap:11px;
  font-size:.85rem;font-weight:400;color:var(--ink);letter-spacing:.16px}
.badge i{width:3px;height:20px;flex-shrink:0;display:block}
.hero-chip{display:flex;background:var(--inverse);position:absolute;left:0;bottom:0}
.hero-chip div{padding:20px 26px;border-right:1px solid rgba(255,255,255,.16)}
.hero-chip div:last-child{border-right:0}
.hero-chip b{display:block;font-size:1.6rem;font-weight:300;color:#fff;line-height:1.05;letter-spacing:-.6px}
.hero-chip span{font-size:.72rem;color:var(--inverse-ink-muted);letter-spacing:.3px}

/* ============ quick answer (GEO: first-screen direct answer) ============ */
.quick-answer{background:var(--surface-1);border-left:3px solid var(--primary);padding:28px 32px;margin:0 0 52px}
.quick-answer p{margin:0;font-size:1.02rem;line-height:1.58;color:var(--ink-muted)}
.quick-answer strong{color:var(--ink);font-weight:600}

/* ============================ stats ============================ */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line)}
.stat{background:var(--canvas);padding:34px 26px}
.stat b{display:block;font-size:2.5rem;font-weight:300;color:var(--ink);line-height:1;letter-spacing:-1px}
.stat span{font-size:.85rem;color:var(--ink-muted);display:block;margin-top:10px}

/* ============================ cards ============================ */
.grid{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}

.card{background:var(--canvas);display:flex;flex-direction:column;transition:background-color .12s linear}
.card:hover{background:var(--surface-1);text-decoration:none}
.card-media{aspect-ratio:1/1;background:var(--surface-1);overflow:hidden}
.card-media.wide{aspect-ratio:16/10}
.card-media.art{aspect-ratio:16/9}
.card-media picture{width:100%;height:100%}
.card-media img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.card:hover .card-media img{transform:scale(1.035)}
.card-body{padding:22px 22px 26px;display:flex;flex-direction:column;flex:1}
.card-kicker{font-size:.74rem;color:var(--ink-subtle);margin-bottom:9px;letter-spacing:.3px}
.card h3{font-size:1.04rem;font-weight:500;margin-bottom:9px;color:var(--ink)}
.card h3.lg{font-size:1.5rem;font-weight:400}
.card p{font-size:.9rem;color:var(--ink-muted);flex:1;margin-bottom:16px;line-height:1.5}
.card-link{font-size:.86rem;font-weight:500;color:var(--primary)}
.card:hover .card-link{text-decoration:underline;text-underline-offset:3px}

.fcard{background:var(--canvas);padding:30px 26px 34px;display:flex;flex-direction:column}
.fcard .ic{color:var(--primary);margin-bottom:22px;line-height:0}
.fcard h3{font-size:1.08rem;font-weight:500;margin-bottom:10px}
.fcard p{font-size:.91rem;color:var(--ink-muted);margin:0;line-height:1.5}
.fcard.tall{min-height:100%}

.fac{background:var(--canvas);display:flex;flex-direction:column}
.fac picture{aspect-ratio:4/3}
.fac img{width:100%;height:100%;object-fit:cover}
.fac .fb{padding:20px 22px 26px;border-top:1px solid var(--line)}
.fac h3{font-size:1rem;font-weight:500;margin-bottom:7px}
.fac p{font-size:.87rem;color:var(--ink-muted);margin:0}

/* ============================ split ============================ */
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.split>div{display:flex;flex-direction:column;justify-content:center}
.split-media img{width:100%;height:auto;display:block}
.check{list-style:none;padding:0;margin:0}
.check li{position:relative;padding-left:30px;margin-bottom:14px;font-size:.97rem;line-height:1.5}
.check li::before{content:"";position:absolute;left:0;top:.42em;width:8px;height:8px;background:var(--primary)}
.check.big li{padding-left:34px;margin-bottom:18px;font-size:1.02rem}
.check.big li::before{width:10px;height:10px;top:.45em}
ol.numbered{counter-reset:n;list-style:none;padding:0;margin:0 0 1.1em}
ol.numbered li{counter-increment:n;position:relative;padding-left:44px;margin-bottom:16px;font-size:1.02rem}
ol.numbered li::before{content:counter(n,decimal-leading-zero);position:absolute;left:0;top:.05em;
  font-family:var(--mono);font-size:.85rem;color:var(--primary);font-weight:500}

/* ============================ timeline ============================ */
.timeline{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line)}
.tl{background:var(--canvas);padding:30px 24px 34px;border-top:3px solid var(--primary)}
.tl .dot{font-family:var(--mono);font-size:1.55rem;font-weight:300;color:var(--primary);
  display:block;margin-bottom:16px;letter-spacing:-.5px}
.tl h3{font-size:1rem;font-weight:500;margin-bottom:8px}
.tl p{font-size:.87rem;color:var(--ink-muted);margin:0}

/* ============================ CTA band ============================ */
.cta-band{background:var(--inverse);color:var(--inverse-ink-muted);padding:78px 0}
.cta-band h2{color:#fff;margin-bottom:16px}
.cta-band p{color:var(--inverse-ink-muted);font-size:1.08rem;max-width:36em;margin-bottom:0}
.cta-inner{display:flex;justify-content:space-between;align-items:flex-end;gap:44px;flex-wrap:wrap}
.cta-inner>div:first-child{flex:1 1 480px}
.cta-btns{display:flex;gap:0;flex-wrap:wrap;flex-shrink:0}
.cta-btns .btn{min-width:230px}

/* ============================ footer ============================ */
.site-footer{background:var(--inverse);color:var(--inverse-ink-muted);padding:66px 0 0;font-size:.9rem}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.35fr;gap:44px;padding-bottom:52px}
.site-footer h4{color:#fff;font-size:.82rem;font-weight:600;margin-bottom:18px;letter-spacing:.2px}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin-bottom:11px}
.site-footer a{color:var(--inverse-ink-muted)}
.site-footer a:hover{color:#fff}
.logo-pill{display:inline-block;background:#fff;padding:9px 13px;margin-bottom:20px}
.logo-pill img{height:26px;width:auto}
.foot-brand p{font-size:.88rem;line-height:1.6;max-width:31em}
.foot-brands{font-size:.8rem;color:#8496AC;margin-top:12px}
.foot-contact li{display:flex;gap:10px;align-items:flex-start}
.foot-contact .lbl{color:#8496AC;min-width:80px;flex-shrink:0;font-size:.83rem}
.foot-bottom{border-top:1px solid rgba(255,255,255,.14);padding:22px 0;display:flex;
  justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.8rem;color:#8496AC}

/* ============================ floating contact ============================ */
.fab{position:fixed;right:0;bottom:22px;z-index:80;display:flex;flex-direction:column;gap:1px}
.fab a{width:48px;height:48px;display:flex;align-items:center;justify-content:center;color:#fff}
.fab a:hover{color:#fff}
.fab .wa{background:#1DA851}
.fab .wa:hover{background:#178C43}
.fab .em{background:var(--primary)}
.fab .em:hover{background:var(--primary-dark)}

/* ============================ page chrome ============================ */
.breadcrumb{border-bottom:1px solid var(--line);font-size:.82rem;color:var(--ink-subtle)}
.breadcrumb .wrap{padding-top:14px;padding-bottom:14px}
.breadcrumb a{color:var(--ink-subtle)}
.breadcrumb a:hover{color:var(--primary)}
.page-head{border-bottom:1px solid var(--line);padding:62px 0 68px}
.page-head h1{margin-bottom:20px;max-width:14em}
.page-head p{font-size:1.14rem;color:var(--ink-muted);max-width:44em;margin:0}
.tag{display:inline-block;border:1px solid var(--line);color:var(--ink-muted);
  padding:6px 14px;font-size:.82rem;margin:0 7px 7px 0}
.tagrow{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:24px}
.logo-row{display:flex;gap:26px;align-items:center;flex-wrap:wrap;margin-top:16px}
.logo-row img{height:38px!important;width:auto!important;min-height:0!important;object-fit:contain!important}
.notice{background:var(--surface-1);border-left:3px solid var(--acc-red);padding:22px 26px}
.notice p{margin:0;font-size:.95rem;color:var(--ink-muted)}

/* ============================ catalogue ============================ */
.jumprow{display:flex;gap:0;align-items:stretch;flex-wrap:wrap;margin-top:30px;border:1px solid var(--line)}
.jump-label{font-size:.78rem;color:var(--ink-subtle);padding:11px 16px;background:var(--surface-1);
  display:flex;align-items:center;letter-spacing:.3px}
.jump-link{padding:11px 18px;font-size:.86rem;font-weight:500;color:var(--primary);
  border-left:1px solid var(--line)}
.jump-link:hover{background:var(--primary);color:#fff;text-decoration:none}
.cat-block{margin-bottom:78px;scroll-margin-top:120px}
.cat-block:last-child{margin-bottom:0}
.cat-head{border-top:3px solid var(--primary);padding-top:24px;margin-bottom:42px}
.cat-head h2{margin-bottom:12px}
.cat-head p{color:var(--ink-muted);max-width:52em;margin:0;font-size:1.05rem}
.group-block{margin-bottom:52px;scroll-margin-top:120px}
.group-head{display:flex;align-items:baseline;gap:14px;margin-bottom:22px;
  border-bottom:1px solid var(--line);padding-bottom:12px}
.group-head h3{font-size:1.15rem;font-weight:500;margin:0}
.group-count{font-size:.8rem;color:var(--ink-subtle);font-family:var(--mono)}

/* ============================ product detail ============================ */
.pd{padding-top:48px;padding-bottom:78px}
.pd-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:start}
.pd-main{border:1px solid var(--line);overflow:hidden;background:var(--canvas)}
.pd-main picture{display:block;aspect-ratio:1/1}
.pd-main img{width:100%;height:100%;object-fit:cover}
.pd-thumbs{display:flex;gap:1px;flex-wrap:wrap;margin-top:1px;background:var(--line)}
.gal-thumb{width:72px;height:72px;border:0;overflow:hidden;padding:0;background:#fff;cursor:pointer;
  position:relative;transition:.12s linear}
.gal-thumb picture{width:100%;height:100%}
.gal-thumb img{width:100%;height:100%;object-fit:cover}
.gal-thumb::after{content:"";position:absolute;inset:0;border:2px solid transparent;transition:.12s linear}
.gal-thumb:hover::after{border-color:var(--line-strong)}
.gal-thumb.active::after{border-color:var(--primary)}
.pd-info .card-kicker{font-size:.8rem;margin-bottom:12px}
.pd-info h1{font-size:clamp(1.85rem,3.4vw,2.75rem);margin:0 0 18px}
.pd-tagline{font-size:1.1rem;line-height:1.5;color:var(--ink-muted);margin-bottom:32px}
.spec{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);
  border:1px solid var(--line);margin:0 0 32px}
.spec>div{background:var(--canvas);padding:17px 19px}
.spec dt{font-size:.74rem;color:var(--ink-subtle);margin-bottom:6px;letter-spacing:.3px}
.spec dd{margin:0;font-size:.97rem;font-weight:500;color:var(--ink)}
.pd-cta{display:flex;gap:0;flex-wrap:wrap}
.pd-cta .btn{min-width:238px}

/* ============================ steps ============================ */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.steps.three{grid-template-columns:repeat(3,1fr)}
.step{background:var(--canvas);padding:30px 26px 34px;border-top:3px solid var(--primary)}
.step h3{font-size:1.02rem;font-weight:500;margin-bottom:10px}
.step p{font-size:.9rem;color:var(--ink-muted);margin:0;line-height:1.5}

.person h3{font-size:1.25rem;font-weight:500;margin-bottom:4px}
.person-role{display:block;font-size:.84rem;color:var(--primary);margin-bottom:14px}

/* ============================ FAQ ============================ */
.faq-list{border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{list-style:none;cursor:pointer;padding:22px 46px 22px 0;position:relative}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:hover h3{color:var(--primary)}
.faq-item summary h3{font-size:1.06rem;font-weight:500;margin:0;display:inline;transition:.12s linear}
.faq-item summary::after{content:"";position:absolute;right:12px;top:29px;width:11px;height:1.5px;background:var(--ink)}
.faq-item summary::before{content:"";position:absolute;right:17px;top:24px;width:1.5px;height:11px;
  background:var(--ink);transition:.15s ease}
.faq-item[open] summary::before{transform:scaleY(0)}
.faq-a{padding:0 46px 26px 0}
.faq-a p{margin:0;color:var(--ink-muted);font-size:1rem;line-height:1.6}

/* ============================ article ============================ */
.post{padding:44px 0 84px}
.post-date{font-family:var(--mono);font-size:.8rem;color:var(--ink-subtle);letter-spacing:.3px}
.post h1{margin:14px 0 20px;font-size:clamp(2rem,4vw,3.15rem)}
.post-lead{font-size:1.22rem;line-height:1.5;color:var(--ink-muted);margin-bottom:34px}
.post-hero{margin-bottom:38px;aspect-ratio:16/9;object-fit:cover;width:100%}
.post h2{font-size:1.6rem;font-weight:400;margin-top:46px;margin-bottom:16px}
.post p,.post li{font-size:1.06rem;line-height:1.68}
.post .quick-answer{margin-bottom:38px}

/* ============================ contact ============================ */
.contact-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:1px;background:var(--line);border:1px solid var(--line)}
.contact-form-wrap{background:var(--canvas);padding:38px 36px 44px}
.contact-side{background:var(--surface-1);padding:38px 32px 44px}
.contact-form-wrap h2,.contact-side h2{font-size:1.45rem;margin-bottom:12px}
.contact-side h3{font-size:1rem;font-weight:600;margin-bottom:10px}
.enquiry label{display:block;font-size:.84rem;font-weight:500;color:var(--ink);margin-bottom:18px}
.enquiry .f2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.enquiry input,.enquiry select,.enquiry textarea{width:100%;margin-top:7px;padding:12px 14px;
  border:0;border-bottom:1px solid var(--ink-subtle);border-radius:0;background:var(--surface-1);
  font:inherit;font-size:.95rem;font-weight:400;color:var(--ink)}
.enquiry input:focus,.enquiry select:focus,.enquiry textarea:focus{outline:2px solid var(--primary);
  outline-offset:-2px;border-bottom-color:var(--primary)}
.enquiry textarea{resize:vertical}
.enquiry .req{color:var(--acc-red)}
.enquiry .invalid{border-bottom:2px solid var(--acc-red)}
.form-err{color:var(--acc-red);font-size:.88rem;font-weight:500}
.contact-list{list-style:none;padding:0;margin:0 0 8px}
.contact-list li{display:flex;gap:12px;margin-bottom:13px;font-size:.93rem}
.contact-list .lbl{color:var(--ink-subtle);min-width:82px;flex-shrink:0;font-size:.85rem}

/* ============================ responsive ============================ */
@media(max-width:1080px){
  .hero-grid{grid-template-columns:1fr;min-height:0}
  .hero-copy{padding:56px 0 48px}
  .hero-media{margin-right:calc(50% - 50vw);margin-left:calc(50% - 50vw)}
  .hero-media img{max-height:440px;object-fit:cover}
  .hero-chip{position:static;display:grid;grid-template-columns:repeat(3,1fr)}
  .split,.pd-grid,.contact-grid{grid-template-columns:1fr;gap:40px}
  .contact-grid{gap:1px}
  .g4{grid-template-columns:repeat(3,1fr)}
  .foot-grid{grid-template-columns:1fr 1fr;gap:36px}
  .timeline{grid-template-columns:repeat(3,1fr)}
  .hero-badges{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:900px){
  .nav-toggle{display:block}
  .nav-links{position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;
    align-items:stretch;padding:0;border-bottom:1px solid var(--line);display:none}
  .nav-links.open{display:flex}
  .nav-links li{border-bottom:1px solid var(--line)}
  .nav-links a{padding:15px 32px;border-bottom:0}
  .nav-links a.active{border-left:3px solid var(--primary);padding-left:29px}
  .nav-right .nav-cta{display:none}
  .nav-cta-mobile{display:block}
  .nav-cta-mobile a{color:var(--primary);font-weight:600}
  .g3,.g4{grid-template-columns:repeat(2,1fr)}
  .stats{grid-template-columns:repeat(2,1fr)}
  .steps,.steps.three{grid-template-columns:repeat(2,1fr)}
  section{padding:60px 0}
  .page-head{padding:44px 0 48px}
  .btn,.btn-lg{gap:20px}
  .cta-btns,.hero-cta,.pd-cta{flex-shrink:1;min-width:0;width:100%}
  .hero-cta .btn,.pd-cta .btn,.cta-btns .btn{min-width:0;flex:1 1 180px}
}
@media(max-width:620px){
  .wrap{padding:0 20px}
  .g2,.g3,.g4{grid-template-columns:1fr}
  .timeline,.steps,.steps.three,.stats{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  .spec,.enquiry .f2{grid-template-columns:1fr}
  .hero-badges{grid-template-columns:1fr}
  .hero-chip{grid-template-columns:repeat(3,1fr)}
  .hero-chip div{padding:16px 12px}
  .brand-txt{display:none}
  .topbar-info{gap:14px;font-size:.72rem}
  .cta-inner{align-items:flex-start}
  .contact-form-wrap,.contact-side{padding:28px 22px 34px}
  .nav-links a{padding:15px 20px}
}

/* consolidation tile inside the factory capability grid */
.fac-note{background:var(--surface-2);justify-content:center}
.fac-note .fb{border-top:0;padding:30px 26px 34px}
.fac-note h3{font-size:1.08rem;margin-bottom:12px}
.fac-note p{margin-bottom:16px}
.fac-note .card-link{font-size:.87rem;font-weight:500;color:var(--primary)}

/* ============================================================
   Interactive components — same flat, hairline language.
   Every one degrades to plain HTML when JS is off.
   ============================================================ */

/* ---------- catalogue filter bar ---------- */
.filterbar{position:sticky;top:98px;z-index:40;background:var(--canvas);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:44px}
.filterbar-inner{display:flex;align-items:stretch;gap:0;flex-wrap:wrap}
.filter-search{flex:0 1 330px;display:flex;align-items:center;gap:10px;
  border-right:1px solid var(--line);padding:0 16px;min-height:52px}
.filter-search svg{flex-shrink:0;color:var(--ink-subtle)}
.filter-search input{flex:1;border:0;background:transparent;font:inherit;font-size:.92rem;
  color:var(--ink);padding:14px 0;min-width:0}
.filter-search input:focus{outline:none}
.filter-chips{display:flex;flex-wrap:wrap;align-items:stretch}
.chip{background:transparent;border:0;border-right:1px solid var(--line);padding:0 16px;
  min-height:52px;font:inherit;font-size:.86rem;color:var(--ink-muted);cursor:pointer;
  white-space:nowrap;transition:.12s linear;position:relative}
.chip:hover{background:var(--surface-1);color:var(--ink)}
.chip[aria-pressed="true"]{color:var(--ink);font-weight:600;background:var(--surface-1)}
.chip[aria-pressed="true"]::after{content:"";position:absolute;left:0;right:0;bottom:0;
  height:3px;background:var(--primary)}
.chip .n{color:var(--ink-subtle);font-weight:400;margin-left:6px;font-family:var(--mono);font-size:.78rem}
.filter-meta{display:flex;align-items:center;gap:14px;padding:0 16px;min-height:52px;
  margin-left:auto;font-size:.83rem;color:var(--ink-subtle);white-space:nowrap}
.filter-meta b{color:var(--ink);font-weight:600;font-family:var(--mono)}
.filter-clear{background:none;border:0;font:inherit;font-size:.83rem;color:var(--primary);
  cursor:pointer;text-decoration:underline;text-underline-offset:3px;padding:0}
.no-results{padding:64px 0;text-align:center;color:var(--ink-muted)}
.no-results p{font-size:1.05rem;margin-bottom:18px}
.cat-block[hidden],.group-block[hidden],.card[hidden]{display:none}

/* ---------- add-to-enquiry ---------- */
.card{position:relative}
.enq-add{position:absolute;top:0;right:0;z-index:2;background:var(--canvas);
  border:0;border-left:1px solid var(--line);border-bottom:1px solid var(--line);
  width:42px;height:42px;cursor:pointer;color:var(--ink-muted);display:flex;
  align-items:center;justify-content:center;transition:.12s linear;padding:0}
.enq-add:hover{background:var(--primary);color:#fff}
.enq-add[aria-pressed="true"]{background:var(--primary);color:#fff}
.enq-add .ic-plus{display:block}
.enq-add .ic-check{display:none}
.enq-add[aria-pressed="true"] .ic-plus{display:none}
.enq-add[aria-pressed="true"] .ic-check{display:block}

/* ---------- floating enquiry tray ---------- */
.enq-tray{position:fixed;left:0;right:0;bottom:0;z-index:90;background:var(--inverse);
  color:var(--inverse-ink);transform:translateY(101%);transition:transform .22s ease;
  border-top:3px solid var(--cta)}
.enq-tray.open{transform:translateY(0)}
.enq-tray .wrap{display:flex;align-items:center;gap:20px;flex-wrap:wrap;
  padding-top:14px;padding-bottom:14px}
.enq-head{display:flex;align-items:baseline;gap:10px;flex-shrink:0}
.enq-head b{font-size:1.05rem;font-weight:500;color:#fff}
.enq-head span{font-size:.83rem;color:var(--inverse-ink-muted)}
.enq-items{display:flex;gap:8px;flex-wrap:wrap;flex:1;min-width:0;max-height:76px;overflow-y:auto}
.enq-pill{display:inline-flex;align-items:center;gap:8px;background:var(--inverse-2);
  border:1px solid rgba(255,255,255,.16);padding:6px 8px 6px 12px;font-size:.82rem;color:#DCE5EF}
.enq-pill button{background:none;border:0;color:#8FA6C2;cursor:pointer;font-size:1rem;
  line-height:1;padding:0 2px}
.enq-pill button:hover{color:#fff}
.enq-actions{display:flex;gap:0;flex-shrink:0}
.enq-tray .btn-plain{color:var(--inverse-ink-muted);background:none;border:0;
  font:inherit;font-size:.86rem;cursor:pointer;padding:12px 16px}
.enq-tray .btn-plain:hover{color:#fff;text-decoration:underline}

/* ---------- lightbox ---------- */
.pd-main{cursor:zoom-in;position:relative}
.pd-zoom-hint{position:absolute;right:0;bottom:0;background:var(--inverse);color:#fff;
  font-size:.74rem;padding:6px 11px;pointer-events:none;opacity:0;transition:opacity .15s}
.pd-main:hover .pd-zoom-hint{opacity:1}
.lightbox{position:fixed;inset:0;z-index:120;background:rgba(10,16,26,.94);
  display:none;align-items:center;justify-content:center;padding:56px 20px}
.lightbox.open{display:flex}
.lightbox img{max-width:min(92vw,1400px);max-height:88vh;width:auto;height:auto;object-fit:contain}
.lb-btn{position:absolute;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);
  color:#fff;width:46px;height:46px;cursor:pointer;display:flex;align-items:center;
  justify-content:center;font-size:1.3rem;line-height:1;transition:.12s}
.lb-btn:hover{background:#fff;color:var(--inverse)}
.lb-close{top:18px;right:20px}
.lb-prev{left:20px;top:50%;transform:translateY(-50%)}
.lb-next{right:20px;top:50%;transform:translateY(-50%)}
.lb-count{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);
  color:#9FB3CC;font-size:.83rem;font-family:var(--mono)}

/* ---------- sticky product enquiry bar ---------- */
.pd-sticky{position:fixed;left:0;right:0;bottom:0;z-index:70;background:var(--canvas);
  border-top:1px solid var(--line);transform:translateY(101%);transition:transform .22s ease}
.pd-sticky.show{transform:translateY(0)}
.pd-sticky .wrap{display:flex;align-items:center;gap:18px;padding-top:10px;padding-bottom:10px}
.pd-sticky .ps-name{font-weight:500;color:var(--ink);font-size:.95rem;flex:1;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pd-sticky .btn{flex-shrink:0}
body:has(.enq-tray.open) .pd-sticky{transform:translateY(101%)}
/* lift the floating contact buttons clear of the enquiry tray */
body:has(.enq-tray.open) .fab{bottom:96px}
body:has(.enq-tray.open) .to-top{bottom:192px}
.fab,.to-top{transition:bottom .22s ease,opacity .18s,background-color .12s}

/* ---------- back to top ---------- */
.to-top{position:fixed;right:0;bottom:118px;z-index:80;width:48px;height:48px;
  background:var(--inverse-2);color:#fff;border:0;cursor:pointer;display:flex;
  align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:.18s}
.to-top.show{opacity:1;pointer-events:auto}
.to-top:hover{background:var(--primary)}

/* ---------- copy-to-clipboard ---------- */
.copyable{display:inline-flex;align-items:center;gap:8px}
.copy-btn{background:none;border:1px solid var(--line);color:var(--ink-subtle);
  cursor:pointer;padding:3px 8px;font:inherit;font-size:.72rem;transition:.12s}
.copy-btn:hover{border-color:var(--primary);color:var(--primary)}
.copy-btn.done{border-color:var(--acc-green);color:var(--acc-green)}

@media(prefers-reduced-motion:reduce){
  .enq-tray,.pd-sticky,.to-top,.card-media img{transition:none}
}
@media(max-width:900px){
  .filterbar{top:64px}
  .filter-meta{display:none}
  .enq-items{display:none}
  .fab{bottom:76px}
  .to-top{bottom:174px}
}

/* card became a wrapper so the enquiry button can sit outside the link */
.card-inner{display:flex;flex-direction:column;flex:1;color:inherit;text-decoration:none}
.card-inner:hover{text-decoration:none}
.card{display:flex;flex-direction:column}
