:root {
    --ink:#292e28;
    --muted:#656b60;
    --olive:#656f46;
    --line:#dce0d5;
    --soft:#f3f4ef;
    --graphite:#2b2e2b;
    --section-scroll-offset:100px;
    font-family:'Golos Text',Arial,sans-serif;
    color:var(--ink);
}

/* Native anchors retain fragment URLs, history and normal wheel/touch scrolling. */
html {
    scroll-behavior:smooth;
}

* {
    box-sizing:border-box;
}

body {
    margin:0;
    background:#fff;
    font-size:16px;
    line-height:1.65;
}

h1,h2,h3,p,figure {
    margin:0;
}

h1,h2,h3 {
    font-family:'Russo One','Golos Text',Arial,sans-serif;
    line-height:1.25;
    font-weight:400;
    font-synthesis:none;
    letter-spacing:0;
}

h1 {
    font-size:clamp(30px,2.9vw,42px);
}

h2 {
    font-size:clamp(24px,2.2vw,30px);
}

h3 {
    font-size:18px;
    line-height:1.35;
}

p {
    color:var(--muted);
}

a {
    color:inherit;
    text-decoration:none;
}

button,input,textarea {
    font:inherit;
}

button {
    font-weight:500;
    cursor:pointer;
}

img {
    display:block;
    max-width:100%;
    height:auto;
}

:focus-visible {
    outline:3px solid #8d995e;
    outline-offset:4px;
}

section {
    scroll-margin-top:var(--section-scroll-offset);
}

a:hover {
    color:var(--olive);
}

.small {
    font-size:13px;
    line-height:1.7;
}

.eyebrow {
    font-size:11px;
    letter-spacing:1px;
    text-transform:uppercase;
    color:var(--olive);
    margin-bottom:22px;
    font-weight:600;
}

.skip-link {
    position:fixed;
    top:-60px;
    left:20px;
    z-index:100;
    background:white;
    padding:10px;
}

.skip-link:focus {
    top:10px;
}

.topbar {
    background:var(--graphite);
    color:#fff;
    position:sticky;
    top:0;
    z-index:20;
}

.topbar__inner {
    max-width:1440px;
    min-height:88px;
    padding:16px 48px;
    margin:auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
}

.topbar__brand {
    font-family:Arial,'Segoe UI',sans-serif;
    display:flex;
    align-items:center;
    gap:12px;
    white-space:nowrap;
}

.topbar__logo {
    color:#b5bd99;
}

.topbar__name {
    font-size:18px;
    letter-spacing:1px;
    font-weight:700;
}

.topbar__nav {
    display:flex;
    gap:28px;
}

.topbar__link {
    font-weight:500;
    font-size:13px;
    color:#e5e7e0;
}

.topbar a:hover {
    color:#d0d8b2;
}

.menu-toggle {
    display:none;
}

.btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:24px;
    padding:14px 23px;
    min-height:50px;
    border:1px solid transparent;
    border-radius:2px;
    font-size:13px;
    font-weight:500;
    line-height:1.4;
    text-align:center;
}

.btn--primary {
    color:#fff;
    background:var(--olive);
}

.btn--primary:hover {
    background:#505b34;
    color:#fff;
}

.btn--outline {
    border-color:#bec4b4;
    background:transparent;
    color:var(--ink);
}

.btn--outline:hover {
    background:var(--soft);
}

.btn--sm {
    min-height:44px;
    padding:11px 17px;
}

.btn:disabled {
    opacity:.6;
    cursor:wait;
}

.btn--full {
    width:100%;
}

.hero__inner {
    max-width:1440px;
    padding:70px 48px 54px;
    margin:auto;
    display:grid;
    grid-template-columns:.82fr 1.3fr;
    gap:28px;
    align-items:center;
    min-height:600px;
}

.hero__copy {
    max-width:475px;
}

.hero__lead {
    font-size:16px;
    max-width:430px;
    margin-top:26px;
    line-height:1.8;
}

