/* Public identity: warm charcoal, restrained gold and honest project photography.
   Administration styles remain in site.css. */
:root {
    color-scheme: dark;
    --accent: #d0ac62; --accent-strong: #dfbf7f; --accent-deep: #171816; --accent-soft: #302b21;
    --gold: #d0ac62; --gold-bright: #e5c98a; --gold-strong: #d0ac62; --gold-soft: #302b21;
    --ink: #f1eee6; --ink-muted: #b9bab1; --ink-faint: #a0a297;
    --night: #141612; --paper: #191b17; --surface: #22251f; --surface-sunken: #1d201b;
    --line: #373c32; --line-strong: #777e6d;
    --danger: #ffa99e; --danger-soft: #362320; --warning: #e4c17c; --warning-soft: #332c1e;
    --success: #a4c5a3; --success-soft: #243026;
    --font-display: var(--font-body);
    --radius-sm: 2px; --radius: 2px; --radius-lg: 2px;
    --shell: 78rem;
    --section-space: clamp(4rem, 2rem + 5vw, 7.5rem);
}
body { line-height: 1.7; }
h1, h2, h3, h4 { font-weight: 450; letter-spacing: -0.045em; }
::selection { background: var(--gold); color: var(--night); }
.skip-link { background: var(--gold); color: var(--night); }
.section__title { font-size: clamp(2rem, 1.3rem + 2vw, 3.3rem); line-height: 1.14; }
.section__head { margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.section__head--row { gap: 1.75rem 3rem; }
.section__intro { margin: 0 0 0.2rem; max-width: 25rem; font-size: 0.92rem; line-height: 1.8; color: var(--ink-muted); }
.eyebrow { font-size: 0.65rem; font-weight: 500; letter-spacing: 0.18em; margin-bottom: 1.3rem; }
.eyebrow::before { height: 1px; width: 1.5rem; }
.section__lead { color: var(--ink-muted); max-width: 28rem; margin: 1.5rem 0 2rem; }
.link-arrow { padding-bottom: 0.5rem; gap: 1.4rem; font-size: 0.85rem; font-weight: 500; }
.link-arrow .arrow { font-size: 1.15rem; }

/* A single brand mark, with quiet gold navigation and a clear contact action. */
.site-header { background: rgba(20, 22, 18, 0.97); border-bottom: 1px solid var(--line); }
.site-header.is-stuck { background: rgba(20, 22, 18, 0.99); border-bottom-color: var(--line); box-shadow: none; }
.site-header__inner { min-height: 6.5rem; padding-block: 0.65rem; }
.site-header .brand__logo { width: 10rem; height: auto; }
.brand__text { display: grid; gap: 0.4rem; }
.brand__name { font-family: var(--font-body); font-size: 1.1rem; font-weight: 550; line-height: 1.2; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gold-bright); }
.brand__trade { font-size: 0.6rem; line-height: 1.2; letter-spacing: 0.28em; text-transform: uppercase; color: var(--ink-muted); }
.site-nav { gap: clamp(1.5rem, 3vw, 3rem); }
.site-nav__list { gap: clamp(0.5rem, 1.5vw, 1.75rem); }
.site-nav__link { display: flex; align-items: center; min-height: 44px; padding: 0.8rem 0.25rem; color: var(--gold); font-size: 0.78rem; font-weight: 450; letter-spacing: 0.025em; transition: color 0.2s var(--ease); }
.site-nav__link:hover, .site-nav__link:focus-visible, .site-nav__link.is-active { color: var(--gold-bright); }
.site-nav__link::after { bottom: 0.35rem; height: 1px; background: var(--gold); }
.site-nav__arrow { display: none; }
.nav-toggle { min-height: 44px; color: var(--gold-bright); border-color: var(--line-strong); gap: 0.75rem; }
.nav-toggle:hover, .nav-toggle[aria-expanded="true"] { background: var(--gold-soft); }
.site-header .site-nav__cta { background: transparent; color: var(--gold-bright); border-color: #806b43; padding: 0.75rem 1.1rem; }
.site-header .site-nav__cta:hover { background: var(--gold); color: var(--night); border-color: var(--gold); }

/* Full-bleed photography, a readable foreground and a floating project note. */
.home-hero { position: relative; isolation: isolate; overflow: hidden; background: var(--night); }
.home-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(90deg, rgba(16, 19, 15, 0.97) 0%, rgba(16, 19, 15, 0.9) 30%, rgba(16, 19, 15, 0.52) 57%, rgba(16, 19, 15, 0.12) 100%), linear-gradient(0deg, rgba(16, 19, 15, 0.42), transparent 45%); }
.home-hero__grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr); align-items: center; gap: clamp(2rem, 5vw, 5rem); min-height: clamp(38rem, 76svh, 50rem); }
.home-hero__copy { padding-block: clamp(3rem, 6vw, 6rem); max-width: 38rem; }
.home-hero .eyebrow { margin-bottom: 2rem; }
.home-hero__title { font-size: clamp(3rem, 1rem + 4.5vw, 5.25rem); line-height: 1.08; letter-spacing: -0.055em; }
.home-hero__title > span { color: var(--gold-bright); }
.home-hero__signature { display: block; width: min(100%, 33rem); height: auto; margin-top: 1.5rem; }
.home-hero__lead { margin: 1.7rem 0 0; max-width: 27rem; font-size: 1rem; line-height: 1.85; color: #dedfd6; }
.home-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.8rem; margin-top: 2rem; }
.home-hero__phone { display: inline-flex; align-items: center; gap: 0.85rem; min-height: 52px; color: var(--ink); text-decoration: none; }
.home-hero__phone-icon { flex: none; color: var(--gold-bright); }
.home-hero__phone-label { display: block; color: #dedfd6; font-size: 0.7rem; line-height: 1.5; }
.home-hero__phone-number { display: block; font-size: 1rem; font-weight: 500; line-height: 1.6; letter-spacing: 0.02em; white-space: nowrap; }
.home-hero__phone:hover .home-hero__phone-number { color: var(--gold-bright); text-decoration: underline; text-underline-offset: 0.25em; }
.home-hero__visual { display: contents; }
.home-hero__frame { position: absolute; inset: 0; z-index: -2; overflow: hidden; background: var(--surface); }
.home-hero__frame picture { display: contents; }
.home-hero__photo { width: 100%; height: 100%; object-fit: cover; object-position: 65% 50%; }
.home-hero__caption { position: relative; align-self: end; justify-self: end; display: grid; gap: 0.55rem; width: min(100%, 18rem); margin-bottom: clamp(5rem, 9vw, 9rem); padding: 1.2rem 1.4rem; border-left: 1px solid var(--gold); background: rgba(17, 20, 16, 0.88); backdrop-filter: blur(10px); font-size: 0.8rem; line-height: 1.65; transition: background-color 0.25s var(--ease), transform 0.25s var(--ease); }
.home-hero__caption > span:first-child { color: var(--gold-bright); text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.6rem; }
.home-hero__caption a { display: flex; align-items: baseline; gap: 0.75rem; color: var(--ink); text-decoration: none; }
.home-hero__caption a::after { content: ""; position: absolute; inset: 0; }
.home-hero__caption:has(a):hover { background: rgba(17, 20, 16, 0.97); transform: translateY(-4px); }
.home-hero__caption:focus-within { outline: 2px solid var(--gold-bright); outline-offset: 4px; }
.home-hero__caption a > span { color: var(--gold); }
.home-hero__caption a:hover { color: var(--ink); text-decoration: underline; }
.home-hero--text .home-hero__grid { grid-template-columns: 1fr; }
.home-hero--text .home-hero__copy { max-width: 42rem; }

/* One short arrival sequence; content is visible without scripting. */
@media (prefers-reduced-motion: no-preference) {
    .home-hero__photo { animation: hero-image-arrive 1.8s cubic-bezier(0.2, 0.65, 0.3, 1) both; }
    .home-hero__copy > *, .home-hero__caption { animation: hero-content-arrive 0.8s cubic-bezier(0.2, 0.65, 0.3, 1) backwards; }
    .home-hero__title { animation-delay: 0.08s; }
    .home-hero__signature { animation-delay: 0.16s; }
    .home-hero__lead { animation-delay: 0.24s; }
    .home-hero__actions { animation-delay: 0.32s; }
    .home-hero__caption { animation-delay: 0.4s; }
}
@keyframes hero-image-arrive { from { transform: scale(1.045); } to { transform: scale(1); } }
@keyframes hero-content-arrive { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }

/* Eight services form a useful, readable index immediately after the opening. */
.section--expertise { background: var(--surface-sunken); border-block: 1px solid var(--line); scroll-margin-top: 8rem; }
.expertise-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2.5rem; list-style: none; margin: 0; padding: 0; }
.expertise-item { border-top: 1px solid var(--line-strong); min-width: 0; }
.expertise-link { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-content: start; gap: 0.9rem 1rem; height: 100%; padding: 1.5rem 0 2rem; color: inherit; text-decoration: none; outline-offset: 6px; }
.expertise-link__number { grid-column: 1 / -1; font-size: 0.65rem; font-variant-numeric: tabular-nums; letter-spacing: 0.1em; color: var(--gold); }
.expertise-link__title { font-size: clamp(1.2rem, 1rem + 0.45vw, 1.5rem); line-height: 1.3; letter-spacing: -0.025em; transition: color 0.2s var(--ease); }
.expertise-link__arrow { color: var(--gold); font-size: 1.1rem; line-height: 1.6; transition: transform 0.2s var(--ease); }
.expertise-link__text { grid-column: 1 / -1; margin: 0; color: var(--ink-muted); font-size: 0.86rem; line-height: 1.8; max-width: 23rem; }
.expertise-link:hover .expertise-link__title { color: var(--gold-bright); }
.expertise-link:hover .expertise-link__arrow { transform: translate(3px, -3px); }
.section__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.section__foot > span { font-size: 0.8rem; color: var(--ink-faint); }

