/*
 * Helvetica Neue is a licensed font. The theme uses it as the main CSS font family.
 * If you own a web licence, place the exact lowercase .woff2 filenames listed in assets/fonts/README.txt.
 * Otherwise browsers will use system Helvetica/Arial fallbacks.
 */
@font-face{
    font-family:"Helvetica Neue";
    src:url("../fonts/helveticaneue-thin.woff2") format("woff2");
    font-weight:100 200;
    font-style:normal;
    font-display:swap;
}
@font-face{
    font-family:"Helvetica Neue";
    src:url("../fonts/helveticaneue-light.woff2") format("woff2");
    font-weight:300;
    font-style:normal;
    font-display:swap;
}
@font-face{
    font-family:"Helvetica Neue";
    src:url("../fonts/helveticaneue.woff2") format("woff2");
    font-weight:400;
    font-style:normal;
    font-display:swap;
}
@font-face{
    font-family:"Helvetica Neue";
    src:url("../fonts/helveticaneue-italic.woff2") format("woff2");
    font-weight:400;
    font-style:italic;
    font-display:swap;
}
@font-face{
    font-family:"Helvetica Neue";
    src:url("../fonts/helveticaneue-medium.woff2") format("woff2");
    font-weight:500 600;
    font-style:normal;
    font-display:swap;
}
@font-face{
    font-family:"Helvetica Neue";
    src:url("../fonts/helveticaneue-bold.woff2") format("woff2");
    font-weight:700 900;
    font-style:normal;
    font-display:swap;
}

:root{
    --gp-navy:#062b4c;
    --gp-navy-deep:#042039;
    --gp-cream:#fbf4df;
    --gp-cream-soft:#f7f4ec;
    --gp-white:#ffffff;
    --gp-text:#0f1720;
    --gp-muted:#68707a;
    --gp-border:#e8e8e8;
    --gp-orange:#f26b2a;
    --gp-shadow:0 20px 60px rgba(6,43,76,.10);
    --gp-radius:18px;
    --gp-max:1280px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
    margin:0;
    background:#fff;
    color:var(--gp-text);
    font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block}
img.hero-image,.oem-media img,.product-card img{image-rendering:auto}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
.gp-container{width:min(var(--gp-max), calc(100% - 84px));margin-inline:auto}
.screen-reader-text{
    position:absolute!important;
    height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);
    white-space:nowrap;
}
.skip-link:focus{
    clip:auto!important;width:auto;height:auto;padding:12px 16px;background:#fff;z-index:9999;left:12px;top:12px;
}