.hero__actions {
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-top:30px;
}

.hero__note {
    font-size:11px;
    max-width:290px;
    margin-top:28px;
}

.house {
    min-width:0;
}

.house__media {
    position:relative;
    aspect-ratio:1768/890;
    background:#fff;
}

.house__media video,.house__media img {
    display:block;
    width:100%;
    height:100%;
    aspect-ratio:1768/890;
    object-fit:contain;
}

.house__media img {
    position:absolute;
    inset:0;
}

.house__media img[hidden] {
    display:none;
}

.house figcaption {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    margin:22px 12px 0;
    font-size:10px;
    color:#777c73;
    line-height:1.6;
}

.house button {
    background:none;
    border:0;
    border-bottom:1px solid #b9c0ac;
    color:var(--muted);
    font-size:11px;
    padding:7px 0;
    white-space:nowrap;
}

.house button[hidden] {
    display:none;
}

.hero__footer {
    max-width:1344px;
    margin:0 auto;
    padding:22px 0;
    border-top:1px solid var(--line);
    display:flex;
    justify-content:space-between;
    font-size:11px;
    color:var(--muted);
}

.hero__footer a {
    display:flex;
    gap:28px;
}

.section,.dash-card {
    padding:76px 48px;
    border-top:1px solid var(--line);
}

.section__inner,.dash-card__content {
    max-width:1248px;
    margin:auto;
}

.section--soft,#materials,#about {
    background:var(--soft);
}

.section-heading {
    max-width:630px;
    margin-bottom:42px;
}

.section-heading p:last-child:not(.eyebrow) {
    margin-top:20px;
}

.use-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:44px;
}

.use-grid article {
    border-top:1px solid #a7af96;
    padding-top:22px;
}

.item-number {
    display:block;
    color:var(--olive);
    font-size:12px;
    margin-bottom:26px;
}

.use-grid p {
    font-size:14px;
    margin-top:15px;
}

.product-layout {
    display:grid;
    grid-template-columns:minmax(0, 1.2fr) minmax(0, 1fr);
    align-items:center;
    gap:64px;
}

.product-image {
    width:100%;
    height:auto;
    aspect-ratio:1448/1086;
    object-fit:contain;
}

.product-overview h2 {
    margin-bottom:24px;
}

.product-details {
    display:grid;
    grid-template-columns:minmax(0, 1.2fr) minmax(0, 1fr);
    gap:64px;
    margin-top:56px;
    padding-top:32px;
    border-top:1px solid var(--line);
}

.product-details>.small {
    max-width:430px;
}

.product-intro {
    font-size:25px;
    line-height:1.4;
    color:var(--ink);
    margin-bottom:20px;
}

.product-overview>p {
    margin-bottom:20px;
}

.product-price {
    font-weight:600;
    font-size:30px;
    margin:36px 0 14px;
    letter-spacing:-.8px;
}

.product-price span {
    font-size:13px;
    letter-spacing:0;
    color:var(--muted);
    display:block;
    margin-top:2px;
}

.product-overview .btn {
    margin-top:12px;
}

.product-modal__specs h3 {
    margin-bottom:18px;
}

.product-modal__specs ul {
    padding:0;
    margin:0 0 20px;
    list-style:none;
}

.product-modal__specs li {
    display:grid;
    grid-template-columns:1fr 1.4fr;
    gap:20px;
    border-bottom:1px solid var(--line);
    padding:11px 0;
    font-size:13px;
}

.spec-label {
    color:var(--muted);
}

.dash-card__heading {
    margin-bottom:24px;
}

.dash-card__body {
    max-width:750px;
}

.material-block {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:15px 70px;
    margin-top:36px;
    border-top:1px solid var(--line);
    padding-top:30px;
}

.material-block__title {
    grid-row:span 2;
}

.material-block__text {
    font-size:14px;
}

.solution-cards {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:40px;
    margin:36px 0;
}