/* Consistent image proportions, fine captions and generous space. */
.project-grid { gap: clamp(1.5rem, 2.6vw, 2.5rem); }
.project-card { border: 0; border-radius: 0; background: transparent; overflow: visible; }
.project-card:hover { box-shadow: none; transform: none; }
.project-card__link { outline-offset: 6px; }
.project-card__media { aspect-ratio: 4 / 3; }
.project-card__body { padding: 1.4rem 0 0; gap: 0.65rem; }
.project-card__meta { color: var(--gold); font-size: 0.65rem; letter-spacing: 0.08em; }
.project-card__title { font-size: clamp(1.3rem, 1.1rem + 0.4vw, 1.55rem); font-weight: 450; letter-spacing: -0.025em; line-height: 1.3; }
.project-card__summary { font-size: 0.86rem; line-height: 1.8; }
.project-card__more { color: var(--ink); font-size: 0.75rem; gap: 1rem; font-weight: 500; margin-top: 0.5rem; }
.project-card__more .arrow { color: var(--gold); }
.project-card__placeholder { background: var(--surface); border: 1px solid var(--line); }
.project-detail__lead { background: var(--night); }
.service-cards { grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); }
.service-item, .service-card { scroll-margin-top: 9rem; }
.service-item__title { font-size: clamp(1.2rem, 1rem + 0.7vw, 1.6rem); line-height: 1.3; }
.service-item__text { font-size: 0.92rem; line-height: 1.75; }
.section--intro { background: var(--surface-sunken); border-block: 1px solid var(--line); }
.home-about { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: clamp(2rem, 6vw, 6rem); }
.home-about__image { margin: 0; }
.home-about__photo { width: 100%; aspect-ratio: 1 / 1.06; object-fit: cover; object-position: center 35%; }
.home-about__image figcaption { margin-top: 0.8rem; color: var(--ink-faint); font-size: 0.68rem; letter-spacing: 0.035em; }
.home-about .prose { margin-top: 1.75rem; font-size: 0.94rem; line-height: 1.85; }
.home-about .link-arrow { margin-top: 1.3rem; }
.home-about--text { max-width: 48rem; grid-template-columns: 1fr; }

