
  
.contact-page { padding: 64px 0 72px; }
.contact-heading { padding-bottom: 38px; border-bottom: 1px solid #d5d3cb; margin-bottom: 42px; }
.contact-kicker { font: 12px Arial,sans-serif; letter-spacing: .2em; text-transform: uppercase; margin: 0 0 18px; }
.contact-heading h1 { text-align: left; max-width: none; margin: 0; font-size: clamp(42px,6vw,78px); line-height: 1.05; letter-spacing: -.04em; }
.contact-heading p:last-child { font-size: 19px; line-height: 1.5; margin: 22px 0 0; }
.inquiry-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(36px,7vw,100px); }
.contact-visual { margin: 0; }
.contact-visual img { aspect-ratio: 1.25; object-fit: cover; object-position: center 80%; }
.contact-caption { font-size: 14px; font-style: italic; margin: 12px 0 30px; color: #555; }
.direct-contact h2 { font-size: 28px; font-weight: 400; letter-spacing: -.02em; margin: 0 0 18px; }
.direct-contact a { display: block; font: 16px/1.8 Arial,sans-serif; text-decoration: underline; text-underline-offset: 4px; overflow-wrap: anywhere; }
.direct-contact p { font: 14px/1.7 Arial,sans-serif; color: #555; margin-top: 20px; }
.inquiry-form h2 { font-size: 34px; font-weight: 400; margin: 0 0 10px; }
.form-intro { font-size: 17px; line-height: 1.5; margin: 0 0 28px; }
.form-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 22px; }
.form-field { display: flex; flex-direction: column; gap: 9px; }
.form-field.wide { grid-column: 1/-1; }
.form-field label { font: 14px Arial,sans-serif; }
.form-field label span { color: #6b6b6b; font-size: 12px; }
.form-field input,.form-field select,.form-field textarea { width: 100%; border: 1px solid #cbc9c2; border-radius: 0; background: #fcfbf8; color: #111; padding: 13px 12px; min-height: 48px; font: 16px/1.4 Arial,sans-serif; }
.form-field textarea { resize: vertical; min-height: 130px; }
.form-field input:focus,.form-field select:focus,.form-field textarea:focus { outline: 2px solid #333; outline-offset: 2px; }
.form-note { font: 12px/1.6 Arial,sans-serif; color: #666; margin: 18px 0; }
.inquiry-form .btn { cursor: pointer; min-height: 50px; }
.preview-status { margin-top: 22px; padding: 18px; background: #f4f2eb; font: 14px/1.7 Arial,sans-serif; }
.preview-status[hidden] { display: none; }
.preview-status a { text-decoration: underline; }
@media(max-width:800px) { .inquiry-layout { grid-template-columns: 1fr; } .contact-page { padding-top: 36px; } .contact-visual img { max-height: 330px; } }
@media(max-width:480px) { .form-fields { grid-template-columns: 1fr; } .form-field { grid-column: 1/-1; } }

/* Restrained company contact details. */
.contact-heading h1 { font-size: clamp(42px, 5vw, 64px); }
.direct-contact { margin-top: 26px; }
.direct-contact .contact-list { margin: 0; font: 15px/1.7 Arial,sans-serif; }
.direct-contact .contact-list > div { display: grid; grid-template-columns: 56px minmax(0,1fr); gap: 18px; padding: 7px 0; }
.direct-contact dt { font-size: 13px; font-weight: 700; color: #555; }
.direct-contact dd { margin: 0; }
.direct-contact .contact-list a { font: inherit; text-decoration-thickness: 1px; }
.inquiry-form .btn { margin-top: 24px; }

/* A distinct, understated inquiry panel. */
.inquiry-form {
  border: 1px solid #d5d3cb;
  padding: clamp(22px, 3vw, 40px);
  background: #fbfaf7;
  align-self: start;
}
.inquiry-form .form-intro {
  margin: 0 0 28px;
  font-size: 20px;
  line-height: 1.45;
}
.inquiry-form input, .inquiry-form select, .inquiry-form textarea { background: #fff; }

/* Balanced contact columns and stronger form definition. */
.contact-heading h1 { text-align: center; }
.inquiry-form { border: 2px solid #aaa79f; }
.inquiry-form > .btn { display: flex; width: fit-content; margin: 24px auto 0; }
.inquiry-layout > aside { display: flex; flex-direction: column; min-width: 0; }
.contact-visual { flex: 1; min-height: 420px; position: relative; }
.contact-visual img { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; object-position: 48% 80%; }
.direct-contact { margin-top: 24px; padding-top: 18px; border-top: 1px solid #d5d3cb; }
.direct-contact .contact-list dt { font-size: 14px; font-weight: 700; color: #222; }
@media (max-width: 800px) {
  .contact-visual { flex: none; min-height: 0; position: static; }
  .contact-visual img { position: static; height: auto; max-height: 440px; aspect-ratio: 1.15; object-fit: cover; }
}

.contact-minimal-footer { padding: 18px 0; }
.contact-footer-row { display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.contact-footer-row p { margin: 0; text-align: right; font: 11px/1.6 Arial,sans-serif; letter-spacing: .05em; }
.contact-minimal-footer .social-link { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; }

.contact-visual img { object-position: 48% 80%; }

/* Contact page header: logo and navigation on one desktop row. */
@media (min-width: 801px) {
  header .header-inner {
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    min-height: 96px; padding: 0; row-gap: 0;
  }
  header .brand { grid-column: 1; grid-row: 1; }
  header .nav { grid-column: 2; grid-row: 1; flex-wrap: nowrap; gap: clamp(18px, 2.6vw, 38px); }
}

@media (min-width: 801px) and (max-width: 980px) {
  header .header-inner { grid-template-columns: auto 1fr; column-gap: 28px; }
  header .nav { justify-self: end; }
}

/* Shared multi-page navigation. */
header .brand-name, .footer-mirror .brand-name { font-size: clamp(38px, 3.5vw, 56px); }
header .nav a, .footer-mirror .nav a { font-size: 13px; }
header .header-inner { min-height: 108px; }
nav a[aria-current="page"] { text-decoration: underline; text-underline-offset: 6px; }
.hero-copy h1 { font-size: clamp(27px, 3vw, 44px); }
.standalone-section { padding: 54px 0 64px; min-height: 65vh; }
.standalone-section .page-title { font-size: clamp(38px, 4.7vw, 64px); font-weight: 400; text-align: left; max-width: none; margin: 0 0 34px; line-height: 1.08; }
.standalone-section .portfolio-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 38px 28px; }
.standalone-section .portfolio-item img { aspect-ratio: 1.34; }
.standalone-section .about-copy h1 { font-size: clamp(34px,4vw,54px); text-align: left; margin: 0 0 24px; }
.contact-minimal-footer { padding: 18px 0; }
.contact-footer-row { display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.contact-footer-row p { margin: 0; text-align: right; font: 11px/1.6 Arial,sans-serif; letter-spacing: .05em; }
.contact-minimal-footer .social-link { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; }
@media (min-width: 981px) and (max-width: 1280px) {
 header .header-inner { grid-template-columns: 1fr auto; padding: 18px 0; row-gap: 22px; }
 header .nav { grid-column: 1/-1; grid-row: 2; }
 header .header-cta { grid-column: 2; grid-row: 1; }
 .footer-mirror { grid-template-columns: 1fr auto; padding: 18px 0; row-gap: 22px; }
 .footer-mirror .nav { grid-column: 1/-1; grid-row: 2; }
 .footer-mirror .footer-socials { grid-column: 2; grid-row: 1; }
}
@media(max-width:640px) {
 header .brand-name, .footer-mirror .brand-name { font-size: 30px; }
 header .nav a, .footer-mirror .nav a { font-size: 11px; }
 .standalone-section { padding-top: 32px; }
 .standalone-section .portfolio-grid { grid-template-columns: 1fr; }
}
@media(max-width:380px) { header .brand-name, .footer-mirror .brand-name { font-size: 26px; } }

/* Center Staging beneath the lettering, excluding the artichoke. */
header .header-inner .brand, footer .header-inner .brand {
  display: grid; grid-template-columns: max-content max-content;
  column-gap: 3px; row-gap: 4px; align-items: center;
}
header .brand .brand-row, footer .brand .brand-row { display: contents; }
header .brand .brand-name, footer .brand .brand-name { grid-column: 1; grid-row: 1; }
header .brand .header-artichoke, footer .brand .header-artichoke {
  grid-column: 2; grid-row: 1; margin-left: 0;
}
header .brand .brand-sub, footer .brand .brand-sub {
  grid-column: 1; grid-row: 2; margin: 0; padding: 0;
  width: auto; justify-self: stretch; text-align: center;
  text-indent: .48em;
}
@media(max-width:640px) {
 header .brand .brand-sub, footer .brand .brand-sub { text-indent: .36em; }
}

/* Text-only branding until the replacement logo is supplied. */
header .header-inner .brand, footer .header-inner .brand { grid-template-columns: max-content; column-gap: 0; }

/* Mallory's original logo, with the pale background blended into the page. */
header .header-inner .brand, footer .header-inner .brand {
 display:block; width:180px; height:180px; overflow:hidden; line-height:1;
 mix-blend-mode:multiply;
}
.brand img.mallory-logo {
 display:block; width:220px; height:220px; max-width:none;
 margin:-20px; object-fit:contain; filter:brightness(1.025);
}
header .header-inner { min-height:196px; }
@media(max-width:640px) {
 header .header-inner .brand, footer .header-inner .brand { width:148px; height:148px; }
 .brand img.mallory-logo { width:180px; height:180px; margin:-16px; }
 header .header-inner { min-height:0; }
}

/* Emerald masthead with cream logo and aligned navigation. */
body > header { background:#2b372c; color:#fff5e6; border-bottom:1px solid #455647; }
body > header .header-inner {
 display:flex; align-items:center; justify-content:space-between;
 min-height:210px; padding-top:12px; padding-bottom:12px; gap:36px;
}
body > header .header-inner > .brand {
 flex:0 0 200px; width:200px; height:200px; position:static;
 mix-blend-mode:screen; overflow:hidden;
}
body > header .brand img.mallory-logo {
 width:244px; height:244px; margin:-22px; max-width:none;
 filter:grayscale(1) invert(1) brightness(3) contrast(3) sepia(1) saturate(.3) brightness(.96);
}
body > header .nav {
 display:flex; align-items:center; justify-content:center; flex:1;
 flex-wrap:wrap; gap:24px 32px; margin:0;
}
body > header .nav a { color:#fff5e6; font-size:12px; font-weight:600; letter-spacing:.15em; padding:10px 0; text-decoration:none; border-bottom:1px solid transparent; }
body > header .nav a:hover, body > header .nav a[aria-current="page"] { opacity:1; border-bottom-color:#e6c4a1; }
body > header .header-cta { position:static; flex:0 0 auto; }
body > header .header-cta .btn { color:#fff5e6; background:transparent; border:1px solid #d8c4a7; }
body > header .header-cta .btn:hover { background:#fff5e6; color:#2b372c; }
body > header a:focus-visible { outline:2px solid #e6c4a1; outline-offset:5px; }
@media(max-width:900px) {
 body > header .header-inner { gap:20px; }
 body > header .nav { gap:14px 20px; }
 body > header .header-inner > .brand { flex-basis:170px; width:170px; height:170px; }
 body > header .brand img.mallory-logo { width:208px; height:208px; margin:-19px; }
}
@media(max-width:640px) {
 body > header .header-inner { display:flex; flex-wrap:wrap; justify-content:space-between; min-height:0; padding-top:12px; padding-bottom:22px; gap:14px; }
 body > header .header-inner > .brand { flex:0 0 154px; width:154px; height:154px; }
 body > header .brand img.mallory-logo { width:188px; height:188px; margin:-17px; }
 body > header .nav { order:3; flex:1 0 100%; justify-content:center; gap:10px 18px; }
 body > header .nav a { font-size:10px; letter-spacing:.1em; padding:7px 0; }
 body > header .header-cta .btn { font-size:10px; padding:12px 16px; }
}

/* Editorial palette: emerald, champagne and warm cream. */
:root { --paper:#fbfaf5; --cream:#fbfaf5; --ink:#292c28; --muted:#666960; --line:#d8c4a7; }
body { background:#fbfaf5; color:#292c28; }
body > header .header-inner > .brand { mix-blend-mode:normal; }
body > header .brand img.mallory-logo {  }
main h1, main h2, main h3, main .section-label, main .eyebrow { color:#2b372c; }
main .content-section { border-color:rgba(43,55,44,.26); }
main .section-label { border-color:#d8c4a7; }
main .testimonials { border-color:rgba(43,55,44,.26); }
main .testimonials blockquote { color:#293b32; }
main .btn, main button[type="submit"] { background:#2b372c; color:#fff5e6; border-color:#2b372c; }
main .btn:hover, main button[type="submit"]:hover { background:#3c4b3c; border-color:#3c4b3c; }
main .inquiry-form { border-color:#d8c4a7; background:#f5f1e8; }
main input, main textarea, main select { border-color:#c9c7b9; background:#fffdf8; color:#292c28; }
main input:focus, main textarea:focus, main select:focus { outline-color:#2b372c; border-color:#2b372c; }
main .back-portfolio, main .project-type { color:#465b48; }
main .project-thumb[aria-pressed="true"] { border-color:#2b372c; outline-color:#2b372c; }
main .project-arrow { color:#2b372c; }
body > footer { border-top-color:#d8c4a7; color:#465b48; background:#f5f1e8; }
::selection { background:#d8c4a7; color:#2b372c; }

/* Refined proportions and a consistent warm cream canvas. */
:root { --paper:#f8f5ec; --cream:#f8f5ec; }
body, main, main > section { background-color:#f8f5ec; }
body > header .header-inner { min-height:160px; padding-top:8px; padding-bottom:8px; }
body > header .header-inner > .brand { flex-basis:144px; width:144px; height:144px; }
body > header .brand img.mallory-logo { width:176px; height:176px; margin:-16px; }
body.homepage .hero { padding-top:40px; padding-bottom:24px; }
body.homepage .hero-copy { padding:24px 0 0; }
body.homepage .hero-copy h1 { margin:0; }
body.homepage #services { padding-top:24px; }
body.homepage .service-card p { color:#4b5a4a; }
main .portfolio-item p { color:#2b372c; }
@media(max-width:640px) {
 body > header .header-inner { min-height:0; padding-top:8px; padding-bottom:16px; gap:10px; }
 body > header .header-inner > .brand { flex-basis:126px; width:126px; height:126px; }
 body > header .brand img.mallory-logo { width:154px; height:154px; margin:-14px; }
 body.homepage .hero { padding-top:24px; padding-bottom:20px; }
 body.homepage .hero-copy { padding-top:20px; }
 body.homepage #services { padding-top:20px; }
}

/* Direct contact above the photograph, with a clear tap-to-call action. */
.inquiry-layout > aside .direct-contact { margin:0 0 28px; padding:0; border:0; text-align:center; }
.direct-contact a.contact-call {
 display:inline-flex; align-items:center; justify-content:center;
 min-height:48px; padding:13px 28px; border-radius:0;
 font:14px/1.4 Arial,sans-serif; letter-spacing:.08em;
 text-decoration:none; background:#2b372c; color:#fff5e6; border:1px solid #2b372c;
}
.direct-contact a.contact-call:hover { background:#3c4b3c; }
.direct-contact a.contact-email { margin-top:16px; color:#2b372c; font:15px/1.6 Arial,sans-serif; }
.direct-contact p.contact-hours { margin:9px 0 0; color:#4b5a4a; font:14px/1.6 Arial,sans-serif; }
@media(max-width:640px) { .inquiry-layout > aside .direct-contact { margin-bottom:24px; } }

/* Equal outer columns keep navigation centered, even without an Inquire button. */
@media(min-width:901px) {
 body > header .header-inner { display:grid; grid-template-columns:minmax(144px,1fr) auto minmax(144px,1fr); column-gap:24px; }
 body > header .header-inner > .brand { grid-column:1; grid-row:1; justify-self:start; }
 body > header .header-inner > .nav { grid-column:2; grid-row:1; justify-self:center; flex-wrap:nowrap; }
 body > header .header-inner > .header-cta { grid-column:3; grid-row:1; justify-self:end; width:auto; }
}
@media(min-width:641px) and (max-width:900px) {
 body > header .header-inner { display:grid; grid-template-columns:1fr 1fr; }
 body > header .header-inner > .brand { grid-column:1; grid-row:1; }
 body > header .header-inner > .header-cta { grid-column:2; grid-row:1; justify-self:end; width:auto; }
 body > header .header-inner > .nav { grid-column:1/-1; grid-row:2; justify-self:center; margin-bottom:12px; }
}

/* Thin closing accent and a compact, accessible mobile menu. */
body.homepage main > .closing-band { height:8px; min-height:0; padding:0; background:#2b372c; }
.mobile-menu-toggle { display:none; }
@media(max-width:640px) {
 body > header .header-inner { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; }
 body > header .header-inner > .header-cta { display:none; }
 body > header .mobile-menu-toggle {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:6px; width:48px; height:48px; margin-left:auto; padding:10px;
  background:transparent; border:1px solid transparent; color:#d8c4a7; cursor:pointer;
 }
 .mobile-menu-toggle span { display:block; width:26px; height:2px; background:currentColor; }
 body > header .mobile-menu-toggle:focus-visible { outline:2px solid #d8c4a7; outline-offset:3px; }
 body > header .header-inner > .nav { display:none; }
 body > header .header-inner.menu-open > .nav {
  display:flex; flex:1 0 100%; flex-direction:column; align-items:stretch;
  gap:0; border-top:1px solid rgba(216,196,167,.4); padding:10px 0 4px;
 }
 body > header .header-inner.menu-open > .nav a { display:block; text-align:center; padding:13px 12px; font-size:12px; }
}

/* Mobile menu: contact number and interaction-only highlighting. */
body > header .nav .mobile-menu-phone { display:none; }
@media(max-width:640px) {
 body > header .header-inner.menu-open > .nav a,
 body > header .nav a[aria-current="page"] { border-bottom:0; text-decoration:none; }
 body > header .header-inner.menu-open > .nav a:hover,
 body > header .header-inner.menu-open > .nav a:focus-visible {
  color:#d8c4a7; background:rgba(255,245,230,.07); border-bottom:0;
 }
 body > header .header-inner.menu-open > .nav .mobile-menu-phone {
  display:block; margin-top:12px; padding:16px 12px 10px;
  color:#d8c4a7; font-size:14px; letter-spacing:.06em;
 }
}

/* A restrained contact lockup with consistent spacing and hierarchy. */
.inquiry-layout > aside .direct-contact {
 display:flex; flex-direction:column; align-items:center; gap:0;
 margin:0 0 30px; padding:0 12px; text-align:center;
}
.direct-contact a.contact-call {
 min-width:208px; min-height:46px; padding:12px 24px;
 font:400 15px/1.4 Arial,sans-serif; letter-spacing:.035em;
}
.direct-contact a.contact-email {
 display:inline-block; margin:18px 0 0; padding:3px 0;
 font:400 14px/1.5 Arial,sans-serif; letter-spacing:.015em;
 text-transform:none; text-decoration:none; color:#2b372c;
 border-bottom:1px solid #d8c4a7;
}
.direct-contact a.contact-email:hover { border-bottom-color:#2b372c; }
.direct-contact p.contact-hours {
 margin:14px 0 0; color:#62695f; font:400 12px/1.7 Arial,sans-serif;
 letter-spacing:.025em;
}
.contact-hours span { display:block; }
.direct-contact a:focus-visible { outline:2px solid #2b372c; outline-offset:5px; }
@media(max-width:640px) {
 .inquiry-layout > aside .direct-contact { margin-bottom:26px; padding:0; }
}

.direct-contact p.contact-hours { margin:0 0 18px; }

/* Defined contact card above the photograph. */
.inquiry-layout > aside .direct-contact {
 border:1px solid #2b372c; border-top:4px solid #2b372c;
 background:#f0eadc; padding:28px 24px; margin:0 0 24px;
}
.direct-contact p.contact-hours {
 color:#2b372c; font:600 16px/1.6 Arial,sans-serif;
 letter-spacing:.025em; margin:0 0 20px;
}
.direct-contact a.contact-call {
 font-weight:600; min-width:220px; min-height:48px;
}
.direct-contact a.contact-email {
 color:#2b372c; font-weight:600; font-size:15px; margin-top:18px;
 border-bottom-color:#2b372c; overflow-wrap:anywhere; max-width:100%;
}
@media(max-width:640px) {
 .inquiry-layout > aside .direct-contact { padding:24px 18px; margin-bottom:22px; }
}

/* Match the contact card border to the inquiry form. */
.inquiry-layout > aside .direct-contact { border:2px solid #d8c4a7; }

/* Emerald frame for the opening hours and direct contact details. */
.inquiry-layout > aside .direct-contact { border:1px solid #2b372c; border-top:4px solid #2b372c; }

/* Larger original artwork with clean, unthickened lettering. */
@media(min-width:641px) {
 body > header .header-inner { min-height:192px; }
 body > header .header-inner > .brand { width:190px; height:176px; flex-basis:190px; }
 body > header .brand img.mallory-logo { width:232px; height:232px; margin:-28px -21px; }
}
@media(min-width:901px) {
 body > header .header-inner { grid-template-columns:minmax(190px,1fr) auto minmax(190px,1fr); }
}
@media(max-width:640px) {
 body > header .header-inner > .brand { width:156px; height:156px; flex-basis:156px; }
 body > header .brand img.mallory-logo { width:190px; height:190px; margin:-17px; }
}

.inquiry-layout > aside .direct-contact { border-top-width:1px; }

/* New horizontal botanical logo and sampled evergreen palette. */
body > header .header-inner { min-height:148px; padding-top:8px; padding-bottom:8px; }
body > header .header-inner > .brand { width:278px; height:132px; flex-basis:278px; mix-blend-mode:normal; }
body > header .brand img.mallory-logo { width:100%; height:100%; margin:0; max-width:100%; object-fit:contain; filter:none; }
@media(min-width:1150px) {
 body > header .header-inner { display:grid; grid-template-columns:minmax(278px,1fr) auto minmax(278px,1fr); column-gap:24px; }
 body > header .header-inner > .nav { grid-column:2; grid-row:1; }
 body > header .header-inner > .header-cta { grid-column:3; grid-row:1; }
}
@media(min-width:641px) and (max-width:1149px) {
 body > header .header-inner { display:grid; grid-template-columns:1fr 1fr; }
 body > header .header-inner > .brand { grid-column:1; grid-row:1; }
 body > header .header-inner > .header-cta { grid-column:2; grid-row:1; justify-self:end; width:auto; }
 body > header .header-inner > .nav { grid-column:1/-1; grid-row:2; justify-self:center; margin-bottom:12px; }
}
@media(max-width:640px) {
 body > header .header-inner > .brand { width:230px; height:108px; flex-basis:230px; }
 body > header .brand img.mallory-logo { width:100%; height:100%; margin:0; }
 body > header .header-inner { min-height:0; gap:8px; padding-top:8px; padding-bottom:8px; }
}
@media(max-width:360px) { body > header .header-inner > .brand { width:210px; height:99px; flex-basis:210px; } }

/* Centered champagne logo with a side menu at every screen size. */
body > header { position:relative; z-index:20; }
body > header .header-inner {
 position:relative; display:grid; grid-template-columns:48px minmax(0,1fr) 48px;
 align-items:center; min-height:116px; padding-top:8px; padding-bottom:8px; gap:12px;
}
body > header .header-inner > .brand {
 grid-column:2; grid-row:1; justify-self:center; width:210px; height:99px;
 flex:none; margin:0; mix-blend-mode:normal;
}
body > header .brand img.mallory-logo { width:100%; height:100%; margin:0; max-width:100%; object-fit:contain; filter:none; }
body > header .header-inner > .header-cta { display:none; }
body > header .header-inner > .mobile-menu-toggle {
 display:flex; grid-column:3; grid-row:1; justify-self:end;
 flex-direction:column; align-items:center; justify-content:center; gap:6px;
 width:48px; height:48px; margin:0; padding:10px; cursor:pointer;
 background:transparent; border:1px solid transparent; color:#d8c4a7;
}
body > header .mobile-menu-toggle span { display:block; width:25px; height:2px; background:currentColor; }
body > header .mobile-menu-toggle:focus-visible { outline:2px solid #d8c4a7; outline-offset:3px; }
body > header .header-inner > .nav { display:none; }
body > header .header-inner.menu-open > .nav {
 display:flex; position:absolute; top:100%; right:0; z-index:30;
 width:300px; max-width:calc(100vw - 36px); flex-direction:column;
 align-items:stretch; justify-content:flex-start; gap:0; margin:0;
 padding:14px 20px 18px; background:#2b372c; border:1px solid #d8c4a7;
 box-shadow:0 10px 24px rgba(0,0,0,.14);
}
body > header .header-inner.menu-open > .nav a {
 display:block; color:#fff5e6; font:600 12px/1.5 Arial,sans-serif;
 letter-spacing:.12em; padding:12px; text-align:center; border:0; text-decoration:none;
}
body > header .header-inner.menu-open > .nav a[aria-current="page"] { border:0; }
body > header .header-inner.menu-open > .nav a:hover,
body > header .header-inner.menu-open > .nav a:focus-visible { background:rgba(216,196,167,.1); color:#d8c4a7; border:0; }
body > header .header-inner.menu-open > .nav a.menu-inquire {
 display:block; margin:12px 0 2px; border:1px solid #d8c4a7; color:#d8c4a7; background:transparent;
}
body > header .header-inner.menu-open > .nav a.menu-inquire:hover { background:#d8c4a7; color:#2b372c; }
body > header .header-inner.menu-open > .nav a.mobile-menu-phone { display:block; margin:10px 0 0; padding:10px 0 0; color:#d8c4a7; font-size:13px; letter-spacing:.04em; }
@media(max-width:640px) {
 body > header .header-inner { min-height:104px; grid-template-columns:44px minmax(0,1fr) 44px; gap:6px; }
 body > header .header-inner > .brand { width:180px; height:85px; flex:none; }
 body > header .brand img.mallory-logo { width:100%; height:100%; margin:0; }
 body > header .header-inner > .mobile-menu-toggle { width:44px; height:44px; }
}

body > header .header-inner.menu-open > .nav { grid-column:1 / -1; grid-row:auto; justify-self:auto; align-self:auto; }

/* More room around the centered logo. */
body > header .header-inner { min-height:166px; padding-top:24px; padding-bottom:24px; }
body > header .header-inner > .brand { width:245px; height:115px; }
@media(max-width:640px) {
 body > header .header-inner { min-height:142px; padding-top:22px; padding-bottom:22px; }
 body > header .header-inner > .brand { width:210px; height:99px; }
}
@media(max-width:360px) { body > header .header-inner > .brand { width:195px; height:92px; } }

/* Contact: form on the left, a quiet direct-contact column on the right. */
main.contact-page { max-width:1200px; }
.contact-page .inquiry-layout {
 display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);
 gap:clamp(36px,5vw,72px); align-items:start;
}
.contact-page .inquiry-layout > .inquiry-form { grid-column:1; grid-row:1; }
.contact-page .inquiry-layout > aside { grid-column:2; grid-row:1; display:flex; flex-direction:column; min-width:0; padding-top:28px; }
.contact-page .inquiry-layout > aside .direct-contact {
 display:flex; flex-direction:column; align-items:flex-start; text-align:left;
 margin:0 0 30px; padding:0; border:0; background:transparent; gap:0;
}
.contact-page .direct-contact a.contact-call {
 display:inline-block; min-width:0; min-height:0; width:auto; margin:0; padding:0;
 background:transparent; border:0; color:#2b372c;
 font:400 clamp(25px,2.5vw,32px)/1.25 Georgia,'Times New Roman',serif;
 letter-spacing:0; text-decoration:none; text-transform:none;
}
.contact-page .direct-contact a.contact-call:hover { background:transparent; color:#465b48; }
.contact-page .direct-contact a.contact-email {
 display:inline-block; margin:12px 0 0; padding:0 0 3px;
 color:#2b372c; font:400 15px/1.6 Arial,sans-serif; letter-spacing:0;
 border-bottom:1px solid #d8c4a7; text-decoration:none; overflow-wrap:anywhere;
}
.contact-page .direct-contact p.contact-hours {
 width:100%; margin:22px 0 0; padding:18px 0 0; border-top:1px solid #d8c4a7;
 color:#53604f; font:400 14px/1.7 Arial,sans-serif; letter-spacing:0;
}
.contact-page .contact-hours span:first-child { font-weight:600; color:#2b372c; }
.contact-page .contact-visual { flex:none; position:static; width:100%; min-height:0; margin:0; }
.contact-page .contact-visual img {
 position:static; display:block; width:100%; height:auto; max-height:none;
 aspect-ratio:1.08; object-fit:cover; object-position:48% 80%;
}
@media(max-width:800px) {
 .contact-page .inquiry-layout { grid-template-columns:minmax(0,1fr); gap:40px; }
 .contact-page .inquiry-layout > .inquiry-form { grid-column:1; grid-row:1; }
 .contact-page .inquiry-layout > aside { grid-column:1; grid-row:2; padding-top:0; }
 .contact-page .inquiry-layout > aside .direct-contact { margin-bottom:26px; padding:0; }
 .contact-page .contact-visual img { aspect-ratio:1.25; }
}
