/* Shared typography, controls, products, projects, and footer. */
@font-face {
font-family: 'Caveat';
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url(assets/font-0.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Caveat';
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url(assets/font-1.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: 'Roboto';
  font-style: normal;
  font-weight: 400 900;
  font-stretch: 100%;
  font-display: swap;
  src: url(assets/font-2.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Roboto';
  font-style: normal;
  font-weight: 400 900;
  font-stretch: 100%;
  font-display: swap;
  src: url(assets/font-3.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 { --red:#bd0007;--red-bright:#dc0710;--ink:#111719;--muted:#616568;--line:#d7d9da;--body:'Roboto',Arial,sans-serif;--ease:cubic-bezier(.2,.7,.2,1) }
* { box-sizing:border-box }
html { scroll-behavior:smooth;scroll-padding-top:24px }
body { margin:0;background:#fff;color:#101314;font-family:var(--body);font-size:16px;-webkit-font-smoothing:antialiased }
button, a { -webkit-tap-highlight-color:transparent }
button, input, select, textarea { font:inherit }
button, a { touch-action:manipulation }
button { cursor:pointer }
a { color:inherit;text-decoration:none }
button { color:inherit }
button:disabled { cursor:default }
button:not(.button) { border:0 }
button:focus-visible, a:focus-visible, summary:focus-visible { outline:3px solid #e82f37;outline-offset:5px }
button { background:none }
img { max-width:100%;display:block }
svg.icon { width:20px;height:20px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round }
h1, h2, h3, p { margin:0 }
.container { width:90%;max-width:1440px;margin-inline:auto }
.socials { display:flex;gap:8px }
.socials button { display:grid;place-items:center;border:1px solid #535b5e!important;width:31px;height:31px;border-radius:4px;color:#fff;transition:background .2s }
.socials button:hover { background:var(--red) }
.socials .icon { width:16px;height:16px }
.socials.small { gap:13px }
.socials.small button { border:0!important;width:16px;height:20px }
.icon-button { display:grid;place-items:center;width:36px;height:36px;padding:7px }
.button { display:inline-flex;align-items:center;justify-content:center;gap:16px;border-radius:3px;border:1px solid transparent;font-size:12px;font-weight:700;line-height:1.2;padding:13px 20px;min-height:40px;transition:background .2s,box-shadow .2s,transform .2s;white-space:nowrap }
.button:hover { transform:translateY(-2px) }
.button .icon { width:17px;height:17px }
.button.primary { background:linear-gradient(145deg,#d90911,#af0004);color:white;box-shadow:0 3px 7px #96000817 }
.button.primary:hover { background:#a30005;box-shadow:0 5px 16px #ad000431 }
.button.outline { border-color:var(--red);background:#ffffff85;color:#111 }
.button.outline .icon { color:var(--red) }
.button.white { background:#fff;color:#141819;min-height:35px;padding:8px 18px }
.button.white .icon { color:var(--red) }
.eyebrow { font-size:11px;letter-spacing:3.5px;line-height:1.4;font-weight:700 }
.handwritten { font-family:'Caveat',cursive;color:#fff;line-height:.95;transform:rotate(-9deg);text-align:center;text-shadow:0 2px 10px #0006;position:relative }
.handwritten span { display:block;background:var(--red-bright);height:3px;margin:14px 0 0;transform:rotate(-10deg) }
.products { padding:13px 4% 14px;background:linear-gradient(125deg,#eef0f2 0%,#fff 20%,#fff 80%,#edf0f2) }
.product-grid { max-width:1515px;margin:auto;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:17px }
.product-card { padding:0;text-align:left;position:relative;transition:transform .25s var(--ease);min-width:0 }
.product-card:hover { transform:translateY(-5px) }
.product-card:before { content:'';position:absolute;top:66px;bottom:0;width:5px;left:1px;background:var(--red);transform:skew(-14deg);z-index:1 }
.product-card .product-image { height:122px;overflow:hidden;transform:skew(-13deg);border-radius:4px 4px 0 0;margin-left:15px;margin-right:-3px;background:#dce1e3 }
.product-image img { width:120%;max-width:none;height:100%;object-fit:cover;transform:skew(13deg) scale(1.12);transition:transform .4s }
.product-card:hover img { transform:skew(13deg) scale(1.2) }
.product-label { min-height:52px;background:linear-gradient(160deg,#fff,#ededed);clip-path:polygon(8% 0,100% 0,93% 100%,0 100%);display:flex;align-items:center;justify-content:space-between;gap:6px;padding:6px 13px 7px 18px;font-size:12px;font-weight:800;line-height:1.25;text-transform:uppercase }
.product-label .icon { width:26px;height:26px;padding:5px;border:1px solid #ecd2d3;border-radius:50%;color:var(--red);background:white;stroke-width:2 }
.about { height:264px;position:relative;isolation:isolate;overflow:hidden;background:#131c1f;color:white }
.about-fence { position:absolute;inset:0;left:28%;width:35%;background:url('assets/fence.webp') center/cover;z-index:-3 }
.about-red { position:absolute;inset:0;width:42%;background:linear-gradient(115deg,#b80006,#cd070f 72%,#ad0004);clip-path:polygon(0 0,88% 0,100% 32%,79% 100%,0 100%);z-index:-1 }
.about-red:after { content:'';position:absolute;inset:0;background:#ff1721;clip-path:polygon(87% 0,89% 0,100% 32%,79% 100%,77% 100%,97% 32%) }
.about-dark { position:absolute;inset:0;left:53%;background:linear-gradient(100deg,#172123f0,#0b1215f0);clip-path:polygon(8% 0,100% 0,100% 100%,0 100%,0 32%);z-index:-1 }
.about-dark:after { content:'';position:absolute;inset:0;opacity:.08;background-image:repeating-linear-gradient(50deg,transparent 0 33px,#fff 34px,transparent 35px 58px),repeating-linear-gradient(-50deg,transparent 0 33px,#fff 34px,transparent 35px 58px) }
.about-inner { display:flex;align-items:center;height:100%;justify-content:space-between;gap:20px }
.about-copy { width:40%;flex-shrink:0 }
.about h2 { font-size:36px;line-height:1.05;letter-spacing:-.7px;font-weight:900;margin:8px 0 14px }
.about-copy>p:not(.eyebrow) { font-size:14px;line-height:1.3;max-width:385px }
.about-copy .button { margin-top:12px }
.about-right { display:flex;align-items:center;gap:27px;width:45%;margin-right:-18px }
.stats-grid { display:grid;grid-template-columns:1fr 1.1fr;flex:1;min-width:0 }
.stat { display:flex;gap:17px;padding:13px 13px 13px 0;align-items:center;min-height:79px;border-bottom:1px solid #ffffff2f }
.stat:nth-child(2n) { padding-left:17px;padding-right:0;position:relative }
.stat:nth-child(2n):before { content:'';height:43px;width:1px;background:#ffffff30;position:absolute;left:0 }
.stat:nth-last-child(-n+2) { border-bottom:0 }
.stat .icon { width:34px;height:36px;stroke-width:1.6 }
.stat strong { display:block;font-size:12px;white-space:nowrap;margin-bottom:4px }
.stat strong.stat-number { font-size:20px }
.stat span { display:block;font-size:11px;line-height:1.35 }
.about-note { font-size:29px;width:82px;flex-shrink:0 }
.projects { background:linear-gradient(110deg,#f5f6f7,#fff 20%,#fff 90%,#f0f2f4);padding:15px 3.8% }
.projects-inner { display:flex;gap:22px;align-items:center;max-width:1515px;margin:auto }
.projects-heading { width:187px;flex-shrink:0 }
.projects-heading .eyebrow { font-size:10px;letter-spacing:3px }
.projects h2 { font-size:25px;line-height:1.02;margin:8px 0 9px;font-weight:800;letter-spacing:-.3px }
.text-link { display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:700;color:var(--red);border-bottom:1px solid #d6828680!important;padding:0 0 6px }
.text-link .icon { width:17px;height:17px }
.project-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;flex:1;min-width:0 }
.project-card { position:relative;padding:0;border-radius:3px;overflow:hidden;text-align:left;min-height:119px;background:#1e2727;transition:transform .2s }
.project-card:hover { transform:translateY(-4px) }
.project-card img { width:100%;height:119px;object-fit:cover }
.project-card>span { position:absolute;bottom:0;left:0;right:0;background:linear-gradient(0deg,#0d1414ed,#0d1414bb);color:#fff;font-size:12px;font-weight:600;padding:7px 10px }
.projects blockquote { font-size:13px;line-height:1.25;width:110px;flex-shrink:0;position:relative;margin:0 0 0 13px }
.projects blockquote:before { content:'';width:2px;height:22px;background:var(--red);position:absolute;left:-17px;top:-14px }
footer { background:#0d1517;color:#e4e8e9;position:relative;overflow:hidden }
footer:before { content:'';position:absolute;inset:0;opacity:.025;background:repeating-linear-gradient(45deg,transparent 0 60px,#fff 61px,transparent 62px 100px);pointer-events:none }
.footer-main { display:grid;grid-template-columns:1.45fr 1fr 1.03fr 1.45fr 1.4fr;gap:25px;padding:22px 0 15px }
.footer-brand img { width:150px;mix-blend-mode:screen }
.footer-brand p { font-size:11px;margin:10px 0 19px }
.footer-column { font-size:12px;padding-left:24px;border-left:1px solid #ffffff14 }
.footer-column h3 { font-size:12px;font-weight:600;margin-bottom:10px }
.footer-column a, .footer-column button { display:block;text-align:left;font-size:12px;font-weight:400;padding:0;line-height:1.45;color:#e1e4e5 }
.footer-column a:hover, .footer-column button:hover, .footer-bottom button:hover { color:#ff555b }
.footer-contact a { display:flex;align-items:flex-start;gap:13px;line-height:1.5;margin:13px 0 }
.footer-contact .icon { width:16px;height:16px }
.footer-map { display:flex;align-items:center;border-left:1px solid #ffffff14;padding-left:23px }
.footer-map img { mix-blend-mode:screen;width:100% }
.footer-bottom { border-top:1px solid #ffffff28;display:flex;align-items:center;justify-content:space-between;min-height:50px;font-size:11px;position:relative }
.footer-bottom small { font-size:11px }
.footer-bottom>div { display:flex;align-items:center;gap:20px }
.footer-bottom button { font-size:11px;padding:6px 0 }
.footer-bottom span { opacity:.3 }
.skip-link { position:fixed;left:20px;top:-100px;background:var(--red);color:#fff;padding:15px;z-index:100 }
.skip-link:focus { top:10px }
dialog { border:0;border-radius:9px;width:min(610px,calc(100% - 32px));max-height:90dvh;padding:35px;color:var(--ink);box-shadow:0 25px 90px #0006 }
dialog::backdrop { background:#081116bb;backdrop-filter:blur(5px) }
body.modal-open { overflow:hidden }
.modal-close { position:absolute;right:12px;top:12px;z-index:1;background:#fff!important;border-radius:50% }
#modal-title { font-size:30px;line-height:1.1;margin:10px 25px 16px 0;letter-spacing:-.7px }
#modal-content>.eyebrow { color:var(--red);font-size:10px }
#modal-content p { font-size:15px;line-height:1.65;color:#555e61;margin-bottom:16px }
.modal-photo { width:100%;height:225px;object-fit:cover;border-radius:5px;margin:16px 0 }
.detail-features { list-style:none;padding:0;margin:20px 0 25px }
.detail-features li { padding:11px 0;border-bottom:1px solid #e7e7e7;font-size:14px;display:flex;align-items:center;gap:10px }
.detail-features .icon { color:var(--red);width:18px;height:18px }
.dialog-actions { display:flex;gap:10px;flex-wrap:wrap }
.contact-list { display:grid;gap:12px;margin:24px 0 }
.contact-list a { display:flex;gap:13px;align-items:center;font-size:15px;padding:15px;background:#f5f6f7;border-radius:4px }
.contact-list .icon { color:var(--red) }
.quote-form { display:grid;grid-template-columns:1fr 1fr;gap:17px;margin-top:20px }
.quote-form label { font-size:13px;font-weight:600;display:flex;flex-direction:column;gap:7px }
.quote-form .full { grid-column:1/-1 }
input, select, textarea { padding:12px;border:1px solid #cdd0d2;border-radius:4px;min-width:0;width:100%;background:white;font-size:15px;color:#182022 }
input:focus, select:focus, textarea:focus { outline:2px solid var(--red);outline-offset:2px }
textarea { resize:vertical;min-height:90px }
.quote-form p { font-size:12px!important;line-height:1.5!important;margin:0!important }
.quote-form .button { justify-self:start }
.search-results { margin-top:20px;display:grid;gap:8px }
.search-result { width:100%;display:flex;align-items:center;gap:15px;text-align:left;padding:8px;border-radius:5px }
.search-result:hover { background:#f1f2f3 }
.search-result img { width:68px;height:49px;object-fit:cover;border-radius:3px }
.search-result span { font-size:15px;font-weight:600 }
.dialog-projects { display:grid;grid-template-columns:1fr 1fr;gap:15px }
.dialog-projects button { padding:0;background:#f4f5f6;overflow:hidden;border-radius:4px;text-align:left }
.dialog-projects img { width:100%;height:140px;object-fit:cover }
.dialog-projects span { padding:12px;display:block;font-weight:600;font-size:14px }
.article { border-top:1px solid #dedede;margin-top:24px;padding-top:20px }
.article h3 { font-size:19px;margin-bottom:10px }
.empty-result { padding:25px 0 }
.reveal { animation:appear .5s var(--ease) both }
@keyframes appear {
from{opacity:.45;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}
}
@media(min-width:1350px) {
.products { padding-block:17px }
.product-card .product-image { height:148px }
.product-label { font-size:14px;min-height:58px }
.about { height:310px }
.about h2 { font-size:42px }
.about-copy>p:not(.eyebrow) { font-size:16px;max-width:440px }
.about-right { width:46%;gap:36px }
.stat { min-height:88px }
.stat strong { font-size:14px }
.stat span { font-size:12px }
.about-note { font-size:33px;width:97px }
.projects { padding-block:19px }
.projects-heading { width:208px }
.projects h2 { font-size:29px }
.project-card img { height:140px }
.project-card>span { font-size:14px }
.projects blockquote { font-size:14px;width:127px }
.footer-main { padding-block:26px;gap:30px }
.footer-column a, .footer-column button, .footer-column h3 { font-size:13px }
.footer-brand p { font-size:12px }
.footer-brand img { width:175px }
.footer-main { min-height:190px }
}
@media(max-width:1120px) {
.container { width:92% }
.about-right { width:46%;gap:15px;margin-right:0 }
.about-note { display:none }
.about h2 { font-size:32px }
.stat { gap:10px }
.stat:nth-child(2n) { padding-left:13px }
.projects-inner { gap:14px }
.projects-heading { width:170px }
.projects h2 { font-size:23px }
.projects blockquote { display:none }
.footer-main { gap:15px }
.footer-column { padding-left:15px }
.footer-map { padding-left:10px }
.product-grid { gap:13px }
.product-label { font-size:11px;padding-left:16px }
.product-card .product-image { height:115px }
}
@media(max-width:960px) {
.product-grid { grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 23px }
.products { padding:22px 5% }
.product-card .product-image { height:150px }
.product-label { font-size:13px }
.about { height:300px }
.about-copy { width:47% }
.about-red { width:54% }
.about-dark { left:51% }
.about-right { width:44% }
.about h2 { font-size:30px }
.about-copy>p:not(.eyebrow) { font-size:13px;max-width:310px }
.desktop-break { display:none }
.stat { gap:10px;min-height:87px;padding-right:8px }
.stat .icon { width:26px;height:30px }
.stat strong { font-size:11px;white-space:normal }
.stat span { font-size:10px }
.projects-inner { align-items:flex-start;flex-wrap:wrap }
.projects-heading { width:100%;display:flex;align-items:center;justify-content:space-between;gap:15px }
.projects-heading .eyebrow { display:none }
.projects h2 { font-size:25px }
.projects h2 br { display:none }
.project-grid { flex-basis:100% }
.projects { padding:22px 5% }
.footer-main { grid-template-columns:1.2fr 1fr 1fr 1.6fr;padding-block:27px }
.footer-map { display:none }
.footer-brand img { width:135px }
.footer-brand p { font-size:10px }
.footer-contact a { font-size:11px;gap:8px }
}
@media(max-width:640px) {
.container { width:89% }
.icon-button { width:33px;height:33px }
.eyebrow { font-size:9px;letter-spacing:2.6px }
.products { padding:21px 5% 22px }
.product-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 19px }
.product-card .product-image { height:118px;margin-left:11px;margin-right:0;transform:skew(-10deg) }
.product-image img { transform:skew(10deg) scale(1.12) }
.product-card:hover img { transform:skew(10deg) scale(1.2) }
.product-label { font-size:11px;padding:8px 10px 8px 13px;min-height:50px;gap:4px }
.product-label .icon { width:24px;height:24px }
.product-card:before { width:4px;transform:skew(-10deg);top:50px }
.about { height:auto;min-height:570px;background:#151d20 }
.about-inner { display:block;width:100% }
.about-red { width:100%;height:288px;clip-path:polygon(0 0,100% 0,100% 90%,87% 100%,0 100%) }
.about-red:after { display:none }
.about-fence { left:65%;width:35%;height:285px;opacity:.4;z-index:-1 }
.about-dark { top:275px;left:0;clip-path:none }
.about-copy { width:100%;padding:28px 6% 34px }
.about h2 { font-size:32px;line-height:1.06;margin-top:10px }
.about-copy>p:not(.eyebrow) { font-size:14px;max-width:330px }
.about-copy .button { margin-top:16px }
.about-right { width:100%;padding:23px 6% 20px;margin:0 }
.stats-grid { width:100%;grid-template-columns:1fr 1fr }
.stat { min-height:81px;gap:14px;padding:13px 10px 13px 0 }
.stat .icon { width:32px;height:33px }
.stat strong { font-size:12px }
.stat span { font-size:11px }
.stat:nth-child(2n) { padding-left:18px }
.about-note { display:none }
.projects { padding:24px 6% }
.projects-heading { display:block }
.projects h2 { font-size:28px;max-width:310px;margin:9px 0 11px }
.projects-heading .eyebrow { display:block }
.projects-heading .text-link { margin-bottom:7px }
.project-grid { grid-template-columns:1fr 1fr;gap:12px }
.project-card img { height:125px }
.project-card>span { font-size:11px }
.footer-main { grid-template-columns:1fr 1fr;gap:28px 24px;padding:30px 0 26px }
.footer-brand { grid-column:1/-1 }
.footer-brand img { width:165px }
.footer-brand p { font-size:12px;margin:12px 0 15px }
.footer-column { border:0;padding:0 }
.footer-column h3 { font-size:14px;margin-bottom:11px }
.footer-column a, .footer-column button { font-size:13px;line-height:1.7 }
.footer-contact { grid-column:1/-1;border-top:1px solid #ffffff20;padding-top:21px }
.footer-contact a { font-size:13px;margin:13px 0;gap:15px }
.footer-main .socials button { width:34px;height:34px }
.footer-bottom { display:block;padding:17px 0 18px }
.footer-bottom>div { margin-top:10px;gap:15px }
.footer-bottom small, .footer-bottom button { font-size:10px }
dialog { padding:26px 22px }
#modal-title { font-size:26px;margin-right:18px }
.modal-photo { height:185px }
.quote-form { grid-template-columns:1fr }
.quote-form label { grid-column:1/-1 }
.dialog-projects { grid-template-columns:1fr }
.contact-list a { font-size:13px }
.dialog-actions .button { width:100% }
}
@media(prefers-reduced-motion:reduce) {
html { scroll-behavior:auto }
*, *:before, *:after { animation:none!important;transition:none!important }
.swiper-wrapper { transition-duration:0ms!important }
}
.social-icon { width:16px;height:16px;object-fit:contain;mix-blend-mode:screen }
.about-dark:after { opacity:.04 }
.search-label { display:block;font-size:13px;margin-bottom:8px }
@media(max-width:640px) {
.projects h2 { line-height:1.13 }
}
@media(max-width:360px) {
.stat { gap:8px }
.stat .icon { width:26px }
.stat:nth-child(2n) { padding-left:12px }
.stat strong { font-size:11px }
.stat span { font-size:10px }
}
.socials.small button { padding:0 }
.socials.small .social-icon { width:13px;height:13px }
.footer-brand img, .footer-map img { mix-blend-mode:lighten }
.skip-link { clip-path:inset(50%) }
.skip-link:focus { clip-path:none }
