/* ============================================================
   bdj.services - brand stylesheet
   A container manifest, not a poster: stencilled Bebas Neue
   headlines, Work Sans body, IBM Plex Mono data/labels. Sections
   read as container units - corrugated faces, corner castings,
   ID-plate data blocks - on a warm concrete-yard ground.
   ============================================================ */
@font-face{
  font-family:'Bebas Neue'; font-style:normal; font-weight:400; font-display:swap;
  src:url(fonts/bebas-400.woff2) format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Work Sans'; font-style:normal; font-weight:400; font-display:swap;
  src:url(fonts/worksans-400.woff2) format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Work Sans'; font-style:normal; font-weight:500; font-display:swap;
  src:url(fonts/worksans-500.woff2) format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Work Sans'; font-style:normal; font-weight:600; font-display:swap;
  src:url(fonts/worksans-600.woff2) format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Work Sans'; font-style:normal; font-weight:700; font-display:swap;
  src:url(fonts/worksans-700.woff2) format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'IBM Plex Mono'; font-style:normal; font-weight:400; font-display:swap;
  src:url(fonts/plexmono-400.woff2) format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'IBM Plex Mono'; font-style:normal; font-weight:700; font-display:swap;
  src:url(fonts/plexmono-700.woff2) format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{
  --sand:#ECE4D3;
  --sand-2:#E2D8C1;
  --sand-3:#D6C9A9;
  --steel:#1B2A33;
  --steel-2:#24363F;
  --rust:#B5451B;
  --rust-deep:#8C3313;   /* small text on Sand: >=4.5:1 */
  --rust-bright:#FF7A45; /* small text on Steel: >=4.5:1 */
  --ochre:#C98A2E;
  --mist:#5C6367;        /* body/labels on Sand: >=4.5:1 */
  --mist-on-steel:#9BA3A6; /* labels on Steel: >=4.5:1 */
  --line:#D2C6A8;
  --maxw:1240px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--sand); color:var(--steel);
  font-family:'Work Sans',sans-serif; -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  background-image:repeating-linear-gradient(90deg, rgba(27,42,51,.025) 0 1px, transparent 1px 22px);
}
a{color:inherit; text-decoration:none;}
.mono{font-family:'IBM Plex Mono',monospace;}

/* ---------- accessibility ---------- */
:focus-visible{outline:2px solid var(--rust-deep); outline-offset:3px; border-radius:2px;}
.skip-link{position:absolute; left:8px; top:-64px; z-index:100; background:var(--steel); color:var(--sand);
  font-family:'IBM Plex Mono',monospace; font-size:13px; letter-spacing:.08em; text-transform:uppercase;
  padding:12px 18px; border-radius:2px; transition:top .2s var(--ease);}
.skip-link:focus{top:8px;}
main{display:block;}
.stop{color:var(--rust-deep);}

/* ---------- wordmark ---------- */
.wmi{font-family:'Bebas Neue',sans-serif; font-weight:400; letter-spacing:.01em; text-transform:uppercase; display:inline-flex; align-items:baseline; gap:.16em; line-height:1;}
.wmi .tld{font-family:'IBM Plex Mono',monospace; font-weight:700; font-size:.4em; letter-spacing:.05em; color:var(--rust-deep); background:var(--sand-3); padding:.35em .5em; border-radius:2px;}

/* ============ HEADER (manifest strip) ============ */
.site-head{
  position:sticky; top:0; z-index:50;
  display:flex; justify-content:space-between; align-items:center;
  padding:16px 40px; background:rgba(236,228,211,.92); backdrop-filter:blur(14px);
  border-bottom:3px solid var(--steel);
}
.site-head .wmi{font-size:28px;}
.tag-country{font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--mist); border:1.5px dashed var(--steel); border-radius:2px; padding:6px 12px; margin-left:18px;}
@media(max-width:640px){ .tag-country{display:none;} }
.nav{display:flex; align-items:center; gap:28px; font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:.12em; text-transform:uppercase;}
.nav a{color:var(--mist); transition:color .25s var(--ease); position:relative; padding:4px 0;}
.nav a:hover{color:var(--steel);}
.nav .cta{color:var(--sand); background:var(--rust); padding:11px 18px; border-radius:2px; letter-spacing:.1em; font-weight:700;}
.nav .cta:hover{background:var(--steel);}
.nav-toggle{display:none; background:none; border:0; color:var(--steel); cursor:pointer; font-size:22px; line-height:1;}
@media(max-width:980px){
  .site-head{padding:14px 22px;}
  .nav{position:fixed; inset:60px 0 auto 0; flex-direction:column; gap:4px; align-items:stretch;
    background:var(--sand); border-bottom:3px solid var(--steel); padding:16px 24px 26px;
    transform:translateY(-130%); transition:transform .4s var(--ease);
    max-height:calc(100vh - 60px); max-height:calc(100dvh - 60px); overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch;}
  .nav.open{transform:translateY(0);}
  .nav a{padding:14px 0; font-size:13px; border-bottom:1px solid var(--line);}
  .nav .cta{text-align:center; border-bottom:0; margin-top:8px;}
  .nav-toggle{display:block;}
}