.solution-card__text {
    margin-top:16px;
    font-size:14px;
}

.equipment-tags,.tag-list {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.equip-tag,.tag {
    font-size:11px;
    border:1px solid var(--line);
    padding:6px 12px;
}

.app-tiles {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:30px 45px;
}

.app-tile__num {
    font-size:11px;
    display:block;
    color:#b8c393;
    margin-bottom:12px;
}

.app-tile__title {
    font-size:18px;
}

.app-tile__text {
    font-size:13px;
    margin-top:12px;
}

#applications {
    background:var(--graphite);
    color:#fff;
}

#applications p {
    color:#bdc3b7;
}

#applications .dash-card__heading {
    margin-bottom:38px;
}

.document-row {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:70px;
}

.document-row p+p {
    margin-top:18px;
}

.text-link {
    display:inline-block;
    border-bottom:1px solid #a5ae91;
    color:var(--olive);
    font-size:13px;
    padding:12px 0 5px;
    margin-top:12px;
}

#about .dash-card__content {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0 70px;
}

#about .eyebrow {
    grid-column:1/-1;
}

#about .tag-list {
    grid-column:2;
    margin-top:25px;
}

.request-layout {
    display:grid;
    grid-template-columns:.85fr 1.15fr;
    gap:100px;
}

.request-layout h2 {
    margin-bottom:24px;
}

.request-layout>div>p {
    max-width:360px;
}

.request-email {
    display:block;
    margin:30px 0 8px;
    font-size:18px;
    overflow-wrap:anywhere;
}

.request-form form {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
}

.form-group label {
    font-weight:500;
    display:block;
    font-size:12px;
    margin-bottom:8px;
}

.form-group input:not([type=checkbox]),.form-group textarea {
    width:100%;
    border:1px solid #c9cebf;
    background:#fff;
    border-radius:2px;
    padding:12px;
    color:var(--ink);
    min-width:0;
}

.form-group textarea {
    resize:vertical;
    min-height:110px;
}

.form-group:has(textarea),.form-total,.checkbox-group,.form-disclaimer,.form-status,.request-form button {
    grid-column:1/-1;
}

.form-total {
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding:15px 0;
    font-size:14px;
}

.form-error {
    font-size:12px;
    color:#a33626;
    display:block;
}

.form-error:not(:empty) {
    margin-top:5px;
}

[aria-invalid=true] {
    border-color:#a33626!important;
}

.required {
    color:#8a392d;
}

.checkbox-group {
    display:grid;
    grid-template-columns:18px 1fr;
    align-items:start;
    gap:10px;
}

.checkbox-group input {
    accent-color:var(--olive);
    margin:4px 0;
    width:16px;
    height:16px;
}

.checkbox-group label {
    font-size:11px;
    line-height:1.6;
    margin:0;
}

.checkbox-group a {
    text-decoration:underline;
}

.checkbox-group .form-error {
    grid-column:2;
}

.form-disclaimer {
    font-size:11px;
}

.form-status {
    font-size:14px;
}

.form-status:not(:empty) {
    padding:15px;
    background:var(--soft);
    border-left:3px solid var(--olive);
}

.form-status--error:not(:empty) {
    border-color:#a33626;
    color:#923020;
}

.honeypot {
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip-path:inset(50%);
}

.contacts-grid {
    display:grid;
    grid-template-columns:1.3fr 1fr;
    gap:70px;
}

.contact-block__label {
    font-size:17px;
    margin-bottom:22px;
}

.contact-row {
    display:grid;
    grid-template-columns:160px 1fr;
    gap:12px;
    margin:12px 0;
    font-size:13px;
}

.contact-row__label,.req-row__label {
    color:var(--muted);
}

address {
    font-style:normal;
}

.req-row {
    display:flex;
    justify-content:space-between;
    gap:20px;
    font-size:13px;
    padding:9px 0;
    border-bottom:1px solid var(--line);
}

.contacts-actions {
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:28px;
}

