:root {
    --charcoal: #191B1C;
    --paper: #F3F0EA;
    --ink: #222526;
    --slate: #565D60;
    --bronze: #8A5A35;
    --line: #CEC9C1;
    --dark-line: #444849;
}
* { box-sizing: border-box; }
html { scroll-padding-top: 24px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: Arial, Helvetica, sans-serif; font-size: 16px; line-height: 1.65; }
a { color: inherit; text-underline-offset: 5px; }
a:focus-visible { outline: 3px solid var(--bronze); outline-offset: 5px; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { line-height: 1.12; letter-spacing: -.035em; }
h1 { font-size: clamp(2.6rem, 4.2vw, 4.6rem); margin-bottom: 0; }
h2 { font-size: clamp(2rem, 3.1vw, 3.3rem); margin-bottom: 24px; }
h3 { font-size: 1.45rem; margin-bottom: 13px; }
p { margin-bottom: 20px; }
.container { width: min(1320px, calc(100% - 112px)); margin-inline: auto; }
.section { padding-block: 100px; }
.section-bordered { border-top: 1px solid var(--line); }
.eyebrow, .card-meta, .photo-index, .photo-caption { font-size: .7rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.eyebrow { color: var(--bronze); margin-bottom: 24px; }
.small-note { color: var(--slate); font-size: .8rem; line-height: 1.6; }
.skip-link { position: absolute; top: -100px; left: 20px; padding: 12px 20px; background: var(--paper); color: var(--ink); z-index: 10; }
.skip-link:focus { top: 10px; }
.site-header { background: var(--charcoal); color: var(--paper); }
.header-inner { min-height: 84px; display: flex; align-items: center; justify-content: space-between; gap: 30px; border-bottom: 1px solid var(--dark-line); }
.wordmark { flex-shrink: 0; text-decoration: none; line-height: 1; }
.wordmark > span { display: block; text-transform: uppercase; font-size: .68rem; font-weight: 700; letter-spacing: .2em; margin-bottom: 5px; }
.wordmark strong { font-size: 2.4rem; letter-spacing: -.055em; text-transform: uppercase; }
.brand-dot { color: #BC8D69; }
nav ul { display: flex; align-items: center; gap: 25px; padding: 0; margin: 0; list-style: none; }
nav a { display: block; padding-block: 12px; text-decoration: none; font-size: .9rem; }
nav a:hover, nav a[aria-current] { text-decoration: underline; }
nav a[aria-current="page"] { text-decoration-color: var(--bronze); text-decoration-thickness: 2px; }
nav .nav-contact { border: 1px solid #858681; padding: 10px 19px; }
.photo-placeholder { position: relative; display: grid; place-items: center; text-align: center; background: #DFDBD3; border: 1px solid #C3BDB3; color: var(--slate); padding: 50px 22px; }
.photo-placeholder > div { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.photo-label { font-size: .85rem; font-weight: 700; }
.photo-note { font-size: .7rem; max-width: 32ch; }
.photo-index { position: absolute; top: 19px; left: 21px; text-align: left; }
.photo-caption { position: absolute; bottom: 20px; left: 23px; right: 23px; text-align: left; }
.button-row { display: flex; gap: 12px; flex-wrap: wrap; }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 20px; padding: 14px 20px; text-decoration: none; font-size: .8rem; font-weight: 700; border: 1px solid transparent; }
.button-bronze { background: var(--bronze); color: var(--paper); }
.button-outline { border-color: #858681; }
.button:hover { text-decoration: underline; }
.intro { display: grid; grid-template-columns: 1fr 2fr; gap: 50px; }
.intro-text { color: var(--slate); font-size: 1.15rem; max-width: 65ch; }
.intro .small-note { margin-bottom: 0; max-width: 62ch; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 32px; margin-bottom: 40px; }
.section-heading h2 { margin-bottom: 0; }
.section-heading > p { color: var(--slate); font-size: .95rem; margin: 0; }
.completed-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.card-photo { aspect-ratio: 4 / 3; }
.card-meta { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; color: var(--slate); font-size: .6rem; padding: 23px 0 14px; }
.project-card > p { color: var(--slate); font-size: .9rem; margin-bottom: 0; max-width: 53ch; }
.workshop { background: #E8E4DD; }
.workshop-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px; }
.workshop-photo { aspect-ratio: 16 / 10; background: #D5D1C9; }
.project-card .progress { display: flex; align-items: center; gap: 10px; border-top: 1px solid #C3BDB3; margin-top: 24px; padding-top: 17px; font-size: .78rem; color: var(--ink); }
.status-dot { width: 7px; height: 7px; background: var(--bronze); border-radius: 50%; flex-shrink: 0; }
.capabilities { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; }
.capabilities > div > p:not(.eyebrow) { max-width: 44ch; color: var(--slate); }
.service-list { margin: 0; }
.service-list > div { border-top: 1px solid var(--line); padding: 22px 0; }
.service-list dt { font-size: 1.25rem; font-weight: 700; }
.service-list dt span { font-size: .7rem; color: var(--bronze); margin-right: 20px; }
.service-list dd { margin: 10px 0 0 36px; color: var(--slate); font-size: .9rem; max-width: 44ch; }
.process { padding-block: 80px; }
.process-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: stretch; }
.detail-photo { min-height: 520px; }
.process-copy { padding-block: 25px; }
.process-copy > p:not(.eyebrow) { color: var(--slate); }
.process-list { list-style: decimal-leading-zero; margin: 32px 0 0; padding-left: 30px; }
.process-list li { padding-left: 12px; margin-bottom: 23px; }
.process-list li::marker { color: var(--bronze); font-size: .75rem; font-weight: 700; }
.process-list h3 { font-size: 1rem; letter-spacing: -.01em; margin-bottom: 6px; }
.process-list p { font-size: .85rem; color: var(--slate); margin: 0; }
.contact { background: var(--charcoal); color: var(--paper); }
.contact-inner { display: grid; grid-template-columns: 1.2fr 1fr; align-items: center; gap: 100px; }
.contact .eyebrow { color: #C49A77; }
.contact h2 { font-size: clamp(2.8rem, 4.5vw, 4.5rem); }
.contact p { color: #C7C7C1; }
.contact-placeholder { border-left: 1px solid var(--dark-line); padding-left: 40px; }
.contact-placeholder .eyebrow { display: block; margin-bottom: 15px; }
.contact-placeholder .small-note { margin-bottom: 0; }
.site-footer { background: var(--charcoal); color: var(--paper); }
.footer-top { border-top: 1px solid var(--dark-line); padding-block: 40px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.footer-top p { color: #C7C7C1; font-size: .85rem; margin: 0; }
.back-top { font-size: .8rem; }
.footer-bottom { border-top: 1px solid var(--dark-line); padding-block: 24px; display: flex; justify-content: space-between; gap: 20px; color: #C7C7C1; font-size: .7rem; }
@media (max-width: 1100px) {
    .container { width: calc(100% - 64px); }
    .header-inner { align-items: flex-start; flex-direction: column; gap: 12px; padding-block: 16px; }
    nav { width: 100%; }
    nav ul { justify-content: space-between; gap: 15px; }
    .completed-grid { gap: 20px; }
    .card-photo { aspect-ratio: 1; }
    .capabilities, .process-grid { gap: 40px; }
    .contact-inner { gap: 50px; }
}
@media (max-width: 760px) {
    .container { width: calc(100% - 40px); }
    .section { padding-block: 64px; }
    .header-inner { gap: 12px; }
    nav ul { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px 12px; align-items: center; }
    nav a { font-size: .85rem; padding-block: 10px; }
    nav .nav-contact { padding: 8px 10px; text-align: center; }
    .button { padding-inline: 16px; }
    .intro, .capabilities, .process-grid, .contact-inner { grid-template-columns: 1fr; gap: 25px; }
    .intro > .eyebrow { margin-bottom: 0; }
    .section-heading { display: block; margin-bottom: 30px; }
    .section-heading > p { margin-top: 20px; }
    .completed-grid, .workshop-grid { grid-template-columns: 1fr; gap: 38px; }
    .card-photo { aspect-ratio: 4 / 3; }
    .workshop-photo { aspect-ratio: 4 / 3; }
    .project-card > p { max-width: none; }
    .capabilities { gap: 20px; }
    .process { padding-block: 60px; }
    .detail-photo { min-height: 0; aspect-ratio: 1; }
    .process-copy { padding-top: 10px; padding-bottom: 0; }
    .contact-placeholder { border-left: 0; border-top: 1px solid var(--dark-line); padding: 25px 0 0; }
    .footer-top { flex-wrap: wrap; }
    .footer-top p { display: none; }
    .footer-bottom { flex-direction: column; gap: 8px; }
}
@media (max-width: 360px) {
    .container { width: calc(100% - 32px); }
    nav ul { column-gap: 6px; }
    nav a { font-size: .8rem; }
    h1 { font-size: 2.3rem; }
    .button-row { flex-direction: column; }
    .photo-caption { font-size: .6rem; }
}
/* Keep intrinsic aspect ratios and long headings within narrow grid tracks. */
.photo-placeholder { width: 100%; min-width: 0; }
.hero-copy > *, .contact-inner > *, .process-grid > * { min-width: 0; }

/* Real shop photography: stable frames, natural proportions, restrained presentation. */
img { display: block; max-width: 100%; }
.hero { background: var(--charcoal); color: var(--paper); }
.hero > .container { width: 100%; max-width: none; }
.hero-stage { position: relative; isolation: isolate; min-height: 780px; height: 88vh; max-height: 1100px; padding: 0; }
.hero-media { position: relative; width: 100%; height: 100%; }
.hero-picture { display: block; width: 100%; height: 100%; }
.hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 47% 58%; z-index: -2; }
.hero-stage::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(10,12,12,.72) 0%, rgba(10,12,12,.50) 28%, rgba(10,12,12,.10) 50%, rgba(10,12,12,0) 65%); pointer-events: none; }
.hero-copy { position: absolute; top: 38px; left: max(56px, calc((100vw - 1320px) / 2)); right: max(56px, calc((100vw - 1320px) / 2)); max-width: 780px; }
@media (min-width: 901px) {
    .hero-copy { transform: translateY(-16px); }
}
.hero-copy h1 { font-size: clamp(2.3rem, 3.3vw, 3.4rem); margin-bottom: 12px; }
.hero-copy > p { font-size: .95rem; line-height: 1.5; margin-bottom: 18px; color: #fff; text-shadow: 0 1px 2px rgb(0 0 0 / 60%); }
/* Preserve the button dimensions and adjacent button position without the icon. */
.hero-copy .button-bronze > span[aria-hidden="true"] { visibility: hidden; }
.hero-copy .button-outline { background: rgb(25 27 28 / 28%); border-color: #bbbcb7; }
.completed-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.card-photo, .workshop-photo { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.featured-project-link { display: block; text-decoration: none; }
.featured-project-link:hover h3 { text-decoration: underline; }
.project-card h3 { margin: 22px 0 12px; font-size: 1.25rem; letter-spacing: -.025em; }
.workshop-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.workshop-photo { aspect-ratio: 4 / 3; }
.workshop-grid .project-card:last-child .workshop-photo { object-position: center 40%; }
.process-grid { grid-template-columns: 1.3fr 1fr; align-items: center; gap: 64px; }
.shop-photographs { display: grid; gap: 24px; }
.shop-interior { width: 100%; height: auto; aspect-ratio: 2000 / 761; object-fit: cover; }
.shop-exterior { width: 65%; height: auto; aspect-ratio: 2000 / 1205; object-fit: cover; }
@media (max-width: 1100px) {
    .hero-stage { min-height: 720px; height: 85vh; }
    .hero-copy { top: 32px; left: 32px; right: 32px; }
    .completed-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 24px; }
    .process-grid { gap: 36px; }
}
@media (max-width: 900px) {
    .hero-stage { min-height: 0; height: auto; padding: 0; display: flex; flex-direction: column; }
    .hero-media, .hero-picture { height: auto; }
    .hero-image { position: relative; inset: auto; z-index: auto; height: auto; aspect-ratio: 3 / 2; object-position: 42% 64%; }
    .hero-stage::after { display: none; }
    .hero-copy { position: static; padding: 32px; max-width: none; }
    .hero-copy h1 { font-size: clamp(2rem, 4.8vw, 3rem); }
    .workshop-grid { grid-template-columns: 1fr; gap: 40px; }
    .workshop-photo { aspect-ratio: 3 / 2; }
    .process-grid { grid-template-columns: 1fr; }
    .shop-exterior { width: 60%; }
}
@media (max-width: 760px) {
    .hero-copy { padding: 28px 20px 36px; }
    .hero-image { aspect-ratio: 4 / 3; object-position: 20% 65%; }
    .hero-copy h1 { font-size: 2rem; }
    .hero-copy .button-row { gap: 10px; }
    .completed-grid { grid-template-columns: 1fr; gap: 36px; }
    .card-photo, .workshop-photo { aspect-ratio: 4 / 3; }
    .shop-exterior { width: 80%; }
}

/* Compact header and hero controls at the established phone breakpoint. */
.menu-toggle { display: none; }
@media (max-width: 760px) {
    .site-header .header-inner { min-height: 88px; padding-block: 0; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 0; }
    .site-header .wordmark { margin-block: 18px; }
    .site-header .wordmark strong { font-size: 2.4rem; }
    .site-header .wordmark > span { font-size: .68rem; }
    .menu-toggle { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid #858681; background: transparent; color: var(--paper); font-size: 1.55rem; cursor: pointer; }
    .menu-toggle:focus-visible { outline: 3px solid var(--bronze); outline-offset: 4px; }
    .site-header nav { display: none; grid-column: 1 / -1; padding: 0 0 18px; }
    .menu-toggle[aria-expanded="true"] + nav { display: block; }
    .site-header nav ul { display: grid; grid-template-columns: 1fr; gap: 0; }
    .site-header nav a { padding: 10px 0; min-height: 44px; }
    .site-header nav .nav-contact { border: 0; text-align: left; }
    .hero-copy .button-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .hero-copy .button { min-width: 0; justify-content: center; gap: 8px; padding-inline: 8px; font-size: .75rem; }
}

/* The badge and photograph have separate sizing and positioning rules. */
.rmg-badge {
    position: absolute;
    top: 22px;
    left: 22px;
    right: auto;
    bottom: auto;
    width: 95px;
    height: auto;
    z-index: 10;
    pointer-events: none;
}
.rmg-badge > img {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
    object-fit: contain;
    position: static;
    inset: auto;
}
@media (max-width: 760px) {
    .rmg-badge { width: 68px; top: 12px; left: 12px; }
}

/* Current Projects: scoped to the section immediately below the approved hero. */
.current-projects .current-projects-heading { margin-bottom: 44px; }
.current-projects .current-projects-title-row { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px 28px; margin-bottom: 20px; }
.current-projects .current-projects-title-row h2 { margin-bottom: 0; }
.current-projects .current-projects-view-all { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--bronze); font-size: .85rem; font-weight: 700; text-underline-offset: 4px; }
.current-projects .current-projects-view-all:hover { text-decoration-thickness: 2px; }
.current-projects .eyebrow { margin-bottom: 16px; }
.current-projects h2 { color: var(--charcoal); margin-bottom: 20px; }
.current-projects .current-projects-intro { color: var(--slate); margin-bottom: 0; max-width: 58ch; }
.current-projects .current-projects-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.current-projects .project-card { min-width: 0; display: flex; flex-direction: column; }
.current-projects .current-project-media { position: relative; width: 100%; aspect-ratio: 3 / 2; }
.current-projects .current-project-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.current-projects .project-card h3 { color: var(--charcoal); margin: 24px 0 12px; }
.current-projects .project-card > p { max-width: none; margin-bottom: 24px; }
.current-projects .current-project-link { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 44px; margin-top: auto; padding-block: 14px; border-top: 1px solid var(--line); color: var(--bronze); font-size: .8rem; font-weight: 700; text-decoration: none; }
.current-projects .current-project-link:hover { text-decoration: underline; }
@media (max-width: 1100px) {
    .current-projects .current-projects-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 24px; }
}
@media (max-width: 760px) {
    .current-projects .current-projects-heading { margin-bottom: 32px; }
    .current-projects .current-projects-grid { grid-template-columns: 1fr; gap: 40px; }
}

/* Project listings and profiles share the homepage typography and copper accent. */
.project-intro { background: var(--charcoal); color: var(--paper); }
.project-intro .eyebrow { color: #C49A77; }
.project-intro h1 { max-width: 22ch; }
.project-intro h1 + p { margin-top: 28px; max-width: 62ch; color: #C7C7C1; }
.project-empty { color: var(--slate); margin: 0; }
.project-photography { padding-block: 64px; }
.project-primary-photo, .project-gallery img { width: 100%; height: auto; }
.project-gallery { margin-top: 64px; }
.project-gallery-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; align-items: start; }
.project-gallery figure { margin: 0; min-width: 0; }
.project-gallery figcaption { margin-top: 12px; color: var(--slate); font-size: .9rem; line-height: 1.6; overflow-wrap: anywhere; }
.current-projects .project-listing-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.current-projects .project-listing-grid h2 { font-size: 1.25rem; margin: 24px 0 12px; letter-spacing: -.025em; }
@media (max-width: 1100px) {
    .current-projects .project-listing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .current-projects .project-listing-grid, .project-gallery-grid { grid-template-columns: 1fr; }
    .project-photography { padding-block: 40px; }
}

/* Editorial project detail: optional content, photography at its natural ratio. */
.project-detail .project-detail-hero { background: var(--charcoal); color: var(--paper); padding-top: 32px; }
.project-detail .project-detail-hero-image { width: 100%; height: auto; }
.project-detail .project-detail-hero-copy { padding-block: 48px 64px; }
.project-detail .project-detail-hero .eyebrow, .project-detail .project-cta .eyebrow { color: #C49A77; }
.project-detail .project-detail-hero .eyebrow { margin-bottom: 18px; }
.project-detail h1 { font-size: clamp(2.5rem, 4.8vw, 4.6rem); max-width: 22ch; }
.project-detail .project-detail-deck { max-width: 56ch; color: #C7C7C1; margin: 24px 0 0; font-size: 1.1rem; }
.project-detail .project-detail-intro, .project-detail .project-details { display: grid; grid-template-columns: 1fr 1.2fr; gap: 8%; align-items: start; }
.project-detail .project-detail-intro h2 { max-width: 15ch; font-size: clamp(2rem, 3vw, 3rem); margin: 0; }
.project-detail .project-detail-intro p { max-width: 51ch; color: var(--slate); font-size: 1.1rem; }
.project-detail .project-detail-intro p:last-child { margin-bottom: 0; }
.project-detail .project-gallery { margin-top: 0; }
.project-detail .project-gallery h2 { font-size: 1.15rem; letter-spacing: -.015em; border-top: 1px solid var(--line); padding-top: 24px; margin-bottom: 32px; }
.project-detail .project-detail-gallery-images { display: grid; gap: 64px; }
.project-detail .project-detail-gallery-images figure { margin: 0; }
.project-detail .project-detail-gallery-images figure:nth-child(even) { width: 72%; justify-self: end; }
.project-detail .project-gallery img { width: 100%; height: auto; }
.project-detail .project-details h2 { font-size: 2rem; margin: 0; }
.project-detail .project-details dl { width: 100%; max-width: 580px; margin: 0; }
.project-detail .project-details dl > div { display: grid; grid-template-columns: 1fr 1.7fr; gap: 24px; padding-block: 18px; border-top: 1px solid var(--line); }
.project-detail .project-details dt { color: var(--slate); font-size: .85rem; }
.project-detail .project-details dd { margin: 0; font-size: .95rem; }
.project-detail .project-cta { background: var(--charcoal); color: var(--paper); padding-block: 80px; }
.project-detail .project-cta-inner { display: flex; justify-content: space-between; align-items: center; gap: 40px; }
.project-detail .project-cta h2 { max-width: 18ch; margin: 0; }
.project-detail .project-cta .button { flex-shrink: 0; min-height: 48px; }
.project-detail .project-navigation { display: flex; align-items: center; justify-content: space-between; gap: 32px; padding-block: 40px; }
.project-detail .project-navigation a { width: auto; padding-block: 12px; min-height: 44px; text-decoration: none; font-size: .95rem; }
.project-detail .project-navigation a:hover { text-decoration: underline; }
.project-detail .project-navigation-next { text-align: right; }
.project-detail .project-navigation-next span { display: block; color: var(--bronze); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 6px; }
@media (max-width: 1100px) {
    .project-detail .project-detail-intro, .project-detail .project-details { gap: 40px; }
    .project-detail .project-detail-gallery-images { gap: 40px; }
    .project-detail .project-detail-gallery-images figure:nth-child(even) { width: 85%; }
}
@media (max-width: 760px) {
    .project-detail .project-detail-hero { padding-top: 20px; }
    .project-detail .project-detail-hero-copy { padding-block: 32px 44px; }
    .project-detail .project-detail-intro, .project-detail .project-details { grid-template-columns: 1fr; gap: 28px; }
    .project-detail .project-detail-intro h2 { max-width: 19ch; }
    .project-detail .project-detail-gallery-images { gap: 24px; }
    .project-detail .project-detail-gallery-images figure:nth-child(even) { width: 100%; }
    .project-detail .project-cta { padding-block: 56px; }
    .project-detail .project-cta-inner { flex-direction: column; align-items: flex-start; gap: 28px; }
    .project-detail .project-navigation { align-items: flex-start; flex-direction: column; gap: 16px; padding-block: 28px; }
    .project-detail .project-navigation-next { text-align: left; }
}

/* Contact form: existing contact palette and responsive two-column layout. */
.contact-form-panel { min-width: 0; border-left: 1px solid var(--dark-line); padding-left: 40px; }
.contact-form { display: grid; gap: 16px; }
.contact-field label { display: block; margin-bottom: 6px; font-size: .9rem; }
.contact-field input, .contact-field textarea { display: block; width: 100%; min-width: 0; padding: 12px; border: 1px solid #858681; border-radius: 0; background: var(--paper); color: var(--ink); font: inherit; }
.contact-field textarea { resize: vertical; }
.contact-field input:focus-visible, .contact-field textarea:focus-visible, .contact button:focus-visible { outline: 3px solid #C49A77; outline-offset: 3px; }
.contact-field [aria-invalid="true"] { border: 2px solid #EBAFA4; }
.contact .contact-field-error { color: #FFD0C6; font-size: .85rem; margin: 6px 0 0; }
.contact .contact-feedback { border: 1px solid #C49A77; padding: 16px; color: var(--paper); }
.contact .contact-error { border-color: #EBAFA4; }
.contact .contact-form-note { font-size: .8rem; margin: 0; }
.contact-form button { justify-self: start; font-family: inherit; cursor: pointer; }
.contact-form button:disabled { opacity: .55; cursor: not-allowed; }
.contact-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
#contact-email { max-width: 100%; overflow-wrap: anywhere; word-break: break-word; }
@media (max-width: 760px) {
    .contact-form-panel { border-left: 0; border-top: 1px solid var(--dark-line); padding: 25px 0 0; }
}

/* Optional captions managed by the Static editor. */
.hero-image-caption { position: absolute; bottom: 12px; right: 20px; z-index: 2; max-width: 45%; color: white; text-shadow: 0 1px 4px #000; }
.static-caption { font-weight: 600; }
.static-caption, .static-description { margin: 4px 0; }

/* Dedicated build consultation entry points. */
.site-header nav .nav-build { background:var(--bronze); color:var(--paper); padding:10px 14px; }
.consultation-cta { padding-block:40px; }
@media (min-width:761px) and (max-width:1100px) { .header-inner { flex-wrap:wrap; } .site-header nav ul { flex-wrap:wrap; } }

/* Public legal pages */
.legal-page { max-width: 850px; }
.legal-page h1 { margin-bottom: 24px; }
.legal-page h2 { font-size: 1.5rem; margin: 36px 0 16px; }
.legal-page a { overflow-wrap: anywhere; }