/* ============ LAYOUT PRIMITIVES ============ */
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 40px;}
section{position:relative;}
.pad{padding:100px 0;}
.pad-sm{padding:72px 0;}
@media(max-width:860px){ .pad{padding:64px 0;} .wrap{padding:0 22px;} }

.eyebrow{font-family:'IBM Plex Mono',monospace; font-size:11.5px; font-weight:700; letter-spacing:.28em; text-transform:uppercase; color:var(--rust-deep); margin:0 0 20px; display:flex; align-items:center; gap:10px;}
.eyebrow::before{content:""; width:20px; height:20px; background:
  linear-gradient(var(--rust-deep),var(--rust-deep)) left top/8px 2px no-repeat,
  linear-gradient(var(--rust-deep),var(--rust-deep)) left top/2px 8px no-repeat;}
.eyebrow.on-steel{color:var(--rust-bright);}
.eyebrow.on-steel::before{background:
  linear-gradient(var(--rust-bright),var(--rust-bright)) left top/8px 2px no-repeat,
  linear-gradient(var(--rust-bright),var(--rust-bright)) left top/2px 8px no-repeat;}

h1,h2,h3{margin:0; font-family:'Bebas Neue',sans-serif; font-weight:400; letter-spacing:.005em; line-height:.92; text-transform:uppercase; overflow-wrap:break-word;}
.display{font-size:clamp(46px,9vw,140px);}
.h2{font-size:clamp(34px,5.4vw,74px);}
.h3{font-size:clamp(22px,2.6vw,32px); font-family:'Work Sans',sans-serif; font-weight:800; text-transform:none; letter-spacing:-.01em;}
.lead{font-size:clamp(17px,1.5vw,21px); line-height:1.6; color:var(--mist); max-width:58ch; margin:0; font-weight:400;}
.lead.on-steel{color:#C7CBC6;}
.muted{color:var(--mist);}
.mono-label{font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--mist);}

/* buttons: stamped tags, not pills */
.btn{display:inline-flex; align-items:center; gap:11px; font-family:'IBM Plex Mono',monospace; font-weight:700; font-size:12.5px; letter-spacing:.1em; text-transform:uppercase; padding:15px 26px; border-radius:2px; transition:all .25s var(--ease); cursor:pointer; border:2px solid transparent;}
.btn:disabled{opacity:.35; cursor:not-allowed; pointer-events:none;}
.btn .arrow{transition:transform .25s var(--ease);}
.btn:hover .arrow{transform:translateX(5px);}
.btn-primary{background:var(--rust); color:var(--sand); border-color:var(--rust);}
.btn-primary:hover{background:var(--steel); border-color:var(--steel);}
.btn-ghost{border-color:var(--steel); color:var(--steel);}
.btn-ghost:hover{background:var(--steel); color:var(--sand);}
.btn-ghost.on-steel{border-color:var(--sand); color:var(--sand);}
.btn-ghost.on-steel:hover{background:var(--sand); color:var(--steel);}
.btn-row{display:flex; gap:14px; flex-wrap:wrap;}

/* ============ REVEAL ============ */
.reveal{transition:opacity .8s var(--ease), transform .8s var(--ease);}
@media(prefers-reduced-motion:no-preference){
  html.reveal-on .reveal:not(.in){opacity:0; transform:translateY(26px);}
  html.reveal-on .hero h1 .reveal:not(.in){opacity:1;}
}
.reveal[data-d="1"]{transition-delay:.08s;}
.reveal[data-d="2"]{transition-delay:.16s;}
.reveal[data-d="3"]{transition-delay:.24s;}
.reveal[data-d="4"]{transition-delay:.32s;}
@media(prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} }
@media print{ .reveal{opacity:1 !important; transform:none !important;} }
.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;}

