/* Shared red-and-white brand; each trade retains its photographic direction. */
:root{--brand:#b32632;--brand-dark:#8d1724}
body.hub,body.company-site,body.visual-site{--paper:#fffdfb;--ink:#332e2c;--muted:#746e69;--line:#e7e0dc;--call:var(--brand);--call-hover:var(--brand-dark);--contact-ink:#972432;--contact-paper:#f9f2f0;--surface:#f7f1ed}
.previewbar{background:#f8efed;color:#77635f;font-size:10px;letter-spacing:0}
.header .brand-name{color:var(--ink)}
.company-site .eyebrow,.hub .eyebrow,.company-assurance .eyebrow{color:var(--brand)}
.visual-site .phone-channel{background:var(--brand-dark)}
.visual-site .message-channel,.visual-site .contact-form,.visual-site .concern-card{background:white}
.visual-site .consultation-dock{background:#fffdfbf5}
.call-action small{font-size:11px;letter-spacing:.03em}
.hero-call{background:var(--brand)}
.visual-site .header .nav{gap:20px}
.office-phone-links{display:grid;gap:0;margin:14px 0 8px;min-width:0}
.office-phone{display:grid;grid-template-columns:1fr auto;gap:3px 12px;padding:15px 0 16px;border-bottom:1px solid currentColor;text-align:left;line-height:1.4}
.office-phone>span{grid-column:1;font-size:11px;opacity:.85}
.office-phone strong{grid-column:1;font:500 clamp(22px,2.4vw,32px)/1.25 var(--sans);letter-spacing:.02em;white-space:nowrap}
.office-phone>b{grid-column:2;grid-row:1/3;align-self:center;font-size:22px;font-weight:400}
.office-phone:hover strong{text-decoration:underline;text-underline-offset:6px}
.phone-channel .office-phone{border-color:#ffffff50;color:#fff}
.phone-channel .phone-hours{color:#f8e4e3;font-size:11px}
.official-message-links{display:grid;gap:10px;margin-top:20px}
.official-message-links>a{display:flex;align-items:center;justify-content:space-between;min-height:54px;border:1px solid #d9d0cb;border-radius:3px;padding:13px 20px;background:white;font-size:14px}
.official-message-links .line-action{background:#f0f6f0;border-color:#c4d9c8;color:#295d3c}
.official-message-links a:hover{border-color:var(--brand)}
.memo-preparation-link{display:inline-block;margin-top:18px;padding:8px 0;color:var(--muted);text-decoration:underline;text-underline-offset:5px;font-size:12px}
.memo-sharing-note{font-size:11px;color:var(--muted);margin-top:12px}
.phone-preview-dialog{max-height:calc(100dvh - 32px);overflow:auto;background:var(--paper)}
.phone-preview-dialog .office-phone-links{margin-top:20px}
.phone-preview-dialog .office-phone{color:var(--brand);border-color:var(--line)}
.phone-preview-dialog .dialog-hours{font-size:12px;margin-top:16px}
.company-assurance{padding-top:8px;padding-bottom:45px}
.company-assurance>.eyebrow{font-size:10px;letter-spacing:.12em;margin-bottom:20px}
.assurance-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.assurance-grid>div{position:relative;border-top:2px solid #bd525a;padding:20px 0 0 36px}
.assurance-grid>div>span{position:absolute;left:0;top:21px;font:18px Georgia,serif;color:var(--brand)}
.assurance-grid h3{font-size:15px;font-weight:600;line-height:1.7}
.assurance-grid p{font-size:11px;color:var(--muted);margin-top:8px;line-height:1.9}
.primary-services{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:36px}
.primary-services a{display:flex;align-items:center;justify-content:space-between;gap:10px;background:white;border:1px solid #e4c4c4;border-top:3px solid var(--brand);padding:18px 22px;font-size:15px}
.primary-services a:hover{background:#faf0ed}.primary-services span{color:var(--brand)}
.hub-contact{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding:56px 0 76px;border-top:1px solid var(--line)}
.hub-contact h2{font-size:36px;line-height:1.6;margin:12px 0 18px}
.hub-contact>div>p:not(.eyebrow){font-size:12px;color:var(--muted)}
.hub-contact .office-phone{color:var(--brand);border-color:var(--line)}
.hub-contact .official-message-links{grid-template-columns:1fr 1fr}
.company-page-intro{padding:64px 0 48px}
.company-page-intro h1{font-size:clamp(32px,4vw,52px);line-height:1.6;margin:18px 0}
.company-page-intro>p:last-child{font-size:14px;color:var(--muted)}
.company-profile,.company-offices,.company-contact,.company-area{padding-top:38px;padding-bottom:44px;border-top:1px solid var(--line)}
.company-site h2{font-size:28px;margin-bottom:25px}
.company-profile dl{margin:0;max-width:850px}
.company-profile dl>div{display:grid;grid-template-columns:160px 1fr;border-bottom:1px solid var(--line);padding:17px 0;gap:20px;font-size:14px}
.company-profile dt{color:var(--muted)}.company-profile dd{margin:0}
.office-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.office-card{background:#faf3f1;padding:30px}
.office-card .office-address{font-size:14px;line-height:2;min-height:56px;margin:16px 0}
.office-card>a{font-size:27px;color:var(--brand);white-space:nowrap}
.office-visit-note{font-size:12px;color:var(--muted);margin-top:22px}
.company-contact>.office-phone-links{grid-template-columns:1fr 1fr;gap:26px;max-width:850px;color:var(--brand)}
.company-contact>.official-message-links{grid-template-columns:1fr 1fr;max-width:850px}
.company-contact>p:not(.eyebrow),.company-contact-note{font-size:12px;color:var(--muted);margin-top:16px;line-height:1.9}
.company-area{padding-bottom:65px}.company-area>p{font-size:14px}
.company-site .footer,.hub .footer{background:#faf3f1}
@media(max-width:1100px){.visual-site .header .nav{gap:13px}.visual-site .header .nav a{font-size:10px}.visual-site .brand-name{max-width:175px}.hub-contact{gap:40px}.office-card>a{font-size:24px}}
@media(max-width:800px){.assurance-grid{gap:15px}.assurance-grid>div{padding-left:0;padding-top:15px}.assurance-grid>div>span{position:static;display:block;margin-bottom:6px}.assurance-grid h3{font-size:13px}.primary-services{grid-template-columns:1fr 1fr}.hub-contact{gap:24px}.hub-contact h2{font-size:30px}.hub-contact .official-message-links{grid-template-columns:1fr}.office-grid{grid-template-columns:1fr}.company-site .brand-name{font-size:10px;max-width:145px}}
@media(max-width:600px){.company-assurance{padding-bottom:30px}.assurance-grid{grid-template-columns:1fr;gap:0}.assurance-grid>div{padding:16px 0 16px 34px;border-top:1px solid var(--line)}.assurance-grid>div>span{position:absolute;left:0;top:19px}.assurance-grid h3{font-size:14px}.assurance-grid p{font-size:11px;margin-top:4px}.company-assurance>.eyebrow{margin-bottom:12px}.office-phone strong{font-size:30px}.phone-channel .phone-hours{font-size:10px}.call-action small{font-size:10px}.primary-services{gap:9px;margin-top:24px}.primary-services a{padding:14px;font-size:13px;min-height:53px}.hub-contact{grid-template-columns:1fr;gap:20px;padding-top:34px;padding-bottom:40px}.hub-contact h2{font-size:29px}.hub-contact .official-message-links{grid-template-columns:1fr 1fr}.official-message-links>a{font-size:13px;padding:13px 16px}.company-page-intro{padding-top:35px;padding-bottom:30px}.company-page-intro>p:last-child{font-size:12px}.company-site h2{font-size:24px}.company-profile,.company-offices,.company-contact,.company-area{padding-top:28px;padding-bottom:32px}.company-profile dl>div{grid-template-columns:80px 1fr;gap:15px;font-size:12px}.office-card{padding:23px}.office-card .office-address{font-size:12px;min-height:0}.office-card>a{font-size:27px}.company-contact>.office-phone-links,.company-contact>.official-message-links{grid-template-columns:1fr;gap:0}.company-contact>.official-message-links{gap:10px}.company-site .footer{padding-bottom:35px}.phone-preview-dialog .office-phone strong{font-size:27px}.company-site .header .brand{gap:10px}.company-site .brand-name{padding-left:10px}.company-site .brand img{width:105px}.hub .brand-name{max-width:125px}.phone-preview-dialog .dialog-hours{font-size:10px}}
@media(max-width:360px){.office-phone strong{font-size:27px}.office-card>a{font-size:24px}.phone-preview-dialog .office-phone strong{font-size:25px}.hub-contact .official-message-links{grid-template-columns:1fr}.company-site .brand-name{max-width:125px}}
@media(max-width:600px){.company-site .header-inner{gap:10px}}
@media(max-width:360px){.company-site .brand-name{max-width:110px}}
