/* Modern / classic design direction. Original burgundy remains #5F000E. */
:root { --ink:#23272c; --muted:#616973; --paper:#f1f3f5; --line:#dce1e5; --display:'DM Sans',Arial,sans-serif; }
body { background:#fff; font-family:'DM Sans',Arial,sans-serif; -webkit-font-smoothing:antialiased; }
p { font-weight:500; }
.skip-link { position:fixed; top:12px; left:12px; z-index:2000; background:white; color:var(--wine); padding:12px 20px; transform:translateY(-200%); }
.skip-link:focus { transform:translateY(0); }
h1,h2 { font-family:var(--display); font-weight:600; letter-spacing:-.035em; line-height:1.08; text-wrap:balance; }
h1 { font-weight:700; }
h2 { font-size:clamp(2.4rem,4.2vw,3.65rem); }
h3,h4 { font-weight:600; letter-spacing:-.025em; }
.container { max-width:1248px; padding:0 32px; }
.eyebrow { font-size:.68rem; font-weight:600; line-height:1.5; letter-spacing:.19em; margin-bottom:22px; }
.section,.service-content { padding:clamp(64px,7.5vw,96px) 0; }
.two-col > *,.cards-grid > *,.process-layout > *,.brands-heading > *,.about-layout > *,.about-values > *,.contact-grid > *,.footer-main > * { min-width:0; }
.col-text p,.about-copy p,.process-grid p,.accordion-body { max-width:60ch; text-wrap:pretty; }
.card-body h3,.process-grid h3,.service-links h3 { text-wrap:balance; }
.section-title { max-width:820px; margin-bottom:48px; }
.btn,.btn-primary,.hero .btn-primary,.cta-banner .btn-primary {
 display:inline-flex; align-items:center; justify-content:center; min-height:50px;
 padding:14px 26px; border:1px solid var(--wine); border-radius:2px;
 font-family:'DM Sans',Arial,sans-serif; font-size:.88rem; font-weight:600;
 background:var(--wine); color:white; box-shadow:none;
 transition:background .2s,color .2s,border-color .2s,transform .2s;
}
.btn:hover { background:#790019; border-color:#790019; color:white; transform:translateY(-2px); }
.text-link { display:inline-block; font-size:.88rem; font-weight:600; padding-bottom:7px; border-bottom:1px solid var(--wine); color:var(--wine); }
.text-link:hover { border-bottom-width:2px; }

/* Full-width navigation and the approved 35% scroll reduction. */
.navbar,.navbar.scrolled { padding:0 max(32px,calc((100% - 1184px)/2)); }
.navbar:not(.header-ready),.navbar:not(.header-ready) .navbar-brand img { transition:none; }
.navbar-nav { gap:6px; }
.navbar-nav .nav-link,.navbar-nav .nav-link.active { padding:12px 15px; border-radius:0; }
.navbar-nav .nav-link,.navbar-nav .nav-link.active { font-weight:600; }
.navbar-nav .nav-link:hover { background:#ffffff0d; }
.navbar-phone { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:42px; padding:8px 14px; border:1px solid white; border-radius:3px; background:white; color:var(--wine); font-size:.84rem; font-weight:700; line-height:1.2; white-space:nowrap; transition:background .2s,color .2s; }
.navbar-phone .phone-label,.navbar-phone .phone-number { display:inline; }
.navbar-phone svg { width:18px; height:18px; flex:0 0 18px; }
.navbar-phone:hover { background:#f0f2f4; color:var(--wine); }
.navbar-phone:focus-visible { outline:3px solid white; outline-offset:3px; }
.dropdown-menu { border-radius:2px; min-width:280px; box-shadow:0 16px 40px #11182024; }
.dropdown-menu a { padding:11px 14px; border-radius:0; font-size:.88rem; }

/* Photographic opening with classic, quietly expressive typography. */
.hero { height:min(690px,77svh); min-height:580px; }
.hero-slide { object-position:center 58%; }
.hero-slide:first-child { object-position:50% 48%; }
.hero-slide:nth-child(2) { object-position:50% 48%; }
.hero-slide:nth-child(3) { object-position:50% 55%; }
.hero-slide:nth-child(4) { object-position:50% 50%; }
.hero-overlay {
 background:
  linear-gradient(0deg,rgba(14,20,23,.76),rgba(14,20,23,.58) 76px,transparent 160px),
  linear-gradient(90deg,rgba(14,20,23,.78),rgba(14,20,23,.3) 65%,rgba(14,20,23,.12));
}
.hero-content { width:1248px; max-width:1248px; padding:136px 32px 74px; }
.hero .eyebrow { color:#fff; margin-bottom:23px; }
.hero-content h1 { max-width:880px; font-size:clamp(3.2rem,5.6vw,5rem); font-weight:700; line-height:1.05; letter-spacing:-.035em; margin-bottom:22px; }
.hero-content p { max-width:46ch; margin:0 0 28px; font-size:1.02rem; line-height:1.75; color:#f1f3f5; text-wrap:pretty; }
.hero-actions { align-items:center; gap:24px; }
.hero .btn-primary { color:var(--wine); background:white; border-color:white; }
.hero .btn-primary:hover { background:#e9edf1; }
.hero .btn-outline-light { color:white; background:transparent; border:0; border-bottom:1px solid #ffffff80; border-radius:0; padding:10px 0; min-height:42px; }
.hero-controls {
 position:absolute;
 right:max(32px,calc((100% - 1184px)/2));
 bottom:30px;
 z-index:3;
 align-items:center;
 color:white;
}
.hero-controls:not([hidden]) { display:flex; }
.hero-controls button {
 display:grid;
 place-items:center;
 width:44px;
 height:44px;
 padding:0;
 border:0;
 background:transparent;
 color:inherit;
 font:inherit;
 cursor:pointer;
}
.hero-controls button:hover { box-shadow:inset 0 -1px #ffffff90; }
.hero-controls button:focus-visible { outline:2px solid white; outline-offset:-3px; }
.hero-controls button svg { width:18px; height:18px; }
.hero-photo-count {
 min-width:42px;
 text-align:center;
 font-size:.81rem;
 font-weight:600;
 font-variant-numeric:tabular-nums;
}

/* Editorial introduction and a signature photo caption. */
.trust-strip { background:var(--paper); }
.trust-strip .container { padding-top:24px; padding-bottom:24px; border-bottom:0; }
.trust-strip .container>div { display:flex; align-items:center; justify-content:center; min-height:40px; padding:0 20px; border-left:1px solid #5f000e40; text-align:center; }
.trust-strip .container>div:first-child { padding:0 20px; border-left:0; }
.trust-strip h2 { font-family:'DM Sans',Arial,sans-serif; font-size:1.08rem; font-weight:600; line-height:1.4; letter-spacing:-.015em; margin:0; color:var(--wine); }
.trust-strip + .section { padding-top:clamp(64px,7.5vw,96px); }
.two-col { gap:clamp(40px,6vw,72px); }
.col-text h2 { margin-bottom:26px; }
.col-text p { max-width:54ch; }
.col-text .btn,.col-text .text-link { margin-top:16px; }
.col-img img,.faq-img img { height:auto; aspect-ratio:4 / 5; max-height:600px; border-radius:0; object-fit:cover; }
.intro-section .two-col { grid-template-columns:1fr 1.05fr; }
.intro-section .col-text { max-width:480px; }
.intro-section .col-img { position:relative; padding-bottom:30px; }
.intro-section .col-img img { height:auto; aspect-ratio:1 / 1; max-height:530px; object-position:50% 52%; }
.photo-caption { position:absolute; right:26px; bottom:0; background:var(--wine); color:white; padding:24px 30px; max-width:270px; }
.photo-caption strong { display:block; font:500 1.65rem/1.18 var(--display); letter-spacing:-.02em; }
.photo-caption span { display:block; margin-top:9px; font-size:.64rem; text-transform:uppercase; letter-spacing:.14em; color:#ffffffbf; }
.intro-note { display:grid; gap:8px; border-top:1px solid var(--line); margin-top:28px; padding-top:20px; font-size:.85rem; color:var(--muted); }
.intro-note a { color:var(--wine); font-weight:500; text-decoration:underline; text-underline-offset:4px; text-decoration-color:#5f000e60; }
.intro-note a:hover { text-decoration-color:var(--wine); }

/* Photographic service panels without the boxed-card look. */
.services-heading { display:flex; justify-content:space-between; gap:48px; align-items:end; max-width:none; }
.services-heading>p { max-width:340px; margin:0 0 3px; color:var(--muted); font-size:.94rem; line-height:1.7; }
.cards-grid { gap:28px; grid-template-columns:repeat(3,minmax(0,1fr)); }
.card { background:transparent; border:0; border-radius:0; overflow:visible; }
.card:hover { box-shadow:none; transform:none; }
.card-img { height:auto; aspect-ratio:4 / 5; border-radius:0; transition:filter .3s; object-position:50% 52%; }
.card-img[src$="Cordrey-Fencing-04.webp"] { object-position:50% 60%; }
.card-img[src$="Cordrey-Fencing-05.webp"] { object-position:50% 44%; }
.card-img[src$="deer-fence.webp"] { object-position:52% 42%; }
.card-img[src$="project-deer-fence.webp"] { object-position:50% 58%; }
.card:hover .card-img { filter:brightness(1.06); }
.card-body { padding:22px 0 0; border-top:0; }
.card-index { font-size:.64rem; color:var(--wine); text-transform:uppercase; letter-spacing:.16em; display:block; margin-bottom:14px; }
.card-body h3 { font:700 1.8rem/1.13 var(--display); letter-spacing:-.035em; margin-bottom:14px; }
.card-body p { font-size:.91rem; line-height:1.7; margin-bottom:20px; max-width:34ch; }
.card-body .btn { min-height:0; padding:0 0 7px; font-size:.83rem; }
.card-body .btn:hover { transform:none; border-color:var(--wine); background:none; color:var(--wine); }
#services { padding-bottom:56px; }
.additional-services { padding:0 0 clamp(64px,7.5vw,96px); }
.additional-services .container { border-top:1px solid var(--line); padding-top:34px; }
.additional-services .eyebrow { margin-bottom:28px; }
.service-links { gap:28px; }
.service-links a { border-top:0; padding:0 22px 0 0; display:flex; flex-direction:column; align-items:flex-start; }
.service-links a>span { display:none; }
.service-links h3 { font-size:1.22rem; font-weight:700; margin:0 0 12px; }
.service-links p { font-size:.86rem; }
.service-links b { font-size:.82rem; font-weight:600; margin-top:auto; }
#services { scroll-margin-top:90px; }

/* A compact selection of Zach's project photographs. */
.project-gallery { padding-top:clamp(64px,7vw,88px); }
.project-gallery-heading { display:block; max-width:none; margin-bottom:36px; }
.project-gallery-heading h2 { max-width:650px; }
.project-gallery-heading p { max-width:60ch; margin:20px 0 0; color:var(--muted); font-size:.94rem; line-height:1.7; }
.project-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px 24px; }
.project-grid figure { margin:0; min-width:0; }
.project-grid img { display:block; width:100%; height:auto; aspect-ratio:4 / 3; object-fit:cover; background:var(--paper); }
.project-grid img[src$="project-cross-buck-decorative-fence.webp"] { object-position:50% 35%; }
.project-grid figcaption { padding:12px 0 0; border-top:0; font-size:.82rem; font-weight:600; letter-spacing:.015em; }

/* Full, uncropped project photos in a keyboard-accessible modal. */
html { scrollbar-gutter:stable; }
html.gallery-is-open,html.gallery-is-open body { overflow:hidden; }
.gallery-trigger { display:block; position:relative; cursor:zoom-in; }
.photo-expand { position:absolute; right:12px; bottom:12px; display:grid; place-items:center; width:36px; height:36px; border-radius:50%; color:white; background:#1c2228d9; pointer-events:none; }
.photo-expand svg { width:20px; height:20px; }
.gallery-lightbox { margin:0; padding:64px clamp(24px,5vw,80px) 88px; width:100%; height:100svh; max-width:none; max-height:none; border:0; border-radius:0; background:transparent; color:#fff; box-shadow:none; }
.gallery-lightbox[open] { display:flex; flex-direction:column; }
.gallery-lightbox::backdrop { background:rgba(10,15,19,.88); }
.lightbox-toolbar { position:absolute; top:12px; right:16px; z-index:1; }
.gallery-lightbox button { min-height:44px; padding:8px 16px; border:1px solid #ffffff55; border-radius:4px; color:#fff; background:#101519d9; font:600 .9rem/1.4 var(--display); cursor:pointer; }
.gallery-lightbox button:hover { background:#ffffff17; border-color:#fff; }
.gallery-lightbox button:focus-visible { outline:3px solid white; outline-offset:3px; }
.lightbox-close { display:flex; align-items:center; gap:12px; }
.lightbox-close span { font-size:1.6rem; line-height:1; }
.lightbox-figure { margin:0; min-width:0; min-height:0; flex:1; display:grid; grid-template-rows:minmax(0,1fr) auto; }
.lightbox-stage { min-width:0; min-height:0; display:flex; align-items:center; justify-content:center; }
.lightbox-image { width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; border-radius:0; }
.lightbox-caption { display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding-top:14px; font-size:.95rem; font-weight:500; }
.lightbox-count { flex-shrink:0; color:#b6c0ca; font-size:.8rem; }
.lightbox-controls { position:absolute; bottom:12px; left:50%; transform:translateX(-50%); display:flex; justify-content:center; gap:12px; }
@media(max-width:600px) {
 .gallery-lightbox { padding:64px 20px 80px; }
 .lightbox-caption { font-size:.85rem; }
}
@media(prefers-reduced-motion:no-preference) {
 .gallery-lightbox[open] { animation:lightbox-appear .18s ease-out; }
 @keyframes lightbox-appear { from { opacity:0; } to { opacity:1; } }
}

/* A change of pace: the process as a two-column editorial spread. */
.process-section { background:#242b31; color:#dbe0e4; padding:clamp(64px,7.5vw,96px) 0; }
.process-layout { display:grid; grid-template-columns:1fr 1fr; gap:clamp(48px,7vw,88px); align-items:start; }
.process-section .eyebrow { color:#c6cdd4; }
.process-section h2 { color:#fff; }
.process-section .section-title { margin-bottom:0; }
.process-section .section-title p { max-width:420px; color:#c2c9d0; margin:28px 0; font-size:.95rem; }
.process-section .btn { background:transparent; border-color:#ffffff70; color:#fff; margin-top:8px; }
.process-section .btn:hover { background:#ffffff12; border-color:#fff; }
.process-grid { grid-template-columns:1fr; gap:28px; margin:0; }
.process-grid>div { border-top:1px solid #ffffff30; padding-top:23px; }
.step-number { color:#bbc3cb; font-size:.66rem; letter-spacing:.09em; text-transform:uppercase; }
.process-grid h3 { color:#fff; font:600 1.8rem/1.2 var(--display); margin:13px 0; }
.process-grid p { color:#c2c9d0; font-size:.9rem; margin-bottom:0; }

/* Practical answers and a burgundy testimonial statement. */
.faq-section { gap:clamp(48px,6vw,72px); align-items:start; grid-template-columns:.9fr 1.1fr; }
.faq-img img { height:auto; aspect-ratio:4 / 5; object-position:42% 52%; }
.faq-content h2 { margin-bottom:24px; }
.faq-content>p { font-size:.92rem; color:var(--muted); }
.accordion-item { border-color:var(--line); }
.accordion-btn { padding:20px 0; gap:22px; font-size:.94rem; }
.accordion-btn .chevron { font-family:Arial,sans-serif; font-size:1.1rem; flex:0 0 18px; text-align:center; }
.accordion-btn.open .chevron { transform:rotate(45deg); }
.accordion-body,.accordion-body.open { display:grid; font-size:.9rem; line-height:1.8; padding:0; }
.accordion-body { grid-template-rows:0fr; opacity:0; visibility:hidden; transition:grid-template-rows .32s ease,opacity .22s ease,visibility 0s .32s; }
.accordion-body.open { grid-template-rows:1fr; opacity:1; visibility:visible; transition:grid-template-rows .32s ease,opacity .22s ease,visibility 0s; }
.accordion-inner { min-height:0; overflow:hidden; }
.accordion-copy { padding-bottom:23px; }
.testimonial-section { background:var(--wine); padding:82px 0; }
.testimonial-section .eyebrow { color:#e4cfd3; margin-bottom:30px; }
.testimonial-card { max-width:860px; padding:0; border-radius:0; }
.testimonial-icon { display:none; }
.testimonial-quote { font:400 clamp(1.65rem,2.8vw,2.5rem)/1.42 var(--display); letter-spacing:-.025em; color:#fff; margin-bottom:27px; text-wrap:pretty; }
.testimonial-author { font-size:.78rem; color:#e4cfd3; font-weight:400; letter-spacing:.06em; }
.testimonial-nav { gap:10px; margin-top:30px; }
.testimonial-nav button { width:42px; height:42px; border:1px solid #ffffff55; color:#fff; }
.testimonial-nav button:hover { background:#ffffff18; }

/* Large manufacturer marks on an uncluttered white field. */
.brands-section { padding:56px 0 44px; text-align:left; }
.brands-heading { display:block; max-width:680px; margin-bottom:24px; }
.brands-heading .eyebrow { margin-bottom:12px; }
.brands-section h2 { font-size:clamp(2rem,3.2vw,2.6rem); margin:0 0 14px; }
.brands-section p { font-size:.95rem; margin:0; max-width:62ch; }
.brands-logos { max-width:1040px; margin:0 auto; gap:0; border-top:1px solid var(--line); border-bottom:0; }
.brands-logos>div { min-height:136px; padding:10px 35px; border:0; border-radius:0; overflow:hidden; }
.brands-logos img { max-width:260px; max-height:115px; transform:scale(1.5); }

/* Clear invitation, followed by a quiet utility footer. */
.cta-banner { padding:78px 0; background:var(--paper); text-align:left; border-top:1px solid var(--line); }
.cta-banner .container { display:flex; align-items:center; justify-content:space-between; gap:60px; }
.cta-banner h2 { font-size:clamp(2.6rem,4.3vw,3.8rem); color:var(--wine); margin-bottom:18px; }
.cta-banner p { margin:0; color:var(--muted); font-size:.93rem; max-width:500px; }
.cta-banner .btn { flex-shrink:0; }
.footer { background:#1c2228; }
.footer-main { grid-template-columns:1.25fr .75fr 1fr; padding:70px 0 56px; gap:64px; }
.footer-brand p { max-width:330px; font-size:.85rem; color:#b6c0ca; }
.footer-col h2 { line-height:1.2; font-size:.68rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; margin-bottom:23px; }
.footer-links a,.footer-contact-item { font-size:.88rem; }
.footer-contact-item a { overflow-wrap:anywhere; }
.footer-icon { width:18px; height:18px; flex:0 0 18px; color:#b6c0ca; }
.footer-social-preview { display:flex; align-items:center; flex-wrap:wrap; gap:18px 24px; margin-top:24px; }
.footer-social-item { display:inline-flex; align-items:center; gap:9px; color:#e3e8ed; font-size:.78rem; font-weight:600; white-space:nowrap; }
.footer-social-item:hover span { text-decoration:underline; }
.footer-social-item svg { width:28px; height:28px; flex:0 0 28px; color:#d3dce4; }
.footer-bottom { font-size:.72rem; color:#a7b2be; padding:24px 0; }

/* Interior pages inherit the same considered layout and detailing. */
.page-header { padding:174px max(32px,calc((100% - 1184px)/2)) 64px; background:var(--paper); text-align:left; border-bottom:1px solid var(--line); }
.page-header .eyebrow { margin-bottom:20px; }
.page-header h1 { font-size:clamp(2.8rem,5vw,4.7rem); max-width:22ch; }
.page-header p { color:var(--muted); max-width:580px; margin:22px 0 0; font-size:1rem; }
.service-content .col-text h2 { font-size:clamp(2.1rem,3.2vw,3rem); }
.service-content .col-text>br { display:none; }
.service-content .col-text h3 { margin-top:32px; margin-bottom:12px; padding-top:25px; border-top:1px solid var(--line); font-size:1.2rem; }
.service-content .col-img img { height:auto; aspect-ratio:4 / 5; object-position:60% 48%; }
.service-content .two-col { align-items:start; }
.service-content .col-img img[src$="project-custom-size-gates.webp"] { aspect-ratio:4 / 3; object-position:center; }
.service-actions { display:flex; align-items:center; flex-wrap:wrap; gap:16px 24px; margin-top:24px; }
.service-content .service-actions .btn,.service-content .service-actions .text-link { margin-top:0; }
.service-return { padding-bottom:48px; }
.contact-grid { gap:72px; padding:0; align-items:start; }
.contact-form h2 { font-size:2.4rem; margin-bottom:20px; }
.business-info { border-top:3px solid var(--wine); padding:36px; border-radius:0; }
.business-info h3 { font:600 1.85rem/1.2 var(--display); margin-bottom:28px; }
.info-item { padding:16px 0; margin:0; border-top:1px solid var(--line); gap:12px; font-size:.9rem; overflow-wrap:anywhere; }
.info-item .footer-icon { color:var(--wine); margin-top:3px; }
.form-control { min-width:0; border-color:#cdd3da; border-radius:2px; padding:14px; background:#fafbfc; font-family:inherit; font-size:1rem; }
.form-label { font-size:.82rem; font-weight:500; margin-bottom:8px; }
.form-group { margin-bottom:22px; }
fieldset.form-group { border:0; min-width:0; padding:0; }
legend.form-label { float:none; padding:0; font-weight:600; }
.form-required-note,.field-help { color:var(--muted); font-size:.82rem; margin-bottom:12px; }
.form-privacy a,.privacy-copy a { color:var(--wine); text-decoration:underline; text-underline-offset:.15em; }
.privacy-copy { max-width:760px; }
.privacy-copy h2 { font-size:clamp(1.3rem,3.5vw,1.65rem); margin:1.75em 0 .45em; }
.privacy-copy p { color:var(--muted); }
#project-gallery,#reviews { scroll-margin-top:90px; }
.form-check { align-items:center; min-height:36px; }
.form-check label { cursor:pointer; padding:6px 0; }
.form-check input { width:18px; height:18px; margin:0; flex-shrink:0; }
.quote-call { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px 24px; padding:20px 24px; margin-bottom:32px; background:var(--paper); border-left:3px solid var(--wine); }
.quote-call span { color:var(--muted); font-size:.9rem; }
.quote-call a { color:var(--wine); font-size:1.05rem; font-weight:700; padding:6px 0; }
.contact-call { margin:4px 0 24px; }
.business-info p { color:var(--muted); font-size:.9rem; }
.form-row { gap:24px; }
.preview-form-note,.preview-form-status { font-size:.82rem; border-radius:0; }
[data-inquiry-form] .btn:disabled { opacity:.6; cursor:not-allowed; }
[data-form-status] a { text-decoration:underline; }
.about-layout { display:grid; grid-template-columns:1fr 1fr; gap:84px; align-items:start; }
.about-layout>img { width:100%; height:auto; aspect-ratio:4 / 3; max-height:620px; object-fit:cover; object-position:center; }
.about-copy h2 { font-size:clamp(2.2rem,3.4vw,3.2rem); margin-bottom:26px; }
.about-copy p { color:var(--muted); }
.about-copy h3 { margin:34px 0 18px; font-size:1.3rem; }
.about-values { margin-top:70px; padding-top:38px; border-top:1px solid var(--line); display:grid; grid-template-columns:1fr 1fr; gap:84px; }
.about-values h2 { font-size:2.7rem; }
.about-values .checklist li { padding:9px 0; }
.about-values .btn { margin-top:23px; }

/* Subtle rounding for project photography, excluding logos and the full-width hero. */
.col-img img,.faq-img img,.card-img,.project-grid img,.about-layout>img { border-radius:6px; }
.photo-frame { overflow:hidden; border-radius:6px; min-width:0; }
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
 .photo-frame img { transition:transform .55s cubic-bezier(.22,1,.36,1),filter .3s; }
 .photo-frame:hover img { transform:scale(1.025); }
}

/* Preserve clean spacing from large monitors down to narrow phones. */
@media(max-width:1100px) {
 .navbar-phone { padding:8px 11px; font-size:.8rem; }
 .navbar-nav .nav-link { padding-left:10px; padding-right:10px; }
 .two-col,.faq-section,.process-layout,.about-layout { gap:48px; }
 .footer-main { gap:36px; }
}
@media(max-width:1000px) {
 .navbar,.navbar.scrolled { flex-wrap:nowrap; align-items:center; gap:12px; padding-left:28px; padding-right:28px; }
 .navbar-phone { display:inline-flex; order:2; min-height:44px; margin-left:0; }
 .navbar-phone .phone-number { display:none; }
 .nav-toggle { display:inline-flex; order:3; width:44px; height:44px; border:1px solid #ffffff60; border-radius:2px; }
 .navbar-brand { max-width:none; margin-right:auto; }
 .navbar-nav { display:none; position:absolute; top:100%; left:0; width:100%; margin:0; padding:18px 28px 24px; background:var(--wine); max-height:calc(100svh - 106px); overflow:auto; border-radius:0; }
 .navbar.nav-open { background:var(--wine); }
 .navbar.nav-open .navbar-nav { display:block; }
 .navbar-nav .nav-item { width:100%; }
 .navbar-nav .nav-link,.navbar-nav .nav-link.active { display:block; padding:12px; }
 .navbar-nav .nav-link.nav-quote { margin:3px 0 8px; border:1px solid #ffffff66; border-radius:3px; }
 .dropdown-menu { position:static; display:block; width:100%; min-width:0; background:#ffffff09; box-shadow:none; border:0; }
 .dropdown-menu a { color:white; padding:10px 22px; }
 .dropdown-menu a:hover { background:#ffffff10; color:white; }
 .hero-content h1 { font-size:clamp(3.4rem,6.5vw,4.6rem); }
 .section,.service-content { padding:76px 0; }
 .two-col,.intro-section .two-col { grid-template-columns:1fr 1fr; gap:40px; }
 .two-col.text-left .col-text { order:1; }
 .two-col.text-left .col-img { order:2; }
 .col-img img,.intro-section .col-img img { height:auto; }
 .cards-grid { grid-template-columns:1fr; gap:32px; }
 .card { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:28px; align-items:start; }
 .card-img { height:auto; aspect-ratio:4 / 3; }
 .card-body { padding-top:20px; }
 .card-body h3 { font-size:1.6rem; }
 .services-heading>p { max-width:260px; }
 .faq-section { grid-template-columns:1fr; max-width:780px; margin:auto; }
 .faq-img { display:none; }
 .process-layout { gap:48px; }
 .process-section { padding:76px 0; }
 .footer-main { grid-template-columns:1fr 1fr; }
 .footer-brand { grid-column:1 / -1; }
 .contact-grid { grid-template-columns:1fr; gap:48px; }
 .about-layout { gap:40px; }
}
@media(min-width:701px) and (max-width:860px) {
 .two-col,.intro-section .two-col,.about-layout,.about-values,.process-layout { grid-template-columns:1fr; gap:40px; }
 .intro-section .col-text { max-width:620px; }
 .col-img,.about-layout>img { width:100%; max-width:640px; justify-self:center; }
 .col-img img,.intro-section .col-img img,.service-content .col-img img,.about-layout>img { height:auto; aspect-ratio:4 / 3; max-height:480px; }
 .process-section .section-title p { max-width:54ch; }
 .services-heading { gap:28px; }
 .services-heading h2 { font-size:2.4rem; }
}
@media(max-width:700px) {
 .container { padding:0 24px; }
 .navbar { height:82px; padding:0 24px; }
 .navbar.scrolled { height:60px; padding:0 24px; }
 .navbar-brand img { height:50px; }
 .navbar.scrolled .navbar-brand img { height:32.5px; }
 .navbar-nav,.navbar.scrolled .navbar-nav { margin:0; padding:12px 24px 22px; width:100%; max-height:calc(100svh - 82px); }
 .hero { height:auto; min-height:580px; max-height:none; }
 .hero-slide:first-child { object-position:42% center; }
 .hero-slide:nth-child(4) { object-position:52% center; }
 .hero-content { padding:128px 24px 84px; }
 .hero-content h1 { font-size:clamp(2.35rem,9vw,3.6rem); max-width:570px; }
 .hero-content p { font-size:.95rem; max-width:420px; }
 .hero-actions { gap:18px; }
 .hero-actions .btn { font-size:.82rem; padding:12px 18px; }
 .hero-actions .btn-outline-light { padding:10px 0; }
 .hero-controls { right:24px; bottom:14px; }
 .hero .eyebrow { font-size:.61rem; letter-spacing:.15em; }
 .trust-strip .container { grid-template-columns:1fr; gap:0; padding:12px 24px; }
 .trust-strip .container>div,.trust-strip .container>div:first-child { min-height:0; border:0; padding:15px 0; }
 .trust-strip .container>div + div { border-top:1px solid #5f000e30; }
 .trust-strip h2 { font-size:1rem; margin:0; }
 .section,.service-content,.trust-strip + .section { padding:62px 0; }
 h2 { font-size:clamp(2rem,7.2vw,2.75rem); line-height:1.13; }
 .cta-banner h2,.about-values h2 { font-size:clamp(2rem,7.2vw,2.75rem); }
 .section-title { margin-bottom:34px; }
 .two-col,.intro-section .two-col,.about-layout,.about-values { grid-template-columns:1fr; gap:36px; }
 .intro-section .col-text { max-width:none; }
 .col-img img,.intro-section .col-img img,.service-content .col-img img { height:auto; aspect-ratio:4 / 3; max-height:440px; }
 .intro-section .col-img { padding-bottom:0; }
 .photo-caption { position:relative; bottom:auto; right:auto; width:calc(100% - 32px); max-width:290px; margin:-24px 16px 0 auto; padding:20px 24px; }
 .services-heading { display:block; }
 .services-heading>p { margin-top:24px; max-width:470px; }
 .cards-grid { grid-template-columns:1fr; gap:38px; }
 .card { display:flex; gap:0; }
 .card-img { height:auto; aspect-ratio:4 / 3; }
 .card-body { padding-top:22px; }
 .card-body h3 { font-size:clamp(1.55rem,5.8vw,1.9rem); line-height:1.2; }
 .card-body p { max-width:500px; }
 .service-links { grid-template-columns:1fr; gap:24px; }
 .service-links a { padding:0 0 24px; border-bottom:1px solid var(--line); }
 .service-links a:last-child { border:0; padding-bottom:0; }
 .additional-services { padding-bottom:62px; }
 .project-gallery-heading { display:block; }
 .project-gallery-heading p { margin-top:18px; max-width:500px; }
 .project-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 16px; }
 .project-grid figcaption { font-size:.75rem; }
 #services { padding-bottom:40px; }
 .process-section { padding:62px 0; }
 .brands-section { padding:44px 0 32px; }
 .process-layout { grid-template-columns:1fr; gap:44px; }
 .process-grid { gap:26px; }
 .testimonial-section { padding:62px 0; }
 .testimonial-quote { font-size:clamp(1.35rem,5.2vw,1.75rem); line-height:1.5; }
 .testimonial-nav button { width:44px; height:44px; }
 .brands-heading { margin-bottom:20px; }
 .brands-logos { grid-template-columns:1fr 1fr; }
 .brands-logos>div,.brands-logos>div:nth-child(4) { grid-column:auto; min-height:112px; padding:8px 22px; }
 .brands-logos>div:last-child { grid-column:1 / -1; }
 .brands-logos img { max-width:220px; max-height:95px; transform:scale(1.3); }
 .cta-banner { padding:60px 0; }
 .cta-banner .container { display:block; }
 .cta-banner .btn { margin-top:28px; }
 .footer-main { grid-template-columns:1fr; gap:34px; padding:54px 0 40px; }
 .footer-brand { grid-column:auto; }
 .footer-brand img { height:66px; }
 .page-header { padding:132px 24px 44px; }
 .page-header h1 { font-size:clamp(2.25rem,8.2vw,3.4rem); line-height:1.1; }
 .page-header .eyebrow { font-size:.62rem; }
 .form-row,.form-row:has(> :nth-child(3)) { grid-template-columns:1fr; gap:0; }
 .business-info { padding:28px; }
 .about-layout>img { height:auto; aspect-ratio:4 / 3; max-height:440px; }
 .about-values { margin-top:42px; padding-top:30px; }
}
@media(max-width:380px) {
 .project-grid { grid-template-columns:1fr; }
 .navbar,.navbar.scrolled { flex-wrap:nowrap; gap:8px; padding-left:16px; padding-right:16px; }
 .navbar-brand img { height:44px; }
 .navbar.scrolled .navbar-brand img { height:28.6px; }
 .navbar-phone { width:44px; padding:8px; }
 .navbar-phone .phone-label { display:none; }
 .hero-actions { flex-direction:column; align-items:flex-start; gap:12px; }
 .hero-actions .btn-primary { width:100%; }
 .business-info { padding:24px; }
 .photo-caption strong { font-size:1.45rem; }
}
/* A short, staggered entrance inspired by the Tucker reference.
   Content stays visible without JS; there is no blocking loading overlay. */
@keyframes cordrey-arrive {
 from { opacity:0; translate:0 24px; }
 to { opacity:1; translate:0 0; }
}
@keyframes cordrey-header-arrive {
 from { opacity:0; translate:0 -10px; }
 to { opacity:1; translate:0 0; }
}
@keyframes cordrey-photo-settle {
 from { transform:scale(1.045); }
 to { transform:scale(1); }
}
@media(prefers-reduced-motion:no-preference) {
 .home-page .navbar { animation:cordrey-header-arrive .7s cubic-bezier(.22,1,.36,1) backwards; }
 .home-page .hero-slide:first-child { animation:cordrey-photo-settle 1.8s cubic-bezier(.22,1,.36,1) backwards; }
 .hero-content > .eyebrow { animation:cordrey-arrive .75s cubic-bezier(.22,1,.36,1) .12s backwards; }
 .hero-content > h1 { animation:cordrey-arrive .85s cubic-bezier(.22,1,.36,1) .26s backwards; }
 .hero-content > p { animation:cordrey-arrive .85s cubic-bezier(.22,1,.36,1) .4s backwards; }
 .hero-actions { animation:cordrey-arrive .85s cubic-bezier(.22,1,.36,1) .54s backwards; }
.hero-controls { animation:cordrey-arrive .8s cubic-bezier(.22,1,.36,1) .68s backwards; }
 .page-header > .eyebrow { animation:cordrey-arrive .7s cubic-bezier(.22,1,.36,1) .12s backwards; }
 .page-header > h1 { animation:cordrey-arrive .85s cubic-bezier(.22,1,.36,1) .24s backwards; }
 .scroll-reveal { transition:opacity .8s cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms),translate .8s cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms),clip-path 1s cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms); }
 .reveal-pending { translate:0 28px; }
 .reveal-image { clip-path:inset(0); }
 .reveal-image.reveal-pending { clip-path:inset(0 0 8% 0); translate:0 18px; }
}
/* Keyboard users must never have to wait for an entrance animation. */
.navbar:focus-within,.hero-actions:focus-within,.hero-controls:focus-within { animation:none; }
.scroll-reveal:focus-within { opacity:1; translate:none; clip-path:none; transition:none; }
@media print {
 .gallery-lightbox[open] { display:none; }
 .accordion-body { grid-template-rows:1fr; opacity:1; visibility:visible; }
 *,*::before,*::after { animation:none!important; }
 .reveal-image { clip-path:none!important; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 *,*::before,*::after { transition:none!important; animation:none!important; }
 .reveal-pending { opacity:1; translate:none; }
 .reveal-image { clip-path:none; }
}
