/* Elite Construction visual redesign — layered over the original production design system. */
:root {
  --container: 80rem;
  --radius: 0.2rem;
  --shadow: 0 1.5rem 4rem rgba(8, 24, 28, 0.12);
  --shadow-soft: 0 0.75rem 2.5rem rgba(8, 24, 28, 0.08);
  --line-dark: rgba(255, 255, 255, 0.16);
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --elite-orange-text: #93430f;
  --focus-ring: #155866;
}

body { background: var(--elite-off-white); }
main { background: white; }
.container { width: min(calc(100% - 2.25rem), var(--container)); }
.section { padding-block: clamp(4.5rem, 8vw, 8rem); }
.section-head { max-width: 60rem; margin-bottom: clamp(2.5rem, 5vw, 4.5rem); }
.section-head h2 { max-width: 17ch; }
.eyebrow { letter-spacing: 0.19em; }
.lead { max-width: 44rem; }

/* Header and nested navigation */
.site-header { background: rgba(255,255,255,.96); box-shadow: 0 1px 0 rgba(26,26,26,.08); }
.header-inner { width: min(calc(100% - 2rem), 88rem); }
.menu-toggle { min-width: 2.75rem; min-height: 2.75rem; padding: .5rem; }
.nav-dropdown summary { cursor: pointer; list-style: none; }
.nav-dropdown summary::-webkit-details-marker { display: none; }
.nav-dropdown summary::after { content: ""; display: inline-block; width: .42rem; height: .42rem; margin: 0 0 .2rem .45rem; border: solid currentColor; border-width: 0 2px 2px 0; transform: rotate(45deg); transition: transform var(--transition); }
.nav-dropdown[open] summary::after { transform: rotate(225deg); }
.nav-dropdown > div { display: grid; padding: .35rem .5rem 1rem 1rem; }
.nav-dropdown > div a { padding: .42rem 0; text-decoration: none; }
.nav-overview { color: var(--elite-teal); font-weight: 600; }

/* Image-led hero */
.hero::before, .page-hero::before, .angle-frame::before { content: none; }
.hero-redesign { min-height: min(52rem, calc(100svh - var(--header-height))); padding: 0; }
.hero-redesign .hero-grid { width: 100%; max-width: none; min-height: inherit; gap: 0; }
.hero-redesign .hero-copy { padding: clamp(3rem, 7vw, 7rem) max(1.125rem, calc((100vw - 80rem)/2)); padding-right: clamp(1.5rem, 5vw, 5rem); align-self: center; }
.hero-redesign h1 { max-width: 12ch; }
.hero-redesign .hero-media { min-height: 24rem; margin: 0; box-shadow: none; }
.hero-redesign .hero-media picture, .hero-redesign .hero-media img { width: 100%; height: 100%; }
.hero-redesign .hero-media img { min-height: 24rem; aspect-ratio: auto; object-fit: cover; }
.hero-redesign .hero-media figcaption { position: absolute; right: 0; bottom: 0; max-width: 29rem; padding: 1rem 1.3rem; background: rgba(41,102,115,.94); }
.hero-statement { margin: 2.4rem 0 0; color: var(--elite-orange); font: italic 1rem/1.5 Merriweather, Georgia, serif; }

.service-hero { padding: 0; }
.service-hero-grid { display: grid; min-height: 34rem; gap: 0; align-items: stretch; }
.service-hero-grid > div { align-self: center; padding-block: clamp(3.5rem, 7vw, 6.5rem); }
.service-hero-media { min-height: 22rem; margin: 0; overflow: hidden; }
.service-hero-media picture, .service-hero-media img { width: 100%; height: 100%; }
.service-hero-media img { min-height: 22rem; object-fit: cover; }

/* Editorial services grid */
.services-editorial { display: grid; gap: 1.25rem; }
.service-tile { display: grid; overflow: hidden; background: var(--elite-black); color: white; }
.service-tile-image { display: block; min-height: 15rem; overflow: hidden; }
.service-tile-image picture, .service-tile-image img { width: 100%; height: 100%; }
.service-tile-image img { min-height: 15rem; object-fit: cover; transition: transform .6s var(--ease-out), filter .4s ease; }
.service-tile > div { padding: 1.5rem; }
.service-tile h3 { color: white; }
.service-tile h3 a { text-decoration: none; }
.service-tile > div > span { color: var(--elite-orange); font-weight: 600; }
.service-tile .arrow-link { color: white; }
.service-tile:hover .service-tile-image img, .service-tile:focus-within .service-tile-image img { transform: scale(1.035); filter: saturate(1.08); }