/* Header */
.site-header{
    position:sticky;top:0;z-index:50;
    background:var(--gp-navy);
    color:#fff;
    box-shadow:0 1px 0 rgba(255,255,255,.08);
}
.header-inner{
    height:54px;
    display:grid;
    grid-template-columns:auto 1fr auto;
    align-items:center;
    gap:28px;
}
.brand{
    font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size:21px;
    letter-spacing:.12em;
    font-weight:900;
    line-height:1;
}
.brand img{max-height:36px;width:auto}
.primary-nav{justify-self:center}
.menu{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:34px;
    list-style:none;
    padding:0;margin:0;
}
.menu a{
    color:rgba(255,255,255,.9);
    font-size:12px;
    font-weight:600;
    letter-spacing:.02em;
}
.menu a:hover{color:#fff}
.header-cta{
    border:1px solid rgba(255,255,255,.58);
    border-radius:999px;
    padding:9px 24px;
    font-size:12px;
    font-weight:600;
    color:#fff;
    transition:.2s ease;
}
.header-cta:hover{background:#fff;color:var(--gp-navy)}
.nav-toggle{display:none}

/* Hero */
.section-cream{background:linear-gradient(180deg, #fff8df 0%, #fbf4df 100%)}
.hero{
    padding-top:52px;
    text-align:center;
    overflow:hidden;
}
.hero-copy h1{
    margin:0 auto;
    max-width:980px;
    font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size:clamp(36px, 6vw, 78px);
    line-height:.88;
    letter-spacing:-.055em;
    font-weight:900;
    color:#08090a;
}
.hero-copy h1 span{
    display:block;
    color:var(--gp-navy);
}
.hero-copy p{
    max-width:660px;
    margin:18px auto 22px;
    font-size:15px;
    color:#343a42;
}
.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:0 28px;
    border-radius:999px;
    font-weight:800;
    font-size:13px;
    transition:transform .2s ease, background .2s ease, color .2s ease;
}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--gp-navy);color:#fff}
.btn-primary:hover{background:var(--gp-navy-deep)}
.btn-small{min-height:35px;padding:0 22px;background:var(--gp-navy);color:#fff;font-size:12px}
.hero-image-wrap{
    margin-top:38px;
    position:relative;
    min-height:0;
    line-height:0;
    background:#fbf4df;
}
.hero-image-wrap:before{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg, rgba(251,244,223,.15) 0%, rgba(251,244,223,.95) 95%);
    z-index:1;
    pointer-events:none;
}
.hero-image{
    width:100%;
    height:auto;
    aspect-ratio:2600 / 993;
    object-fit:contain;
    object-position:center center;
}

/* About */
.about-band{
    background:var(--gp-navy);
    color:#fff;
    padding:54px 0 50px;
}
.about-grid{
    display:grid;
    grid-template-columns:1fr 1.08fr;
    gap:80px;
    align-items:center;
}
.about-grid h2{
    margin:0;
    font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size:clamp(30px, 4vw, 50px);
    line-height:1.02;
    letter-spacing:-.04em;
    font-weight:900;
}
.about-content p{
    color:rgba(255,255,255,.78);
    max-width:650px;
    margin:0 0 28px;
    font-size:15px;
}
.stats{
    display:flex;
    gap:70px;
    align-items:flex-start;
}
.stat strong{
    display:block;
    font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size:38px;
    line-height:1;
    letter-spacing:-.04em;
    font-weight:900;
}
.stat strong span{color:var(--gp-orange);margin-left:5px}
.stat small{display:block;color:rgba(255,255,255,.68);font-size:12px;margin-top:5px}

/* Product */
.product-section{padding:56px 0 54px;background:#fff}
.section-head{text-align:center}
.eyebrow{
    margin:0 0 4px;
    color:var(--gp-navy);
    font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size:26px;
    font-weight:900;
    letter-spacing:-.02em;
}
.section-head h2{
    margin:0;
    font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size:clamp(30px, 4vw, 54px);
    line-height:1;
    letter-spacing:-.055em;
    font-weight:900;
}
.section-head p{
    max-width:930px;
    margin:13px auto 0;
    color:#66707a;
    font-size:14px;
}
.product-gallery{
    margin-top:34px;
    display:grid;
    grid-template-columns:repeat(3, minmax(0,1fr));
    gap:44px;
}
.product-card{
    position:relative;
    min-height:250px;
    border:1px solid #dfe2e6;
    background:linear-gradient(135deg,#ffffff 0%, #f5f7fb 100%);
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
}
.product-card img{
    width:100%;
    height:270px;
    object-fit:contain;
    object-position:center;
    padding:12px;
    transition:transform .3s ease;
}
.product-card:hover img{transform:scale(1.035)}
.product-card-main .btn{
    position:absolute;
    left:50%;
    bottom:18px;
    transform:translateX(-50%);
    box-shadow:0 10px 28px rgba(6,43,76,.20);
}
.product-card-main .btn:hover{transform:translate(-50%, -1px)}

/* OEM */
.oem-section{
    background:var(--gp-cream-soft);
    padding:46px 0 78px;
}
.oem-grid{
    display:grid;
    grid-template-columns:1.06fr .94fr;
    gap:60px;
    margin-top:40px;
    align-items:start;
}
.oem-media{
    overflow:hidden;
    box-shadow:var(--gp-shadow);
    background:#101820;
    aspect-ratio:512 / 260;
}
.oem-media img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 52%;
}
.process-list{display:flex;flex-direction:column;gap:0}
.process-item{
    border-bottom:1px solid #d6d6d6;
}
.process-trigger{
    width:100%;
    border:0;
    background:transparent;
    display:grid;
    grid-template-columns:56px 1fr 28px;
    gap:18px;
    align-items:center;
    min-height:74px;
    padding:0;
    text-align:left;
    cursor:pointer;
}
.process-no{
    font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;
    font-weight:900;
    font-size:19px;
    color:#24272d;
}
.process-title{
    font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;
    font-weight:900;
    letter-spacing:-.04em;
    font-size:26px;
    line-height:1.05;
}
.process-icon{
    position:relative;
    width:22px;height:22px;
}
.process-icon:before,
.process-icon:after{
    content:"";
    position:absolute;
    background:#2f343b;
    border-radius:999px;
    top:50%;left:50%;
    transform:translate(-50%,-50%);
}
.process-icon:before{width:16px;height:2px}
.process-icon:after{width:2px;height:16px;transition:opacity .2s ease}
.process-item.is-open .process-icon:after{opacity:0}
.process-panel{
    display:none;
    padding:0 48px 22px 74px;
}
.process-item.is-open .process-panel{display:block}
.process-panel p{
    margin:0;
    color:#686f78;
    font-size:14px;
}

/* Contact */
.contact-strip{
    background:#fff;
    padding:58px 0 50px;
    border-bottom:1px solid #ececec;
}
.contact-grid{
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:80px;
    align-items:center;
}
.contact-grid h2{
    margin:0 0 26px;
    font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size:clamp(30px, 4vw, 50px);
    line-height:1.03;
    letter-spacing:-.05em;
    font-weight:900;
}
.social-links{
    display:flex;
    gap:12px;
}
.social-links a{
    display:inline-flex;
    width:31px;height:24px;
    align-items:center;justify-content:center;
    border:1px solid #e2e2e2;
    border-radius:999px;
    font-size:10px;
    font-weight:800;
    color:#54606c;
}
.lead-card p{
    max-width:520px;
    margin:0 0 18px;
    color:#424b55;
    font-size:16px;
    font-weight:700;
}
.lead-form{
    display:flex;
    gap:10px;
    width:100%;
    max-width:560px;
}
.lead-form input{
    flex:1;
    min-height:42px;
    border:1px solid #e5e5e5;
    border-radius:999px;
    padding:0 20px;
    background:#fff;
    color:#17202a;
    outline:0;
}
.lead-form input:focus{border-color:var(--gp-navy);box-shadow:0 0 0 3px rgba(6,43,76,.08)}
.lead-form button{
    min-height:42px;
    border:0;
    border-radius:999px;
    padding:0 28px;
    background:var(--gp-orange);
    color:#fff;
    font-weight:800;
    cursor:pointer;
}
.form-message{
    display:inline-block;
    margin:0 0 14px;
    padding:9px 14px;
    border-radius:999px;
    font-size:13px;
    font-weight:700;
}
.form-message.success{background:#e8f8ee;color:#126b33}
.form-message.error{background:#ffebea;color:#9f1b14}

/* Footer */
.site-footer{
    padding:38px 0 26px;
    background:#fff;
}
.footer-grid{
    display:grid;
    grid-template-columns:2.2fr .8fr .95fr .95fr;
    gap:64px;
}
.footer-brand h2,.footer-col h3{
    margin:0 0 12px;
    font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size:14px;
    font-weight:900;
    color:#1f252c;
}
.footer-brand a,.footer-brand p,.footer-menu a{
    color:#6d747d;
    font-size:12px;
}
.footer-brand p{
    max-width:520px;
    margin:8px 0;
}
.footer-menu{
    list-style:none;
    padding:0;margin:0;
    display:flex;flex-direction:column;
    gap:8px;
}
.footer-menu a:hover{color:var(--gp-navy)}
.footer-bottom{
    padding-top:34px;
    text-align:center;
    color:#858b92;
    font-size:11px;
}
.footer-bottom p{margin:0}

/* Pages */
.content-page{padding:90px 0}
.page-article{max-width:840px;margin:auto}
.page-article h1{
    font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size:48px;
    letter-spacing:-.05em;
}

/* Responsive */
@media (max-width: 1024px){
    .gp-container{width:min(100% - 42px, var(--gp-max))}
    .about-grid,.oem-grid,.contact-grid{grid-template-columns:1fr;gap:36px}
    .stats{gap:42px;flex-wrap:wrap}
    .product-gallery{gap:22px}
    .footer-grid{grid-template-columns:1.4fr 1fr 1fr;gap:34px}
    .footer-brand{grid-column:1/-1}
}

@media (max-width: 760px){
    .site-header{position:sticky}
    .header-inner{height:62px;grid-template-columns:auto auto;justify-content:space-between}
    .nav-toggle{
        display:inline-flex;
        width:42px;height:42px;border:1px solid rgba(255,255,255,.25);
        border-radius:999px;background:transparent;align-items:center;justify-content:center;flex-direction:column;gap:5px;
    }
    .nav-toggle span{display:block;width:18px;height:2px;background:#fff;border-radius:999px}
    .primary-nav{
        display:none;
        position:absolute;
        left:0;right:0;top:62px;
        background:var(--gp-navy);
        border-top:1px solid rgba(255,255,255,.08);
        padding:14px 21px 24px;
    }
    .primary-nav.is-open{display:block}
    .menu{align-items:flex-start;flex-direction:column;gap:16px}
    .menu a{font-size:15px}
    .header-cta{display:none}
    .hero{padding-top:42px}
    .hero-copy h1{font-size:clamp(34px, 12vw, 58px)}
    .about-band{padding:44px 0}
    .product-gallery{grid-template-columns:1fr}
    .product-card img{height:320px}
    .oem-media{aspect-ratio:512 / 300}
    .process-trigger{grid-template-columns:44px 1fr 24px;min-height:72px}
    .process-title{font-size:21px}
    .process-panel{padding:0 30px 20px 62px}
    .lead-form{flex-direction:column}
    .lead-form button{width:100%}
    .footer-grid{grid-template-columns:1fr 1fr;gap:28px}
}

@media (max-width: 520px){
    .gp-container{width:min(100% - 30px, var(--gp-max))}
    .brand{font-size:18px}
    .hero-copy p{font-size:14px}
    .stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
    .stat strong{font-size:28px}
    .section-head h2,.eyebrow{font-size:30px}
    .product-card img{height:245px}
    .contact-grid h2,.about-grid h2{font-size:31px}
    .footer-grid{grid-template-columns:1fr}
}
