/* Self-hosted site typography. The local variable WOFF2 files cover the
   400–600 weight range used by the shared A2A design system. */
@font-face {
  font-family: "Cinzel";
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("/static/fonts/cinzel-latin.woff2") format("woff2");
}
@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("/static/fonts/dm-sans-latin.woff2") format("woff2");
}

:root {
  --sand: #b4a07c;
  --gold: #d4af37;
  --navy: #202d3a;
  --navy-deep: #222d35;
  --ink: #252525;
  --muted: #5d6670;
  --off-white: #f7f6f3;
  --white: #fff;
  --content: 1120px;
  --wide: 1300px;
  --ease: 300ms ease-in-out;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--white); color: var(--ink); font: 500 18px/1.9 "DM Sans", sans-serif; }
body.menu-open, body.popup-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
h1, h2, h3 { margin: 0 0 22px; font-family: Cinzel, serif; font-weight: 500; line-height: 1.24; letter-spacing: 2px; }
h1 { font-size: 45px; }
h2 { font-size: 34px; }
h3 { font-size: 25px; }
p { margin: 0 0 24px; }
ul { margin-top: 0; }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
.skip-link { position: fixed; z-index: 1200; top: 8px; left: 8px; padding: 8px 14px; background: var(--white); color: var(--ink); transform: translateY(-150%); }
.skip-link:focus { transform: none; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* Shared header */
.site-header { position: fixed; z-index: 100; inset: 0 0 auto; background: transparent; transition: background-color var(--ease); }
.site-header.has-scrolled { background: var(--navy); }
.header-inner { display: flex; justify-content: center; width: 100%; padding: 7px 20px; }
.nav-pill { display: flex; align-items: center; justify-content: center; gap: 7rem; width: 1500px; max-width: 100%; min-height: 71px; padding: 5px 32px; border-radius: 75px; background: var(--navy-deep); color: var(--white); }
.wordmark { display: flex; align-items: center; width: 50%; min-width: 0; padding-left: 40px; color: var(--gold); }
.wordmark-slot { display: flex; flex-direction: column; justify-content: center; width: 300px; max-width: 100%; aspect-ratio: 300/61; text-align: center; white-space: nowrap; }
.wordmark-slot strong { font: 600 25px/1 Cinzel, serif; letter-spacing: 1px; }
.wordmark-slot i { font-size: 10px; font-style: normal; }
.wordmark-slot small { margin-top: 7px; font: 600 8px/1 "DM Sans", sans-serif; letter-spacing: 4px; }
#primary-nav { display: flex; align-items: center; justify-content: flex-end; width: 50%; margin: 0; font-size: 15.75px; font-weight: 500; line-height: 1; }
#primary-nav > a, .services-toggle { padding: 20px; border: 0; background: transparent; color: var(--white); font: inherit; cursor: pointer; white-space: nowrap; transition: color var(--ease); }
#primary-nav > a:hover, #primary-nav > a:focus-visible, .services-toggle:hover, .services-toggle:focus-visible { color: var(--gold); outline: none; }
.services-menu { position: relative; }
.services-toggle span { margin-left: 8px; color: var(--gold); }
.dropdown { display: none; position: absolute; z-index: 2; top: calc(100% + 12px); left: 50%; width: max-content; min-width: 300px; max-width: min(360px, calc(100vw - 32px)); padding: 8px; border: 1px solid var(--gold); border-radius: 12px; background: var(--navy); box-shadow: 0 10px 22px #0005; transform: translateX(-50%); }
.services-menu.open .dropdown { display: block; }
.dropdown a { display: block; width: 100%; padding: 10px 14px; border-radius: 7px; color: var(--white); line-height: 1.2; white-space: nowrap; transition: color var(--ease), background-color var(--ease); }
.dropdown a:hover, .dropdown a:focus-visible { background: #ffffff12; color: var(--gold); outline: none; }
.menu-toggle { display: none; width: 32px; height: 32px; margin-left: auto; padding: 0; border: 0; background: transparent; color: var(--white); cursor: pointer; }
.menu-toggle span { display: block; height: 3px; margin: 7px 0; background: currentColor; transition: transform .25s, opacity .25s; }
.menu-toggle[aria-expanded=true] span:nth-child(1) { transform: translateY(10px) rotate(45deg); }
.menu-toggle[aria-expanded=true] span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded=true] span:nth-child(3) { transform: translateY(-10px) rotate(-45deg); }

/* Reusable layout */
.section { padding: 120px max(25px, 6vw); }
.content-width { width: min(var(--content), 100%); margin-inline: auto; }
.center { text-align: center; }
.center > p { max-width: 900px; margin-inline: auto; }
.section-light { background: var(--off-white); }
.section-dark { background: var(--navy-deep); color: var(--white); }
.section-dark h2 { color: var(--white); }
.section-gold { background: var(--gold); }
/* Homepage palette corrections preserve the existing content and geometry. */
.section-warm { background: #ECE7DC; }
.section-services-dark { background: var(--navy); color: var(--white); }
.section-services-dark h2, .section-services-dark h3 { color: var(--white); }
.section-services-dark .service-card a { color: var(--white); }
.split { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 64px; width: min(var(--content), 100%); margin-inline: auto; }
.section-kicker, .eyebrow { margin-bottom: 18px; color: var(--sand); font: 500 14px/1.2 "DM Sans", sans-serif; letter-spacing: 1.5px; text-transform: uppercase; }
.dark-kicker { color: var(--navy-deep); }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 45px; padding: 14px 24px; border: 1px solid transparent; border-radius: 5px; background: var(--sand); color: var(--white); font: 600 15px/1 Cinzel, serif; text-transform: uppercase; cursor: pointer; transition: all var(--ease); }
.button:hover, .button:focus-visible { background: var(--navy-deep); color: var(--white); }
.button-light { background: var(--white); color: var(--navy-deep); }
.button-light:hover, .button-light:focus-visible { background: var(--navy-deep); color: var(--white); }
.text-link { display: inline-block; border-bottom: 1px solid var(--sand); color: var(--navy-deep); font-weight: 600; }
.image-placeholder, .image-slot { position: relative; overflow: hidden; border: 1px solid #ffffff24; background: #4b5053; }
.image-placeholder::before, .image-slot::before { content: "IMAGE PLACEHOLDER"; position: absolute; z-index: 2; inset: 50% auto auto 50%; width: max-content; max-width: 85%; color: #ffffffa6; font: 600 9px/1.3 "DM Sans", sans-serif; letter-spacing: 1.4px; text-align: center; transform: translate(-50%,-50%); }
.image-slot span { position: absolute; z-index: 3; left: 12px; bottom: 9px; color: #ffffffb3; font-size: 9px; letter-spacing: 1px; text-transform: uppercase; }

/* Heroes */
.hero, .page-hero, .about-hero, .contact-hero { position: relative; display: grid; place-items: center; min-height: 760px; padding: 190px 25px 130px; background: #4d5152 center/cover; color: var(--white); text-align: center; }
.hero::after, .page-hero::after, .about-hero::after, .contact-hero::after { content: ""; position: absolute; inset: 0; background: #0008; }
.hero-copy, .about-hero > *, .contact-hero > * { position: relative; z-index: 1; }
.hero-copy { width: min(1050px, 100%); }
.hero h1, .page-hero h1 { display: inline-block; padding: 8px 15px 12px; border-bottom: 1px solid var(--white); color: var(--gold); font-size: 34px; font-weight: 600; }
.hero h2 { margin: 30px auto 80px; font-size: 45px; }
.page-hero { min-height: 620px; }
.page-hero .hero-copy > p:not(.eyebrow) { max-width: 820px; margin: 0 auto 45px; }
.city-hero { min-height: 540px; }

/* Home */
.trust h2 { max-width: 800px; margin-inline: auto; }
.values { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 42px; }
.values article { padding: 14px; }
.value-icon { display: block; width: 68px; height: 68px; margin: 0 auto 26px; border: 2px solid var(--white); border-radius: 15px; background: var(--navy); }
.values h3 { font-size: 20px; letter-spacing: 1px; }
.values p { font-size: 16px; line-height: 1.65; }
.services > .content-width { margin-bottom: 52px; }
.service-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 56px 60px; width: min(var(--wide), 100%); margin-inline: auto; }
.service-card .image-slot { aspect-ratio: 16/9; }
.service-card h3 { margin: 20px 0 12px; font-size: 26px; letter-spacing: 1px; transition: color var(--ease); }
.service-card a:hover h3 { color: var(--sand); }
.service-card p { margin: 0; }
.whole-home-image { aspect-ratio: 1.45/1; }

/* Service systems */
.service-primary-image { aspect-ratio: 4/5; border-radius: 10px; }
.service-secondary-image, .city-project-image { aspect-ratio: 4/3; border-radius: 10px; }
.feature-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px 40px; max-width: 820px; margin: 38px auto 0; padding: 0; list-style: none; text-align: left; }
.feature-list li { position: relative; padding-left: 28px; }
.feature-list li::before { content: "•"; position: absolute; left: 6px; color: var(--sand); font-size: 24px; }
.feature-list.compact { display: block; margin: 24px 0 30px; }
.service-areas .content-width > p { max-width: 760px; }
.city-link-list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px 18px; max-width: 1040px; margin: 40px auto 0; padding: 0; list-style: none; }
.city-link-list a { display: block; padding: 10px 12px; border: 1px solid #d4af3766; color: var(--navy-deep); font-size: 16px; font-weight: 600; transition: color var(--ease), background-color var(--ease), border-color var(--ease); }
.city-link-list a:hover, .city-link-list a:focus-visible { border-color: var(--navy-deep); background: var(--navy-deep); color: var(--white); outline: none; }

/* About */
.about-hero { min-height: 760px; padding-block: 180px 250px; }
.about-hero .eyebrow { display: inline-block; padding-bottom: 12px; border-bottom: 1px solid var(--white); color: var(--gold); font: 600 30px/1.3 Cinzel, serif; text-transform: none; }
.about-hero p { max-width: 900px; margin-inline: auto; }
.about-hero .button { margin-top: 70px; }
.story, .leadership, .how-we-work { padding: 100px max(25px, calc((100% - var(--content))/2)); }
.story { display: grid; grid-template-columns: 55% 45%; gap: 32px; align-items: center; background: var(--off-white); }
.portrait { height: 440px; border-radius: 10px; }
.leadership { background: var(--navy-deep); color: var(--white); text-align: center; }
.people { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; margin-top: 45px; }
.people article { padding: 20px; border: 3px solid var(--gold); border-radius: 20px; background: #1d1d1d; }
.headshot { aspect-ratio: 4/3; margin: 20px 0 30px; border-radius: 20px; }
.people h3 { display: inline-block; color: var(--gold); border-bottom: 1px solid var(--white); }
.people b { display: block; margin-bottom: 15px; font-size: 18px; }
.how-we-work { position: relative; background: #4d5152; color: var(--white); text-align: center; }
.how-we-work::after { content: ""; position: absolute; inset: 0; background: #0009; }
.how-we-work > * { position: relative; z-index: 1; }
.work-layout { display: grid; grid-template-columns: 2fr 1fr; align-items: center; gap: 35px; margin-top: 70px; }
.work-steps { text-align: left; }
.work-step { padding-left: 38px; }
.work-step h3 { font-size: 21px; }
.work-summary { padding: 30px; border: 4px solid var(--gold); border-radius: 20px; background: var(--off-white); color: var(--ink); }

/* Contact and legal */
.contact-hero { min-height: 680px; }
.contact-hero > div { width: min(var(--content), 100%); }
.contact-hero .eyebrow { color: var(--gold); font-family: Cinzel, serif; font-size: 28px; text-transform: none; }
.contact-hero h2 { font-size: 23px; }
.form-section { padding: 80px max(25px, 8vw); background: var(--white); }
.contact-page-form { display: flex; justify-content: center; width: 100%; }
.contact-form { max-width: 1000px; margin-inline: auto; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.form-field--full, .contact-form fieldset, .form-footer { grid-column: 1/-1; }
.contact-form label, .contact-form legend { display: block; margin-bottom: 6px; font-weight: 600; text-align: left; }
.contact-form input:not([type=checkbox]), .contact-form textarea { width: 100%; padding: 10px 13px; border: 1px solid #aeb5bb; border-radius: 5px; background: var(--white); }
.contact-form textarea { min-height: 150px; resize: vertical; }
.contact-form fieldset { margin: 8px 0; padding: 20px 0; border: 0; }
.checkbox-options { display: flex; flex-wrap: wrap; gap: 10px 20px; }
.check { display: flex; align-items: flex-start; gap: 8px; }
.fine-print { max-width: 800px; margin-top: 20px; color: var(--muted); font-size: 12px; line-height: 1.6; }
.fine-print a { color: var(--sand); text-decoration: underline; }
.form-notice { padding: 10px; background: var(--navy); color: var(--white); }
.contact-details { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; padding: 100px max(25px, calc((100% - var(--content))/2)); background: #ECE7DC; }
.contact-actions { display: flex; flex-wrap: wrap; gap: 18px; margin: 25px 0; }
.contact-action { font-weight: 600; }
.map-slot { min-height: 420px; }
.hours { margin-top: 30px; }
.hours h3 { margin-bottom: 8px; font-size: 19px; }
.contact-cta { padding: 70px 20px; background: var(--navy-deep); text-align: center; }
.legal-page { padding: 150px 25px 100px; }
.legal-copy { max-width: 920px; margin-inline: auto; }
.legal-copy section { padding: 18px 0; }
.legal-copy h2 { display: inline-block; padding-bottom: 4px; border-bottom: 1px solid currentColor; font-size: 24px; }
.legal-copy a { color: var(--sand); text-decoration: underline; text-underline-offset: 3px; }

/* Footer */
.site-footer { padding: 60px 20px 0; background: var(--navy-deep); color: var(--white); }
.footer-inner { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; width: min(var(--content), 100%); margin-inline: auto; padding-bottom: 30px; }
.footer-brand, .footer-column { display: flex; flex-direction: column; align-items: center; text-align: center; }
.footer-logo-slot { display: flex; flex-direction: column; justify-content: center; width: 100%; max-width: 250px; aspect-ratio: 2560/1468; border: 1px dashed #d4af3780; color: var(--gold); }
.footer-logo-slot strong { font: 600 36px Cinzel, serif; }
.footer-logo-slot small { font-size: 8px; letter-spacing: 2px; }
.site-footer h2 { margin-bottom: 20px; color: var(--sand); font: 500 15px/1.2 "DM Sans", sans-serif; text-transform: uppercase; }
.footer-column > a { position: relative; overflow: hidden; margin-bottom: 15px; padding-bottom: 4px; font-size: 18px; line-height: 1.2; }
.footer-column > a::before, .footer-column > a::after { content: ""; position: absolute; bottom: 0; width: 50%; height: 1px; background: var(--sand); transition: transform var(--ease); }
.footer-column > a::before { left: 0; transform: translateX(101%); }
.footer-column > a::after { right: 0; transform: translateX(-101%); }
.footer-column > a:hover::before, .footer-column > a:focus-visible::before, .footer-column > a:hover::after, .footer-column > a:focus-visible::after { transform: none; }
.social-row { display: flex; gap: 12px; }
.social-row a { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid transparent; border-radius: 5px; background: var(--white); color: var(--navy-deep); transition: all var(--ease); }
.social-row a:hover, .social-row a:focus-visible { border-color: #fff5; background: var(--sand); color: var(--white); }
.social-row svg { width: 21px; height: 21px; fill: currentColor; }
.social-row svg.icon-stroke { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.copyright { padding: 30px 20px; text-align: center; font-size: 13px; }

@media (max-width:1119px) {
  .nav-pill { width: 900px; gap: 0; padding-left: 0; }
  .section { padding-block: 100px; }
  .values { grid-template-columns: repeat(2, 1fr); }
  .city-link-list { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width:1023px) {
  .nav-pill { width: 600px; }
  .wordmark-slot strong { font-size: 21px; }
  #primary-nav > a, .services-toggle { padding-inline: 12px; }
  .split, .story, .people, .work-layout, .contact-details { grid-template-columns: 1fr; }
  .service-primary-image, .service-secondary-image, .city-project-image, .whole-home-image { width: min(600px,100%); margin-inline: auto; aspect-ratio: 4/3; }
  .story { text-align: center; }
  .footer-inner { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width:767px) {
  body { font-size: 16px; line-height: 1.75; }
  h1 { font-size: 31px; }
  h2 { font-size: 27px; }
  h3 { font-size: 21px; }
  .header-inner { padding-inline: 0; }
  .nav-pill { width: 400px; max-width: calc(100% - 30px); padding: 5px 20px 5px 15px; }
  .wordmark { width: 60%; padding-left: 15px; }
  .wordmark-slot { width: 190px; }
  .wordmark-slot strong { font-size: 15px; }
  .wordmark-slot small { margin-top: 4px; font-size: 5px; letter-spacing: 2px; }
  .menu-toggle { display: block; }
  #primary-nav { display: none; position: absolute; z-index: 5; top: calc(100% + 15px); left: 50%; width: 100vw; max-height: calc(100vh - 100px); overflow: auto; background: var(--white); color: var(--ink); box-shadow: 0 12px 25px #0004; transform: translateX(-50%); }
  #primary-nav.open { display: flex; flex-direction: column; align-items: stretch; }
  #primary-nav > a, .services-toggle { width: 100%; padding: 20px; border-top: 1px solid #eee; color: var(--ink); text-align: left; }
  .services-menu { width: 100%; }
  .services-toggle { display: flex; justify-content: space-between; }
  .dropdown { position: static; width: 100%; min-width: 0; max-width: none; padding: 0 25px 12px; border: 0; border-radius: 0; background: var(--white); box-shadow: none; transform: none; }
  .dropdown a { padding: 12px 20px; border-top: 1px solid #eee; color: var(--ink); white-space: normal; }
  .hero, .page-hero, .about-hero, .contact-hero { min-height: 470px; padding: 155px 20px 80px; }
  .hero h1, .page-hero h1 { font-size: 22px; }
  .hero h2 { margin-bottom: 48px; font-size: 25px; }
  .about-hero .eyebrow, .contact-hero .eyebrow { font-size: 21px; }
  .section, .story, .leadership, .how-we-work, .contact-details { padding: 70px 25px; }
  .values, .service-grid, .feature-list, .form-grid, .city-link-list { grid-template-columns: 1fr; }
  .form-field--half { grid-column: 1/-1; }
  .service-grid { gap: 42px; }
  .work-layout { margin-top: 45px; }
  .footer-inner { grid-template-columns: 1fr; }
  .map-slot { min-height: 300px; }
}
@media (max-width:479px) {
  body { font-size: 15px; }
  .nav-pill { width: 350px; max-width: calc(100% - 20px); }
  .wordmark-slot { width: 150px; }
  .wordmark-slot strong { font-size: 12px; }
  .hero, .page-hero, .about-hero, .contact-hero { min-height: 420px; padding: 135px 20px 65px; }
  .section, .story, .leadership, .how-we-work, .contact-details { padding: 58px 20px; }
  .values { grid-template-columns: 1fr; }
  .portrait { height: 330px; }
}
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
/* Production-popup parity: marble card and gold framed estimate form. Local
   placeholder treatment preserves the production image slot without copying its asset. */
.contact-popup[hidden]{display:none}
.contact-popup{position:fixed;z-index:1050;inset:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:0}
.contact-popup__backdrop{position:absolute;inset:0;background:rgb(0 0 0 / .68)}
.contact-popup__shell{position:relative;width:750px;max-width:100%;max-height:100%;display:flex}
.contact-popup__content{width:100%;height:100%;max-height:100vh;padding:30px;overflow-y:auto;background:transparent;display:flex;flex-direction:column;align-items:center;text-align:center;scrollbar-width:none;-ms-overflow-style:none}
.contact-popup__content::-webkit-scrollbar{display:none;width:0;height:0}
.contact-popup__card{position:relative;width:750px;max-width:100%;padding:20px 60px 60px;border:3px solid #d4af37;border-radius:5px;display:flex;flex-direction:column;align-items:center;text-align:center;background-color:#756f69;background-image:linear-gradient(125deg,#776e68 0%,#b5ada3 18%,#81766e 37%,#d0c6b9 56%,#736961 74%,#a39990 100%);background-size:cover;overflow:visible}
.contact-popup__card.image-placeholder:before{content:'POPUP MARBLE BACKGROUND IMAGE PLACEHOLDER';top:auto;bottom:8px;left:50%;transform:translateX(-50%);z-index:0;color:#0009;font-size:8px}
.contact-popup__close{position:absolute;z-index:2;top:8px;right:10px;width:34px;height:34px;padding:0;border:0;border-radius:5px;background:transparent;color:#d4af37;font:300 34px/1 'DM Sans',sans-serif;cursor:pointer;transition:color 300ms ease-in-out,background-color 300ms ease-in-out}
.contact-popup__close:hover,.contact-popup__close:focus-visible{color:#fff;background:#0004;outline:2px solid #d4af37;outline-offset:2px}
.contact-popup__logo{width:425px;max-width:100%;height:auto;min-height:86px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#d4af37;text-align:center}
.contact-popup__logo strong{font:600 35px/1 Cinzel,serif;letter-spacing:1px;white-space:nowrap}.contact-popup__logo i{font-size:.4em;font-style:normal}.contact-popup__logo small{margin-top:9px;font:600 10px/1 'DM Sans',sans-serif;letter-spacing:5px}
.contact-popup__form-panel{width:600px;max-width:100%;margin-top:40px;margin-bottom:1px;padding:10px 25px 30px;border:3px solid #d4af37;border-radius:5px;background:#0000003b}
:is(.contact-popup,.contact-page-form) .contact-form{max-width:none;margin:0;font-size:18px;line-height:1.4}:is(.contact-popup,.contact-page-form) .form-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}:is(.contact-popup,.contact-page-form) .form-field--half{grid-column:span 6}:is(.contact-popup,.contact-page-form) .form-field--full{grid-column:span 12}:is(.contact-popup,.contact-page-form) .contact-form label,:is(.contact-popup,.contact-page-form) .contact-form legend{display:block;margin:0 0 8px;color:#d4af37;font:500 18px/1 Cinzel,serif;text-align:left}:is(.contact-popup,.contact-page-form) .required{color:#d4af37;padding-left:4px}:is(.contact-popup,.contact-page-form) .contact-form input:not([type=checkbox]),:is(.contact-popup,.contact-page-form) .contact-form textarea{display:block;width:100%;margin:0;padding:5px 16px;border:0;border-radius:5px;background:#c7c7c7;color:#000;font:18px/1.28 'DM Sans',sans-serif;transition:all .3s ease-in-out}:is(.contact-popup,.contact-page-form) .contact-form input:not([type=checkbox]){height:33px}:is(.contact-popup,.contact-page-form) .contact-form textarea{min-height:100px;line-height:1.4;resize:vertical}:is(.contact-popup,.contact-page-form) .contact-form input:focus,:is(.contact-popup,.contact-page-form) .contact-form textarea:focus{outline:2px solid #d4af37;outline-offset:2px;background:#c7c7c7}:is(.contact-popup,.contact-page-form) .contact-form fieldset{margin:0;padding:0;border:0}:is(.contact-popup,.contact-page-form) .contact-form legend{width:100%}:is(.contact-popup,.contact-page-form) .checkbox-options{display:flex;flex-wrap:wrap;gap:5px}:is(.contact-popup,.contact-page-form) .check{flex:1 1 calc(50% - 6px);display:flex!important;align-items:flex-start;gap:8px;margin:0 0 8px!important;color:#fff!important;font:18px/1.4 'DM Sans',sans-serif!important;text-align:left}:is(.contact-popup,.contact-page-form) .check input[type=checkbox]{appearance:none;width:18px;height:18px;margin:3px 0 0;flex-shrink:0;border:0;border-radius:4px;background:#c7c7c7;cursor:pointer}:is(.contact-popup,.contact-page-form) .check input[type=checkbox]:checked{background-color:#d4af37;background-image:linear-gradient(45deg,transparent 45%,#222d35 45% 55%,transparent 55%),linear-gradient(-45deg,transparent 44%,#222d35 44% 56%,transparent 56%)}:is(.contact-popup,.contact-page-form) .check input[type=checkbox]:focus-visible{outline:2px solid #d4af37;outline-offset:2px}:is(.contact-popup,.contact-page-form) .check span{padding-left:5px}:is(.contact-popup,.contact-page-form) .form-footer{display:flex;justify-content:center;align-items:end}:is(.contact-popup,.contact-page-form) .form-footer .button{min-width:109px;min-height:45px;padding:14px 24px;border:1px solid transparent;border-radius:5px;background:#b4a07c;color:#fff;font:600 15px/1 Cinzel,serif;text-transform:uppercase;transition:all 300ms ease-in-out}:is(.contact-popup,.contact-page-form) .form-footer .button:hover,:is(.contact-popup,.contact-page-form) .form-footer .button:focus-visible{background:#222d35;color:#fff;outline:2px solid #d4af37;outline-offset:2px}:is(.contact-popup,.contact-page-form) .fine-print{margin:22px 0 0!important;color:#909090;font:12px/22.8px 'DM Sans',sans-serif;text-align:left}:is(.contact-popup,.contact-page-form) .fine-print a{color:#d4af37;text-decoration:none}:is(.contact-popup,.contact-page-form) .form-notice{grid-column:1/-1;margin:0;color:#fff;background:#222d35;padding:8px;font-size:13px}
body.popup-open{overflow:hidden}
@media(max-width:767px){.contact-popup__content{padding:16px}.contact-popup__card{padding:20px 20px 35px}.contact-popup__logo{min-height:65px}.contact-popup__logo strong{font-size:clamp(19px,7vw,31px)}.contact-popup__logo small{font-size:clamp(6px,2vw,9px);letter-spacing:3px}.contact-popup__form-panel{padding:10px 16px 25px;margin-top:28px}:is(.contact-popup,.contact-page-form) .form-grid{grid-template-columns:1fr;gap:16px}:is(.contact-popup,.contact-page-form) .form-field--half,:is(.contact-popup,.contact-page-form) .form-field--full{grid-column:1}:is(.contact-popup,.contact-page-form) .check{flex:1 1 100%}:is(.contact-popup,.contact-page-form) .fine-print{text-align:left}}

/* Viewport fitting only: desktop uses a proportional layout zoom when the
   approved popup composition is taller than the available viewport. Mobile
   retains its existing scrollable behavior. */
@media (min-width: 768px) {
  .contact-popup__content { overflow: visible; }
  .contact-popup__shell { overflow: visible; }
  .contact-popup__card { flex: 0 0 auto; }
}

/* Owner-authorized legacy imagery, copied locally from reference/used-images. */
.wordmark-image { display:block; width:300px; max-width:100%; height:auto; }
.image-slot.image-filled { border:0; background:#4b5053; }
.image-slot.image-filled::before { content:none; }
.image-slot.image-filled > img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.footer-logo { display:block; width:100%; max-width:250px; height:auto; }
.contact-popup__logo { display:block; width:425px; max-width:100%; min-height:0; height:auto; object-fit:contain; }
@media (max-width:767px) { .wordmark-image { width:190px; } }
@media (max-width:479px) { .wordmark-image { width:150px; } }

/* Local, owner-authorized legacy background imagery. These classes retain the
   existing production-derived dimensions, overlays, and crop behavior without
   any runtime Hostinger or WordPress dependency. */
.image-filled-background::before { content: none; }
.home-hero { background-image: url('/static/images/home-hero.webp'); background-position: center; background-size: cover; }
.about-hero { background-image: url('/static/images/about-hero.webp'); background-position: center; background-size: cover; }
.contact-hero { background-image: url('/static/images/contact-hero.webp'); background-position: center; background-size: cover; background-attachment: fixed; }
.how-we-work { background-image: url('/static/images/about-how-we-work.webp'); background-position: center; background-size: cover; }
.deck-building-hero { background-image: url('/static/images/deck-building-hero.webp'); background-position: center; background-size: cover; }
.contact-popup__card { background-image: url('/static/images/contact-popup-marble.webp'); background-position: center; background-size: cover; }
@media (max-width: 767px) { .contact-hero { background-attachment: scroll; } }

/* Focused predecessor restoration: original trust SVGs, footer link motion,
   and About-page groupings. These rules are intentionally scoped. */
.values .value-icon { display:grid; place-items:center; padding:20px; border:2px solid var(--ink); border-radius:15px; background:var(--navy); }
.values .value-icon svg { display:block; width:100%; height:100%; fill:var(--white); }
.values h3 { margin-top:15px; font-size:22px; }

/* Two full-width lines reproduce the predecessor's opposing-origin reveal. */
.footer-column > a { overflow:visible; }
.footer-column > a::before, .footer-column > a::after { bottom:auto; left:0; width:100%; height:.075em; background:currentColor; transform:scale3d(0,1,1); }
.footer-column > a::before { top:110%; transform-origin:100% 50%; transition:transform .3s cubic-bezier(.7,0,.2,1); }
.footer-column > a::after { top:calc(110% + .25em); right:auto; transform-origin:0% 50%; transition:transform .3s cubic-bezier(.7,0,.2,1); }
.footer-column > a:hover::before, .footer-column > a:focus-visible::before { transform-origin:0% 50%; transform:scale3d(1,1,1); transition-timing-function:cubic-bezier(.4,1,.8,1); }
.footer-column > a:hover::after, .footer-column > a:focus-visible::after { transform-origin:100% 50%; transform:scale3d(1,1,1); transition-timing-function:cubic-bezier(.4,1,.8,1); }

.story { display:block; padding:60px max(25px, calc((100% - var(--content))/2)) 75px; }
.story-inner { width:min(var(--content),100%); margin-inline:auto; }
.story-row { display:grid; grid-template-columns:55% 45%; align-items:center; }
.story-opening { padding-right:32px; text-align:left; }
.story-opening h2 { margin-bottom:10px; font-size:35px; }
.story-opening p { margin:40px 0 25px; }
.story-photo { justify-self:center; width:auto; height:400px; aspect-ratio:1; border-radius:10px; }
.story-middle { grid-template-columns:40.92% 59.08%; margin-top:-25px; padding-block:15px; }
.story-logo { display:flex; align-items:center; justify-content:center; }
.story-logo img { display:block; width:min(100%,360px); height:auto; }
.story-expansion { display:flex; align-items:center; min-height:100%; padding-left:32px; text-align:left; }
.story-expansion p { margin:0; }
.story-closing { margin-block:25px; text-align:left; }
.story-closing p { margin-bottom:24px; }
.executives { padding:100px 25px 125px; background:var(--off-white); }
.executives h2 { margin-bottom:80px; color:#000; font-size:40px; }
.executive-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.executive-grid article { display:flex; flex-direction:column; align-items:center; padding:10px 20px; border:2px solid #000; border-radius:10px; color:#000; text-align:center; }
.executive-grid h3 { margin-bottom:10px; font-size:32px; }
.executive-grid p { margin-bottom:10px; }
.executive-grid .executive-title { min-height:1.9em; }
.executive-grid img { display:block; width:100%; max-width:300px; height:300px; margin-bottom:10px; object-fit:cover; object-position:center; }
.executive-grid article > p:last-child { margin-bottom:0; }
.how-we-work { padding:150px max(25px, calc((100% - var(--content))/2)) 175px; }
.how-we-work .content-width { text-align:center; }
.how-we-work h2 { margin-bottom:80px; }
.work-layout { grid-template-columns:67% 33%; gap:0; margin-top:0; }
.work-steps { text-align:left; }
.work-step { padding:0; margin-bottom:20px; }
.work-step:last-child { margin-bottom:0; }
.work-step-heading { display:flex; align-items:center; gap:16px; }
.work-step h3 { margin:0; font-size:22px; }
.work-step > p { margin:8px 0 0 40px; font-size:17px; }
.pulse-dot { position:relative; flex:0 0 12px; width:12px; height:12px; border-radius:50%; background:var(--gold); }
.pulse-dot::before { content:""; position:absolute; inset:0; border-radius:inherit; background:var(--gold); animation:work-pulse 1.8s ease-out infinite; }
.work-summary { margin-left:24px; padding:25px 40px; border:4px solid var(--gold); border-radius:20px; box-shadow:5px 20px 75px #00000025; }
.work-summary p { margin:25px 0; }
@keyframes work-pulse { from { opacity:.75; transform:scale(1); } to { opacity:0; transform:scale(2.35); } }
@media (max-width:1023px) {
  .story { padding-bottom:70px; }
  .story-row { grid-template-columns:1fr; gap:28px; }
  .story-opening, .story-expansion { padding:0; text-align:center; }
  .story-photo { height:min(400px, calc(100vw - 50px)); }
  .story-middle { margin-top:35px; }
  .story-logo { order:2; }
  .story-expansion { order:1; }
  .story-closing { text-align:center; }
  .work-layout { grid-template-columns:1fr; gap:35px; }
  .work-summary { margin-left:0; }
}
@media (max-width:767px) {
  .executives { padding:70px 25px; }
  .executives h2 { margin-bottom:45px; font-size:30px; }
  .executive-grid { grid-template-columns:1fr; gap:22px; }
  .executive-grid img { height:auto; max-height:360px; object-fit:cover; }
  .how-we-work { padding-block:70px; }
  .how-we-work h2 { margin-bottom:45px; }
  .work-step-heading { gap:13px; align-items:flex-start; }
  .work-step h3 { font-size:20px; }
  .work-step > p { margin-left:25px; font-size:16px; }
  .pulse-dot { flex-basis:10px; width:10px; height:10px; margin-top:7px; }
  .work-summary { padding:25px; }
}
@media (max-width:479px) {
  .story { padding:58px 20px; }
  .story-opening h2 { font-size:27px; }
  .story-photo { height:calc(100vw - 40px); }
  .executives { padding-inline:20px; }
  .executive-grid article { padding-inline:16px; }
}
@media (prefers-reduced-motion:reduce) { .pulse-dot::before { animation:none; } }
/* Kept available to assistive technology only by exclusion from its navigation;
   bots that fill it are rejected server-side. */
.form-honeypot { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.contact-form button[disabled] { cursor:wait; opacity:.72; }