/* ============ CORNER CASTINGS (used on unit cards / plates) ============ */
.castings{position:relative;}
.castings::before,.castings::after,.castings .c3,.castings .c4{content:""; position:absolute; width:14px; height:14px; pointer-events:none;}
.castings::before{top:-2px; left:-2px; border-top:3px solid var(--steel); border-left:3px solid var(--steel);}
.castings::after{top:-2px; right:-2px; border-top:3px solid var(--steel); border-right:3px solid var(--steel);}
.castings .c3{bottom:-2px; left:-2px; border-bottom:3px solid var(--steel); border-left:3px solid var(--steel);}
.castings .c4{bottom:-2px; right:-2px; border-bottom:3px solid var(--steel); border-right:3px solid var(--steel);}
.castings.on-steel::before,.castings.on-steel::after,.castings.on-steel .c3,.castings.on-steel .c4{border-color:var(--sand-3);}

/* ============ HERO ============ */
.hero{padding:76px 0 56px;}
.hero .kicker{font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:700; letter-spacing:.26em; text-transform:uppercase; color:var(--mist); margin-bottom:24px;}
.hero-grid{display:grid; grid-template-columns:1.15fr .85fr; gap:52px; align-items:center;}
.hero h1{font-size:clamp(44px,7.2vw,104px); line-height:.9;}
.hero .lead{margin-top:24px;}
.hero-badges{display:flex; gap:12px; flex-wrap:wrap; margin-top:30px;}
.badge{display:inline-flex; align-items:center; gap:9px; font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; border:1.5px dashed var(--steel); border-radius:2px; padding:9px 14px; color:var(--steel);}
.badge i{width:6px; height:6px; background:var(--rust); display:block; flex:none; transform:rotate(45deg);}
.hero .btn-row{margin-top:36px;}
.hero-art{position:relative; display:flex; align-items:center; justify-content:center;}
.hero-art svg{width:100%; max-width:400px; height:auto;}
.hero-plate{position:absolute; right:-6px; bottom:6px; background:var(--sand); border:2px solid var(--steel); border-radius:3px; padding:14px 16px; width:180px; box-shadow:6px 6px 0 var(--rust);}
.hero-plate .pl-h{font-family:'IBM Plex Mono',monospace; font-size:9px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--rust-deep); border-bottom:1px solid var(--line); padding-bottom:6px; margin-bottom:8px;}
.hero-plate dl{margin:0; display:grid; grid-template-columns:auto 1fr; gap:3px 8px; font-family:'IBM Plex Mono',monospace; font-size:10.5px;}
.hero-plate dt{color:var(--mist);}
.hero-plate dd{margin:0; font-weight:700; text-align:right; color:var(--steel);}
@media(max-width:900px){ .hero-grid{grid-template-columns:1fr; gap:36px;} .hero-art{order:-1;} .hero-art svg{max-width:260px;} .hero-plate{width:150px; padding:11px 13px; right:0;} }

