/* Lomax architectural system: shared by every public route. */
:root { --color-ink:#302922; --color-paper:#fff; --color-paper-bright:#fff; --color-line:#ded7cf; --color-line-dark:#756454; --color-glass:#eee7dd; --color-accent:#79583b; --color-accent-ink:#fff; --color-muted:#71685f; --color-muted-dark:#ded1c3; --color-focus:#9b6d40; --font-display:"Helvetica Neue",Arial,sans-serif; --font-body:"Helvetica Neue",Arial,sans-serif; --radius:10px; --radius-pill:999px; --rule-hair:1px; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; background:#fff; color:var(--color-ink); font:16px/1.5 var(--font-body); } button,input,select,textarea { font:inherit; } button,a,input { -webkit-tap-highlight-color:transparent; } a { color:inherit; text-underline-offset:4px; } img { display:block; max-width:100%; height:auto; } h1,h2,h3,p,figure { margin:0; } h1,h2,h3 { font-weight:400; } h1,h2 { text-wrap:balance; } [hidden] { display:none!important; } ::selection { background:#dbc6ae; color:#302922; } :focus-visible { outline:2px solid var(--color-focus); outline-offset:4px; } input,textarea { caret-color:#79583b; }
.visually-hidden { position:absolute!important; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; top:8px; left:8px; z-index:100; transform:translateY(-200%); padding:12px 20px; background:#fff; color:#302922; } .skip-link:focus { transform:none; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:16px; min-height:48px; padding:14px 24px; border:1px solid transparent; border-radius:99px; font-size:14px; line-height:1.2; text-decoration:none; cursor:pointer; transition:background 180ms ease,color 180ms ease; }
.button--ink { background:#302922; color:#fff; } .button--ink:hover { background:#79583b; } .button--light { background:#fff; color:#302922; } .button--light:hover { background:#e8ded0; } .button--back { background:none; border-color:#ded7cf; }
.page-shell { width:min(1180px,calc(100% - 64px)); margin-inline:auto; }
.brand { display:inline-flex; flex-direction:column; gap:7px; font-size:29px; letter-spacing:.24em; line-height:1; text-decoration:none; } .brand small { font-size:8px; letter-spacing:.18em; }
.global-nav { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:104px; padding:24px 4%; } .global-nav nav { display:flex; align-items:center; gap:28px; } .global-nav nav a { text-decoration:none; font-size:14px; padding-block:12px; }
.arch-heading { font-size:clamp(34px,3.5vw,50px); font-weight:300; letter-spacing:-.035em; line-height:1.12; }
.collection { padding-block:76px 80px; }
.collection-intro { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:end; margin-bottom:32px; }
.collection-intro h2 { max-width:530px; } .collection-intro p { max-width:470px; color:#71685f; line-height:1.7; font-size:15px; }
.product-gallery { display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:18px; }
.product-item { text-decoration:none; min-width:0; display:block; }
.product-photo { height:290px; overflow:hidden; border-radius:14px; background:#f0ece6; }
.product-photo img { width:100%; height:100%; object-fit:cover; transition:transform 500ms ease; }
.product-item--detail .product-photo img { object-fit:contain; padding:26px; mix-blend-mode:multiply; }
.product-label { display:flex; justify-content:space-between; align-items:center; padding-top:17px; gap:12px; } .product-label h3 { font-size:20px; font-weight:400; letter-spacing:-.02em; } .product-label span { display:grid; place-items:center; border:1px solid #ded7cf; width:34px; height:34px; border-radius:50%; }
.product-item > p { color:#71685f; font-size:13px; margin-top:5px; }
.collection-note { display:flex; gap:24px; align-items:center; justify-content:space-between; border-top:1px solid #ded7cf; padding-top:22px; margin-top:30px; font-size:14px; color:#71685f; } .collection-note a { color:#302922; white-space:nowrap; }
.place-section { background:#514032; color:#fff; padding-block:64px; }
.place-layout { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:start; } .place-copy h2 { max-width:430px; } .place-copy > p { color:#e1d3c5; max-width:430px; margin-top:22px; font-size:15px; line-height:1.7; } .place-copy .button { margin-top:26px; }
.concerns { border-top:1px solid #9d8872; } .concerns details { border-bottom:1px solid #9d8872; } .concerns summary { cursor:pointer; min-height:70px; padding:22px 32px 22px 0; font-size:18px; position:relative; list-style:none; } .concerns summary::-webkit-details-marker { display:none; } .concerns summary::after { content:'+'; position:absolute; right:3px; top:20px; font-weight:300; font-size:24px; } .concerns details[open] summary::after { content:'−'; } .concerns p { padding:0 28px 23px 0; max-width:470px; color:#e1d3c5; font-size:14px; line-height:1.7; }
.closing-section { padding-block:66px; display:flex; justify-content:space-between; align-items:center; gap:40px; } .closing-section h2 { max-width:660px; } .closing-section p { color:#71685f; font-size:14px; margin-top:16px; max-width:540px; } .closing-section .button { flex-shrink:0; }
.global-footer { background:#f1ebe3; padding:38px 4% 24px; } .footer-top { display:flex; justify-content:space-between; gap:35px; align-items:center; padding-bottom:30px; } .footer-top p { color:#71685f; font-size:14px; } .footer-bottom { display:flex; justify-content:space-between; gap:24px; border-top:1px solid #d8cabb; padding-top:20px; color:#71685f; font-size:12px; } .footer-bottom nav { display:flex; gap:24px; } .footer-bottom a { text-decoration:none; }
.document-page { min-height:calc(100svh - 280px); padding-block:55px 80px; } .document-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:80px; } .document-layout h1 { font-size:clamp(40px,5vw,64px); font-weight:300; letter-spacing:-.035em; line-height:1.1; } .document-content { max-width:640px; } .document-content p { line-height:1.8; color:#71685f; } .document-content .notice { background:#f1ebe3; padding:24px; border-radius:12px; margin-bottom:25px; } .document-content .notice strong { display:block; color:#302922; margin-bottom:8px; font-weight:500; } .document-content .button { margin-top:24px; }
@media(hover:hover) { .product-item:hover img { transform:scale(1.035); } .product-item:hover .product-label span { background:#302922; color:#fff; border-color:#302922; } }
@media(max-width:900px) { .product-photo { height:230px; } .collection-intro,.place-layout { gap:32px; } .document-layout { gap:35px; } }
@media(max-width:650px) { .page-shell { width:calc(100% - 36px); } .global-nav { padding:22px 20px; min-height:82px; } .global-nav nav > a:not(.button) { display:none; } .brand { font-size:24px; } .global-nav nav .button { padding:12px 18px; font-size:12px; } .collection { padding-block:44px; } .collection-intro,.place-layout,.document-layout { grid-template-columns:1fr; gap:22px; } .collection-intro { margin-bottom:26px; } .product-gallery { grid-template-columns:1fr 1fr; gap:24px 14px; } .product-item:first-child { grid-column:1/-1; } .product-photo { height:180px; } .product-item:first-child .product-photo { height:260px; } .product-label h3 { font-size:17px; } .product-label span { width:28px; height:28px; } .product-item > p { font-size:12px; } .product-item--detail .product-photo img { padding:16px; } .collection-note { align-items:flex-start; flex-direction:column; gap:12px; } .place-section { padding-block:42px; } .place-layout { gap:35px; } .closing-section { padding-block:44px; flex-direction:column; align-items:flex-start; gap:22px; } .global-footer { padding:30px 20px 24px; } .footer-top { align-items:flex-start; } .footer-top p { max-width:130px; text-align:right; font-size:12px; } .footer-bottom { font-size:10px; } .footer-bottom nav { gap:14px; } .document-page { padding-block:35px 55px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; animation:none!important; } }

/* Native estimator form primitives. */
.estimator-step[hidden] { display: none; }
.estimator-step h2:focus { outline: 0; }
.estimator-step h2 { max-width: 16ch; margin-bottom: 0.75rem; font-size: clamp(2.2rem, 5vw, 4.7rem); letter-spacing: -0.055em; line-height: 0.98; overflow-wrap: anywhere; }
.step-help { max-width: 38rem; margin-bottom: 1.75rem; color: var(--color-muted); }
.choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
.choice-card { position: relative; min-width: 0; }
.choice-card input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.choice-card label { min-height: 5.25rem; display: flex; flex-direction: column; justify-content: center; gap: 0.35rem; padding: 1rem; border: var(--rule-hair) solid var(--color-line); cursor: pointer; }
.choice-card label:hover { border-color: var(--color-ink); }
.choice-card input:checked + label { background: var(--color-ink); border-color: var(--color-ink); color: var(--color-paper-bright); }
.choice-card input:focus-visible + label { outline: 2px solid var(--color-focus); outline-offset: 3px; }
.choice-card strong { font-family: var(--font-display); font-size: 1.15rem; font-weight: 500; }
.choice-card span { color: var(--color-muted); font-size: 0.86rem; }
.choice-card input:checked + label span { color: var(--color-muted-dark); }
.form-stack { display: grid; gap: 1.6rem; }
.form-stack--contact { margin-top: 1.5rem; }
.form-group { display: grid; gap: 0.65rem; }
.form-group > legend, .form-group > label, .field-label { font-family: var(--font-display); font-size: 0.83rem; font-weight: 700; letter-spacing: 0.04em; }
.form-group > legend { margin-bottom: 0.2rem; }
.form-group small, .field-help { color: var(--color-muted); font-size: 0.82rem; }
.field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.field { display: grid; gap: 0.45rem; }
.field input, .field select { width: 100%; min-height: 2.9rem; padding: 0.65rem 0.75rem; background: var(--color-paper-bright); border: var(--rule-hair) solid var(--color-line); border-radius: var(--radius); outline: 2px solid transparent; outline-offset: 1px; color: var(--color-ink); }
.field input:focus, .field select:focus { border-color: var(--color-ink); outline-color: var(--color-focus); }
.check-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem 1rem; }
.check { display: flex; align-items: center; gap: 0.55rem; min-height: 2.75rem; color: var(--color-ink); }
.check input { width: 1.1rem; height: 1.1rem; accent-color: var(--color-accent); }
.photo-drop { display: grid; gap: 1rem; padding: 1.25rem; border: var(--rule-hair) dashed var(--color-line-dark); background: var(--color-paper); }
.photo-drop input[type="file"] { width: 100%; max-width: 100%; }
.photo-status { min-height: 1.4rem; color: var(--color-muted); font-size: 0.86rem; }
.photo-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.65rem; }
.photo-item { position: relative; min-width: 0; overflow: hidden; border: var(--rule-hair) solid var(--color-line); background: var(--color-paper-bright); }
.photo-item img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.photo-item button { position: absolute; top: 0.35rem; right: 0.35rem; width: 2rem; height: 2rem; display: grid; place-items: center; border: 0; border-radius: var(--radius-pill); background: var(--color-ink); color: var(--color-paper-bright); cursor: pointer; }
.summary { display: grid; gap: 1rem; padding: 1.25rem; background: var(--color-glass); }
.summary h3 { font-size: 1.5rem; }
.summary dl { display: grid; grid-template-columns: minmax(8rem, 0.5fr) minmax(0, 1fr); gap: 0.45rem 1rem; margin: 0; }
.summary dt { color: var(--color-muted); font-family: var(--font-display); font-size: 0.78rem; text-transform: uppercase; }
.summary dd { margin: 0; }
.summary .summary-list { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.summary .summary-list span { padding: 0.3rem 0.5rem; background: color-mix(in srgb, var(--color-paper-bright) 62%, transparent); font-size: 0.84rem; }
.estimator-actions { display: flex; justify-content: space-between; gap: 1rem; margin-top: 2rem; }
.button--back { border-color: var(--color-line); background: transparent; color: var(--color-ink); }
.button--back:hover { border-color: var(--color-ink); }
.form-error { min-height: 1.4rem; margin-top: 1rem; color: var(--color-accent); font-size: 0.9rem; }
.estimator-footnote { margin-top: 1.5rem; color: var(--color-muted); font-size: 0.8rem; }

@media(max-width:600px) { .field-grid,.check-grid { grid-template-columns:1fr; } .photo-list { grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* Copy treatment: existing architectural palette and content frame. */
.copy-hero { text-align:center; padding-top:30px; }
.copy-hero h1 { max-width:900px; margin:auto; font-size:clamp(30px,3.4vw,49px); line-height:1.08; font-weight:300; letter-spacing:-.035em; text-wrap:balance; }
.copy-hero p { max-width:690px; margin:14px auto 10px; line-height:1.5; font-size:15px; }
.copy-hero a { font-size:14px; text-decoration:underline; }
.homepage-estimator .estimator-main { padding-top:24px; }
.homepage-estimator .estimator-step h2 { font-size:clamp(28px,3vw,42px); }
.copy-section { padding-block:42px; border-bottom:1px solid #ded7cf; }
.copy-section > p { max-width:760px; line-height:1.7; margin-top:18px; color:#71685f; }
.copy-section a { text-underline-offset:4px; }
.copy-section > p a { text-decoration:underline; color:#302922; }
.copy-section h2 { max-width:850px; }
.copy-rows { margin-top:24px; }
.copy-rows > a { display:grid; grid-template-columns:1fr 2fr; gap:24px; padding:20px 0; border-bottom:1px solid #ded7cf; }
.copy-rows h3,.copy-process h3 { font-size:20px; font-weight:400; }
.copy-rows p,.copy-process p { line-height:1.6; color:#71685f; }
.copy-process { display:grid; grid-template-columns:repeat(5,1fr); gap:28px; margin:28px 0 0; padding-left:20px; }
.copy-process h3 { margin-bottom:12px; }
.copy-faq details { border-bottom:1px solid #ded7cf; padding:18px 0; }
.copy-faq summary { cursor:pointer; font-size:18px; }
.copy-faq details p { line-height:1.7; max-width:760px; margin-top:14px; color:#71685f; }
.copy-service { max-width:900px; padding-block:45px; }
.copy-service h1 { font-size:clamp(36px,5vw,64px); line-height:1.08; font-weight:300; letter-spacing:-.04em; text-wrap:balance; }
.copy-service .copy-section h2 { font-size:30px; font-weight:300; line-height:1.2; }
.copy-service > p { font-size:18px; line-height:1.7; margin-top:24px; }
.copy-service .button { margin-top:24px; }
@media(max-width:760px) { .copy-process { grid-template-columns:1fr 1fr; } .copy-rows > a { grid-template-columns:1fr; gap:10px; } .copy-section { padding-block:32px; } .copy-hero { padding-top:14px; } .copy-hero p { font-size:14px; } }
@media(max-width:400px) { .copy-process { grid-template-columns:1fr; } }

/* Shared supporting pages and complete site directory. */
.content-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 28px; margin-top:20px; }
.content-links a { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 0; border-bottom:1px solid var(--color-line,#ded7cf); text-decoration:none; line-height:1.4; }
.content-links a:hover { text-decoration:underline; text-underline-offset:4px; }
.content-actions { display:flex; align-items:center; flex-wrap:wrap; gap:24px; padding-block:24px; }
.content-actions .button { margin:0; }
.content-image { margin:30px 0 0; background:#f1ebe3; }
.content-image img { width:100%; max-height:360px; object-fit:contain; }
.customer-review { margin:28px 0; padding:24px 0; border-top:1px solid #ded7cf; }
.customer-review blockquote { margin:0; max-width:760px; font-size:clamp(18px,2vw,24px); line-height:1.6; }
.customer-review figcaption { margin-top:16px; color:#71685f; font-size:14px; }
.content-footer { display:grid; grid-template-columns:1.3fr 1fr .7fr .8fr; gap:32px; }
.content-footer h2 { font-size:16px; font-weight:500; }
.content-footer p { margin-block:16px; font-size:14px; line-height:1.6; }
.content-footer .content-links { display:block; margin-top:12px; }
.content-footer .content-links a { font-size:14px; padding:10px 0; border:0; }
.content-footer .content-links span { display:none; }
@media(max-width:760px) { .content-footer { grid-template-columns:1fr 1fr; gap:30px 20px; } }
@media(max-width:440px) { .content-links { grid-template-columns:1fr; } .content-footer { grid-template-columns:1fr; } .content-footer .content-links { display:grid; grid-template-columns:1fr 1fr; gap:0 16px; } }

/* Legacy media: existing Lomax palette, photo-led introductions and product specimens. */
.media-service { max-width:1180px; }
.legacy-intro { display:grid; grid-template-columns:1.05fr 1fr; gap:40px; align-items:center; padding-bottom:32px; }
.legacy-intro h1 { font-size:clamp(36px,4vw,56px); }
.legacy-intro p { font-size:18px; line-height:1.65; margin-top:22px; }
.legacy-intro figure { align-self:stretch; min-height:320px; }
.legacy-intro img { width:100%; height:100%; max-height:520px; object-fit:cover; border-radius:10px; }
.legacy-feature { display:grid; grid-template-columns:1.1fr 1fr; gap:40px; align-items:center; }
.legacy-feature p { color:var(--color-muted); line-height:1.7; margin-top:18px; }
.legacy-feature img { width:100%; height:300px; object-fit:cover; border-radius:10px; }
.legacy-team { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-block:28px; }
.legacy-team figure { display:flex; align-items:center; gap:20px; }
.legacy-team img { width:104px; height:104px; flex-shrink:0; object-fit:contain; }
.legacy-team h3 { font-size:18px; line-height:1.25; }
.legacy-team figcaption p { font-size:13px; color:var(--color-muted); line-height:1.5; margin-top:6px; }
.legacy-products { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:24px; }
.legacy-products figure { background:#f5f2ee; border-radius:10px; padding:20px; text-align:center; }
.legacy-products img { width:100%; height:230px; object-fit:contain; mix-blend-mode:multiply; }
.legacy-products figcaption { margin-top:16px; font-size:16px; }
@media(max-width:900px) {
 .legacy-intro,.legacy-feature { gap:24px; }
 .legacy-team figure { flex-direction:column; align-items:flex-start; gap:14px; }
 .legacy-products img { height:180px; }
}
@media(max-width:650px) {
 .legacy-intro,.legacy-feature { grid-template-columns:1fr; }
 .legacy-intro figure { min-height:0; }
 .legacy-intro img { height:250px; }
 .legacy-feature img { height:230px; }
 .legacy-team { grid-template-columns:1fr; gap:20px; }
 .legacy-team figure { flex-direction:row; align-items:center; }
 .legacy-team img { width:88px; height:88px; }
 .legacy-products { grid-template-columns:1fr; }
 .legacy-products img { height:220px; }
}