.contact-row__value {
    overflow-wrap:anywhere;
}

#contacts {
    background:var(--soft);
}

.footer {
    background:var(--graphite);
    padding:30px 48px;
}

.footer__inner {
    max-width:1248px;
    margin:auto;
    display:flex;
    justify-content:space-between;
    gap:30px;
    font-size:10px;
    color:#bbbfb5;
}

.footer p {
    color:#bbbfb5;
}

.footer__right {
    text-align:right;
}

.footer__privacy {
    text-decoration:underline;
}

.request-callout { align-self:center; padding:32px; border:1px solid var(--line); background:var(--soft); }
.request-callout p { margin:18px 0 24px; }
button.text-link { background:none; font-family:inherit; font-weight:500; border:0; border-bottom:1px solid #a5ae91; cursor:pointer; text-align:left; }
.modal {
    --dialog-gap:24px;
    position:fixed;
    inset:calc(var(--dialog-viewport-top, 0px) + var(--dialog-available-height, 100dvh) / 2) 0 auto;
    transform:translateY(-50%);
    margin:0 auto;
    padding:0;
    width:min(680px, calc(100% - 2 * var(--dialog-gap)));
    max-width:none;
    max-height:calc(var(--dialog-available-height, 100dvh) - 2 * var(--dialog-gap));
    overflow-y:auto;
    overscroll-behavior:contain;
    scroll-padding-block:20px;
    border:1px solid var(--line);
    border-radius:3px;
    background:#fff;
    color:var(--ink);
    box-shadow:0 16px 60px #18201526;
    font:inherit;
}
.modal:not([open]) { display:none; }
.modal[open] { animation:modal-appear 160ms ease-out; }
.modal::backdrop { background:rgb(28 32 27 / 58%); }
.modal[open]::backdrop { animation:backdrop-appear 160ms ease-out; }
.modal__content { padding:32px; min-width:0; }
.modal__header { position:relative; padding-right:40px; margin-bottom:26px; }
.modal__title { font-size:26px; font-weight:400; margin-bottom:10px; }
.modal__header p { font-size:14px; line-height:1.6; }
.modal__close { position:absolute; top:-8px; right:-8px; width:44px; height:44px; display:grid; place-items:center; border:0; border-radius:2px; background:#fff; color:var(--ink); }
.modal__close:hover { background:var(--soft); }
.modal .form-group input:not([type=checkbox]), .modal .form-group textarea { font-size:16px; }
.modal .form-status { scroll-margin-block:20px; }
@keyframes modal-appear { from { opacity:0; transform:translateY(calc(-50% + 6px)); } to { opacity:1; transform:translateY(-50%); } }
@keyframes backdrop-appear { from { opacity:0; } to { opacity:1; } }
@media(max-width:600px) {
    .modal { --dialog-gap:12px; }
    .modal__content { padding:24px 20px; }
    .modal__title { font-size:24px; }
    .modal .request-form form { grid-template-columns:minmax(0, 1fr); gap:18px; }
    .modal .form-group { grid-column:1; min-width:0; }
    .request-callout { padding:24px; }
}
@media(prefers-reduced-motion:reduce) {
    .modal[open], .modal[open]::backdrop { animation:none; }
}

.toast {
    position:fixed;
    bottom:25px;
    left:50%;
    transform:translateX(-50%);
    padding:12px 24px;
    color:#fff;
    background:var(--graphite);
    z-index:80;
    font-size:13px;
}

@media(min-width:1600px) {
    .hero__inner {
        min-height:650px;
    }
}

@media(max-width:1100px) {
    .topbar__inner {
        padding:16px 28px;
        gap:20px;
    }
    .topbar__nav {
        gap:16px;
    }
    .topbar__name {
        font-size:15px;
    }
    .header-cta {
        padding:10px;
    }
    .hero__inner {
        padding:50px 28px;
        gap:16px;
        min-height:520px;
    }
    .hero__footer {
        margin:0 28px;
    }
    .section,.dash-card {
        padding:60px 28px;
    }
    .product-layout,.product-details,.request-layout {
        gap:50px;
    }
    .hero h1 {
        font-size:32px;
    }
    .hero__lead {
        font-size:14px;
    }
}

@media(max-width:800px) {
    :root {
        --section-scroll-offset:84px;
    }
    .topbar__inner {
        min-height:72px;
        flex-wrap:wrap;
        padding:15px 24px;
    }
    .header-cta {
        display:none;
    }
    .menu-toggle {
        display:block;
        color:#fff;
        background:transparent;
        border:1px solid #777c6e;
        padding:6px 14px;
        font-size:12px;
    }
    .topbar__nav {
        display:none;
        flex-basis:100%;
        padding:14px 0 4px;
        flex-wrap:wrap;
        gap:20px;
    }
    .topbar__nav.is-open {
        display:flex;
    }
    .hero__inner {
        grid-template-columns:1fr;
        padding:42px 24px 25px;
        gap:34px;
    }
    .hero__copy {
        max-width:540px;
    }
    .hero h1 {
        font-size:32px;
    }
    .hero__lead {
        font-size:15px;
        max-width:520px;
    }
    .hero__note {
        display:none;
    }
    .house {
        width:100%;
        max-width:700px;
        margin:auto;
    }
    .house figcaption {
        margin:15px 0 0;
    }
    .hero__footer {
        margin:0 24px;
        padding:20px 0;
    }
    .hero__footer>span {
        max-width:210px;
    }
    .section,.dash-card {
        padding:50px 24px;
    }
    .product-layout,.product-details,.request-layout,.document-row,.contacts-grid {
        grid-template-columns:1fr;
        gap:35px;
    }
    .use-grid,.solution-cards {
        gap:24px;
    }
    .use-grid h3 {
        font-size:18px;
    }
    .app-tiles {
        grid-template-columns:repeat(2,1fr);
    }
    .material-block {
        gap:20px;
        grid-template-columns:1fr;
    }
    .material-block__title {
        grid-row:auto;
    }
    .footer {
        padding:25px 24px;
    }
    .footer__inner {
        flex-direction:column;
        gap:12px;
    }
    .footer__right {
        text-align:left;
    }
    #about .dash-card__content {
        display:block;
    }
    .tag-list {
        margin-top:20px!important;
    }
}

@media(max-width:520px) {
    .hero h1 {
        font-size:28px;
    }
    .hero__actions {
        gap:9px;
    }
    .hero__actions .btn {
        padding:13px 16px;
        gap:14px;
    }
    .hero__footer {
        font-size:10px;
        gap:20px;
    }
    .hero__footer>span {
        max-width:165px;
    }
    .hero__footer a {
        gap:10px;
    }
    .use-grid,.solution-cards {
        grid-template-columns:1fr;
        gap:28px;
    }
    .item-number {
        margin-bottom:14px;
    }
    .section-heading {
        margin-bottom:30px;
    }
    .request-form form {
        grid-template-columns:1fr;
        gap:18px;
    }
    .form-group {
        grid-column:1;
    }
    .app-tiles {
        grid-template-columns:1fr;
        gap:26px 20px;
    }
    .app-tile__title {
        font-size:16px;
    }
    .product-modal__specs li {
        gap:15px;
        font-size:12px;
    }
    .contact-row {
        grid-template-columns:1fr;
        gap:2px;
    }
    .house figcaption {
        font-size:9px;
        gap:12px;
    }
    .house button {
        font-size:10px;
    }
    .contacts-actions .btn {
        width:100%;
    }

}

@media(prefers-reduced-motion:reduce) {
    * {
        scroll-behavior:auto!important;
        transition:none!important;
    }
}

@media(max-width:360px) {
    .app-tiles {
        grid-template-columns:1fr;
    }
    .topbar__inner {
        gap:12px;
    }
    .topbar__name {
        font-size:13px;
    }
}

