*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:#142434;background:#f6f4ef;font-family:Arial,Helvetica,sans-serif;line-height:1.55}
a{color:inherit;text-underline-offset:4px}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{outline-offset:5px}
img{display:block;max-width:100%}
p{margin:0 0 1.2em}
h1,h2,h3{line-height:1.06;margin:0 0 .5em;letter-spacing:-.04em}
h1{font-size:clamp(40px,5.9vw,86px);font-weight:700}
h2{font-size:clamp(32px,4vw,54px)}
h3{font-size:24px}
.wrap{width:min(1200px,calc(100% - 80px));margin:auto}
.reviewbar{background:#e9e3d7;color:#3f443f;font-size:12px;padding:10px 24px;text-align:center}
.reviewbar a{font-weight:700;margin-right:16px}
.topline{background:#122a42;color:#fff;font-size:12px;padding:9px 0}
.topline .wrap{display:flex;justify-content:space-between;gap:20px}
.header{background:#fff;border-bottom:1px solid #e1e2df}
.header .wrap{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:20px 0}
.logo{width:162px;flex:none}
.header nav{display:flex;gap:25px;align-items:center;font-size:14px;font-weight:600}
.header nav a{text-decoration:none}
.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;background:#bb2b27;color:#fff;text-decoration:none;padding:15px 23px;border:1px solid #bb2b27;font-size:14px;font-weight:700;min-height:48px;cursor:pointer}
.button.light{background:transparent;border-color:#c9cece;color:inherit}
.button.white{background:#fff;border-color:#fff;color:#122a42}
.eyebrow{text-transform:uppercase;letter-spacing:.17em;font-size:11px;font-weight:700;margin-bottom:23px;display:block}
.red{color:#ae2926}
.hero{padding:68px 0 62px}
.hero-grid{display:grid;grid-template-columns:1.03fr 1fr;gap:60px;align-items:center}
.hero h1 em{font-style:normal;color:#aa3029}
.lede{font-size:18px;max-width:550px;color:#50606b}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:15px;margin:30px 0 20px}
.quiet-link{font-size:14px}
.hero-visual{position:relative;padding:0 0 32px 28px}
.hero-visual:before{content:'';position:absolute;background:#dfd8cc;inset:28px 22px 0 0;z-index:0}
.hero-visual img{position:relative;width:100%;height:560px;object-fit:cover;object-position:45% 30%;filter:brightness(1.06)}
.photo-caption{position:relative;font-size:11px;background:#122a42;color:#fff;padding:13px 18px;margin-left:35px;margin-top:-30px;max-width:calc(100% - 35px)}
.proof{border-block:1px solid #d6d9d7;padding:22px 0;background:#fff}
.proof .wrap{display:grid;grid-template-columns:1fr 1fr 1fr;gap:30px}
.proof p{margin:0;font-size:13px}
.proof strong{display:block;font-size:16px;margin-bottom:3px}
.section{padding:90px 0}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:34px}
.section-head p{max-width:420px;color:#56636b;margin:0}
.services{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.service{background:#fff;border:1px solid #dedfd9;display:grid;grid-template-columns:1fr 1fr;min-width:0}
.service img{width:100%;height:300px;object-fit:cover}
.service .content{padding:28px 24px;display:flex;flex-direction:column;align-items:start}
.service p{font-size:14px;color:#56636b}
.service a{margin-top:auto;font-size:13px;font-weight:700}
.service .number{font-size:12px;color:#ad3028;margin-bottom:28px}
.also{display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:1px solid #cad0ce;padding:24px 0;font-size:15px}
.dark{background:#122a42;color:#fff}
.split{display:grid;grid-template-columns:1fr 1fr;gap:70px}
.dark .lede,.dark p{color:#c8d1d8}
.audience{border-top:1px solid #536476;padding-top:28px;margin-top:30px}
.audience .eyebrow{color:#e8b0a7}
.audience h3{font-size:28px}
.audience p{font-size:15px;max-width:440px}
.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.project img{width:100%;height:250px;object-fit:cover}
.project figcaption{padding:18px 0;border-bottom:1px solid #cdd1ca}
.project{margin:0}
.project h3{font-size:20px;letter-spacing:-.02em}
.project small{font-size:12px;color:#606b70}
.process{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:45px}
.step{border-top:1px solid #8b9b9c;padding-top:22px}
.step span{display:block;font-size:14px;color:#a52d28;margin-bottom:28px}
.step h3{font-size:23px}
.step p{font-size:15px;color:#54616b}
.paper{background:#eae7df}
.area-box{padding:42px;background:#fff;border-left:4px solid #b02c26}
.area-box h3{font-size:30px}
.faq details{border-bottom:1px solid #cbd0cc;padding:20px 0}
.faq summary{font-size:17px;cursor:pointer;font-weight:600;list-style-position:outside;margin-left:18px}
.faq details p{color:#53616b;padding:16px 20px 0}
.estimate{background:#122a42;color:#fff}
.estimate .lede{color:#d1dae0}
.form{padding:32px;background:#fff;color:#142434}
.form label{display:block;font-size:12px;font-weight:600;margin-bottom:6px}
.form input,.form select,.form textarea{width:100%;border:1px solid #b7c0c6;border-radius:0;padding:12px;background:white;color:#203341;min-width:0;font-size:16px}
.form .fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field.full{grid-column:1/-1}
.form small{display:block;font-size:11px;line-height:1.5;color:#5b6771;margin:18px 0}
.form .button{width:100%}
.notice{font-size:12px;color:#68717a;margin-top:13px}
.form-message{font-size:14px;line-height:1.5;margin-top:16px}
.footer{background:#0b1c2c;color:#cfdae3;padding:40px 0;font-size:12px}
.footer .wrap{display:flex;justify-content:space-between;gap:24px;align-items:start}
.footer p{margin-bottom:6px}
.footer a{margin-right:20px}
.mobile-menu{display:none}
.crumb{font-size:12px;color:#65747b;margin-bottom:32px}
.material-list{list-style:none;padding:0;margin:30px 0}
.material-list li{border-top:1px solid #cbd0cc;padding:20px 0;display:grid;grid-template-columns:40px 1fr;gap:20px}
.material-list strong{display:block;margin-bottom:7px}
.material-list p{font-size:14px;margin:0;color:#56636b}
.service-hero .hero-visual img{height:490px}
.inline-note{border-left:3px solid #a83029;padding-left:18px;color:#5a6264;font-size:14px}
.review-note{background:#eee8dc;border-top:1px solid #d0c7b7;padding:22px;font-size:12px;text-align:center;color:#574f42}
.review-note strong{display:block}
.board{padding:54px 0 70px;background:#fff}
.board h1{font-size:clamp(36px,4vw,60px)}
.board-intro{max-width:740px}
.concept-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin:44px 0}
.concept{border:1px solid #cbd0cb;min-width:0}
.concept-cover{padding:34px;min-height:400px;background:#122a42;color:#fff;display:flex;flex-direction:column;justify-content:space-between}
.concept-cover h2{font-size:45px;max-width:360px}
.concept-cover.b{background:#e9e5dd;color:#282824}
.concept-cover.b h2{font-family:Georgia,serif;font-weight:400;line-height:1.03;font-size:48px}
.concept-detail{padding:30px}
.concept-detail h3{margin-top:12px}
.concept-detail p{font-size:14px;color:#56616a}
.swatches{display:flex;gap:8px;margin:24px 0}
.swatches i{height:32px;flex:1;background:var(--color);border:1px solid #ccd0ca}
.concept .eyebrow{font-size:10px;margin-bottom:12px}
.concept .mini-photo{width:150px;height:85px;object-fit:cover;align-self:end}
.recommended{display:inline-block;border:1px solid #a6443b;color:#a42e29;font-size:11px;padding:4px 8px;letter-spacing:.06em}
.preview-controls{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:26px 0}
.preview-controls button{background:white;border:1px solid #bcc3c5;padding:10px 17px;color:#233442;cursor:pointer}
.preview-controls button[aria-pressed=true]{background:#122a42;color:white}
.frame-wrap{background:#dedfdc;padding:28px;display:flex;justify-content:center;border:1px solid #cdd0ca}
.frame-wrap iframe{width:100%;height:760px;border:0;background:#fff;transition:width .2s}
.board table{width:100%;border-collapse:collapse;font-size:13px;margin-top:20px}
.board td,.board th{text-align:left;padding:16px;border-bottom:1px solid #d1d4cf;vertical-align:top}
.board th{background:#f3f1eb}
.review-links{display:flex;gap:12px;flex-wrap:wrap;margin:25px 0}
body.concept-b{background:#f2efe7;color:#2d2c28}
body.concept-b h1,body.concept-b h2{font-family:Georgia,serif;font-weight:400}
body.concept-b .header{background:#f2efe7}
body.concept-b .topline,body.concept-b .dark,body.concept-b .estimate{background:#343b36}
body.concept-b .button{background:#934938;border-color:#934938}
body.concept-b .hero-visual:before{background:#bcc2b7}
body.concept-b .hero h1 em{color:#785140}
body.concept-b .photo-caption{background:#343b36}
@media(max-width:1000px){.wrap{width:calc(100% - 48px)}
.header nav{gap:15px;font-size:12px}
.header nav .button{padding:12px 15px}
.hero-grid{gap:30px}
.hero-visual img{height:490px}
.service{grid-template-columns:1fr}
.service img{height:220px}
.split{gap:35px}
.section{padding:65px 0}
.concept-cover{padding:25px}
.concept-cover h2{font-size:36px}
.concept-cover.b h2{font-size:40px}
}
@media(max-width:700px){.wrap{width:calc(100% - 40px)}
.reviewbar{font-size:11px;padding:9px 12px}
.topline .wrap{font-size:10px;gap:12px}
.header .wrap{padding:16px 0;flex-wrap:wrap;gap:14px}
.logo{width:132px}
.header nav{display:none;width:100%;flex-wrap:wrap;padding:15px 0;gap:18px}
.header nav.open{display:flex}
.header nav .button{width:100%}
.mobile-menu{display:block;background:#fff;border:1px solid #aeb9bd;padding:10px 14px;font-size:13px;cursor:pointer}
.hero{padding:39px 0}
.hero-grid{grid-template-columns:1fr;gap:35px}
.hero h1{font-size:47px;max-width:560px}
.lede{font-size:16px}
.hero-visual{padding:0 0 20px 17px}
.hero-visual img,.service-hero .hero-visual img{height:365px}
.photo-caption{margin-left:16px;max-width:calc(100% - 16px);font-size:10px}
.eyebrow{font-size:10px;margin-bottom:19px}
.actions{gap:14px;margin-top:26px}
.proof .wrap{grid-template-columns:1fr;gap:18px}
.proof p{border-bottom:1px solid #dde0db;padding-bottom:14px}
.proof p:last-child{border:0;padding-bottom:0}
.section{padding:50px 0}
.section-head{display:block}
.section-head p{margin-top:18px}
.services,.split,.project-grid,.process,.concept-grid{grid-template-columns:1fr}
.services{gap:20px}
.service{grid-template-columns:1fr 1fr}
.service img{height:260px}
.service .content{padding:20px 16px}
.service h3{font-size:27px}
.also{flex-wrap:wrap}
.split{gap:30px}
.project img{height:285px}
.project-grid{gap:30px}
.process{gap:18px;margin-top:28px}
.step span{margin-bottom:12px}
.area-box{padding:27px}
.form{padding:22px}
.form .fields{grid-template-columns:1fr}
.field.full{grid-column:auto}
.footer .wrap{display:block}
.footer .wrap>div+div{margin-top:25px}
.board{padding:35px 0}
.concept-cover{min-height:330px}
.concept-cover h2{font-size:42px}
.frame-wrap{padding:10px}
.frame-wrap iframe{height:730px}
.board td,.board th{padding:12px 7px;font-size:12px}
.board h2{font-size:32px}
.review-links .button{width:100%}
.concept-cover.b h2{font-size:45px}
}
@media(max-width:360px){.wrap{width:calc(100% - 32px)}
.hero h1{font-size:40px}
.service{grid-template-columns:1fr}
.service img{height:230px}
.actions .button{width:100%}
.hero-visual img{height:310px}
.topline .wrap{flex-wrap:wrap;gap:4px}
.project img{height:245px}
.board table{font-size:11px}
.form{padding:18px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*{transition:none!important}
}
.nav-list,.footer-links{list-style:none;padding:0;margin:0}
.nav-list{display:flex;gap:23px;align-items:center}
.nav-list .menu-item:last-child a{display:inline-flex;background:#bb2b27;color:#fff;padding:14px 18px}
.nav-list a{display:block;padding:10px 0}
.nav-list .current-menu-item>a{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:10px 26px}
.footer-links a{display:block;padding:4px 0}
.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid #405264;margin-top:26px;padding-top:20px}
.skip-link{position:absolute;left:20px;top:-100px;z-index:100;background:#fff;color:#122a42;padding:15px}
.skip-link:focus{top:10px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #b64727;outline-offset:4px}
.dark a:focus-visible,.footer a:focus-visible{outline-color:#fff}
.wp-block-group{box-sizing:border-box}
.wp-block-group.hero-grid,.wp-block-group.split,.wp-block-group.services,.wp-block-group.project-grid,.wp-block-group.process{display:grid}
.wp-block-group.wrap{margin-inline:auto}
.wp-block-image{margin:0}
.wp-block-image img{height:auto}
.hero-visual .wp-block-image img{height:560px;width:100%;object-fit:cover}
.service .wp-block-image img{height:300px;width:100%;object-fit:cover}
.project .wp-block-image img{height:250px;width:100%;object-fit:cover}
.wp-block-buttons{display:flex;flex-wrap:wrap;gap:14px;margin-top:26px}
.wp-block-button__link{border-radius:0;background:#bb2b27;color:white;padding:15px 23px;font-size:14px;font-weight:700;text-decoration:none;min-height:48px;display:inline-flex;align-items:center;justify-content:center}
.wp-block-button.is-style-outline .wp-block-button__link{background:transparent;border:1px solid currentColor;color:inherit}
.dark .wp-block-button__link,.estimate .wp-block-button__link{background:#fff;color:#122a42}
.wp-block-details{border-bottom:1px solid #bfc9c7;padding:20px 0}
.wp-block-details summary{font-size:17px;font-weight:600;cursor:pointer;margin-left:18px}
.wp-block-details p{margin:16px 0 0;padding-left:18px}
.proof .wp-block-group.wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.wp-block-image figcaption{font-size:12px;color:#50606b;margin-top:10px}
.service .content{min-width:0}
.wp-block-group > :last-child{margin-bottom:0}
.hero .wp-block-image img{aspect-ratio:4/5}
.hero-grid>*,.split>*,.services>*{min-width:0}
main p,main li{overflow-wrap:break-word}
.service-hero .hero-visual .wp-block-image img{height:490px}
.asc-estimate-form{max-width:800px;background:#fff;padding:30px;border:1px solid #d3d8d5;color:#142434}
.asc-estimate-form label{display:block;font-size:14px;font-weight:600}
.asc-estimate-form input:not([type=checkbox]),.asc-estimate-form select,.asc-estimate-form textarea{width:100%;min-width:0;padding:12px;border:1px solid #aab7bd;border-radius:0;background:#fff;color:#142434;font:inherit;margin-top:6px}
.asc-estimate-form button{border:0;background:#bb2b27;color:white;padding:15px 24px;cursor:pointer;font:inherit;font-weight:700;min-height:48px}
.asc-estimate-form p{margin-bottom:18px}
.asc-estimate-form fieldset{border:0;padding:0;margin:0}
.asc-estimate-notice,.asc-estimate-result{padding:20px;border-left:4px solid #bb2b27;background:#f0ece3;margin:20px 0}
.asc-estimate-form .asc-hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.asc-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.asc-form-grid .full{grid-column:1/-1}
@media(max-width:1100px){.nav-list{gap:15px}
.header nav{font-size:13px}
.logo{width:142px}
}
@media(max-width:900px){.header .wrap{flex-wrap:wrap}
.mobile-menu{display:block;background:white;border:1px solid #aeb9bd;padding:10px 14px;cursor:pointer}
.header nav{display:none;width:100%}
.header nav.open{display:block}
.nav-list{display:grid;grid-template-columns:1fr 1fr;gap:6px 20px}
.nav-list .menu-item:last-child{grid-column:1/-1}
.nav-list .menu-item:last-child a{justify-content:center}
.hero-visual .wp-block-image img{height:450px}
.service .wp-block-image img{height:220px}
}
@media(max-width:700px){.wp-block-group.hero-grid,.wp-block-group.split,.wp-block-group.services,.wp-block-group.project-grid,.wp-block-group.process,.proof .wp-block-group.wrap{grid-template-columns:1fr}
.hero-visual .wp-block-image img,.service-hero .hero-visual .wp-block-image img{height:365px}
.hero .wp-block-image img{aspect-ratio:auto}
.wp-block-group.service{grid-template-columns:1fr 1fr}
.service .wp-block-image img{height:100%;min-height:260px}
.project .wp-block-image img{height:285px}
.footer-bottom{flex-wrap:wrap;gap:12px}
.asc-form-grid{grid-template-columns:1fr}
.asc-form-grid .full{grid-column:auto}
.asc-estimate-form{padding:20px}
.hero h1{font-size:clamp(38px,10vw,58px)}
}
@media(max-width:380px){.wp-block-group.service{grid-template-columns:1fr}
.service .wp-block-image img{height:230px;min-height:0}
.nav-list{grid-template-columns:1fr}
.hero-visual .wp-block-image img{height:310px}
.footer-links{grid-template-columns:1fr}
}
.asc-estimate-form input[type=radio]{width:auto;padding:0;margin:0 7px 0 0;accent-color:#122a42}
.asc-contact-choice{margin-bottom:18px!important}
.asc-contact-choice label{display:inline-flex;align-items:center;margin-right:20px;padding:8px 0}
.asc-contact-choice legend{font-size:14px;font-weight:600}
.asc-field-help,.asc-form-privacy{font-size:13px;color:#50606b}
.asc-preview-notice,.asc-form-result{padding:18px;border-left:3px solid #bb2b27;background:#efe9dc;font-size:14px;margin-bottom:25px}
.hero-grid>*,.split>*,.services>*,.project-grid>*,.process>*,.proof .wrap>*{margin-block-start:0!important;margin-block-end:0}
.also>*{margin:0!important}
.proof strong+br{display:none}
.header .logo{width:265px}
.brand-wordmark{width:100%;height:auto}
.header .wrap{padding-block:17px}
.header{position:relative;z-index:5}
.registration{font-size:11px;letter-spacing:.03em}
.faq-photo{margin-top:32px!important}
.faq-photo img{width:100%;height:290px!important;object-fit:cover;object-position:center 48%}
.extra-projects{margin-top:35px!important}
.extra-projects>*{margin:0!important}
.brand-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#dce1df;border:1px solid #dce1df;margin-top:34px!important}
.brand-tile{display:flex;align-items:center;justify-content:center;min-height:112px;padding:25px;background:#fff;margin:0!important}
.brand-tile .wp-block-image{width:100%;margin:0!important}
.brand-tile img{width:100%;max-width:180px;max-height:65px;object-fit:contain;margin:auto}
.brand-tile p{margin:0}
.gaf-wordmark{font-size:39px;font-weight:900;color:#c3232b;letter-spacing:-3px;text-decoration:none}
.design-studio{background-color:#eceee9}
.design-studio>.wrap>.lede{max-width:610px}
@media(max-width:1100px){.header .logo{width:230px}
.nav-list{gap:12px}
.header nav{font-size:12px}
.nav-list .menu-item:last-child a{padding-inline:12px}
}
@media(max-width:800px){.brand-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:700px){.header .logo{width:220px}
.faq-photo img{height:240px!important}
.brand-tile{padding:20px;min-height:90px}
.brand-tile img{max-height:45px}
}
@media(max-width:380px){.header .logo{width:185px}
.mobile-menu{font-size:12px;padding:9px 10px}
}
.materials-section{background:#122a42;color:#fff;background-image:linear-gradient(rgba(154,192,216,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(154,192,216,.05) 1px,transparent 1px);background-size:40px 40px}
.materials-section .eyebrow{color:#e4afa1}
.materials-section .wrap>p:not(.eyebrow){max-width:680px;color:#d1dce3}
.materials-section .brand-grid{background:transparent;border:0;gap:18px}
.materials-section .brand-tile{border:1px solid #d9e1e5;background:#fff}
.footer a{overflow-wrap:anywhere}
.contact-map-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.contact-map-copy h2{max-width:560px}
.contact-map-copy>p:not(.eyebrow){max-width:520px}
.contact-map-copy .button{margin:6px 0 22px}
.map-contact-line{font-size:14px;margin:0}
.contact-map-box{min-width:0;border:1px solid #668096;background:#fff;padding:8px}
.contact-map-box iframe{width:100%;height:310px;border:0;display:block}
.map-box-caption{display:flex;justify-content:space-between;gap:16px;padding:13px 12px 6px;font-size:12px;color:#122a42}
.map-box-caption a{font-weight:700}
.contact-map-copy{min-width:0}
@media(max-width:900px){.contact-map-grid{gap:35px}
.contact-map-box iframe{height:290px}
}
@media(max-width:700px){.contact-map-grid{grid-template-columns:1fr;gap:30px}
.contact-map-box iframe{height:280px}
.map-box-caption{font-size:11px;padding-inline:4px}
}
.about-section{background:#e9e7df}
.about-grid{align-items:center}
.about-photo{position:relative;padding:0 22px 22px 0}
.about-photo:before{content:'';position:absolute;inset:24px 0 0 24px;border:1px solid #a3b3b5}
.about-photo .wp-block-image{position:relative}
.about-photo img{width:100%;height:530px;object-fit:cover;object-position:50% 50%}
.about-photo-label{position:relative;background:#122a42;color:#fff;font-size:9px;letter-spacing:.1em;padding:16px 20px;margin:0!important}
.about-registration{border-top:1px solid #b7c0bd;padding-top:18px;font-size:12px;letter-spacing:.035em}
.about-copy .lede{color:#415667}
.about-copy p:not(.eyebrow){max-width:530px}
@media(max-width:700px){.about-photo img{height:370px}
.about-photo{padding:0 16px 16px 0}
.about-copy .wp-block-buttons{margin-bottom:0}
}
.header .logo{width:340px}
.brand-lockup{display:grid;grid-template-columns:minmax(0,1fr) 2px 74px;gap:14px;align-items:center;text-decoration:none}
.brand-lockup .brand-wordmark{width:100%;height:auto}
.brand-divider{width:2px;height:59px;background:#bb2b27}
.brand-lockup .brand-emblem{width:74px;height:74px;object-fit:contain}
.project-detail-section{background:#e9ece7}
.project-detail-card{display:grid;grid-template-columns:1fr 1fr;background:#122a42;box-shadow:0 24px 48px #10243514}
.project-detail-card>*{margin:0!important;min-width:0}
.project-detail-visual{position:relative;min-height:560px}
.project-detail-visual .wp-block-image{position:absolute;inset:0;margin:0}
.project-detail-visual img{width:100%;height:100%;object-fit:cover;object-position:50% 33%}
.project-detail-caption{position:absolute;bottom:22px;left:22px;right:22px;background:rgba(18,42,66,.92);color:#fff;padding:15px 18px;font-size:9px;letter-spacing:.15em;margin:0!important;border-left:3px solid #bb2b27}
.project-detail-copy{padding:48px 44px;color:#fff;align-self:center}
.project-detail-copy>.eyebrow{color:#e7b6a9;font-size:10px;margin:0 0 25px}
.project-detail-copy h2{font-size:clamp(36px,3.9vw,50px);letter-spacing:-.04em;line-height:1.04;margin-bottom:22px}
.project-detail-intro{color:#d1dce4;font-size:15px;line-height:1.7}
.project-detail-links{display:grid;grid-template-columns:1fr 1fr;gap:0 28px;margin-top:30px!important}
.project-detail-links p{margin:0!important;padding:19px 0;border-top:1px solid #52697c;min-width:0}
.detail-index{display:block;font-size:9px;letter-spacing:.1em;color:#a8bccd;margin-bottom:7px}
.project-detail-links a{font-size:15px;text-decoration:none;font-weight:600;display:inline-block;padding:3px 0}
.project-detail-links a:hover{text-decoration:underline}
.project-detail-copy .wp-block-button__link{background:#fff;color:#122a42}
.project-detail-copy a:focus-visible{outline-color:#fff}
@media(max-width:1100px){.header .logo{width:300px}
.brand-lockup{grid-template-columns:minmax(0,1fr) 2px 65px;gap:11px}
.brand-lockup .brand-emblem{width:65px;height:65px}
.brand-divider{height:51px}
.project-detail-copy{padding:35px 30px}
.project-detail-visual{min-height:540px}
}
@media(max-width:700px){.header .logo{width:245px}
.brand-lockup{grid-template-columns:minmax(0,1fr) 2px 53px;gap:9px}
.brand-lockup .brand-emblem{width:53px;height:53px}
.brand-divider{height:43px}
.project-detail-card{grid-template-columns:1fr}
.project-detail-visual{min-height:0}
.project-detail-visual .wp-block-image{position:static}
.project-detail-visual img{height:360px}
.project-detail-copy{padding:32px 27px}
.project-detail-copy h2{font-size:39px}
.project-detail-caption{left:18px;right:18px;bottom:18px;font-size:8px}
.project-detail-links{gap:0 20px}
}
@media(max-width:380px){.header .logo{width:205px}
.brand-lockup{grid-template-columns:minmax(0,1fr) 2px 45px;gap:7px}
.brand-lockup .brand-emblem{width:45px;height:45px}
.brand-divider{height:36px}
.project-detail-copy{padding:29px 22px}
.project-detail-copy h2{font-size:35px}
.project-detail-links a{font-size:13px}
.project-detail-visual img{height:315px}
}
.brand-filter-definitions{position:absolute;pointer-events:none}
.footer .footer-brand{width:340px;max-width:100%;margin:0 0 22px}
.footer-brand .brand-wordmark{width:100%;height:auto}
.footer-brand .footer-emblem{filter:url(#footer-emblem-inverse)}
.footer-brand .brand-divider{background:#d93632}
.footer .footer-brand:focus-visible{outline-color:#fff}
@media(max-width:700px){.footer .footer-brand{width:290px}
}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.footer{font-size:15px;line-height:1.75}
.footer p{margin-bottom:9px}
.footer-links{font-size:15px}
.footer .registration,.footer-bottom{font-size:13px}
@media(max-width:700px){.footer{font-size:14px}
.footer-links{font-size:15px}
}
.journal-hero{padding:76px 0;background-color:#122a42;color:#fff;background-image:linear-gradient(#9eb6c20b 1px,transparent 1px),linear-gradient(90deg,#9eb6c20b 1px,transparent 1px);background-size:36px 36px}
.journal-hero .eyebrow{color:#efb3a8}
.journal-hero h1{max-width:990px;font-size:clamp(44px,5.3vw,74px)}
.journal-hero p:not(.eyebrow){font-size:19px;max-width:660px;color:#d6e1e8;margin:24px 0}
.journal-hero-link{font-size:15px;font-weight:600}
.guide-filters{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 42px}
.guide-filters a{border:1px solid #b9c5c9;padding:10px 20px;text-decoration:none;font-size:14px;background:#fff}
.guide-filters a[aria-current=page]{background:#122a42;color:#fff;border-color:#122a42}
.journal-section-title{font-size:32px;margin-bottom:28px}
.guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.guide-card{background:#fff;border:1px solid #d8dedc;min-width:0;display:flex;flex-direction:column;position:relative}
.guide-card-image{display:block;overflow:hidden;aspect-ratio:1.5}
.guide-card-image img{height:100%;width:100%;object-fit:cover}
.guide-card-copy{padding:28px;display:flex;flex-direction:column;flex:1}
.guide-card-copy .eyebrow{font-size:10px;margin:0 0 15px}
.guide-card h3{font-size:25px;line-height:1.15;letter-spacing:-.025em;margin:0 0 18px}
.guide-card h3 a{text-decoration:none}
.guide-card h3 a:after{content:'';position:absolute;inset:0}
.guide-card h3 a:focus-visible:after{outline:3px solid #bb2b27;outline-offset:3px}
.guide-card-copy>p:not(.eyebrow){font-size:14px;color:#516573;line-height:1.65}
.guide-read{margin-top:auto;padding-top:12px;font-size:13px;font-weight:700;color:#9b2925;display:flex;justify-content:space-between}
.guide-card:hover{border-color:#92a6b0}
.guides-preview{background:#eef0ea}
.article-header{padding-top:48px;padding-bottom:35px}
.article-crumb{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:#526b7a;margin-bottom:38px}
.article-header h1{font-size:clamp(38px,4.5vw,65px);max-width:1000px;line-height:1.07}
.article-deck{font-size:20px;line-height:1.5;max-width:820px;color:#536775}
.article-byline{font-size:13px;color:#536775;margin:28px 0 0}
.article-byline span{padding:0 8px}
.article-photo{margin-bottom:50px}
.article-photo img{width:100%;height:440px;object-fit:cover;object-position:50% 42%}
.article-photo figcaption{font-size:11px;color:#5a6b73;padding:12px 0;max-width:800px}
.article-layout{display:grid;grid-template-columns:minmax(0,760px) minmax(240px,1fr);gap:70px;align-items:start}
.article-body{font-size:17px;line-height:1.85;min-width:0}
.article-body h2{font-size:32px;line-height:1.18;margin:45px 0 20px;letter-spacing:-.025em}
.article-body h3{font-size:23px;line-height:1.3;margin:30px 0 13px;letter-spacing:-.02em}
.article-body p{margin-bottom:23px}
.article-body .guide-answer{background:#e5ebe7;border-left:3px solid #b82c28;padding:26px;font-size:18px;line-height:1.65}
.guide-toc{border-block:1px solid #c3cfce;padding:22px 0;margin-bottom:28px}
.guide-toc p{margin:0 0 9px;font-size:14px;line-height:1.6}
.guide-toc .guide-toc-link a{text-decoration:none}
.guide-toc .guide-toc-link a:hover{text-decoration:underline}
.article-body .guide-source{font-size:14px;overflow-wrap:anywhere}
.article-sidebar{background:#122a42;color:white;padding:32px;position:sticky;top:28px}
.article-sidebar h2{font-size:32px;line-height:1.12}
.article-sidebar p{font-size:14px;color:#dae3e9}
.article-sidebar .eyebrow{font-size:9px;color:#efb3a8}
.article-sidebar .button{width:100%;padding-inline:10px}
.sidebar-phone{display:block;font-size:18px;margin:20px 0}
.article-sidebar .sidebar-note{font-size:12px;border-top:1px solid #4e6374;padding-top:20px;margin:0}
.related-guides .guide-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:820px}
.all-guides-link{margin-top:30px}
.shore-section{background:#e8eeeb;background-image:linear-gradient(125deg,#f6f4ef 5%,transparent 75%)}
.shore-heading{max-width:840px;margin-bottom:42px}
.shore-heading .lede{max-width:720px}
.shore-cards{display:grid;grid-template-columns:1fr 1fr;gap:25px}
.shore-card{padding:42px;background:#122f45;color:#fff;position:relative;overflow:hidden;border-top:4px solid #bb2b27}
.shore-card:after{content:'';position:absolute;right:-70px;bottom:-150px;width:400px;height:320px;border:1px solid #ffffff18;border-radius:50%;box-shadow:0 0 0 26px #ffffff08,0 0 0 52px #ffffff05;pointer-events:none}
.shore-inland{background:#32554f;border-color:#b8c8a9}
.shore-card .eyebrow{font-size:10px;color:#d9e4e7}
.shore-card h3{font-size:36px}
.shore-card .shore-towns{font-size:21px;line-height:1.6;font-weight:600;margin:25px 0}
.shore-card>p:not(.eyebrow):not(.shore-towns){font-size:15px;color:#e1e9eb;max-width:420px}
.shore-card .wp-block-button__link{background:#fff;color:#122f45;font-size:14px}
.shore-card .wp-block-buttons{margin-top:28px}
@media(max-width:1100px){.article-layout{gap:32px;grid-template-columns:minmax(0,1fr) 270px}
.guide-card-copy{padding:22px}
.guide-card h3{font-size:22px}
.header nav{font-size:12px}
.nav-list{gap:14px}
}
@media(max-width:900px){.guide-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.article-layout{grid-template-columns:1fr}
.article-sidebar{position:static;max-width:600px}
.shore-card{padding:30px}
}
@media(max-width:700px){.journal-hero{padding:50px 0}
.journal-hero p:not(.eyebrow){font-size:17px}
.journal-hero-link{display:block;line-height:1.6}
.guide-grid,.related-guides .guide-grid,.shore-cards{grid-template-columns:1fr}
.guide-filters{gap:8px;margin-bottom:28px}
.guide-filters a{font-size:13px;padding:8px 13px}
.guide-card h3{font-size:27px}
.guide-card-copy{padding:26px}
.article-header{padding-top:30px}
.article-deck{font-size:17px}
.article-photo img{height:290px}
.article-body{font-size:16px;line-height:1.8}
.article-body h2{font-size:29px}
.article-body h3{font-size:22px}
.article-body .guide-answer{padding:21px;font-size:17px}
.article-byline{font-size:12px;line-height:1.8}
.article-byline span{padding:0 3px}
.shore-card h3{font-size:33px}
.shore-card .shore-towns{font-size:19px}
.shore-heading h2{font-size:40px}
}
.window-detail-photo img{width:100%;height:400px;object-fit:cover;object-position:50% 30%;margin-top:30px}
.about-story .lede{font-size:21px}
.about-story .split{align-items:start}
@media(max-width:700px){.window-detail-photo img{height:310px}
.about-story .lede{font-size:18px}
}

.paper .area-box,.paper .form{background:#fff}
.shore-cards>.shore-card{margin:0!important}
.service-area-faq .split{align-items:center}
.service-area-faq .faq details{padding:20px 0}
.service-area-faq .faq summary{line-height:1.45}
.service-area-faq .faq details p{margin-bottom:0}
.service-area-faq .faq-photo{margin-bottom:0!important}
.ascp-public-gallery figure{margin:0}
.ascp-public-gallery img{width:100%;height:340px;object-fit:cover}
.ascp-public-gallery figcaption{padding:20px;background:#f0eee8;color:#122a42;font-size:16px}
.ascp-public-gallery{row-gap:28px}


/* Homepage photo, brand-blue veil, and clear foreground text. */
.patriot-hero{position:relative;isolation:isolate;min-height:620px;padding:90px 0;overflow:hidden;background:#122a42;color:#f6f4ef}
.patriot-hero .hero-background{position:absolute;inset:0;width:100%;height:100%;margin:0!important;z-index:-2}
.patriot-hero .hero-background img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 46%;aspect-ratio:auto}
.patriot-hero:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(18,42,66,.752),rgba(18,42,66,.624) 46%,rgba(18,42,66,.288))}
.hero-copy h1{max-width:840px;font-size:clamp(50px,5.5vw,80px);line-height:1.03;letter-spacing:-.05em;color:#f6f4ef}
.hero-copy>.lede{max-width:580px;font-size:20px;color:#f6f4ef}.hero-copy>.eyebrow,.hero-copy>p{color:#f6f4ef}.hero-copy>.wp-block-buttons{margin-block:30px 20px}.hero-copy>p:last-child{font-size:15px}.patriot-hero a:focus-visible{outline-color:#f6f4ef}
.announcement-bar{background:#10283e;color:#fff;border-bottom:2px solid #bb2b27;font-family:'Segoe UI Variable Text','Segoe UI',Arial,sans-serif}
.announcement-shell{display:grid;grid-template-columns:minmax(0,1fr);gap:15px;align-items:center}.announcement-window{position:relative;min-height:64px;overflow:hidden;min-width:0}
.announcement-slide{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:24px;transform:translateX(105%);opacity:0;visibility:hidden;transition:transform .65s cubic-bezier(.22,.68,.2,1),opacity .4s,visibility .65s;pointer-events:none}
.announcement-slide.is-active{transform:translateX(0);opacity:1;visibility:visible;pointer-events:auto}.announcement-slide.is-leaving{transform:translateX(-105%);opacity:0;visibility:visible}.announcement-slide p{margin:0;font-size:17px;font-weight:600;line-height:1.4}.announcement-slide a{font-size:15px;font-weight:700;white-space:nowrap;text-decoration:none;border-bottom:1px solid #d27e77;padding:5px 0}.announcement-slide a:hover{color:#ffcbc2}.announcement-bar :focus-visible{outline:2px solid #fff;outline-offset:2px}
.owner-grid{display:grid;grid-template-columns:minmax(200px,.7fr) minmax(0,2fr);gap:70px;align-items:center}.owner-portrait{padding:28px;background:#fff;border-bottom:3px solid #bb2b27;text-align:center}.owner-portrait .wp-block-image{margin:0 auto 24px!important;max-width:230px}.owner-portrait img{width:100%;height:auto;max-height:290px;object-fit:contain}.owner-portrait p{font-size:14px}.owner-portrait .eyebrow{font-size:12px;margin-bottom:8px}.owner-copy .lede{font-size:21px}.owner-duties{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;border-block:1px solid #c1cbcb;padding:25px 0;margin:28px 0!important}.owner-duties p{font-size:14px;margin:0}.owner-duties strong{display:inline-block;margin-bottom:9px}.home-projects .project img{height:290px;object-fit:cover}.home-projects .project h3{font-size:24px}.home-projects .wp-block-buttons{margin-top:30px}.service-proof img,.about-story .wp-block-image img{width:100%;max-height:430px;object-fit:cover}
@media(max-width:1100px){.announcement-slide{gap:14px}.announcement-slide p{font-size:15px}.announcement-slide a{font-size:14px}.owner-grid{gap:35px}}
@media(max-width:700px){.patriot-hero{min-height:560px;padding:65px 0}.hero-copy h1{font-size:clamp(42px,9.5vw,65px)}.hero-copy>.lede{font-size:18px}.patriot-hero:after{background:rgba(18,42,66,.656)}.announcement-window{min-height:108px}.announcement-slide{flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;padding:9px 0}.announcement-slide p{font-size:14px}.announcement-slide a{font-size:13px}.announcement-shell{gap:10px}.owner-grid{grid-template-columns:1fr;gap:30px}.owner-portrait{max-width:310px}.owner-duties{grid-template-columns:1fr;gap:18px}.owner-copy .lede{font-size:18px}.home-projects .project img{height:260px}}
@media(max-width:380px){.announcement-window{min-height:128px}}
@media(prefers-reduced-motion:reduce){.announcement-slide{transition:none}}
.about-john-photo{max-width:380px;justify-self:center;width:100%;background:#fff;padding:24px}.about-john-photo .wp-block-image img{height:auto!important;aspect-ratio:1;object-fit:contain}.about-john-photo .about-photo-label{position:static;margin:20px 0 0!important;padding:0;background:none;color:#122a42;text-align:center}

/* Quiet alternation: neutral sections use one grid scale with softly finished edges. */
.paper,.about-section,.guides-preview,.project-detail-section{background-image:none;--grid-surface:#f6f4ef}.paper{--grid-surface:#eae7df}.guides-preview{--grid-surface:#eef0ea}.project-detail-section{--grid-surface:#e9ece7}.design-studio{--grid-surface:#eceee9}
main>section:is(.paper,.about-section,.guides-preview,.project-detail-section):nth-of-type(even),.design-studio{background-image:linear-gradient(to bottom,var(--grid-surface) 0,transparent 54px,transparent calc(100% - 54px),var(--grid-surface) 100%),linear-gradient(rgba(49,80,99,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(49,80,99,.04) 1px,transparent 1px);background-size:100% 100%,36px 36px,36px 36px;background-position:0 0}

.patriot-hero .hero-background .hero-film{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;pointer-events:none}.patriot-hero .hero-background.is-video-playing .hero-film{opacity:1}.patriot-hero .hero-copy{text-shadow:0 1px 14px rgba(0,0,0,.22)}
@media(prefers-reduced-motion:reduce){.patriot-hero .hero-background .hero-film{display:none}}
