/* Berry Fabrications — design system
   Navy + safety-orange drawn from the supplied logo. Barlow Condensed for display, Public Sans for text. */
:root{
  --navy:#0B2F5B; --navy-deep:#071D3A; --navy-ink:#0A1A30;
  --orange:#F26B0F; --orange-dark:#C9540A;
  --paper:#F5F2EC; --paper-2:#EBE6DD; --white:#fff;
  --ink:#16202D; --muted:#5A6676; --line:#D9D3C7;
  --wa:#1FA855;
  --radius:4px;
  --wrap:1200px; --gutter:clamp(20px,4vw,40px);
  --s1:8px; --s2:16px; --s3:24px; --s4:40px; --s5:72px; --s6:112px;
  --display:'Barlow Condensed','Arial Narrow',Impact,sans-serif;
  --text:'Public Sans','Helvetica Neue',Arial,sans-serif;
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--text);color:var(--ink);background:var(--paper);line-height:1.6;font-size:17px;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.skip{position:absolute;left:-999px;top:8px;background:var(--orange);color:#fff;padding:10px 16px;z-index:200}
.skip:focus{left:8px}

/* Type */
h1,h2,h3,h4{font-family:var(--display);font-weight:700;line-height:1.02;letter-spacing:.005em;text-transform:uppercase}
h1{font-size:clamp(46px,7.4vw,92px)}
h2{font-size:clamp(34px,4.6vw,58px)}
h3{font-size:clamp(22px,2.2vw,28px);line-height:1.1}
.eyebrow{font-family:var(--display);font-weight:600;font-size:15px;letter-spacing:.2em;text-transform:uppercase;color:var(--orange-dark);display:flex;align-items:center;gap:12px;margin-bottom:var(--s2)}
.eyebrow::before{content:"";width:34px;height:3px;background:var(--orange)}
.on-dark .eyebrow{color:var(--orange)}
.lead{font-size:clamp(18px,1.6vw,21px);color:var(--muted);max-width:60ch}
.on-dark .lead{color:#C4D0E0}
p+p{margin-top:1em}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--display);font-weight:700;font-size:19px;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;padding:15px 28px;min-height:52px;border-radius:var(--radius);border:2px solid transparent;cursor:pointer;transition:background .2s,color .2s,border-color .2s,transform .2s}
.btn svg{width:20px;height:20px;flex:none}
.btn-primary{background:var(--orange);color:#fff}
.btn-primary:hover{background:var(--orange-dark)}
.btn-wa{background:var(--wa);color:#fff}
.btn-wa:hover{background:#178a46}
.btn-ghost{border-color:rgba(255,255,255,.55);color:#fff}
.btn-ghost:hover{background:#fff;color:var(--navy)}
.btn-outline{border-color:var(--navy);color:var(--navy)}
.btn-outline:hover{background:var(--navy);color:#fff}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px}

/* Header */
.topbar{background:var(--navy-deep);color:#C4D0E0;font-size:14px}
.topbar .wrap{display:flex;justify-content:space-between;gap:16px;padding-top:9px;padding-bottom:9px}
.topbar a{text-decoration:none}.topbar a:hover{color:#fff}
.topbar .tb-r{display:flex;gap:24px}
header.site{position:sticky;top:0;z-index:100;background:var(--white);border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;height:80px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none}
.brand img{height:62px;width:auto}
.brand span{font-family:var(--display);font-weight:700;font-size:23px;line-height:1;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);border-left:2px solid var(--line);padding-left:14px}
.brand small{display:block;font-weight:500;font-size:12px;letter-spacing:.2em;color:var(--orange-dark);margin-top:4px}
nav.main{display:flex;align-items:center;gap:6px}
nav.main a.link{font-family:var(--display);font-weight:600;font-size:18px;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;padding:10px 14px;position:relative;color:var(--navy)}
nav.main a.link::after{content:"";position:absolute;left:14px;right:14px;bottom:4px;height:3px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .25s}
nav.main a.link:hover::after,nav.main a.link[aria-current]::after{transform:scaleX(1)}
nav.main .btn{margin-left:14px;padding:11px 20px;min-height:46px;font-size:17px}
.menu-btn{display:none;background:none;border:0;width:48px;height:48px;cursor:pointer;color:var(--navy)}
.menu-btn span,.menu-btn span::before,.menu-btn span::after{display:block;width:26px;height:3px;background:currentColor;position:relative;margin:auto;transition:.25s}
.menu-btn span::before,.menu-btn span::after{content:"";position:absolute;left:0}
.menu-btn span::before{top:-8px}.menu-btn span::after{top:8px}
.menu-btn[aria-expanded=true] span{background:transparent}
.menu-btn[aria-expanded=true] span::before{top:0;transform:rotate(45deg)}
.menu-btn[aria-expanded=true] span::after{top:0;transform:rotate(-45deg)}

/* Hero */
.hero{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:
  linear-gradient(115deg,transparent 0 62%,rgba(242,107,15,.14) 62% 62.2%,transparent 62.2%),
  repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 88px)}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--s5);align-items:center;padding-top:var(--s5);padding-bottom:var(--s5);position:relative}
.hero h1 em{font-style:normal;color:var(--orange)}
.hero .lead{margin:var(--s3) 0 var(--s4)}
.hero .cta{display:flex;flex-wrap:wrap;gap:14px}
.hero-fig{position:relative}
.hero-fig img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius)}
.hero-fig::before{content:"";position:absolute;inset:-14px 14px 14px -14px;border:3px solid var(--orange);border-radius:var(--radius);z-index:0}
.hero-fig img{position:relative;z-index:1}
.hero-fig figcaption{position:absolute;z-index:2;left:0;bottom:0;background:var(--orange);color:#fff;font-family:var(--display);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:15px;padding:10px 18px}
.hero-contact{margin-top:var(--s4);display:flex;gap:28px;flex-wrap:wrap;font-size:15px;color:#C4D0E0}
.hero-contact b{display:block;font-family:var(--display);font-size:13px;letter-spacing:.2em;color:var(--orange);text-transform:uppercase;font-weight:600}
.hero-contact a{text-decoration:none;color:#fff;font-weight:600}

/* Page hero (inner pages) */
.page-hero{background:var(--navy);color:#fff;padding:var(--s5) 0 var(--s5);position:relative;overflow:hidden}
.page-hero::after{content:"";position:absolute;right:0;top:0;bottom:0;width:38%;background:linear-gradient(90deg,var(--navy),transparent),var(--bg-img,none) center/cover;opacity:.55}
.page-hero .wrap{position:relative;z-index:1}
.page-hero h1{font-size:clamp(44px,6.4vw,80px);max-width:20ch}
.page-hero .lead{margin-top:var(--s3);color:#C4D0E0}

/* Sections */
section{padding:var(--s6) 0}
section.tight{padding:var(--s5) 0}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:var(--s4);margin-bottom:var(--s4);flex-wrap:wrap}
.sec-head h2{max-width:22ch}
.sec-head .lead{max-width:46ch}
.band-dark{background:var(--navy-ink);color:#fff}
.band-paper2{background:var(--paper-2)}
.band-white{background:var(--white)}

/* Services cards (home) */
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.svc{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;text-decoration:none;transition:transform .25s,box-shadow .25s,border-color .25s}
.svc:hover{transform:translateY(-4px);box-shadow:0 16px 36px -18px rgba(7,29,58,.4);border-color:var(--orange)}
.svc img{aspect-ratio:4/3;object-fit:cover;width:100%}
.svc-body{padding:var(--s3);display:flex;flex-direction:column;gap:10px;flex:1}
.svc-num{font-family:var(--display);font-weight:700;color:var(--orange);font-size:17px;letter-spacing:.18em}
.svc p{color:var(--muted);font-size:15.5px}
.svc .more{margin-top:auto;padding-top:10px;font-family:var(--display);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--navy);font-size:16px}
.svc .more::after{content:" →";color:var(--orange)}

/* Split blocks */
.split{display:grid;grid-template-columns:1fr 1fr;gap:var(--s5);align-items:center}
.split.rev>:first-child{order:2}
.frame{position:relative}
.frame img{width:100%;object-fit:cover;border-radius:var(--radius)}
.frame::after{content:"";position:absolute;width:30%;height:30%;right:-12px;bottom:-12px;border-right:4px solid var(--orange);border-bottom:4px solid var(--orange);pointer-events:none}
.checks{list-style:none;padding:0;margin-top:var(--s3);display:grid;gap:12px}
.checks li{padding-left:34px;position:relative}
.checks li::before{content:"";position:absolute;left:0;top:.45em;width:18px;height:10px;border-left:3px solid var(--orange);border-bottom:3px solid var(--orange);transform:rotate(-45deg)}

/* Promise strip */
.promise{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid rgba(255,255,255,.18)}
.promise>div{padding:var(--s4) var(--s3) 0 0}
.promise>div+div{padding-left:var(--s3);border-left:1px solid rgba(255,255,255,.18)}
.promise h3{color:#fff;margin-bottom:10px}
.promise p{color:#B9C7DA;font-size:16px}
.promise .n{font-family:var(--display);font-size:56px;color:var(--orange);font-weight:700;line-height:1}

/* Gallery */
.gallery{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:150px;gap:14px}
.gallery figure{position:relative;overflow:hidden;border-radius:var(--radius);background:var(--navy)}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.gallery figure:hover img{transform:scale(1.04)}
.gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 14px 10px;background:linear-gradient(transparent,rgba(7,29,58,.88));color:#fff;font-family:var(--display);letter-spacing:.1em;text-transform:uppercase;font-size:15px;font-weight:600}
.g-a{grid-column:span 3;grid-row:span 3}
.g-b{grid-column:span 3;grid-row:span 2}
.g-c{grid-column:span 2;grid-row:span 2}
.g-d{grid-column:span 2;grid-row:span 2}
.g-e{grid-column:span 2;grid-row:span 2}
.g-f{grid-column:span 3;grid-row:span 2}
.g-g{grid-column:span 3;grid-row:span 2}

/* Audience */
.aud{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border:1px solid var(--line);background:var(--white)}
.aud>div{padding:var(--s3);border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-weight:600;color:var(--navy);display:flex;gap:14px;align-items:flex-start}
.aud>div::before{content:"";flex:none;width:10px;height:10px;background:var(--orange);margin-top:.5em}
.aud>div:nth-child(2n){border-right:0}
.aud>div:nth-last-child(-n+2){border-bottom:0}

/* CTA band */
.cta-band{background:var(--orange);color:#fff;padding:var(--s5) 0}
.cta-band .wrap{display:flex;justify-content:space-between;align-items:center;gap:var(--s4);flex-wrap:wrap}
.cta-band h2{font-size:clamp(32px,4vw,52px);max-width:24ch}
.cta-band .btns{display:flex;gap:14px;flex-wrap:wrap}
.cta-band .btn-navy{background:var(--navy-deep);color:#fff}
.cta-band .btn-navy:hover{background:#000}
.cta-band .btn-ghost{border-color:#fff}
.cta-band .btn-ghost:hover{color:var(--orange-dark)}

/* About */
.vm{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.vm>div{padding:var(--s4);background:var(--white);border-top:4px solid var(--orange);border-radius:var(--radius)}
.vm h3{margin-bottom:12px;color:var(--navy)}
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:var(--s4)}
.value{padding:var(--s3) 0;border-top:2px solid rgba(255,255,255,.2)}
.value h3{color:#fff;display:flex;align-items:baseline;gap:12px}
.value h3 span{color:var(--orange);font-size:18px;letter-spacing:.15em}
.value p{color:#B9C7DA;font-size:16px;margin-top:8px}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;counter-reset:s}
.step{counter-increment:s;padding-top:var(--s3);border-top:3px solid var(--navy)}
.step::before{content:"0" counter(s);font-family:var(--display);font-weight:700;font-size:44px;color:var(--orange);line-height:1}
.step h3{margin:10px 0 8px;color:var(--navy)}
.step p{font-size:15.5px;color:var(--muted)}

/* Services page */
.svc-sec{display:grid;grid-template-columns:5fr 6fr;gap:var(--s5);align-items:start;padding:var(--s5) 0;border-top:1px solid var(--line)}
.svc-sec:first-of-type{border-top:0}
.svc-sec .imgs{display:grid;gap:14px;position:sticky;top:110px}
.svc-sec .imgs.two{grid-template-columns:1fr 1fr}
.svc-sec .imgs img{width:100%;object-fit:cover;border-radius:var(--radius);aspect-ratio:4/3}
.svc-sec .imgs img.tall{aspect-ratio:3/4}
.svc-sec .imgs img.wide{grid-column:1/-1;aspect-ratio:16/10}
.svc-sec .letter{font-family:var(--display);font-weight:700;color:var(--orange);font-size:20px;letter-spacing:.2em}
.svc-sec h2{margin:6px 0 var(--s2);color:var(--navy);font-size:clamp(34px,4vw,50px)}
.svc-sec ul{list-style:none;padding:0;margin-top:var(--s3);display:grid;grid-template-columns:1fr 1fr;gap:0 var(--s3)}
.svc-sec li{padding:13px 0 13px 26px;border-bottom:1px solid var(--line);position:relative;font-size:16px}
.svc-sec li::before{content:"";position:absolute;left:0;top:1.35em;width:12px;height:3px;background:var(--orange)}
.svc-sec .btn{margin-top:var(--s3)}
.jump{display:flex;gap:10px;flex-wrap:wrap;margin-top:var(--s3)}
.jump a{font-family:var(--display);font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:16px;text-decoration:none;color:#fff;border:1.5px solid rgba(255,255,255,.4);padding:8px 16px;border-radius:50px}
.jump a:hover{background:var(--orange);border-color:var(--orange)}

/* Contact */
.contact-grid{display:grid;grid-template-columns:5fr 6fr;gap:var(--s5);align-items:start}
.c-cards{display:grid;gap:14px}
.c-card{display:flex;gap:18px;padding:22px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;align-items:center;transition:border-color .2s}
a.c-card:hover{border-color:var(--orange)}
.c-ico{flex:none;width:50px;height:50px;border-radius:50%;background:var(--navy);display:grid;place-items:center;color:#fff}
.c-ico svg{width:23px;height:23px}
.c-card.wa .c-ico{background:var(--wa)}
.c-card small{display:block;font-family:var(--display);letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--orange-dark);font-size:14px}
.c-card b{font-size:18px;color:var(--navy);word-break:break-word}
.form{background:var(--white);padding:var(--s4);border-radius:var(--radius);border-top:5px solid var(--orange);box-shadow:0 24px 50px -30px rgba(7,29,58,.45)}
.form h2{font-size:clamp(30px,3.4vw,42px);color:var(--navy);margin-bottom:6px}
.form>p{color:var(--muted);margin-bottom:var(--s3)}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{margin-bottom:16px}
label{display:block;font-weight:600;font-size:14.5px;margin-bottom:6px;color:var(--navy)}
input,select,textarea{width:100%;font:inherit;font-size:16px;padding:13px 14px;border:1.5px solid #BDB6A8;border-radius:var(--radius);background:#FDFCFA;color:var(--ink);min-height:50px}
textarea{min-height:130px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px rgba(242,107,15,.2)}
.form .btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}
.form .btns .btn{flex:1 1 220px}
.note{font-size:13.5px;color:var(--muted);margin-top:14px}
.map-card{margin-top:var(--s4);background:var(--navy);color:#fff;padding:var(--s4);border-radius:var(--radius);display:grid;grid-template-columns:1fr auto;gap:var(--s3);align-items:center}
.map-card h3{font-size:30px}
.map-card p{color:#C4D0E0;margin-top:6px}
.placeholder-tag{display:inline-block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;background:rgba(242,107,15,.18);color:var(--orange);padding:3px 10px;border-radius:50px;font-weight:700;margin-top:10px}

/* Footer */
footer.site{background:var(--navy-ink);color:#B9C7DA;padding:var(--s5) 0 0;font-size:15.5px}
.foot{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:var(--s4);padding-bottom:var(--s5)}
.foot .plate{background:#fff;display:inline-block;padding:6px 14px;border-radius:var(--radius)}
.foot .plate img{height:78px}
.foot h4{color:#fff;font-size:20px;letter-spacing:.12em;margin-bottom:14px}
.foot ul{list-style:none;padding:0;display:grid;gap:8px}
.foot a{text-decoration:none}.foot a:hover{color:#fff}
.foot .tag{margin-top:16px;max-width:30ch;color:#fff;font-family:var(--display);font-size:22px;line-height:1.15;text-transform:uppercase;letter-spacing:.04em}
.foot .tag em{color:var(--orange);font-style:normal}
.legal{border-top:1px solid rgba(255,255,255,.12);padding:20px 0;font-size:13.5px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

/* Mobile sticky action bar */
.m-bar{display:none}

/* Reveal */
.js .rv{opacity:0;transform:translateY(16px);transition:opacity .6s,transform .6s}
.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}.gallery img,.svc{transition:none}}

/* Tablet */
@media (max-width:1040px){
  .svc-grid{grid-template-columns:1fr 1fr}
  .foot{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr}
  .brand span{display:none}
}
@media (max-width:900px){
  section{padding:var(--s5) 0}
  .hero .wrap,.split,.contact-grid,.svc-sec{grid-template-columns:1fr;gap:var(--s4)}
  .split.rev>:first-child{order:0}
  .hero-fig{max-width:520px;margin-right:14px}
  .hero-fig img{aspect-ratio:4/3}
  .svc-sec .imgs{position:static}
  .promise{grid-template-columns:1fr}
  .promise>div,.promise>div+div{padding:var(--s3) 0;border-left:0;border-top:1px solid rgba(255,255,255,.18)}
  .promise>div:first-child{border-top:0}
  .vm,.values{grid-template-columns:1fr}
  .page-hero::after{display:none}
}
/* Mobile nav */
@media (max-width:860px){
  .topbar .tb-l{display:none}.topbar .wrap{justify-content:center}
  header.site .wrap{height:70px}
  .brand img{height:52px}
  .menu-btn{display:block}
  nav.main{position:fixed;inset:70px 0 0 0;background:var(--navy-deep);flex-direction:column;align-items:stretch;gap:0;padding:var(--s3) var(--gutter) 120px;transform:translateX(100%);visibility:hidden;transition:transform .3s,visibility .3s;overflow:auto}
  nav.main.open{transform:none;visibility:visible}
  nav.main a.link{color:#fff;font-size:34px;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.12)}
  nav.main a.link::after{display:none}
  nav.main a.link[aria-current]{color:var(--orange)}
  nav.main .btn{margin:var(--s3) 0 0;width:100%;min-height:58px;font-size:20px}
  .m-bar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:90;box-shadow:0 -6px 20px rgba(0,0,0,.2)}
  .m-bar a{display:flex;align-items:center;justify-content:center;gap:10px;min-height:58px;font-family:var(--display);font-weight:700;font-size:19px;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;color:#fff}
  .m-bar a svg{width:21px;height:21px}
  .m-bar .call{background:var(--navy)}
  .m-bar .wa{background:var(--wa)}
  body{padding-bottom:58px}
}
@media (max-width:640px){
  body{font-size:16.5px}
  .svc-grid,.steps{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr 1fr;grid-auto-rows:130px}
  .gallery figure{grid-column:span 1!important;grid-row:span 2!important}
  .gallery .g-a,.gallery .g-b{grid-column:span 2!important}
  .gallery .g-a{grid-row:span 3!important}
  .svc-sec ul{grid-template-columns:1fr}
  .f-row{grid-template-columns:1fr;gap:0}
  .form{padding:var(--s3)}
  .map-card{grid-template-columns:1fr}
  .foot{grid-template-columns:1fr}
  .aud{grid-template-columns:1fr}
  .aud>div{border-right:0!important;border-bottom:1px solid var(--line)!important}
  .aud>div:last-child{border-bottom:0!important}
  .hero .cta .btn,.cta-band .btns .btn{width:100%}
  .hero .wrap{padding-top:var(--s4)}
  .svc-sec .imgs.two{grid-template-columns:1fr 1fr}
}
