.release-hero { padding: clamp(4rem, 8vw, 7rem) 0; }
.release-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(18rem, 0.8fr); align-items: end; gap: clamp(2rem, 7vw, 6rem); }
.release-selector { padding: 1.5rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); box-shadow: var(--shadow); }
.release-selector label { display: block; margin-bottom: 0.55rem; color: var(--navy); font-weight: 750; }
.release-selector-controls { display: grid; grid-template-columns: 1fr auto; gap: 0.75rem; }
.release-selector select { width: 100%; min-width: 0; padding: 0.75rem; border: 1px solid #aebdc7; border-radius: 0.45rem; color: var(--ink); background: var(--white); }
.release-selector select:focus { outline: 3px solid rgba(40, 121, 188, 0.25); border-color: var(--blue); }
.release-layout { display: grid; grid-template-columns: minmax(13rem, 0.3fr) minmax(0, 1fr); align-items: start; gap: clamp(2rem, 6vw, 5rem); }
.release-version-list { display: grid; gap: 0.65rem; }
.release-version-list .eyebrow { margin-bottom: 0.35rem; }
.release-version-list a { display: grid; padding: 0.9rem 1rem; border: 1px solid var(--line); border-radius: 0.5rem; color: var(--navy); background: var(--white); text-decoration: none; }
.release-version-list a:hover { border-color: var(--blue); }
.release-version-list a[aria-current="page"] { color: var(--white); background: var(--navy); border-color: var(--navy); }
.release-version-list small { color: inherit; opacity: 0.72; }
.release-entry { min-height: 24rem; padding: clamp(1.5rem, 5vw, 3rem); border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); box-shadow: var(--shadow); }
.release-entry-heading { display: flex; align-items: start; justify-content: space-between; gap: 1.5rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--line); }
.release-status { display: inline-flex; padding: 0.4rem 0.7rem; border-radius: 999px; color: var(--blue-dark); background: #e8f3fb; font-size: 0.78rem; font-weight: 800; white-space: nowrap; }
.release-empty-state { max-width: 35rem; padding: clamp(3rem, 8vw, 6rem) 0; }
.release-empty-state p { color: var(--muted); }

.cta-panel { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 2rem; padding: clamp(2rem, 5vw, 4rem); border-radius: var(--radius); color: var(--white); background: var(--blue); }
.cta-panel h2 { color: var(--white); }
.cta-panel p { max-width: 42rem; margin: 0; color: #e9f4fb; }
.cta-panel .button { color: var(--navy); background: var(--white); border-color: var(--white); }

.contact-form { max-width: 52rem; display: grid; gap: 1rem; padding: clamp(1.25rem, 4vw, 2.25rem); }
.contact-form p { display: grid; gap: 0.4rem; margin: 0; }
.contact-form input:not([type="checkbox"]), .contact-form select, .contact-form textarea { width: 100%; padding: 0.8rem; border: 1px solid #aebdc7; border-radius: 0.4rem; color: var(--ink); background: var(--white); }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { outline: 3px solid rgba(40, 121, 188, 0.25); border-color: var(--blue); }
.contact-form button:disabled { cursor: not-allowed; opacity: 0.55; }
.contact-form small { color: var(--muted); }
.honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.form-message { max-width: 52rem; margin-bottom: 1rem; padding: 1rem 1.2rem; border-radius: 0.45rem; }
.form-message.success { border: 1px solid #4e9264; color: #174d2a; background: #eef9f1; }
.form-message.error { border: 1px solid #bd6565; color: #6c2020; background: #fff2f2; }
.form-message.estimate-summary { border: 1px solid rgba(40, 121, 188, 0.35); color: var(--navy); background: #eef7fd; }
.estimate-layout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(18rem, 0.75fr); align-items: start; gap: clamp(1.5rem, 4vw, 3rem); }
.estimate-form { display: grid; gap: 1.4rem; padding: clamp(1.25rem, 4vw, 2.25rem); }
.estimate-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.estimate-fields p { display: grid; align-content: start; gap: 0.45rem; margin: 0; }
.estimate-fields label { color: var(--navy); }
.estimate-fields label span { color: var(--muted); font-size: 0.86rem; font-weight: 500; }
.estimate-fields input { width: 100%; padding: 0.8rem; border: 1px solid #aebdc7; border-radius: 0.4rem; color: var(--ink); background: var(--white); }
.estimate-fields input:focus { outline: 3px solid rgba(40, 121, 188, 0.25); border-color: var(--blue); }
.estimate-status { min-height: 1.5em; margin: 0; color: var(--navy); font-weight: 650; }
.estimate-location { min-width: 0; margin: 0; padding: 0; border: 0; }
.estimate-location legend { margin-bottom: 0.45rem; color: var(--navy); font-weight: 750; }
.estimate-location > p { margin-bottom: 0.8rem; color: var(--muted); }
.estimate-map { width: 100%; height: 24rem; overflow: hidden; border: 1px solid #aebdc7; border-radius: 0.55rem; background: #dce7ed; }
.estimate-location .map-selection { margin: 0.65rem 0 0; color: var(--navy); font-size: 0.9rem; font-weight: 650; }
.estimate-result { padding: clamp(1.4rem, 4vw, 2.25rem); border-radius: var(--radius); color: var(--white); background: var(--navy); box-shadow: var(--shadow); }
.estimate-result .eyebrow { color: #8dc7f3; }
.estimate-price { margin: 0.5rem 0 0; font-size: clamp(2.4rem, 6vw, 4rem); line-height: 1; }
.estimate-result > p { color: rgba(255,255,255,0.82); }
.estimate-result dl { display: grid; gap: 0; margin: 1.5rem 0; }
.estimate-result dl div { display: flex; justify-content: space-between; gap: 1rem; padding: 0.7rem 0; border-top: 1px solid rgba(255,255,255,0.16); }
.estimate-result dt { color: rgba(255,255,255,0.7); }
.estimate-result dd { margin: 0; text-align: right; font-weight: 750; }
.estimate-result .estimate-disclaimer { font-size: 0.86rem; }

.site-footer { padding-top: 4rem; color: #b9cad5; background: #091c2a; }
.footer-grid { display: grid; grid-template-columns: 2fr repeat(3, 1fr); gap: 3rem; }
.brand-footer { margin-bottom: 1.25rem; color: var(--white); }
.brand-footer img { width: auto; height: 4rem; border-radius: 0.25rem; }
.brand-footer:hover { color: var(--white); }
.footer-grid h2 { color: var(--white); font-size: 0.85rem; letter-spacing: 0.08em; text-transform: uppercase; }
.footer-grid a:not(.brand) { display: block; margin: 0.45rem 0; color: #b9cad5; text-decoration: none; }
.footer-grid a:hover { color: var(--white); }
.legal-line { display: grid; grid-template-columns: auto 1fr; gap: 2rem; margin-top: 3rem; padding: 1.25rem 0; border-top: 1px solid rgba(255,255,255,0.14); font-size: 0.78rem; }
.legal-line p { margin: 0; }

@media (max-width: 64rem) {
    .nav-toggle { display: block; }
    .primary-nav { position: absolute; top: 100%; right: 1rem; left: 1rem; display: none; align-items: stretch; padding: 1rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); box-shadow: var(--shadow); }
    .primary-nav.is-open { display: block; }
    .primary-nav > a, .nav-group > button { width: 100%; display: block; padding: 0.75rem; text-align: left; }
    .nav-menu { position: static; min-width: 0; margin: 0 0 0.5rem 1rem; box-shadow: none; }
    .hero-grid { grid-template-columns: 1fr; }
    .hero-media img { min-height: 22rem; }
    .hero-diagram { min-height: 22rem; }
    .content-media-grid, .content-media-grid-reverse { grid-template-columns: 1fr; }
    .estimate-layout { grid-template-columns: 1fr; }
    .release-hero-grid, .release-layout { grid-template-columns: 1fr; }
    .card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .process-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .footer-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 42rem) {
    .card-grid, .process-grid, .product-gallery, .footer-grid, .legal-line, .cta-panel { grid-template-columns: 1fr; }
    .product-shot-featured { grid-column: auto; }
    .release-selector-controls { grid-template-columns: 1fr; }
    .estimate-fields { grid-template-columns: 1fr; }
    .release-entry-heading { display: grid; }
    .hero-diagram { display: none; }
    .hero-media img { min-height: 18rem; }
    .hero { background: linear-gradient(145deg, #f7fafb, #edf5fa); }
    .cta-panel { align-items: start; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}

.footer-link-button {
    display: block;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    cursor: pointer;
    text-align: left;
}

.cookie-banner {
    position: fixed;
    z-index: 1000;
    right: 1rem;
    bottom: 1rem;
    left: 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    max-width: 72rem;
    margin-inline: auto;
    padding: 1.25rem;
    border: 1px solid rgba(17, 54, 80, .18);
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 1rem 3rem rgba(17, 54, 80, .22);
    color: #113650;
}

.cookie-banner[hidden] { display: none; }
.cookie-banner p { margin: .35rem 0 0; }
.cookie-actions { display: flex; flex: 0 0 auto; gap: .75rem; }

@media (max-width: 700px) {
    .cookie-banner, .cookie-actions { align-items: stretch; flex-direction: column; }
}

.metrology-tool { display: grid; gap: 2rem; }
.metrology-upload-panel { max-width: 52rem; }
.file-drop { display: grid; gap: .45rem; margin: 1.25rem 0; padding: 2rem; border: 2px dashed #7fb7dd; border-radius: 1rem; background: #f2f8fc; cursor: pointer; text-align: center; transition: border-color .2s, background .2s; }
.file-drop:hover, .file-drop.is-dragging { border-color: #277abc; background: #e6f2fa; }
.file-drop-title { color: #092a43; font-weight: 750; }
.file-drop input { width: 100%; margin-top: .75rem; }
.privacy-note { margin-top: 1rem; color: #4c6577; font-size: .92rem; }
.estimate-status.is-error { color: #a00000; }
.metrology-results { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(20rem, .85fr); gap: 1.5rem; align-items: start; }
.metrology-results[hidden] { display: none; }
.metrology-costing[hidden] { display: none; }
.cad-preview { overflow: hidden; border: 1px solid #c9dce9; border-radius: 1rem; background: #eef6fb; box-shadow: 0 1rem 2.5rem rgba(9, 42, 67, .08); }
.cad-preview canvas { display: block; width: 100%; height: auto; }
.uploaded-file-list { display: grid; gap: .6rem; margin: 1rem 0; padding: 0; list-style: none; }
.uploaded-file-list:empty { display: none; }
.uploaded-file-list li { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem .85rem; border: 1px solid #c9dce9; border-radius: .65rem; background: #f7fbfe; overflow-wrap: anywhere; }
.uploaded-file-list .button-secondary { color: var(--navy) !important; background: var(--white); border-color: var(--navy); }
.uploaded-file-list .button-secondary:hover { color: var(--white) !important; background: var(--navy); }
.cad-preview > .card { border: 0; border-top: 1px solid #c9dce9; border-radius: 0; box-shadow: none; }
.measurement-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin: 1.25rem 0; }
.measurement-grid div { padding: .85rem; border-radius: .65rem; background: #eef6fb; }
.measurement-grid dt { color: #526b7d; font-size: .82rem; }
.measurement-grid dd { margin: .2rem 0 0; color: #092a43; font-weight: 750; }
.model-size-advice { margin: 1.25rem 0; padding: 1rem 1.1rem; border: 1px solid transparent; border-radius: .65rem; }
.size-status-green { color: #174d2a; border-color: #4e9264; background: #eef9f1; }
.size-status-orange { color: #6d4100; border-color: #d68a16; background: #fff6e5; }
.size-status-red { color: #6c2020; border-color: #bd6565; background: #fff2f2; }
@media (max-width: 800px) { .metrology-results { grid-template-columns: 1fr; } }
@media print {
  body:has([data-metrology-cost-result]:not([hidden])) * { visibility: hidden; }
  [data-metrology-cost-result]:not([hidden]), [data-metrology-cost-result]:not([hidden]) * { visibility: visible; }
  [data-metrology-cost-result]:not([hidden]) { position: absolute; inset: 0 auto auto 0; width: 100%; max-width: none; box-shadow: none; }
  [data-metrology-cost-result] .actions { display: none; }
}