/* ============ MANIFEST STRIP (marquee) ============ */
.manifest{border-top:2px solid var(--steel); border-bottom:2px solid var(--steel); padding:16px 0; overflow:hidden; white-space:nowrap; background:var(--sand-2);}
.manifest .track{display:inline-flex; align-items:center; gap:36px; animation:scrollx 28s linear infinite;}
.manifest span{font-family:'IBM Plex Mono',monospace; font-weight:700; font-size:13px; text-transform:uppercase; letter-spacing:.1em; color:var(--steel);}
.manifest .tick{width:7px; height:7px; background:var(--rust); flex:none; transform:rotate(45deg);}
@keyframes scrollx{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media(prefers-reduced-motion:reduce){ .manifest .track{animation:none;} }

/* ============ STAT / PROMISE BAND (corrugated steel) ============ */
.promise-band{
  background:var(--steel); color:var(--sand);
  border-top:3px solid var(--steel); border-bottom:3px solid var(--steel);
  background-image:repeating-linear-gradient(90deg, rgba(236,228,211,.035) 0 2px, transparent 2px 24px);
}
.promise-grid{display:grid; grid-template-columns:minmax(200px,300px) 1fr; gap:44px; align-items:center; padding:52px 0;}
.plate-dark{background:var(--steel-2); border:2px solid #3A4B54; border-radius:3px; padding:22px 24px;}
.plate-dark .pl-h{font-family:'IBM Plex Mono',monospace; font-size:10px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--rust-bright); border-bottom:1px solid #3A4B54; padding-bottom:8px; margin-bottom:12px;}
.plate-dark dl{margin:0; display:flex; flex-direction:column; gap:8px; font-family:'IBM Plex Mono',monospace; font-size:12.5px;}
.plate-dark .row{display:flex; justify-content:space-between; gap:12px;}
.plate-dark dt{color:var(--mist-on-steel);}
.plate-dark dd{margin:0; font-weight:700; color:var(--sand);}
.promise-copy p{font-size:clamp(16px,1.7vw,20px); line-height:1.6; margin:0; color:#DCD6C7;}
.promise-copy p + p{margin-top:14px;}
.promise-copy b{color:var(--sand); font-weight:700;}
@media(max-width:760px){ .promise-grid{grid-template-columns:1fr; gap:28px; padding:40px 0;} }

/* ============ STATEMENT ============ */
.statement .stlead{font-size:clamp(26px,3.8vw,48px); color:var(--steel); font-weight:400; font-family:'Bebas Neue',sans-serif; line-height:1.08; max-width:19ch; text-transform:uppercase;}

/* ============ CATEGORY CARDS (o que fazemos) ============ */
.cat-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:48px;}
.cat-card{background:var(--steel); color:var(--sand); border-radius:3px; padding:34px 32px; display:flex; flex-direction:column; gap:14px; position:relative;}
.cat-card .cc-no{font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.16em; color:var(--rust-bright);}
.cat-card h3{font-family:'Bebas Neue',sans-serif; font-size:clamp(26px,3vw,36px); text-transform:uppercase; color:var(--sand); letter-spacing:.01em;}
.cat-card p{font-size:14.5px; line-height:1.65; color:#C7CBC6; margin:0; max-width:42ch;}
.cat-card .cc-go{margin-top:auto; padding-top:10px; font-family:'IBM Plex Mono',monospace; font-size:11.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--rust-bright); display:inline-flex; align-items:center; gap:8px;}
@media(max-width:760px){ .cat-grid{grid-template-columns:1fr;} }

/* page-hero intro lead (contentores / sobre / contacto) */
.page-hero .lead{margin-top:22px;}

/* ============ UNIT CARDS (services) ============ */
.unit-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:52px;}
.unit-cell{background:var(--sand); border:2px solid var(--steel); padding:30px 26px 26px; min-height:210px; display:flex; flex-direction:column; justify-content:space-between; position:relative;
  background-image:repeating-linear-gradient(90deg, rgba(27,42,51,.05) 0 2px, transparent 2px 18px);}
.unit-cell .no{font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.14em; color:var(--rust-deep); background:var(--sand-3); display:inline-block; padding:3px 8px; border-radius:2px; align-self:flex-start;}
.unit-cell h3{margin-top:auto; padding-top:16px;}
.unit-cell p{font-size:13.5px; line-height:1.6; color:var(--mist); margin:10px 0 0;}
@media(max-width:900px){ .unit-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:560px){ .unit-grid{grid-template-columns:1fr;} }

/* ============ TYPE PLATES (container specs) ============ */
.type-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px; margin-top:52px;}
.type-plate{background:var(--steel); color:var(--sand); border-radius:3px; padding:0; overflow:hidden;}
.type-plate .tp-head{padding:20px 22px 16px; border-bottom:1px solid #3A4B54; display:flex; align-items:baseline; justify-content:space-between; gap:10px;}
.type-plate .tp-head h3{font-family:'Bebas Neue',sans-serif; font-size:26px; text-transform:uppercase; color:var(--sand); letter-spacing:.01em;}
.type-plate .tp-code{font-family:'IBM Plex Mono',monospace; font-size:10.5px; font-weight:700; color:var(--rust-bright); letter-spacing:.1em;}
.type-plate dl{margin:0; padding:16px 22px 20px; display:flex; flex-direction:column; gap:9px; font-family:'IBM Plex Mono',monospace; font-size:12px;}
.type-plate .row{display:flex; justify-content:space-between; gap:10px; border-bottom:1px dotted #3A4B54; padding-bottom:9px;}
.type-plate .row:last-child{border-bottom:0; padding-bottom:0;}
.type-plate dt{color:var(--mist-on-steel);}
.type-plate dd{margin:0; font-weight:700; color:var(--sand); text-align:right;}
.type-plate .tp-cta{display:block; text-align:center; padding:14px; font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--steel); background:var(--rust-bright); transition:background .2s var(--ease);}
.type-plate .tp-cta:hover{background:var(--sand);}
@media(max-width:900px){ .type-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:560px){ .type-grid{grid-template-columns:1fr;} }

/* ============ QUOTE FORM ============ */
.quote-form{background:var(--sand); border:2px solid var(--steel); border-radius:3px; padding:32px 32px 28px; text-align:left; max-width:640px; margin:36px auto 0;}
.quote-form .qf-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.quote-form label{display:flex; flex-direction:column; gap:7px; font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--mist);}
.quote-form .qf-full{margin-top:16px;}
.quote-form input, .quote-form select, .quote-form textarea{
  font-family:'Work Sans',sans-serif; font-size:15px; color:var(--steel); background:var(--sand);
  border:1.5px solid var(--steel); border-radius:2px; padding:11px 13px; width:100%; box-sizing:border-box;
}
.quote-form textarea{resize:vertical; min-height:76px;}
.quote-form input:focus, .quote-form select:focus, .quote-form textarea:focus{outline:2px solid var(--rust); outline-offset:1px;}
.quote-form .qf-submit{margin-top:20px; width:100%; justify-content:center;}
.quote-form .qf-note{font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--mist); text-align:center; margin:12px 0 0; letter-spacing:.03em;}
@media(max-width:560px){ .quote-form{padding:24px 20px 22px;} .quote-form .qf-grid{grid-template-columns:1fr;} }

