.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
body.menu-open{overflow:hidden}
[data-pmr-site-footer]{display:block;padding:0;background:var(--ink);color:var(--white);border-top:1px solid rgba(254,254,254,.28);line-height:1.5}
[data-pmr-site-footer]>.shell{width:min(var(--max),calc(100% - 10rem));margin-inline:auto}
[data-pmr-site-footer] a{color:inherit}
.foot{display:grid;grid-template-columns:2fr 1fr 1fr;gap:24px;padding:3rem 0 2rem}
.foot img{width:210px;margin-bottom:1.3rem}
.foot p{max-width:25rem;margin:0;color:#d3d7d3;font-size:.83rem}
.foot nav{border-left:1px solid rgba(254,254,254,.24);padding-left:1rem}
.foot nav a{display:block;margin-bottom:.45rem;font-size:.75rem;font-weight:700;text-decoration:none}
.foot .footer-phone{display:block;margin-top:.45rem;color:#d3d7d3;font-size:.83rem;font-weight:400;text-decoration:none}
.legal{padding:1rem 0;border-top:1px solid rgba(254,254,254,.24);color:#aeb3af;font-size:.68rem}
.legal .text-link{min-height:0;gap:.55rem;align-self:auto;font-size:.74rem;font-weight:700;letter-spacing:.07em}
.legal .text-link::after{content:"↗";margin-left:0;color:var(--burgundy);font-size:1rem}
.social-icons{display:flex;align-items:center;gap:4px;margin-top:.8rem}
.social-icon{display:inline-grid!important;place-items:center;width:44px;height:44px;margin:0!important;border:1px solid transparent;color:#d3d7d3;opacity:1;text-decoration:none}
.social-icon svg{display:block;width:20px;height:20px}
.social-icon[href]:hover{border-color:rgba(254,254,254,.42);color:var(--white)}
.social-icon[href]:focus-visible{outline:2px solid #f0d5dc;outline-offset:2px;color:var(--white)}
.social-icon.is-pending{cursor:default;opacity:1}
@media(max-width:720px){
 [data-pmr-site-footer]>.shell{width:min(var(--max),calc(100% - 2.4rem))}
 .foot{grid-template-columns:1fr;gap:2rem}
 .foot nav{border-left:0;border-top:1px solid rgba(254,254,254,.24);padding:1rem 0 0}
 .legal{padding-bottom:1.4rem}
}

/* Exact Home header contract on the project page's normal-flow dark surface. */
.header{position:relative;z-index:2;width:100%;background:var(--ink);color:var(--white);border-bottom:1px solid rgba(254,254,254,.32)}
.header>.shell{width:min(var(--max),calc(100% - clamp(1.25rem,4vw,4.5rem)*2));margin:auto}
.header-row{min-height:90px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.header .brand{flex:0 0 auto;width:185px}
.header .brand img{width:100%;max-height:none}
.header .nav{display:flex;align-items:center;gap:clamp(.65rem,1.4vw,1.3rem);font-size:.63rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.header .nav-links{display:flex;align-items:center;gap:.45rem}
.header .nav-links [aria-current=page]{border-bottom:2px solid #f0d5dc}
.header .nav a{color:inherit;text-decoration:none;white-space:nowrap}
.header .button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.75rem 1.15rem;border:1px solid var(--burgundy);background:var(--burgundy);color:var(--white);font-size:.72rem;font-weight:700;letter-spacing:.06em;text-decoration:none;text-transform:uppercase}
.header .nav .button{min-height:42px;margin-left:.35rem;padding-inline:1rem}
.header .button:hover{background:var(--burgundy-dark)}
.header .phone-link{display:inline;color:inherit;font-size:.63rem;font-weight:700;letter-spacing:.06em;text-decoration:none;text-transform:uppercase;white-space:nowrap}
.header .menu{display:none!important;width:44px;min-width:44px;min-height:44px;padding:0;border:0;border-radius:0;background:transparent;color:inherit;font:inherit;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;place-items:center;cursor:pointer}
.header .hamburger{display:grid;gap:5px;width:24px}
.header .hamburger i{position:static;display:block;width:24px;height:1px;margin:0;background:currentColor;transition:transform .18s ease,opacity .18s ease}
.header .menu.is-open .hamburger i:first-child{transform:translateY(6px) rotate(45deg)}
.header .menu.is-open .hamburger i:nth-child(2){opacity:0}
.header .menu.is-open .hamburger i:last-child{transform:translateY(-6px) rotate(-45deg)}
.header .mobile-nav{display:none}
.header .menu:hover{background:rgba(254,254,254,.1)}
.header .menu:focus-visible{outline:2px solid #f0d5dc;outline-offset:2px}
@media(max-width:1100px){
 .header>.shell{position:relative}
 .header.is-menu-open{background:var(--ink)}
 .header-row{min-height:74px}
 .header .brand{width:150px}
 .header .nav,.header .phone-link{display:none}
 .header .menu{display:inline-grid!important}
 .header .mobile-nav[data-open=true]{position:absolute;z-index:30;top:100%;left:0;right:0;display:flex;flex-direction:column;gap:2px;padding:16px;background:rgba(23,27,29,.98);box-shadow:0 18px 34px rgba(0,0,0,.28)}
 .header .mobile-nav a{display:flex;align-items:center;min-height:44px;padding:10px 12px;color:var(--white);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-decoration:none;text-transform:uppercase}
 .header .mobile-nav a:not(.button):hover,.header .mobile-nav a:not(.button):focus-visible{background:rgba(254,254,254,.09);outline:none}
 .header .mobile-nav .button{width:100%;min-height:48px;margin-top:10px;padding:12px 14px}
 .header .mobile-nav .mobile-phone{justify-content:center;margin-top:4px;background:rgba(254,254,254,.08);font-size:.78rem;letter-spacing:.06em}
 .header .mobile-nav .mobile-phone:focus-visible{outline:2px solid #f0d5dc;outline-offset:2px}
}
@media(max-width:720px){.header>.shell{width:min(var(--max),calc(100% - 2.4rem))}}
@media(prefers-reduced-motion:reduce){.header .hamburger i{transition:none!important}}

/* Shared personal contact strip for inner pages. */
[data-pmr-contact-strip]{display:block;background:var(--burgundy);color:var(--white)}
.pmr-contact-strip{display:grid;grid-template-columns:120px minmax(260px,3fr) minmax(320px,5fr) minmax(160px,2fr);gap:24px;align-items:center;padding:36px 0}
.pmr-contact-avatar{display:block;width:120px;height:120px;border-radius:50%;object-fit:cover;object-position:50% 42%}
.pmr-contact-heading .eyebrow{margin:0 0 12px;color:var(--white);opacity:.78}
.pmr-contact-heading h2{max-width:12ch;margin:0;font-size:clamp(1.8rem,2.8vw,2.8rem);line-height:1.03}
.pmr-contact-copy{margin:0;color:var(--white);font-size:1.05rem;line-height:1.6}
.pmr-contact-action{display:flex;align-items:center;justify-content:flex-end}
.pmr-contact-phone{display:inline-flex;min-height:48px;align-items:center;justify-content:center;padding:.75rem 1.15rem;border:1px solid var(--ink);background:var(--ink);color:var(--white);font-size:.72rem;font-weight:700;letter-spacing:.06em;text-decoration:none;text-transform:uppercase;white-space:nowrap}
.pmr-contact-phone:hover{background:#2b3032}
.pmr-contact-phone:focus-visible{outline:2px solid #f0d5dc;outline-offset:3px}
@media(max-width:1100px) and (min-width:721px){
 .pmr-contact-strip{grid-template-columns:120px minmax(0,1fr) minmax(160px,auto);gap:20px 24px}
 .pmr-contact-avatar{grid-column:1;grid-row:1/3}
 .pmr-contact-heading{grid-column:2;grid-row:1}
 .pmr-contact-copy{grid-column:2;grid-row:2}
 .pmr-contact-action{grid-column:3;grid-row:1/3}
}
@media(max-width:720px){
 .pmr-contact-strip{grid-template-columns:96px minmax(0,1fr);column-gap:16px;row-gap:16px;align-items:start;padding:36px 0}
 .pmr-contact-avatar{grid-column:1;grid-row:1/4;width:96px;height:96px}
 .pmr-contact-heading,.pmr-contact-copy,.pmr-contact-action{grid-column:2}
 .pmr-contact-heading{grid-row:1}
 .pmr-contact-copy{grid-row:2;font-size:1rem;line-height:1.5}
 .pmr-contact-action{grid-row:3;justify-content:flex-start}
 .pmr-contact-heading h2{max-width:none}
}

/* Shared compact end-of-content action. */
.closing-cta{min-height:260px;padding:44px 0;background:var(--burgundy);color:var(--white)}
.closing-cta .eyebrow{margin-bottom:12px;color:#f0d5dc}
.closing-cta-grid{display:grid;grid-template-columns:6fr 6fr;gap:40px;align-items:center}
.closing-cta h2{max-width:18ch;margin:0;font-size:clamp(2.35rem,3.1vw,3.1rem);line-height:1.02}
.closing-cta-copy{max-width:31rem;justify-self:end}
.closing-cta-copy>p{margin:0 0 22px;font-size:1.05rem}
.closing-cta-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.closing-cta .button-light{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 20px;background:var(--white);color:var(--ink);font-size:.74rem;font-weight:800;letter-spacing:.06em;text-decoration:none;text-transform:uppercase}
.closing-cta .button-light:hover{background:#e3e4e0}
.closing-cta .phone-action{display:inline-flex;align-items:center;min-height:48px;font-weight:850;letter-spacing:.04em}
@media(max-width:720px){
 .closing-cta{min-height:0;padding:36px 0}
 .closing-cta-grid{grid-template-columns:1fr;gap:20px}
 .closing-cta h2{font-size:clamp(2.05rem,9vw,2.55rem)}
 .closing-cta-copy>p{margin-bottom:14px;font-size:1rem}
 .closing-cta-actions{align-items:stretch;gap:10px;flex-direction:column}
 .closing-cta .button-light,.closing-cta .phone-action{width:100%;min-height:48px;justify-content:center}
}
@media(min-width:380px) and (max-width:720px){
 .closing-cta-actions{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
}

/* Header/footer are owned here, independent of page styles. */
body.pmr-approved [data-pmr-site-header],body.pmr-approved [data-pmr-site-footer],body.pmr-approved [data-pmr-site-header] *,body.pmr-approved [data-pmr-site-footer] *{box-sizing:border-box}
body.pmr-approved [data-pmr-site-header]{position:sticky;top:0;z-index:100;background:var(--ink);font-family:Montserrat,Arial,sans-serif;font-size:16px;line-height:1.5}
body.pmr-approved [data-pmr-site-header]>.shell,body.pmr-approved [data-pmr-site-footer]>.shell{width:min(var(--max),calc(100% - 10rem));margin-inline:auto}
body.pmr-approved .header-row{height:90px;min-height:90px}
body.pmr-approved .header .brand{flex:0 0 auto;width:185px}
body.pmr-approved .header .brand img{display:block;width:100%;height:auto;max-height:none;margin:0}
body.pmr-approved .header .nav .button{height:42px;min-height:42px;line-height:1.5;letter-spacing:.06em;border-radius:0}
body.pmr-approved [data-pmr-site-footer]{font-family:Montserrat,Arial,sans-serif;font-size:16px;line-height:1.5}
body.pmr-approved .foot p{margin:0;line-height:1.5;font-size:.83rem;font-weight:400;letter-spacing:0}
body.pmr-approved .foot img{display:block;width:210px;height:auto;margin:0 0 1.3rem}
body.pmr-approved .foot nav a{line-height:1.5;letter-spacing:0;text-transform:none}
body.pmr-approved .foot .footer-phone{line-height:1.5;letter-spacing:0;text-transform:none}
body.pmr-approved .site-footer .legal{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;line-height:1.5}
body.pmr-approved .legal-links{display:flex;align-items:center;gap:8px 20px;flex-wrap:wrap}
body.pmr-approved .legal-links a,body.pmr-approved .legal-links .rc-reopen{display:inline-flex;align-items:center;min-height:44px;color:inherit;font:inherit;font-weight:500;text-decoration:none;letter-spacing:0;text-transform:none}
body.pmr-approved .legal-links .rc-reopen{width:auto;background:none;border:0;margin:0;padding:0;text-align:left}
body.pmr-approved .legal-links a:hover,body.pmr-approved .legal-links .rc-reopen:hover{text-decoration:underline}
body.pmr-approved #contact-form{scroll-margin-top:106px}html{scroll-padding-top:106px}
body.pmr-approved .colour-preview,body.pmr-approved .family-filters{top:90px}
body.pmr-approved.route-home .hero-copy{padding-top:64px}
@media(max-width:1280px){body.pmr-approved .header-row{height:74px;min-height:74px;gap:10px}body.pmr-approved .header .nav{display:none}body.pmr-approved .header .brand{width:130px}body.pmr-approved .header .phone-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 10px;background:var(--burgundy);color:var(--white);font-size:.75rem;font-weight:800;white-space:nowrap;text-decoration:none}body.pmr-approved .header .menu{display:inline-grid!important;flex:0 0 44px}body.pmr-approved .header .mobile-nav{max-height:calc(100dvh - 74px);overflow-y:auto}body.pmr-approved .header .mobile-nav[data-open=true]{position:absolute;z-index:30;top:100%;left:0;right:0;display:flex;flex-direction:column;gap:2px;padding:16px;background:rgba(23,27,29,.98);box-shadow:0 18px 34px rgba(0,0,0,.28)}body.pmr-approved .colour-preview,body.pmr-approved .family-filters{top:74px}body.pmr-approved #contact-form{scroll-margin-top:90px}html{scroll-padding-top:90px}}
@media(max-width:720px){body.pmr-approved [data-pmr-site-header]>.shell,body.pmr-approved [data-pmr-site-footer]>.shell{width:calc(100% - 2.4rem)}body.pmr-approved .site-footer .foot{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px}body.pmr-approved .site-footer .foot>div{grid-column:1/-1}body.pmr-approved .site-footer .foot nav{border:0;padding:0;min-width:0}body.pmr-approved .site-footer .foot nav a{min-height:36px;display:flex;align-items:center}body.pmr-approved .site-footer .legal{align-items:flex-start;gap:12px}body.pmr-approved .legal-links{width:100%;gap:0 16px}}
@media(max-width:360px){body.pmr-approved .header .brand{width:104px}body.pmr-approved .header .phone-link{padding:8px;font-size:.7rem}body.pmr-approved .header-row{gap:6px}}
body.admin-bar.pmr-approved .header{top:32px}@media(max-width:782px){body.admin-bar.pmr-approved .header{top:46px}}