/* Portrait spaces are ready for real photographs, in the agreed team order. */
.section--team { scroll-margin-top: 8rem; }
.team-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; }
.team-member { min-width: 0; }
.team-member__portrait { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: var(--surface); }
.team-member__photo { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.team-member__placeholder { position: absolute; inset: 0; display: grid; place-items: center; background: linear-gradient(145deg, #282d24, #20231d); }
.team-member__initials { color: #b7a278; font-size: clamp(2rem, 3vw, 3rem); font-weight: 300; line-height: 1; letter-spacing: -0.035em; }
.team-member__body { padding: 1.2rem 0 0; }
.team-member__name { font-size: 1.1rem; letter-spacing: -0.025em; line-height: 1.4; }
.team-member__role { margin: 0.4rem 0 0; color: var(--ink-muted); font-size: 0.76rem; }
.section--cta { padding-top: 0; }
.cta-panel { background: var(--surface-sunken); border: 1px solid var(--line); color: var(--ink); padding: clamp(1.75rem, 4.5vw, 4.5rem); }
.cta-panel__title { font-size: clamp(2rem, 1.3rem + 2vw, 3.3rem); line-height: 1.14; }
.cta-panel__text { color: var(--ink-muted); font-size: 0.9rem; line-height: 1.8; margin-top: 1.25rem; }
.cta-panel__actions { flex-direction: column; align-items: center; gap: 1rem; }
.cta-panel__phone { font-size: 0.85rem; text-decoration: none; color: var(--ink-muted); }
.cta-panel__phone:hover { color: var(--gold-bright); text-decoration: underline; }
.site-footer { border-top: 1px solid var(--line); color: var(--ink-muted); }
.site-footer__grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); }
.site-footer__location { color: var(--ink-faint); font-size: 0.8rem; margin-top: 1.5rem; }
.site-footer__since { display: block; width: 17.5rem; max-width: 100%; height: auto; justify-self: center; }
.site-footer__title { font-size: 0.65rem; font-weight: 500; color: var(--gold); }
.site-footer__list, .site-footer__address { font-size: 0.85rem; }
.site-footer a { color: var(--ink-muted); }
.site-footer__bar { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 1.5rem; padding-block: 2rem; color: var(--ink-faint); border-top-color: var(--line); font-size: 0.75rem; }
.site-footer__top { justify-self: end; }
.site-footer__team { font-size: 0.8rem; }

/* Shared controls and interior pages use the same palette and type scale. */
.button { min-height: 46px; font-weight: 500; font-size: 0.8rem; padding: 0.9rem 1.3rem; gap: 1.2rem; letter-spacing: 0.01em; }
.button--accent, .cta-panel .button--accent { background: var(--gold); color: var(--night); box-shadow: none; }
.button--accent:hover, .cta-panel .button--accent:hover { background: var(--gold-bright); color: var(--night); }
.button--outline { color: var(--ink); border-color: var(--line-strong); }
.button--outline:hover { background: var(--ink); color: var(--night); border-color: var(--ink); }
.button--danger { background: #a3271f; color: #fff; }
.notice--error, .flash--error { color: var(--danger); }
.notice--warning { color: var(--warning); }
.notice--success { color: var(--success); }
.field__input:focus { border-color: var(--gold-bright); box-shadow: 0 0 0 2px var(--gold); }
.field__input::placeholder { color: var(--ink-faint); opacity: 1; }
.field__error::before { color: var(--night); }
.page-head { background: var(--paper); padding-block: clamp(3rem, 5vw, 5rem); }
.page-head__title { font-size: clamp(2.5rem, 2rem + 2vw, 4.25rem); }
.contact-aside, .fact-card { box-shadow: none; border-top: 2px solid var(--gold); }

@media (max-width: 64rem) {
    .home-hero__grid { gap: 2rem; }
    .home-hero__title { font-size: clamp(3rem, 5.5vw, 4.5rem); }
    .home-hero__actions { gap: 0.5rem 1.25rem; }
    .expertise-grid { gap: 0 1.5rem; }
}
@media (max-width: 54rem) {
    .site-header__inner { min-height: 5.5rem; padding-block: 0.5rem; }
    .site-header .brand__logo { width: 8.5rem; }
    .site-nav { top: 100%; padding: 1rem 1.25rem 1.25rem; background: var(--night); border: 1px solid var(--line); border-top: 1px solid var(--gold); border-radius: 0; max-height: calc(100dvh - 6rem); overflow-y: auto; }
    .site-nav__list { gap: 0; }
    .site-nav__link { justify-content: space-between; padding: 1rem 0.75rem; font-size: 0.95rem; letter-spacing: 0.035em; border-bottom-color: var(--line); }
    .site-nav__link.is-active { color: var(--gold-bright); background: var(--surface-sunken); }
    .site-nav__arrow { display: inline-block; color: var(--gold); font-size: 1.1rem; }
    .site-header .nav-toggle__label { display: inline; font-size: 0.7rem; letter-spacing: 0.1em; }
    .site-nav__cta { margin-top: 1rem; }
    .site-header:not(.has-navigation) .site-header__inner { flex-wrap: wrap; }
    .site-header:not(.has-navigation) .site-nav { position: static; display: flex; flex-basis: 100%; box-shadow: none; }
    .site-header:not(.has-navigation) .nav-toggle { display: none; }
    .home-hero::after { background: linear-gradient(90deg, rgba(16, 19, 15, 0.94), rgba(16, 19, 15, 0.58)), linear-gradient(0deg, rgba(16, 19, 15, 0.35), transparent 40%); }
    .home-hero__grid { grid-template-columns: 1fr; gap: 0; min-height: 0; }
    .home-hero__copy { padding-block: 3.5rem 2.5rem; max-width: 38rem; }
    .home-hero__title { font-size: clamp(3rem, 7vw, 4.8rem); }
    .home-hero__caption { margin-bottom: 2.5rem; }
    .expertise-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .home-about { grid-template-columns: 1fr; gap: 2.5rem; }
    .home-about__photo { aspect-ratio: 4 / 3; max-height: 32rem; }
    .home-about__content { max-width: 38rem; }
    .team-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1.25rem; }
    .cta-panel__actions { align-items: flex-start; }
}
@media (max-width: 40rem) {
    .site-footer__bar { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); row-gap: 2rem; padding-block: 1.5rem 2rem; }
    .site-footer__since { grid-column: 1 / -1; grid-row: 2; width: 16rem; }
    .site-footer__top { grid-column: 2; grid-row: 1; }
    .home-hero__copy { padding-block: 3rem 2.5rem; }
    .home-hero .eyebrow { margin-bottom: 1.5rem; font-size: 0.6rem; }
    .home-hero__title { font-size: clamp(2.6rem, 10.5vw, 4rem); }
    .home-hero__lead { font-size: 0.9rem; margin-top: 1.25rem; }
    .home-hero__actions { margin-top: 1.5rem; gap: 0.5rem 1.25rem; }
    .home-hero__actions .button { font-size: 0.75rem; padding-inline: 1rem; gap: 0.75rem; }
    .home-hero__signature { margin-top: 1.25rem; }
    .home-hero__phone { gap: 0.6rem; }
    .home-hero__phone-number { font-size: 0.85rem; }
    .home-hero__caption { width: min(100%, 17rem); padding: 1rem 1.2rem; font-size: 0.75rem; }
    .home-hero__caption a { justify-content: space-between; }
    .section__intro { font-size: 0.85rem; }
    .expertise-grid { grid-template-columns: 1fr; }
    .expertise-link { grid-template-columns: 1.75rem minmax(0, 1fr) auto; gap: 0.65rem 0.75rem; padding-block: 1.4rem; }
    .expertise-link__number { grid-column: 1; grid-row: 1; align-self: center; }
    .expertise-link__title { grid-column: 2; font-size: 1.17rem; }
    .expertise-link__arrow { grid-column: 3; }
    .expertise-link__text { grid-column: 2 / -1; font-size: 0.8rem; }
    .expertise-item { border-top-color: var(--line); }
    .section__foot { padding-top: 1.4rem; }
    .project-grid { gap: 2.5rem; }
    .team-member__name { font-size: 0.93rem; }
    .team-member__role { font-size: 0.7rem; }
    .team-member__body { padding-top: 0.85rem; }
    .cta-panel__title { font-size: clamp(1.6rem, 6.4vw, 2.4rem); }
}
@media (prefers-contrast: more) {
    :root { --ink-muted: #e2e2d9; --ink-faint: #d2d5c8; --line: #7d8172; --line-strong: #a6ac98; }
    .home-hero::after { background: rgba(16, 19, 15, 0.92); }
}
@media print {
    :root { color-scheme: light; --ink: #111; --ink-muted: #222; --ink-faint: #333; --paper: #fff; --surface: #fff; --surface-sunken: #fff; --gold: #654b18; --gold-bright: #654b18; --gold-strong: #654b18; --accent-strong: #654b18; --line: #bbb; }
    .home-hero { padding-block: 2rem; }
    .home-hero__grid { grid-template-columns: 1fr; min-height: 0; }
    .home-hero::after, .home-hero__visual, .home-hero__actions, .section--cta { display: none; }
    .home-hero__lead { color: #222; }
    .section { padding-block: 2rem; }
    .home-about__photo { max-height: 20rem; }
}