/* ============ TAG CLOUD (use cases) ============ */
.stamp-cloud{display:flex; flex-wrap:wrap; gap:12px; margin-top:36px;}
.stamp-chip{font-family:'IBM Plex Mono',monospace; font-size:12.5px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; border:1.5px dashed var(--steel); border-radius:2px; padding:11px 18px; white-space:nowrap; color:var(--steel);}
.stamp-chip.more{color:var(--mist); font-weight:500; border-style:dotted;}
@media(max-width:560px){ .stamp-cloud{gap:9px;} .stamp-chip{padding:9px 14px; font-size:11.5px;} }

/* ============ STAMPED STEPS ============ */
.stamp-steps{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:52px;}
.stamp-step{background:var(--sand); border:2px solid var(--steel); padding:28px 24px;}
.stamp-step .stnum{width:44px; height:44px; border:2px dashed var(--rust); border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'Bebas Neue',sans-serif; font-size:20px; color:var(--rust-deep);}
.stamp-step h3{font-size:19px; margin-top:16px;}
.stamp-step p{font-size:14px; line-height:1.6; color:var(--mist); margin:9px 0 0;}
@media(max-width:760px){ .stamp-steps{grid-template-columns:1fr;} }

/* ============ GALLERY PLACEHOLDER ============ */
.gallery-note{border:2px dashed var(--rust); background:var(--sand-2); padding:38px 36px; display:flex; gap:28px; align-items:center; justify-content:space-between; flex-wrap:wrap;}
.gallery-note .gt{max-width:54ch;}
.gallery-note h3{font-size:clamp(20px,2.4vw,26px);}
.gallery-note p{font-size:14.5px; line-height:1.7; color:var(--mist); margin:8px 0 0;}
@media(max-width:760px){ .gallery-note{padding:28px 24px; flex-direction:column; align-items:flex-start;} }

/* ============ FAQ (spec sheet) ============ */
.spec-list{border-top:2px solid var(--steel); margin-top:6px;}
.spec-list details{border-bottom:1px solid var(--line); padding:22px 0;}
.spec-list summary{cursor:pointer; list-style:none; display:flex; align-items:baseline; gap:16px; font-size:clamp(15.5px,1.9vw,18px); font-weight:700; font-family:'Work Sans',sans-serif; letter-spacing:-.005em;}
.spec-list summary::-webkit-details-marker{display:none;}
.spec-list summary .qno{font-family:'IBM Plex Mono',monospace; font-size:11.5px; font-weight:700; color:var(--rust-deep); flex:none;}
.spec-list summary .ico{font-family:'IBM Plex Mono',monospace; font-size:18px; color:var(--rust-deep); flex:none; margin-left:auto; transition:transform .25s var(--ease);}
.spec-list details[open] summary .ico{transform:rotate(45deg);}
.spec-list .a{font-size:14.5px; line-height:1.7; color:var(--mist); margin:14px 0 0 34px; max-width:70ch;}

