/* Schaduwwerk navy and gold, scoped to public pages by the static build. */
.project-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:24px 0 32px}
.project-gallery figure{margin:0;min-width:0;border:1px solid #d9c692;border-radius:12px;overflow:hidden;background:#fff}
.project-gallery figure>a{display:block;background:#ece7dc}
.project-gallery figure img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;max-height:none}
.project-gallery figcaption{padding:14px 16px;font-size:15px;line-height:1.5;color:#123a5c;font-weight:600;border-top:1px solid #e5dcc8}
.project-gallery figure>a:hover{background:#dfd5bd}
.project-gallery figure>a:focus-visible{outline:3px solid #8c6b2d;outline-offset:-3px}
@media(max-width:560px){.project-gallery{grid-template-columns:minmax(0,1fr);gap:16px}.project-gallery figure img{aspect-ratio:auto}}
/* Keep the document canvas dark, including Safari's bottom overscroll area. */
html,body{background:#071d33}
body{padding-bottom:0}
body>main{background:#f8f4e9}
body>header{position:sticky;top:0;z-index:50;height:86px;padding:0;background:#fffdf8;border:0;box-shadow:0 1px 0 #c5a45c;backdrop-filter:none;transition:background .2s,box-shadow .2s}
body>header .site-navigation{height:86px;transition:width .2s,height .2s,background .2s,border-radius .2s;max-width:1180px}
body>header.is-scrolled{background:transparent;border:0;box-shadow:none;padding-top:8px}
body>header.is-scrolled .site-navigation{width:min(1040px,calc(100% - 24px));height:60px;padding:6px 10px 6px 14px;background:#fffdf8;border:1px solid #c5a45c;border-radius:999px;box-shadow:0 6px 22px #071d332e}
body>header.is-scrolled .site-navigation>a{display:flex;align-items:center;padding:5px 10px;background:#fffdf8;border-radius:999px;min-width:0}
body>header.is-scrolled .brand-logo{width:150px;max-width:150px;max-height:34px}
body>header.is-scrolled .site-menu>summary{min-height:44px;padding:10px 14px;border:1px solid #071d33;border-radius:999px;background:#071d33;color:#fff;font-size:14px}
body>header.is-scrolled .site-menu .menu-panel{top:calc(100% + 10px)}
html{scroll-padding-top:96px}
/* Hiding a fixed bar by translating it below the viewport can extend Safari's scroll area. */
body>.mobile-contact.at-footer{transform:none;opacity:0;visibility:hidden;pointer-events:none;transition:none}
@media(max-width:760px){body>header{height:70px}body>header .site-navigation{height:70px}body>header.is-scrolled .site-navigation{height:56px}body>header.is-scrolled .brand-logo{width:130px;max-width:130px}body>header.is-scrolled .site-navigation>a{padding:5px 8px}}
/* A single, contained navigation panel; product choices share its visual style. */
header .site-menu .menu-panel{top:calc(100% + 10px);padding:12px;border:1px solid #d9c692;border-radius:14px;box-shadow:0 18px 45px #071d3329;background:#fffdf8}
header .menu-links{gap:6px}
header .menu-links>a{padding:12px 16px}
header .menu-links>a[aria-current="page"]{background:#071d33;color:#fff;border-color:#071d33;border-left:3px solid #c5a45c}
header .product-menu{margin:0;padding:0;border:1px solid #ded4bd;border-radius:9px;background:#f8f4e9;overflow:hidden}
header .product-menu>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;min-height:48px;font-size:14px;font-weight:700;list-style:none;color:#123a5c}
header .product-menu>summary::-webkit-details-marker{display:none}
header .product-menu>summary::after{content:"";flex:0 0 8px;width:8px;height:8px;border:solid #8c6b2d;border-width:0 2px 2px 0;transform:rotate(45deg);margin:0 3px 4px 0}
header .product-menu[open]>summary::after{transform:rotate(225deg);margin-bottom:-4px}
header .product-links{border:0;border-top:1px solid #ded4bd;padding:6px;background:#fff}
header .product-links a{padding:10px 12px;border-radius:6px;font-size:15px;font-weight:500}
header .product-links a:hover,header .product-links a:focus-visible{background:#f2e5c5;color:#071d33}
.partner-section{background:#f8f4e9}
.partner-card{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:32px;border:1px solid #b89a57;border-radius:12px;background:linear-gradient(115deg,#071d33,#123a5c);color:#fff;box-shadow:0 8px 24px #071d3310}
.partner-card h2,.page-content .partner-card h2{margin:8px 0 12px;color:#fff}
.partner-card p{max-width:65ch;margin:0;color:#e1e8ef}
.partner-card .eyebrow{color:#e4c982;font-size:12px}
.partner-card .btn{flex-shrink:0;text-align:center}
.page-content .partner-card{display:block;margin:28px 0;padding:26px}
.partner-card .contact-options{margin-top:20px}
.partner-card .btn.outline{color:#fff;background:transparent;border-color:#b89a57}
.partner-card .btn.outline:hover{background:#c5a45c;color:#071d33}
@media(max-width:760px){
 html{scroll-padding-top:88px}
 body>header{position:sticky;top:0;z-index:50;background:#fffdf8;border-bottom:2px solid #c5a45c;box-shadow:0 3px 12px #071d3310;backdrop-filter:none}
 header .site-navigation{height:66px;gap:12px}
 header .site-navigation .brand-logo{width:156px;max-width:156px;max-height:48px;height:auto}
 header .site-menu>summary{min-height:44px;padding:10px 13px;font-size:14px;border-radius:8px;gap:8px}
 header .site-menu .menu-panel{top:calc(100% + 8px);width:min(380px,100%);max-height:calc(100dvh - 148px - env(safe-area-inset-bottom));overscroll-behavior:contain}
 .partner-card{flex-direction:column;align-items:flex-start;gap:22px;padding:24px}
}
@media(max-width:560px){
 /* The footer replaces the fixed contact controls, so no blank spacer is needed. */
 body{padding-bottom:0}
 main{padding-bottom:0}
 main.page-content{padding-bottom:32px}
 body>footer{padding-bottom:calc(32px + env(safe-area-inset-bottom));margin-bottom:0}
 .partner-card .btn{width:100%}
}
.product-benefits{margin:24px 0;padding:22px 24px;background:#f2e5c5;border-left:4px solid #a98a45;border-radius:6px}.page-content .product-benefits h2{margin:0 0 12px}.product-benefits ul{margin:0;padding-left:20px}.product-benefits li{padding-left:4px}.product-benefits li::marker{color:#73551f}
:root{--sun:#c5a45c;--cream:#f8f4e9}
header{border-bottom:3px solid #c5a45c;background:#fff}
.hero{background:linear-gradient(125deg,#071d33,#123a5c);color:#fff;border-bottom:5px solid #c5a45c}
.hero .eyebrow{color:#e4c982}.hero .lead{color:#e1e8ef}
.hero-project{border:2px solid #c5a45c;box-shadow:12px 12px 0 rgba(197,164,92,.16)}
.btn,.category,.directory a{border-radius:6px}
.btn{background:#c5a45c;color:#071d33}.btn:hover{background:#dcc183}.btn.dark{background:#071d33;color:#fff}
.services{background:#f8f4e9}.category{background:#fff;border:1px solid #d9c692;border-top:4px solid #c5a45c;box-shadow:0 5px 16px #071d330a}
.category .service-symbol{background:#f2e5c5;border-radius:8px;padding:6px;width:56px;height:56px}
.category:hover,.directory a:hover{background:#f2e5c5;border-color:#a58540}
.benefits{background:#071d33;color:#fff}.benefits h2{color:#e4c982}.benefits span{color:#dce5ed}.benefits li{border-left:3px solid #c5a45c;padding-left:18px}
.reviews{background:#eee1bf;border-top:1px solid #d9c692;border-bottom:1px solid #d9c692}
.process{background:#fff}.process li::before{color:#73551f}.process strong{color:#123a5c}
.booking{background:#0b2944;border-top:5px solid #c5a45c}.callback-planner{border:2px solid #c5a45c;overflow:hidden}
.field input,.field select,.field textarea{border-radius:5px;border-color:#a9b9c7}.field input:focus,.field select:focus,.field textarea:focus{border-color:#8a692e;outline:2px solid #c5a45c;outline-offset:2px}
.page-content{border-top:4px solid #c5a45c}.page-content .directory a{border-left:4px solid #c5a45c;background:#fff}
.page-content h2{color:#123a5c}.price-table{border-color:#c9b47b}.price-note{background:#f2e5c5}
/* Only standalone actions are buttons; inline links keep natural text flow. */
.section-head>a:not(.btn),.footer-contact a,.footer-pages a,.legal-links a{
 display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;max-width:100%;padding:9px 14px;margin:4px 3px 4px 0;border:1px solid #a98a45;border-radius:6px;background:#071d33;color:#fff;font-size:15px;font-weight:700;line-height:1.4;text-decoration:none;text-align:center;overflow-wrap:anywhere;vertical-align:middle
}
.page-content p a:not(.btn),.page-content li a:not(.btn),.review-compact p a:not(.btn),.form label a,.breadcrumb a{text-decoration:underline;text-underline-offset:3px}
.section-head>a:not(.btn):hover,.footer-contact a:hover,.footer-pages a:hover,.legal-links a:hover{background:#c5a45c;color:#071d33}
.form label a{color:#123a5c}
.breadcrumb a{color:#123a5c}
footer{border-top:4px solid #c5a45c}.footer-pages{gap:6px 12px}.footer-contact a,.footer-pages a,.legal-links a{background:#123a5c;border-color:#587086}.legal-links{align-items:center}
header .menu-links>a{border:1px solid #d2dbe2;background:#f4f6f8;margin:3px 0;border-radius:5px}header .menu-links>a:hover{background:#f2e5c5}
@media(max-width:560px){.hero-project{box-shadow:6px 6px 0 rgba(197,164,92,.16)}.footer-pages{width:100%;grid-template-columns:1fr 1fr}.footer-pages a{margin:0;font-size:14px}.booking .section-head p a{margin-top:10px}.page-content{border-top-width:3px}.legal-links{gap:8px}.legal-links a{margin:0;font-size:13px}}