/* Architectural editorial sections */
.trust-strip { background: var(--elite-off-white); color: var(--elite-black); border-bottom: 1px solid var(--line); }
.trust-grid p { border-color: var(--line); }
.trust-grid strong { color: var(--elite-teal); }
.statement-panel { box-shadow: var(--shadow-soft); }
.image-feature figure { overflow: hidden; box-shadow: none; }
.image-feature figure img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.local-person { background: var(--elite-off-white); }
.local-person-grid { display: grid; gap: clamp(2.5rem, 7vw, 7rem); align-items: center; }
.local-person-media { margin: 0; overflow: hidden; }
.local-person-media img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.portrait-ready { min-height: 27rem; display: grid; place-content: center; gap: 1rem; text-align: center; border: 1px solid rgba(41,102,115,.25); background: linear-gradient(145deg, #edf0ef, #fff); }
.portrait-ready span { display: grid; place-items: center; width: 6rem; height: 6rem; margin: auto; background: var(--elite-teal); color: white; font-size: 1.8rem; font-weight: 600; }
.portrait-ready p { max-width: 18rem; margin: 0; color: var(--muted); font-size: var(--step--1); }
.trust-social { background: var(--elite-black); color: #e7ebea; }
.trust-social h2, .trust-social h3 { color: white; }
.trust-social .eyebrow { color: white; }
.trust-social .arrow-link, .trust-social .button-outline { color: white; }
.trust-social .button-outline { border-color: white; }
.trust-social-grid { display: grid; gap: 2rem; }
.social-panel { padding: clamp(2rem, 5vw, 4rem); border: 1px solid var(--line-dark); background: #202829; }
.is-disabled { opacity: .7; cursor: default; pointer-events: none; }

/* Cards, areas and forms */
.three-grid article, .area-grid article { padding: clamp(1.5rem, 3vw, 2.5rem); border-color: #dfe3e2; box-shadow: none; }
.area-grid article { transition: border-color var(--transition), transform var(--transition); }
.area-grid article:hover { border-color: var(--elite-teal); transform: translateY(-3px); }
.scope-box, .contact-panel { padding: clamp(1.5rem, 3vw, 2.5rem); border-top: 0; border-left: .35rem solid var(--elite-orange); }
.quote-form { padding: clamp(1.25rem, 3vw, 2.5rem); border: 1px solid var(--line); background: white; box-shadow: var(--shadow-soft); }
.form-grid { gap: 1.25rem; }
.form-grid input, .form-grid select, .form-grid textarea { min-height: 3.4rem; border-color: #7a8687; padding: .75rem .85rem; transition: border-color var(--transition), box-shadow var(--transition); }
.form-grid input:focus, .form-grid select:focus, .form-grid textarea:focus { border-color: var(--elite-teal); box-shadow: 0 0 0 3px rgba(41,102,115,.15); outline: 0; }
.form-grid input:focus-visible, .form-grid select:focus-visible, .form-grid textarea:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 2px; }
.form-grid [aria-invalid="true"] { border-color: #8f1d1d; box-shadow: 0 0 0 3px rgba(143,29,29,.14); }
.form-status { border: 1px solid rgba(41,102,115,.2); border-left: .35rem solid var(--elite-teal); }
.mobile-actions { padding-bottom: env(safe-area-inset-bottom); }

/* WCAG AA contrast and focus treatment */
.service-card > span, .process span { color: var(--elite-orange-text); }
.final-cta .eyebrow { color: white; }
.hero .eyebrow:not(.orange), .page-hero .eyebrow:not(.orange) { color: white; }
.site-footer .button { color: var(--elite-black); }
:focus-visible { outline-color: var(--focus-ring); }
.hero :focus-visible, .page-hero :focus-visible, .dark :focus-visible,
.teal :focus-visible, .trust-social :focus-visible, .site-footer :focus-visible,
.final-cta :focus-visible, .mobile-actions :focus-visible { outline-color: white; }
.prose a, .contact-panel a, .scope-box a { text-decoration-thickness: .1em; }

@media (forced-colors: active) {
  .button, .service-tile, .portrait-ready, .quote-form { border: 1px solid ButtonText; }
}

@media (max-width: 63.99rem) {
  .hero-redesign .hero-grid,
  .service-hero-grid { position: relative; display: block; min-height: 40rem; }
  .hero-redesign .hero-copy,
  .service-hero-grid > div:first-child { position: relative; z-index: 2; min-height: 40rem; display: flex; flex-direction: column; justify-content: center; padding: 3rem max(1.125rem, calc((100vw - 80rem)/2)); background: linear-gradient(90deg, rgba(26,26,26,.96) 0%, rgba(26,26,26,.87) 68%, rgba(26,26,26,.58) 100%); }
  .hero-redesign h1 { font-size: clamp(2.45rem, 10.5vw, 3.4rem); }
  .hero-redesign .hero-media,
  .service-hero-media { position: absolute; inset: 0; z-index: 0; min-height: 40rem; opacity: .52; }
  .hero-redesign .hero-media img,
  .service-hero-media img { min-height: 40rem; }
  .hero-redesign .hero-media figcaption { display: none; }
  .hero-redesign .button-row { margin-top: 1.25rem; }
  .hero-statement { margin-top: 1.35rem; }
}

/* Footer */
.site-footer { padding-top: clamp(4rem, 8vw, 7rem); }
.footer-intro { display: grid; gap: 2rem; align-items: end; padding-bottom: 3rem; border-bottom: 1px solid var(--line-dark); }
.footer-intro > p { max-width: 32rem; margin: 0; font-size: var(--step-1); }
.footer-grid { padding-top: 3rem; }
.footer-base { flex-wrap: wrap; }
.muted-link { color: #9aa2a1; }

@media (min-width: 48rem) {
  .services-editorial { grid-template-columns: repeat(2, 1fr); }
  .service-tile-1 { grid-row: span 2; }
  .service-tile-1 .service-tile-image { min-height: 25rem; }
  .local-person-grid, .trust-social-grid, .footer-intro { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 64rem) {
  .site-nav > a, .nav-dropdown > summary { display: block; padding: .7rem .55rem; font-size: .82rem; font-weight: 600; text-decoration: none; }
  .nav-dropdown { position: relative; }
  .nav-dropdown > div { position: absolute; top: calc(100% + .6rem); left: 0; z-index: 5; width: 45rem; padding: 1.35rem; grid-template-columns: repeat(3, 1fr); gap: .25rem 1.25rem; background: white; border-top: 3px solid var(--elite-orange); box-shadow: var(--shadow); }
  .nav-dropdown:not([open]) > div { display: none; }
  .nav-dropdown:hover > div, .nav-dropdown:focus-within > div { display: grid; }
  .nav-areas > div { left: 50%; width: 34rem; grid-template-columns: repeat(2, 1fr); transform: translateX(-50%); }
  .nav-overview { grid-column: 1 / -1; padding-bottom: .65rem !important; margin-bottom: .35rem; border-bottom: 1px solid var(--line); }
  .hero-redesign .hero-grid { grid-template-columns: minmax(0, .92fr) minmax(31rem, 1.08fr); }
  .hero-redesign { min-height: 44rem; }
  .hero-redesign .hero-copy { padding: 3.5rem clamp(3rem, 5vw, 5rem) 3.5rem max(2rem, calc((100vw - 80rem)/2)); }
  .hero-redesign h1 { max-width: 14ch; font-size: clamp(3.2rem, 4vw, 4rem); line-height: 1; }
  .hero-redesign .hero-media { height: min(50rem, calc(100svh - var(--header-height))); min-height: 44rem; }
  .hero-redesign .hero-media img { height: 100%; min-height: 0; }
  .service-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(28rem, .82fr); }
  .service-hero-grid > div { padding-right: clamp(3rem, 7vw, 7rem); }
  .service-hero-media { margin-right: calc((80rem - 100vw)/2); }
  .services-editorial { grid-template-columns: repeat(12, 1fr); grid-auto-flow: dense; }
  .service-tile { grid-column: span 4; }
  .service-tile-1, .service-tile-4 { grid-column: span 8; grid-template-columns: 1.25fr .75fr; grid-row: auto; }
  .service-tile-1 .service-tile-image, .service-tile-4 .service-tile-image { min-height: 23rem; }
  .service-tile-2, .service-tile-3 { grid-column: span 4; }
  .footer-grid { grid-template-columns: 1.25fr 1fr 1fr 1.35fr; }
}

@media (min-width: 82rem) {
  .site-nav > a, .nav-dropdown > summary { padding-inline: .7rem; font-size: .88rem; }
}

@media (prefers-reduced-motion: no-preference) {
  .service-tile, .area-grid article, .process li { animation: gentle-in .6s var(--ease-out) both; }
  @keyframes gentle-in { from { opacity: 0; transform: translateY(10px); } }
}

@media (prefers-reduced-motion: reduce) {
  .service-tile-image img { transition: none; }
}