/* ============ CTA BAND ============ */
.cta-band{background:var(--steel); color:var(--sand); text-align:center; padding:100px 0;
  background-image:repeating-linear-gradient(90deg, rgba(236,228,211,.03) 0 2px, transparent 2px 24px);}
.cta-band h2{font-size:clamp(40px,6.6vw,96px); line-height:.92;}
.cta-band .lead{margin:24px auto 36px;}
.cta-band .btn-row{justify-content:center;}
.contact-panel{display:flex; flex-direction:column; align-items:center; gap:8px; margin-top:36px;}
.contact-panel .foot-phone{font-family:'IBM Plex Mono',monospace; font-weight:700; font-size:clamp(24px,4.4vw,38px);}
.contact-panel a.email{font-family:'IBM Plex Mono',monospace; font-size:14px; letter-spacing:.02em; color:var(--sand); border-bottom:1px solid var(--mist-on-steel);}
.contact-panel a.email:hover{border-color:var(--sand);}
.copy-row{display:flex; align-items:center; gap:14px; flex-wrap:wrap; justify-content:center;}
.copy-row.sm{margin-top:2px;}
.copy-btn{font-family:'IBM Plex Mono',monospace; font-size:10.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--sand); border:1.5px solid var(--mist-on-steel); border-radius:2px; padding:6px 12px; background:none; cursor:pointer; transition:all .2s var(--ease);}
.copy-btn:hover{border-color:var(--sand);}
.copy-btn.ok{border-color:var(--rust-bright); color:var(--rust-bright);}

/* ============ FOOTER ============ */
.site-foot{border-top:3px solid var(--steel); padding:64px 0 34px; background:var(--sand);}
.foot-top{display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:40px;}
.foot-cta .lead{margin-top:18px; max-width:34ch; font-size:14.5px;}
.foot-col .foot-col-h{font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--mist); margin:0 0 14px; font-weight:700;}
.foot-col a{display:block; padding:6px 0; color:var(--steel); font-size:14.5px; transition:color .2s;}
.foot-col a:hover{color:var(--rust-deep);}
.foot-bottom{display:flex; justify-content:space-between; align-items:center; margin-top:52px; padding-top:22px; border-top:1px solid var(--line); font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--mist); flex-wrap:wrap; gap:12px;}
@media(max-width:860px){ .foot-top{grid-template-columns:1fr 1fr; gap:32px;} }
@media(max-width:560px){ .foot-top{grid-template-columns:1fr; gap:30px;} }

.strip{background:var(--rust); color:var(--sand); text-align:center; padding:14px 0; font-family:'IBM Plex Mono',monospace; font-weight:700; font-size:11.5px; letter-spacing:.3em; text-transform:uppercase;}

/* ---------- cursor follower ---------- */
.cursor-dot{position:fixed; top:0; left:0; width:10px; height:10px; background:var(--rust); pointer-events:none; z-index:95; transform:translate(-50%,-50%) rotate(45deg); opacity:0; transition:width .22s var(--ease), height .22s var(--ease), opacity .3s var(--ease);}
.cursor-dot.on{opacity:1;}
.cursor-dot.lg{width:40px; height:40px; background:transparent; border:1.5px solid var(--rust);}
@media (hover:none),(pointer:coarse){ .cursor-dot{display:none !important;} }
@media (prefers-reduced-motion:reduce){ .cursor-dot{display:none !important;} }

/* page intro band (privacy / 404) */
.page-hero{padding:110px 0 70px; border-bottom:2px solid var(--steel);}
.page-hero .display{margin-top:14px;}
@media(max-width:560px){ .page-hero{padding:70px 0 40px;} .display{font-size:clamp(36px,10vw,52px);} }

/* legal page */
.legal{max-width:740px; font-family:'Work Sans',sans-serif;}
.legal h2{font-family:'Work Sans',sans-serif; font-weight:800; font-size:clamp(19px,2.1vw,25px); margin:40px 0 12px; text-transform:none; letter-spacing:-.01em;}
.legal p, .legal li{font-size:15.5px; line-height:1.7; color:var(--mist);}
.legal ul{padding-left:20px; margin:0;}
.legal li{margin-bottom:8px;}
.legal a{color:var(--rust-deep);}
.legal .updated{font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--mist);}
