/* common */
:root{--button-color:#ff6800;--link-color:#d64c00;--ink:#111110;--body:'Nunito Sans',Arial,sans-serif;--hand:'Kalam',cursive}*{box-sizing:border-box}html,body{margin:0}body{font-family:var(--body);color:var(--ink)}[hidden]{display:none!important}


/* desktop-base */
:root{--orange:#ff8000;--ink:#111110;--muted:#626773;--paper:#fff;--header:clamp(78px,10.6vh,115px);--footer:clamp(66px,8.8vh,96px);--gutter:clamp(28px,4.1vw,84px);--hand:'Kalam','Comic Sans MS',cursive;--body:'Nunito Sans',Arial,sans-serif}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--body);color:var(--ink);background:var(--paper);display:grid;grid-template-rows:var(--header) minmax(0,1fr) var(--footer);overflow:hidden}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:default;opacity:.4}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--orange);outline-offset:5px}button{border:0}img{max-width:100%;display:block}h1,h2,h3,p,figure{margin:0}h1{font-size:clamp(36px,4.3vw,84px);line-height:1.05;font-weight:900;letter-spacing:-.045em}h2{font-size:clamp(26px,2.65vw,50px);font-weight:900;letter-spacing:-.035em;line-height:1.1}h3{font-size:clamp(20px,1.6vw,30px);font-weight:800;line-height:1.18}p{line-height:1.45}button svg,a svg{flex-shrink:0}.site-header{display:flex;justify-content:space-between;align-items:center;padding:10px 3.8vw;background:#171716;position:relative;z-index:20;gap:25px}.site-header:after,.site-footer:before{content:'';position:absolute;left:0;width:100%;height:6px;background:#1b1b1a;clip-path:polygon(0 0,100% 0,100% 64%,94% 64%,93% 35%,89% 60%,74% 66%,70% 42%,69% 65%,51% 53%,49% 80%,45% 56%,30% 58%,27% 25%,24% 51%,9% 50%,7% 80%,4% 55%,0 70%)}.site-header:after{top:calc(100% - 1px)}.brand{width:clamp(240px,24vw,460px);flex-shrink:0}.brand img{width:100%;height:auto}.top-nav{display:flex;align-items:center;gap:clamp(19px,2.6vw,52px);color:#fff;font-size:clamp(16px,1.25vw,24px);font-weight:700;white-space:nowrap}.top-nav>a,.nav-group>a{padding:14px 0}.top-nav a:hover,.top-nav a[aria-current=page]{color:var(--orange)}.nav-group{display:flex;align-items:center;position:relative;height:100%}.menu-toggle{background:none;color:inherit;font-size:20px;padding:9px 0 9px 7px;line-height:1}.language{display:flex;gap:10px;border-left:1px solid #777;padding-left:clamp(16px,2vw,36px);font-size:.91em}.language>[aria-current="true"]{color:var(--orange)}.language-divider{color:#a2a2a2}.contact-top,.button{display:inline-flex;align-items:center;justify-content:center;gap:18px;background:var(--orange);color:#111;border:2px solid var(--orange);border-radius:7px;padding:14px 25px;font-weight:800;font-size:clamp(16px,1.25vw,24px);transition:transform .15s,background .15s}.contact-top:hover,.button:hover{background:#ff971f;transform:translateY(-2px)}.dropdown{position:absolute;right:-140px;top:calc(100% - 3px);padding:16px;width:570px;max-width:80vw;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;background:#fff;border:1px solid #dedbd5;border-radius:6px 6px 13px 13px;box-shadow:0 18px 40px #0003;visibility:hidden;opacity:0;transform:translateY(6px);transition:opacity .14s,transform .14s;pointer-events:none;color:#111;white-space:normal}.nav-group:hover .dropdown,.nav-group:focus-within:not(.dismissed) .dropdown,.nav-group.open .dropdown{opacity:1;visibility:visible;transform:none;pointer-events:auto}.nav-group.dismissed .dropdown{visibility:hidden;opacity:0;pointer-events:none}.dropdown a{display:flex;align-items:center;gap:12px;padding:12px 10px;border-radius:5px;font-size:17px;line-height:1.15}.dropdown a:hover{background:#fff1df;color:#111}.small-icon{width:34px;height:34px;object-fit:contain;flex-shrink:0}.dropdown-title{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ddd;font-size:15px;font-weight:800;color:var(--muted);padding:0 10px 8px}.site-footer{position:relative;background:#171716;display:flex;align-items:flex-end;justify-content:center;color:#fff;padding:0 20px 17px;z-index:5}.site-footer:before{bottom:calc(100% - 1px);transform:rotate(180deg)}.site-footer p{font-size:clamp(14px,1.45vw,25px);line-height:1.2;text-align:center}.contact-note{position:absolute;top:0;left:50%;transform:translate(-50%,-59%) rotate(-4deg);display:flex;align-items:center;gap:13px;border:3px solid #151515;border-radius:9px 11px 7px 9px;padding:10px 17px;background:var(--orange);box-shadow:3px 5px 0 #0002;color:#111;font-family:var(--hand);line-height:1.08;white-space:nowrap;transition:transform .16s}.contact-note:after{content:'〃';position:absolute;right:-32px;top:0;color:#171717;font-size:44px;transform:rotate(15deg)}.contact-note:hover{transform:translate(-50%,-65%) rotate(-2deg)}.contact-note strong{font-size:clamp(24px,2vw,34px);display:block}main{min-height:0;position:relative;padding:clamp(14px,2vh,24px) var(--gutter) clamp(45px,6vh,70px);background:radial-gradient(ellipse at 100% 100%,#fff0 0%,#fff 22%),none right bottom/160px 100px no-repeat}main:focus{outline:none}.view{height:100%;min-height:0;display:flex;flex-direction:column;gap:clamp(12px,2vh,24px);animation:arrive .22s ease-out}.eyebrow{font-size:13px;letter-spacing:.14em;color:#ad5100;font-weight:900}.orange{color:var(--orange)}.underlined{position:relative;display:inline-block}.underlined:after{position:absolute;content:'';width:75%;height:6px;background:var(--orange);bottom:-9px;left:10%;border-radius:50% 40% 35% 40%;transform:rotate(-2deg)}.handwritten{font-family:var(--hand);font-weight:700;line-height:1.2;font-size:clamp(20px,1.8vw,33px)}.text-link{color:#b45300;font-weight:700;text-decoration:underline;text-underline-offset:6px;display:inline-flex;gap:12px;align-items:center}.text-link:hover{color:#111}.text-link .arrow{font-size:1.3em;text-decoration:none}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.section-heading p{color:var(--muted);max-width:510px;font-size:clamp(16px,1.2vw,22px)}.photo-button{position:relative;border:0;background:#f2f0ec;overflow:hidden;padding:0;min-height:0}.photo-button img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.photo-button:hover img{transform:scale(1.025)}.expand{position:absolute;right:12px;bottom:12px;width:35px;height:35px;background:#151515c9;color:#fff;display:grid;place-items:center;border-radius:50%;font-size:24px}.home-main{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1.06fr;gap:4vw;align-items:center}.home-copy{display:flex;flex-direction:column;gap:clamp(16px,2.7vh,30px)}.home-copy h1{font-size:clamp(35px,3.7vw,74px)}.home-copy p{font-size:clamp(19px,1.65vw,31px);max-width:680px}.home-copy p+p{font-size:clamp(17px,1.45vw,26px)}.gallery-preview{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr);gap:14px;max-height:45vh}.gallery-preview .section-heading h2{font-size:clamp(22px,2vw,36px)}.gallery-preview .section-heading a{font-size:16px}.home-photos{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:10px;min-height:0}.home-photos .photo-button{border-radius:9px}.service-strip{display:grid;grid-template-columns:repeat(5,1fr);padding:14px 0;background:#f4f4f3;border-radius:6px}.service-strip a{display:flex;align-items:center;justify-content:center;gap:13px;font-size:clamp(16px,1.3vw,24px);font-weight:700;border-right:1px solid #ccc}.service-strip a:last-child{border:0}.service-strip img{height:38px;width:38px;object-fit:contain}.support-row{display:grid;grid-template-columns:1.08fr 1fr 1fr;min-height:80px;gap:22px;align-items:center}.support-row>div,.support-row>button{border-right:1px solid #ccc;display:flex;gap:14px;align-items:center;min-width:0;padding-right:22px}.support-row>button{background:none;text-align:left;border:0;padding:0}.support-row h3{font-size:18px}.support-row p,.support-row a{font-size:15px;line-height:1.3}.google-word{font-family:Arial,sans-serif;font-size:31px;letter-spacing:-1.5px;white-space:nowrap}.google-word i{font-style:normal}.stars{letter-spacing:1px;color:#ed7600;font-size:22px}.assembly-layout{flex:1;min-height:0;display:grid;grid-template-columns:.93fr 1.07fr;gap:4vw;align-items:center}.assembly-copy{display:flex;flex-direction:column;gap:clamp(20px,3.2vh,40px)}.assembly-copy h1{font-size:clamp(40px,4.1vw,80px)}.assembly-copy h1 .orange{display:block;margin-top:5px}.assembly-copy p{font-size:clamp(18px,1.65vw,29px);line-height:1.35}.assembly-photos{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:12px}.assembly-photos .handwritten{display:flex;gap:10px;align-items:center}.sketch-arrow{font-size:40px;color:var(--orange);line-height:1;transform:rotate(20deg)}.assembly-photo-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1.3fr 1fr;gap:10px;min-height:0}.assembly-photo-grid .photo-button:first-child{grid-column:1/-1}.assembly-photo-grid .photo-button img{object-position:center}.assembly-photos>.text-link{justify-self:start;font-size:clamp(15px,1.3vw,22px)}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:1fr 1fr;gap:clamp(12px,2vw,28px);flex:1;min-height:0}.service-card{position:relative;padding:clamp(15px,2vw,32px);border:1px solid #d8d5ce;background:#fff;border-radius:3px 10px 3px 7px;display:flex;flex-direction:column;align-items:flex-start;gap:12px;transition:transform .15s,background .15s}.service-card:hover{background:#fff6e8;transform:translateY(-3px)}:where(html:not([data-style-variant~="desktop-base"])) .service-card>img{height:clamp(35px,5vh,62px);width:65px;object-fit:contain;object-position:left center}:where(html[data-style-variant~="desktop-base"]) :is(.service-card,.service-card > picture.viewport-image) > img{height:clamp(35px,5vh,62px);width:65px;object-fit:contain;object-position:left center}.service-card h2{font-size:clamp(18px,1.65vw,30px)}.service-card p{font-size:clamp(14px,1.1vw,20px);color:#595b61}.service-detail{display:grid;grid-template-columns:1fr 1.1fr;gap:5vw;flex:1;min-height:0;align-items:center}.service-detail-copy{display:flex;flex-direction:column;gap:25px}.service-detail-copy p{font-size:clamp(19px,1.6vw,28px)}.service-detail-photos{height:100%;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}.service-detail-photos .photo-button:first-child{grid-column:1/-1}.project-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:3vw;flex:1;min-height:0}.project-viewer{display:grid;grid-template-rows:minmax(0,1fr) 90px;gap:12px;min-height:0}.project-main-photo{position:relative;min-height:0;background:#f3f1ed;display:flex;align-items:center;justify-content:center}.project-main-photo>.photo-button{height:100%;width:100%;background:none}.project-main-photo img{object-fit:contain!important}.viewer-prev,.viewer-next{position:absolute;top:50%;transform:translateY(-50%);border-radius:50%;height:45px;width:45px;background:#151515b5;color:#fff;font-size:37px;line-height:1}.viewer-prev{left:12px}.viewer-next{right:12px}.viewer-position{position:absolute;bottom:12px;left:12px;background:#151515bd;color:#fff;font-size:14px;padding:5px 10px;border-radius:16px}.project-thumbs{display:flex;gap:9px;overflow-x:auto;padding:3px;scrollbar-width:thin}.project-thumbs button{height:100%;min-width:90px;width:calc(20% - 8px);padding:0;border:2px solid transparent;border-radius:4px;flex-shrink:0;overflow:hidden;background:#eee}.project-thumbs img{width:100%;height:100%;object-fit:cover}.project-thumbs button.selected{border-color:var(--orange)}.project-notes{display:flex;flex-direction:column;gap:22px;justify-content:center;align-items:flex-start}.project-notes p{font-size:clamp(18px,1.55vw,27px)}.project-title{font-size:clamp(28px,2.8vw,52px)}.project-notes h2{font-size:clamp(28px,2.6vw,46px)}dialog{padding:0;border:0;max-width:94vw;max-height:92vh;box-shadow:0 30px 90px #0008}dialog::backdrop{background:#111c;backdrop-filter:blur(3px)}.dialog-close{position:absolute;right:16px;top:12px;z-index:10;font-size:35px;line-height:1;width:42px;height:42px;border-radius:50%;background:#fff;color:#111}.dialog-close:hover{background:var(--orange)}.photo-dialog{width:94vw;height:90vh;background:#111;color:#000;overflow:hidden}.photo-dialog[open]{display:flex;align-items:center;justify-content:center}.photo-dialog figure{height:100%;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 70px 55px;gap:15px}.photo-dialog figure img{max-height:calc(100% - 35px);max-width:100%;object-fit:contain;min-height:0}.photo-dialog figcaption{text-align:center;font-size:16px}.photo-prev,.photo-next{position:absolute;top:50%;transform:translateY(-50%);z-index:2;background:#fff2;color:#fff;width:48px;height:60px;font-size:45px;border-radius:4px}.photo-prev{left:12px}.photo-next{right:12px}.lightbox-position{position:absolute;bottom:15px;left:50%;transform:translateX(-50%);font-size:15px}.content-dialog{width:960px;padding:36px 45px;background:#fff;border-radius:10px;overflow:auto}.content-dialog h2{margin:9px 0 12px}.content-dialog>p{font-size:18px}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}input,select,textarea{width:100%;border:1px solid #aaa;padding:10px;border-radius:5px;background:#fff;color:#111}textarea{resize:vertical}.area-list{display:grid;grid-template-columns:repeat(3,1fr);padding:15px 0;list-style:none;gap:10px;font-weight:800}.area-list li:before{content:'✓';color:#ba5700;margin-right:8px}#area-map{height:320px;background:#f7f5ef;border-radius:6px;margin-top:15px;overflow:hidden}#area-map svg{width:100%;height:100%}.skip-link{position:fixed;top:-60px;left:15px;background:#fff;padding:10px;z-index:100}.skip-link:focus{top:10px}.loading{padding:40px;font-family:var(--hand);font-size:25px}.noscript{position:fixed;inset:25%;background:#fff;z-index:999;padding:50px}.site-source-link{font-size:14px;color:#5f6167}.map-pin{fill:var(--orange);stroke:#171717;stroke-width:2}@keyframes arrive{from{opacity:.3;transform:translateY(4px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-height:800px){main{padding-top:13px;padding-bottom:43px}.view{gap:12px}.assembly-copy{gap:22px}.assembly-copy h1{font-size:clamp(38px,3.9vw,66px)}.assembly-copy p{font-size:clamp(17px,1.5vw,23px)}.home-copy{gap:19px}.home-copy p{font-size:23px}.home-copy p+p{font-size:20px}.service-strip{padding:10px 0}.support-row{min-height:60px}.service-card{padding:16px;gap:9px}.service-card p{font-size:14px}.project-viewer{grid-template-rows:minmax(0,1fr) 66px}.contact-note{padding:7px 14px;gap:10px}.contact-note strong{font-size:26px}.site-footer p{font-size:18px}.section-heading h1{font-size:42px}.section-heading p{font-size:17px}}@media(max-width:1150px){.top-nav{gap:17px}.brand{width:235px}.contact-top{padding:11px 15px}.language{padding-left:15px;gap:7px}.support-row{gap:14px}.support-row>div{gap:9px;padding-right:12px}.google-word{font-size:25px}.support-row h3{font-size:16px}.support-row p,.support-row a{font-size:13px}}@media(max-width:950px),(max-height:620px){body{overflow:auto;min-width:850px;min-height:650px}main{min-height:480px}.dropdown{right:-180px}.site-footer{min-height:80px}.top-nav{font-size:15px}}
/* Keep the raised shared contact note clear of both content and slogan. */
main{padding-bottom:clamp(90px,9.5vh,110px)}
.contact-note{transform:translate(-50%,-82%) rotate(-4deg)}
.contact-note:hover{transform:translate(-50%,-87%) rotate(-2deg)}
.google-word{display:inline-flex;gap:0;letter-spacing:-1.4px}
@media(max-height:800px){main{padding-bottom:90px}}
.service-illustration{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px;background:#faf9f5;height:80%;border-radius:4px;transform:rotate(1deg)}
.service-illustration img{width:180px;height:180px;object-fit:contain}
/* Shared white paper base: repeat the small paper tile under a white wash. */
main{background:linear-gradient(rgba(255,255,255,.76),rgba(255,255,255,.76)),none repeat}
main:before{display:none}
main>.view{position:relative;z-index:1}
/* Desktop homepage follows the compact, four-photo reference. */
.brand{display:flex;align-items:center;width:clamp(240px,24vw,430px)}
.brand img{width:auto;max-width:100%;max-height:calc(var(--header) - 16px);object-fit:contain}
.home-view{gap:clamp(14px,2.2vh,25px)}
.home-main{grid-template-columns:1fr 1.06fr;align-items:start;gap:3vw}
.home-copy{padding-top:clamp(22px,4vh,44px);gap:clamp(20px,3.3vh,36px)}
.home-copy h1{font-size:clamp(32px,3.32vw,66px);white-space:nowrap;line-height:1.12;letter-spacing:-.045em}
.home-copy p{font-size:clamp(20px,1.8vw,34px);max-width:none;line-height:1.25}
.home-copy p+p{font-size:clamp(17px,1.5vw,28px);line-height:1.35}
.gallery-preview{max-height:none;min-height:0;gap:12px}
.home-photos{min-height:0}
.home-view .service-strip{padding:clamp(14px,2vh,23px) 0;border-radius:0;background:rgba(230,232,235,.38);margin-inline:calc(-1 * var(--gutter));padding-inline:var(--gutter)}
.home-view .service-strip a{font-weight:600;gap:clamp(12px,1.5vw,29px)}
.home-view .service-strip img{width:clamp(42px,4vw,72px);height:clamp(42px,4vw,72px)}
.home-view .support-row{grid-template-columns:1fr 1fr;gap:clamp(24px,3vw,60px);min-height:clamp(72px,10vh,105px)}
.home-view .support-row>div{border:0;padding-right:0}
.home-view .support-row>button{justify-self:end;gap:clamp(16px,1.5vw,28px)}
.home-view .google-word{font-size:clamp(27px,2.8vw,48px)}
.home-view .stars{font-size:clamp(21px,2vw,35px)}
.home-view .support-row a,.home-view .support-row .text-link{font-size:clamp(14px,1.1vw,20px)}
@media(max-width:1150px){.brand{width:235px}.home-copy h1{font-size:3.15vw}.home-view .support-row{gap:18px}.home-view .service-strip a{gap:10px;font-size:16px}}

.home-copy{align-self:center;padding-top:0;padding-bottom:clamp(16px,3vh,32px)}
.home-copy h1{position:relative}
.home-copy h1:before{content:'';position:absolute;left:-20px;top:-35px;width:58px;height:38px;background:none center/contain no-repeat}


/* desktop */
/* Desktop artwork coordinates. Orange controls and links are independently editable. */
:root{--button-color:#ff6800;--link-color:#d64c00;--orange:var(--button-color)}
html,body{width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;margin:0}
body{display:block;background:#211710 url(../images/desktop/background-wood-tile.webp) center/627px 627px repeat;font-family:var(--body)}
.desktop-stage{position:absolute;left:50%;top:50%;width:1672px;height:941px;transform-origin:center;background:url(../images/desktop/background-desktop-paper-stack-transparent.webp) center/100% 100% no-repeat}
.site-header{position:absolute;left:208px;top:48px;width:1264px;height:82px;padding:0;background:none;gap:0;justify-content:space-between;z-index:20}
.site-header:after,.site-footer:before{display:none}
.brand{width:310px;display:flex;align-items:center}.brand img{width:310px;max-width:none;height:auto;max-height:82px}
.top-nav{gap:28px;font-size:21px;white-space:nowrap}.nav-group{gap:4px}.menu-toggle{font-size:20px}.language{gap:9px;padding-left:24px}.contact-top{background:var(--button-color);color:#fff;padding:16px 24px;font-size:21px;border-radius:8px}
main{position:absolute;left:208px;top:162px;width:1264px;height:626px;padding:0;min-height:0;background:none;overflow:visible}
main:before{display:none}.view{height:100%;gap:15px;animation:none}
.site-footer{position:absolute;left:145px;top:800px;width:1377px;height:47px;background:none;padding:0;display:flex;align-items:center;justify-content:center}
:where(html:not([data-style-variant~="desktop"])) .site-footer p{font-size:19px;line-height:1.2;padding:0;margin:8px 0 0;text-align:center}
:where(html[data-style-variant~="desktop"]) .site-footer p{font-size:19px;line-height:1.2;padding:0;margin:10px 0 0;text-align:center}
.contact-note,.contact-note:hover{position:absolute;left:50%;top:-100px;width:285px;height:113px;border:0;border-radius:0;background:none;box-shadow:none;padding:0;transform:translateX(-50%);display:block;cursor:pointer}
.contact-note:after{display:none}.contact-note img{width:100%;height:100%;object-fit:contain}.contact-note:hover img{filter:brightness(1.07)}
.button{background:var(--button-color);color:#fff}.text-link,.site-source-link{color:var(--link-color)}.text-link:hover{color:#222}
:where(html:not([data-style-variant~="desktop"])) .underlined:after{background:url(../images/common/decoration-heading-underline.png) center/100% 100% no-repeat;left:0;bottom:-15px;width:100%;height:34px;transform:none;border:0;border-radius:0}
:where(html[data-style-variant~="desktop"]) .underlined:after{background:url(../images/common/decoration-heading-underline.webp) center/100% 100% no-repeat;left:0;bottom:-15px;width:100%;height:34px;transform:none;border:0;border-radius:0}
.home-main{flex:none;height:302px;grid-template-columns:590px 634px;gap:40px;align-items:start}
.home-copy{padding:27px 0 0;align-self:start;gap:22px}.home-copy h1{font-size:50px;letter-spacing:-2px;line-height:1.08;white-space:nowrap;position:relative}.home-copy h1:before{display:none}
.headline-rays{position:absolute;width:58px;height:52px;object-fit:contain;left:-28px;top:-38px}
.home-copy p{font-size:27px;line-height:1.22;max-width:none}.home-copy p+p{font-size:22px;line-height:1.3}
.quote-row{display:flex;align-items:center;gap:22px;margin-top:0}.quote-row .button{font-size:22px;white-space:nowrap;padding:14px 21px;border-radius:7px;gap:15px}.quote-row .button span{font-size:30px}.quote-row p{border-left:1px solid #9da4ad;padding-left:20px;font-size:16px;font-style:italic;color:#515b6a;line-height:1.35}
.gallery-preview{height:302px;max-height:none;gap:10px;grid-template-rows:36px minmax(0,1fr)}.gallery-preview .section-heading h2{font-size:29px}.gallery-preview .section-heading a{font-size:18px}.home-photos{gap:8px}.home-photos .photo-button{border-radius:7px}
.home-view .service-strip{height:202px;flex:none;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:1fr 1fr;gap:0;margin:0;padding:0;background:none;border-radius:0}
.home-view .service-strip a{justify-content:flex-start;padding:8px 16px;gap:20px;font-size:23px;font-weight:800;border-right:1px solid #afb4ba;line-height:1.12;min-width:0}
.home-view .service-strip a:nth-child(4n){border-right:0}.home-view .service-strip a:nth-child(-n+4){border-bottom:1px solid #afb4ba}
.home-view .service-strip img{width:76px;height:76px;object-fit:contain;flex-shrink:0;mix-blend-mode:multiply}
.home-view .support-row{height:90px;min-height:0;grid-template-columns:450px 1fr 440px;gap:0;align-items:center}
.home-view .support-row .review-card{grid-column:1;display:flex;gap:16px;align-items:center;border:0;padding:12px 18px;background:#ffffffb0;border-radius:12px;box-shadow:0 3px 7px #0003;height:82px}
.home-view .google-word{font-size:36px;letter-spacing:-2px;flex-shrink:0;padding-right:16px;border-right:1px solid #aaa}
.review-card p{font-size:16px;white-space:nowrap;line-height:1.3}.review-card strong{font-size:25px}.review-card small{font-size:20px}.home-view .stars{font-size:24px;letter-spacing:-1px}.home-view .review-card .text-link{font-size:16px}
.home-view .support-row .area-card{grid-column:3;display:flex;gap:16px;justify-self:stretch;padding:6px 12px 6px 6px;border:0;height:82px;background:#ffffffb0;border-radius:12px;box-shadow:0 3px 7px #0003}
:where(html:not([data-style-variant~="desktop"])) .area-card>img{width:202px;height:70px;object-fit:cover;border-radius:7px}:where(html[data-style-variant~="desktop"]) :is(.area-card,.area-card > picture.viewport-image) > img{width:202px;height:70px;object-fit:cover;border-radius:7px}.area-card>span{display:flex;flex-direction:column;gap:5px;align-items:flex-start}.area-card strong{font-size:22px;white-space:nowrap}.home-view .area-card .text-link{font-size:16px;white-space:nowrap}
.assembly-layout{height:100%;flex:1;grid-template-columns:580px 644px;gap:40px;align-items:start}.assembly-copy{gap:0;padding-top:24px}.assembly-copy h1{font-size:57px;line-height:1.03;letter-spacing:-2px}.assembly-copy h1 .orange{display:block;margin-top:8px;white-space:nowrap}.assembly-copy p{font-size:25px;line-height:1.32;margin:0 0 24px}.assembly-copy p:first-of-type{margin-top:18px}.assembly-copy p:last-child{margin-bottom:0}.assembly-photos{height:530px;gap:10px;display:flex;flex-direction:column}.assembly-photos .handwritten{font-size:27px}.assembly-photo-grid{flex:1;min-height:0}.assembly-photos .text-link{font-size:20px}.assembly-photo-grid .photo-button{border-radius:5px}.sketch-arrow{font-size:38px}
.assembly-project-view{height:535px;gap:18px}.assembly-project-view>.section-heading{height:55px;flex:none;border-bottom:1px solid #afb4ba;padding-bottom:12px}.assembly-project-view .project-title{font-size:43px;line-height:1.1}.assembly-project-view>.section-heading a{font-size:18px;white-space:nowrap}
.assembly-project-view .project-layout{flex:1;min-height:0;grid-template-columns:850px 384px;gap:30px}.assembly-project-view .project-viewer{grid-template-rows:minmax(0,1fr) 78px;gap:10px}.project-thumbs{scrollbar-width:thin}.project-thumbs button{min-width:113px}.assembly-project-view .project-notes{gap:13px;overflow:visible}.assembly-project-view .eyebrow{font-size:15px}.assembly-project-view .project-notes h2{font-size:29px;line-height:1.1}.assembly-project-view .project-notes>p{font-size:18px;line-height:1.28}.assembly-project-view .project-notes>.text-link{font-size:17px}
.project-tools{margin-top:2px;border-top:1px solid #bbb;padding-top:10px}.project-tools h3{font-size:20px;margin-bottom:8px}.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.tool-grid a{display:flex;flex-direction:column;gap:3px;background:#fff9;border-radius:5px;padding:5px;color:#111;font-size:12px;font-weight:800;line-height:1.15;text-decoration:none}.tool-grid a:hover{background:#fff;outline:1px solid var(--link-color)}.tool-grid img{width:100%;height:63px;object-fit:contain}.tool-grid span{min-height:28px}.tool-grid small{font-size:12px;color:var(--link-color);text-decoration:underline}.project-tools .affiliate-note{font-size:11px;line-height:1.25;margin-top:7px;color:#555}
/* Kept for later: existing routes retain their content, not redesigned in this pass. */
.dropdown{font-size:18px}.site-header .small-icon{width:40px;height:40px}
@media(max-width:950px),(max-height:620px){body{min-width:0;min-height:0;overflow:hidden}main{min-height:0}.site-footer{min-height:0}}
.assembly-project-view .project-layout{height:462px;max-height:462px;grid-template-rows:minmax(0,1fr)}
.assembly-project-view .project-notes{justify-content:flex-start;gap:10px;min-height:0}
.assembly-project-view .project-notes>p{font-size:17px;line-height:1.25}
.assembly-project-view .project-notes h2{font-size:28px}
.assembly-project-view .project-notes>.text-link{font-size:16px}
.project-tools{padding-top:8px;margin:0;width:100%}.project-tools h3{font-size:19px;margin-bottom:6px}.tool-grid{gap:6px}.tool-grid a{font-size:11px;padding:4px;gap:2px}.tool-grid img{height:43px}.tool-grid span{min-height:25px}.tool-grid small{font-size:11px}.project-tools .affiliate-note{font-size:11px;line-height:1.2;margin-top:5px}
.quote-row .button img{width:38px;height:38px;object-fit:contain}

/* 70% white backing separates the slideshow from the textured page. */
.assembly-project-view .project-main-photo{background:rgba(255,255,255,.7)}
/* Underline only words: text-decoration on a parent propagates to arrows. */
.text-link,.site-source-link,.tool-grid small{ text-decoration:none }
.text-link .link-label,.site-source-link .link-label,.tool-grid small .link-label{text-decoration:underline;text-underline-offset:5px}
.text-link .arrow,.site-source-link .arrow,.tool-grid small .arrow{text-decoration:none}
.tool-grid small{display:flex;align-items:center;gap:3px}
/* Approved desktop pages; tablet/mobile content is intentionally separate future work. */
.page-heading{font-size:57px;line-height:1.08;letter-spacing:-2px;position:relative;align-self:flex-start;margin:18px 0 22px;font-weight:900}
:where(html:not([data-style-variant~="desktop"])) .page-heading:after{content:'';position:absolute;background:url(../images/common/decoration-heading-underline.png) center/100% 100% no-repeat;width:52%;height:25px;right:0;bottom:-21px}
:where(html[data-style-variant~="desktop"]) .page-heading:after{content:'';position:absolute;background:url(../images/common/decoration-heading-underline.webp) center/100% 100% no-repeat;width:52%;height:25px;right:0;bottom:-21px}
.page-intro{font-size:25px;margin:4px 0 8px}

.rates-view{gap:15px}.pricing-pair{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:5px}.pricing-pair article{display:grid;grid-template-columns:130px 1fr;align-items:center;gap:22px;border:1px solid #b9b6b2;background:#ffffff80;border-radius:15px;padding:20px;height:216px}:where(html:not([data-style-variant~="desktop"])) .pricing-pair article>img{width:130px;height:140px;object-fit:contain;mix-blend-mode:multiply}:where(html[data-style-variant~="desktop"]) :is(.pricing-pair article,.pricing-pair article > picture.viewport-image) > img{width:130px;height:140px;object-fit:contain;mix-blend-mode:multiply}.pricing-pair h2{font-size:29px;margin-bottom:12px}.price{font-size:38px;line-height:1.1;display:block;margin-bottom:12px;letter-spacing:-1px}.pricing-pair p{font-size:19px;line-height:1.28;margin-top:8px}.job-limit{font-size:21px;line-height:1.3}.payment-pair{display:grid;grid-template-columns:1fr 1fr;gap:35px;margin-top:8px}.payment-pair h2{font-size:28px;margin-bottom:10px}.payment-pair p{font-size:19px;line-height:1.3}
.services-view .service-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,195px);gap:15px;margin-top:9px}.services-view .service-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:15px;gap:8px;background:#fff8;border:1px solid #c9c6c0;box-shadow:none}.service-card .small-icon{width:67px;height:67px;object-fit:contain;mix-blend-mode:multiply}.service-card h2{font-size:23px}.service-card p{font-size:17px}
.service-detail{display:grid;height:535px;grid-template-columns:580px 644px;gap:40px}.service-detail-copy{display:flex;flex-direction:column;gap:28px;padding-top:25px}.service-detail-copy h1{font-size:56px}.service-detail-copy p{font-size:25px;line-height:1.32}.service-detail-photos{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:320px 185px;gap:10px;min-height:0}.service-detail-photos>*:first-child{grid-column:1/-1}.service-detail-photos img{height:100%;width:100%;object-fit:cover}
.mosaic-view{gap:28px}.mosaic-view .page-heading{font-size:49px;margin-bottom:10px}.mosaic{display:grid;gap:7px;height:440px;min-height:0}.mosaic-row{display:flex;gap:7px;min-height:0}.mosaic-row a{min-width:0;overflow:hidden;border-radius:6px;position:relative}.mosaic img{width:100%;height:100%;object-fit:cover;transition:transform .2s}.mosaic a:hover img{transform:scale(1.045)}.mosaic a:focus-visible{outline-offset:0;outline:4px solid var(--button-color)}
.contact-view{display:grid;grid-template-columns:535px 699px;gap:30px;height:580px}.contact-copy .page-heading{margin-bottom:35px}.contact-copy h2{font-size:30px;margin-bottom:14px}.contact-copy p{font-size:21px;line-height:1.3;margin-bottom:17px}.contact-copy h3{font-size:24px;margin-bottom:12px}
.contact-page-form{align-self:start;display:flex;flex-direction:column;gap:11px;background:#ffffff80;border:1px solid #bebbb7;border-radius:15px;padding:20px;position:relative}.contact-page-form label{display:flex;flex-direction:column;gap:5px;font-size:18px;font-weight:800}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px}.contact-page-form input,.contact-page-form textarea{width:100%;border:1px solid #929296;background:#fff7;border-radius:5px;padding:8px 11px;font-size:18px;font-weight:400;height:40px}.contact-page-form textarea{height:70px;resize:none}.upload-heading{display:flex;flex-direction:column;gap:2px;font-size:19px}.upload-heading small{font-size:15px;font-weight:400}.upload-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,74px);gap:7px}.upload-slot{height:74px;position:relative;border:1px dashed #93939b;border-radius:7px;background:#fff5;overflow:hidden;display:flex;align-items:center;justify-content:center}.upload-add{width:100%;height:100%;background:none;font-size:16px;color:#56535c}.upload-slot img{height:100%;width:100%;object-fit:cover}.upload-remove{position:absolute;right:5px;top:5px;border-radius:50%;background:#ffffffe0;width:24px;height:24px;line-height:1;font-size:20px}.upload-state{position:absolute;bottom:5px;right:5px;background:#fff;border-radius:10px;padding:1px 6px;font-size:12px}.upload-state.complete{background:#248345;color:white}.upload-slot progress{position:absolute;bottom:0;left:0;width:100%;height:7px;accent-color:var(--button-color)}.upload-slot .retry{position:absolute;background:white;color:#a12222;font-size:13px}.submit-request{width:100%;height:43px;justify-content:center;font-size:24px;border-radius:7px;padding:5px}.upload-feedback:empty,#contact-feedback:empty{display:none}.upload-feedback,#contact-feedback{font-size:15px;line-height:1.25}.upload-grid.drag-over{outline:3px solid var(--button-color)}
.photo-dialog{background:transparent;box-shadow:none}.photo-dialog::backdrop{background:rgba(0,0,0,.5);backdrop-filter:none}.photo-dialog figure{background:transparent}
.areas-dialog{width:1080px;max-width:90vw;padding:32px;background:#faf8f3;border-radius:14px}.areas-dialog>.page-heading{font-size:45px;margin:0 0 35px}.areas-content{display:grid;grid-template-columns:630px 1fr;gap:25px;align-items:center}.areas-content #area-map{height:395px;margin:0}.areas-content #area-map svg{width:100%;height:100%}.areas-content .area-list{display:block;columns:1;list-style:none;padding:0;margin:0 0 24px}.area-list li{font-size:21px;font-weight:800;margin:0 0 8px}.area-list li:before{content:'•';color:var(--button-color);margin-right:10px}.areas-content h3{font-size:23px}.areas-content p{font-size:19px}.areas-dialog>.text-link{display:flex;justify-content:center;margin-top:22px;font-size:20px}
/* All project pages share the approved viewer geometry. */
.view:has(.project-layout){height:535px}.view:has(.project-layout)>.section-heading{height:55px;border-bottom:1px solid #bbb;padding-bottom:12px}.view:has(.project-layout) .project-title{font-size:39px}.view:has(.project-layout) .project-layout{grid-template-columns:850px 384px;gap:30px;height:462px;max-height:462px;min-height:0}.view:has(.project-layout) .project-viewer{grid-template-rows:minmax(0,1fr) 78px}.view:has(.project-layout) .project-main-photo{background:#ffffffb3}.view:has(.project-layout) .project-notes{gap:16px;justify-content:flex-start}.view:has(.project-layout) .project-notes h2{font-size:29px}.view:has(.project-layout) .project-notes p{font-size:19px}
.page-heading{width:fit-content;max-width:100%}
.contact-page-form{gap:9px}.upload-grid{grid-template-rows:repeat(2,65px)}.upload-slot{height:65px}
dialog:not([open]){display:none}.area-list li:before{content:none}.areas-content .area-list li:before{content:'•'}
.rates-view{gap:12px;height:535px}.rates-view .page-heading{margin:10px 0 18px}.rates-view .page-intro{font-size:24px;margin:0}.pricing-pair article{height:190px;padding:16px;grid-template-columns:110px 1fr;gap:16px}:where(html:not([data-style-variant~="desktop"])) .pricing-pair article>img{width:110px;height:125px}:where(html[data-style-variant~="desktop"]) :is(.pricing-pair article,.pricing-pair article > picture.viewport-image) > img{width:110px;height:125px}.pricing-pair h2{font-size:27px;margin-bottom:8px}.pricing-pair .price{font-size:34px;margin-bottom:8px}.pricing-pair p{font-size:18px;margin-top:6px}.payment-pair{margin-top:0}.payment-pair h2{font-size:26px}.payment-pair p{font-size:18px}
.assembly-project-view .project-notes>p{font-size:17px!important;line-height:1.25}.assembly-project-view .project-notes{gap:10px!important}.view:has(.project-layout) .project-tools .affiliate-note{font-size:11px;line-height:1.2}.assembly-project-view .project-tools{margin-top:0}
.services-view .service-grid{grid-template-rows:repeat(2,170px);gap:12px}.services-view .service-card{padding:10px;gap:5px}.services-view .service-card .small-icon{width:53px;height:53px}.services-view .service-card h2{font-size:22px}.services-view .service-card p{font-size:16px;line-height:1.2}
/* Homepage refinements from the locked image reference. */
.home-view .review-card,.home-view .area-card{transition:transform .18s ease,box-shadow .18s ease;cursor:pointer}
.home-view .review-card:hover,.home-view .review-card:focus-visible,.home-view .area-card:hover,.home-view .area-card:focus-visible{transform:translateY(-7px);box-shadow:0 10px 16px #0003!important}
.home-view .service-strip a{transition:background-color .16s ease,box-shadow .16s ease}
.home-view .service-strip a:hover,.home-view .service-strip a:focus-visible{background:#ffffffbd;box-shadow:inset 0 0 0 2px #ff680025}
.home-view .gallery-preview .section-heading h2{font-size:27px;letter-spacing:-.7px}
.contact-note,.contact-note:hover{top:-90px}
.home-copy .underlined:after{height:68px;bottom:-34px}
:where(html:not([data-style-variant~="desktop"])) .home-copy .headline-rays{width: 70px; height: 45px; left: -39px; top: -33px;}
:where(html[data-style-variant~="desktop"]) .home-copy .headline-rays{width:76px;height:70px;left:-31px;top:-44px}
.home-view .support-row .area-card{padding:6px;gap:14px}
.home-view .area-card>.area-map-preview{display:block;position:relative;flex:0 0 151px;width:151px;height:70px;overflow:hidden;border-radius:7px;background:#f6f4ed}
.area-map-preview .area-map-image{width:100%;height:100%;object-fit:contain;display:block}
.area-map-preview .area-map-pin{position:absolute;width:35px;height:42px;object-fit:contain;left:50%;top:50%;transform:translate(-50%,-58%)}
.approved-service-icon{width:80px;height:80px;flex:0 0 80px;object-fit:contain;display:block}

@media(prefers-reduced-motion:reduce){.home-view .review-card,.home-view .area-card,.home-view .service-strip a{transition:none}}

/* Services overview: artwork extracted directly from the approved proposal. */
.services-view{gap:0}
.services-view .page-heading{font-size:57px;margin:24px 0 12px;line-height:1.08;letter-spacing:-2px}
.services-view .page-heading:after{display:none}
.services-heading-tail{position:relative}
:where(html:not([data-style-variant~="desktop"])) .services-heading-tail:after{content:'';position:absolute;left:0;right:0;bottom:-29px;height:68px;background:url(../images/common/decoration-heading-underline.png) center/100% 100% no-repeat}
:where(html[data-style-variant~="desktop"]) .services-heading-tail:after{content:'';position:absolute;left:0;right:0;bottom:-29px;height:68px;background:url(../images/common/decoration-heading-underline.webp) center/100% 100% no-repeat}
.services-view .headline-rays{width:58px;height:52px;left:-29px;top:-37px}
.services-view .page-intro{font-size:25px;font-weight:700;line-height:1.3;margin:0 0 15px}
.services-view .service-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,220px);gap:0;margin:0;width:100%}
.services-view .service-card{border:0;border-right:1px solid #afb4ba;border-radius:0;background:none;padding:5px 6px 9px;gap:3px;box-shadow:none;transition:background-color .16s ease;transform:none}
.services-view .service-card:nth-child(4n){border-right:0}
.services-view .service-card:nth-child(-n+4){border-bottom:1px solid #afb4ba}
.services-view .service-card:hover,.services-view .service-card:focus-visible{background:#ffffff80;transform:none;box-shadow:none}
.services-view .service-card .small-icon{width:165px;height:123px;object-fit:contain;mix-blend-mode:multiply;flex-shrink:0}
.services-view .service-card h2{font-size:27px;font-weight:900;letter-spacing:-.7px;line-height:1.12}
.services-view .service-card p{font-size:19px;font-style:italic;line-height:1.2;color:var(--ink)}
.services-view .service-card .text-link{font-size:20px;line-height:1.2;margin-top:3px;display:flex;gap:5px;align-items:center}

.services-view .service-grid{grid-template-rows:repeat(2,200px)}
.services-view .service-card{padding:2px 6px 3px;gap:2px}
.services-view .service-card .small-icon{height:116px}
.services-view .service-card h2{font-size:27px;line-height:28px}
.services-view .service-card p{font-size:19px;line-height:23px}
.services-view .service-card .text-link{height:24px;min-height:24px;line-height:24px;margin-top:1px;font-weight:600}

/* Rates: supplied proposal artwork and two-column editorial layout. */
.rates-view{gap:0;height:100%}
.rates-view .page-heading{font-size:60px;line-height:1.08;margin:8px 0 8px;letter-spacing:-2px}
.rates-view .page-heading:after{display:none}
.rates-view .headline-rays{width:58px;height:52px;left:-29px;top:-37px}
.rates-heading-tail,.rate-underline{position:relative;display:inline-block}
:where(html:not([data-style-variant~="desktop"])) .rates-heading-tail:after, :where(html:not([data-style-variant~="desktop"])) .rate-underline:after{content:'';position:absolute;left:0;right:0;bottom:-24px;height:58px;background:url(../images/common/decoration-heading-underline.png) center/100% 100% no-repeat;pointer-events:none}
:where(html[data-style-variant~="desktop"]) .rates-heading-tail:after, :where(html[data-style-variant~="desktop"]) .rate-underline:after{content:'';position:absolute;left:0;right:0;bottom:-24px;height:58px;background:url(../images/common/decoration-heading-underline.webp) center/100% 100% no-repeat;pointer-events:none}
.rates-view .page-intro{font-size:25px;font-weight:700;line-height:1.25;margin:0 0 20px}
.rates-view .pricing-pair{gap:24px;margin:0;align-items:stretch}
.rates-view .pricing-pair article{height:auto;grid-template-columns:130px minmax(0,1fr);gap:22px;padding:18px 20px;background:#ffffff80;border:1px solid #b9b6b2;border-radius:17px;min-height:226px}
:where(html:not([data-style-variant~="desktop"])) .rates-view .pricing-pair article>img{width:165px;height:169px;object-fit:contain;mix-blend-mode:multiply;border-right:1px solid #999;padding-right:18px}:where(html[data-style-variant~="desktop"]) :is(.rates-view .pricing-pair article,.rates-view .pricing-pair article > picture.viewport-image) > img{width:130px;height:150px;object-fit:contain;mix-blend-mode:multiply;border-right:1px solid #999;padding-right:18px}
/* Keep responsive picture wrappers and rate copy in explicit grid cells. */
.rates-view .pricing-pair article > picture.viewport-image {
  display: block;
  grid-area: 1 / 1;
}
.rates-view .pricing-pair article > img {
  grid-area: 1 / 1;
}
.rates-view .pricing-pair article > div {
  grid-area: 1 / 2;
  min-width: 0;
}
.rates-view .pricing-pair h2{font-size:28px;line-height:1.1;margin:0 0 14px}
.rates-view .rate-underline:after{height:31px;bottom:-15px}
.rates-view .pricing-pair .price{font-size:36px;font-weight:900;letter-spacing:-1px;line-height:1.05;margin:0 0 8px;white-space:nowrap}
.rates-view .pricing-pair article:first-child .price{font-size:40px}
.rates-view .pricing-pair p{font-size:19px;line-height:1.25;margin:7px 0 0;font-weight:600}
.rates-view .job-limit{font-size:20px;line-height:1.3;margin:16px 4px 0}
.rates-view .payment-pair{grid-template-columns:1fr 1fr;gap:40px;margin:20px 4px 0}
.rates-view .payment-pair h2{font-size:28px;line-height:1.1;margin-bottom:14px}
.rates-view .payment-pair p{font-size:19px;line-height:1.3}
/* Address lookup stays within the contact form; manual typing remains valid. */
.contact-page-form{gap:8px;padding:16px}
.address-autocomplete{position:relative;display:flex;flex-direction:column;gap:4px}
.address-help{display:flex;justify-content:space-between;gap:10px;font-size:13px;line-height:1.2}
.address-help small{font-size:12px}.address-help small:last-child{white-space:nowrap}
.address-help a{text-decoration:underline;text-underline-offset:2px}
#address-suggestions{position:absolute;top:67px;left:0;right:0;z-index:30;background:#fff;border:1px solid #aaa;border-radius:5px;box-shadow:0 7px 18px #0003;overflow:hidden}
#address-suggestions[hidden]{display:none}
#address-suggestions [role=option]{font-size:17px;font-weight:400;padding:9px 12px;border-bottom:1px solid #ddd;cursor:pointer;line-height:1.2}
#address-suggestions [role=option]:last-child{border-bottom:0}
#address-suggestions [role=option]:hover,#address-suggestions [aria-selected=true]{background:#fff0df}
.contact-page-form{gap:6px;padding:14px}
.contact-page-form input{height:36px;padding:6px 10px}
.contact-page-form textarea{height:54px;padding:6px 10px}
.contact-page-form .upload-grid{grid-template-rows:repeat(2,52px)}
.contact-page-form .upload-slot{height:52px}
#address-suggestions{top:62px}

/* Contact: prioritize the project description, with six photos in one row. */
.contact-page-form{height:556px;gap:9px;padding:14px}
.contact-page-form .form-pair{align-items:start;flex-shrink:0}
.contact-page-form .project-message{flex:1;min-height:0}
.contact-page-form .project-message textarea{flex:1;height:auto;min-height:100px;line-height:1.35;padding:10px 12px}
.contact-page-form .upload-heading{flex-direction:row;align-items:baseline;gap:7px;font-size:18px;line-height:1.2;white-space:nowrap;flex-shrink:0}
.contact-page-form .upload-heading span{font-size:17px;font-weight:400}
.contact-page-form .upload-grid{grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:70px;gap:6px;flex-shrink:0}
.contact-page-form .upload-slot{height:70px}
.contact-page-form .upload-add{font-size:14px;padding:0}
.contact-page-form .upload-state{font-size:10px;padding:1px 3px;right:2px;bottom:4px}
.contact-page-form .submit-request{flex-shrink:0}
.address-help{justify-content:flex-end}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
/* Request confirmation, seven-day lookup and private request inbox. */
[hidden]{display:none!important}
.request-confirmation{width:820px;max-width:94vw;border:1px solid #d5cec2;border-radius:12px;padding:28px 36px;background:#faf8f3;box-shadow:0 18px 60px #0006;color:var(--ink);text-align:center;overflow:visible}
.request-confirmation::backdrop,.email-sent-check::backdrop{background:#0008}
.confirmation-x{position:absolute;right:18px;top:10px;background:none;font-size:34px;line-height:1}
.confirmation-envelope{height:130px;width:300px;object-fit:contain;mix-blend-mode:multiply;margin:0 auto 7px}
.request-confirmation h2{font-size:42px;line-height:1.15;letter-spacing:-1.5px;white-space:nowrap;margin:0 0 27px}
.request-confirmation h2 span{position:relative}:where(html:not([data-style-variant~="desktop"])) .request-confirmation h2 span:after{content:'';position:absolute;left:0;right:0;bottom:-23px;height:53px;background:url(../images/common/decoration-heading-underline.png) center/100% 100% no-repeat}:where(html[data-style-variant~="desktop"]) .request-confirmation h2 span:after{content:'';position:absolute;left:0;right:0;bottom:-23px;height:53px;background:url(../images/common/decoration-heading-underline.webp) center/100% 100% no-repeat}
.reference-box{background:#eee9e3aa;border:1px solid #bfb8af;border-radius:8px;padding:12px;margin:0 10px 18px}.reference-box>strong{font-size:19px;display:block;margin-bottom:5px}.reference-box>div{display:flex;justify-content:center;align-items:center;gap:14px}.reference-box code{font-family:var(--body);font-size:29px;font-weight:900;letter-spacing:1px}.reference-box button{background:none;color:var(--link-color);font-size:15px;padding:5px}
.request-confirmation>p{font-size:19px;line-height:1.35;margin:0 0 13px}.confirmation-actions{display:grid;grid-template-columns:1.6fr 1fr;gap:20px;margin-top:22px}.confirmation-actions button{font-size:21px;padding:10px;border-radius:7px}.confirmation-actions>button:last-child{background:transparent;border:2px solid #222;color:#111;font-weight:800}
.design-preview{font-size:14px!important;color:#6b532c;background:#fff1d7;padding:8px 12px;border-radius:5px;line-height:1.3}
.status-view{gap:25px}.status-view .page-heading{margin-top:18px;margin-bottom:8px}.status-layout{display:grid;grid-template-columns:555px 674px;gap:35px;align-items:start}.status-entry h2{font-size:29px;margin:8px 0 23px}.status-entry>p{font-size:23px;line-height:1.35;margin-bottom:30px}.status-entry form{display:flex;flex-direction:column;gap:12px}.status-entry label{font-size:24px;font-weight:900}.status-entry input{height:56px;padding:10px 16px;border:1px solid #999;background:#fff9;border-radius:7px;font-size:25px;width:100%}.status-entry .button{margin-top:12px;font-size:26px}.status-entry .expiry-note{font-size:20px;font-style:italic;margin-top:26px}.status-entry #status-error{font-size:19px;color:#a02512;margin-top:15px}
.status-result{position:relative;min-height:390px;background:#ffffff80;border:1px solid #c4c0bb;border-radius:14px;padding:30px}:where(html:not([data-style-variant~="desktop"])) .status-result>img{float:right;width:130px;height:110px;object-fit:contain;mix-blend-mode:multiply;margin-left:10px}:where(html[data-style-variant~="desktop"]) :is(.status-result,.status-result > picture.viewport-image) > img{float:right;width:130px;height:110px;object-fit:contain;mix-blend-mode:multiply;margin-left:10px}.status-result h3{font-size:23px;margin-bottom:15px}.status-result h2{font-size:38px;line-height:1.12;margin-bottom:17px;max-width:500px}.status-result>p{font-size:22px;line-height:1.35}.status-result dl{clear:both;border-block:1px solid #bbb;margin:25px 0 20px;padding:15px 0}.status-result dl>div{display:grid;grid-template-columns:190px 1fr;gap:15px;font-size:22px;line-height:1.5}.status-result dt{font-weight:900}.status-result dd{margin:0}.status-result>strong{font-size:23px}.expiry-meter{height:19px;border-radius:15px;background:#ddd;margin-top:10px;overflow:hidden}.expiry-meter>span{height:100%;display:block;background:var(--button-color);border-radius:15px}.status-result small{display:block;font-size:16px;margin-top:8px}
.admin-view{gap:13px}.admin-heading{display:flex;align-items:center;gap:18px}.admin-heading .page-heading{margin:15px auto 22px 0}.private-label{background:#dedbd6a0;padding:8px 13px;border-radius:7px;font-size:19px}.admin-heading .text-link{background:none;font-size:17px}.admin-toolbar{display:flex;justify-content:space-between;gap:20px;margin:8px 0 20px}.admin-toolbar>div{display:flex;gap:12px}.admin-toolbar button{font-size:21px;font-weight:900;border:1px solid #bbb;border-radius:8px;background:#ffffff80;padding:10px 15px}.admin-toolbar button.selected{border-color:var(--button-color);background:#ffebce}.admin-toolbar button span{background:#ddd;border-radius:50%;padding:2px 7px;margin-left:8px}.admin-toolbar button.selected span{background:var(--button-color);color:#fff}.admin-toolbar input{width:420px;border:1px solid #aaa;border-radius:7px;padding:9px 15px;font-size:20px;background:#ffffff80}
.admin-table-wrap{border:1px solid #c4c0bb;border-radius:10px;overflow:hidden}.admin-table{border-collapse:collapse;width:100%;font-size:20px;text-align:left;table-layout:fixed}.admin-table th{background:#dedbd680;font-weight:900;padding:12px}.admin-table td{border-top:1px solid #ccc;padding:10px 12px;background:#ffffff40;overflow-wrap:anywhere}.admin-table th:nth-child(1){width:18%}.admin-table th:nth-child(2){width:25%}.admin-table th:nth-child(3){width:17%}.admin-table th:nth-child(4){width:31%}.admin-table th:nth-child(5){width:9%}.admin-table td:first-child{font-weight:900}.admin-table select{width:100%;border:1px solid #bbb;border-radius:5px;padding:5px;font-size:18px;color:#111}.status-email_received{background:#ffebce}.status-under_review{background:#dceeff}.status-able_to_assist{background:#e3f2cf}.status-unable_to_assist{background:#eee}.admin-save{padding:5px 12px;font-size:19px;border-radius:5px}
.admin-paging{display:flex;justify-content:flex-end;align-items:center;gap:17px;margin-top:12px;font-size:16px}.admin-paging button{background:none;padding:3px;color:var(--link-color)}.admin-note{font-size:18px;border-left:3px solid var(--button-color);padding-left:14px;line-height:1.4;margin-top:15px}#admin-feedback{font-size:16px;margin-top:6px}#admin-feedback:empty,#status-error:empty{display:none}#admin-login{max-width:500px;margin:30px auto;background:#fff8;border:1px solid #ccc;border-radius:10px;padding:30px}#admin-login h2{font-size:32px;margin-bottom:22px}#admin-login label{display:flex;flex-direction:column;gap:10px;font-size:21px}#admin-login input{font-size:24px;padding:10px;border:1px solid #999;border-radius:5px;margin-bottom:20px}#admin-login-feedback{font-size:18px;margin-top:15px}
.email-sent-check{width:540px;max-width:90vw;background:#faf8f3;border:1px solid #aaa;border-radius:10px;padding:30px}.email-sent-check h2{font-size:30px;margin-bottom:17px}.email-sent-check p{font-size:20px}.email-sent-check>div{display:flex;gap:15px;margin-top:24px}.email-sent-check button{font-size:19px;padding:10px 15px;border-radius:6px}
@media(max-height:700px){.request-confirmation{padding:18px 28px}.confirmation-envelope{height:95px}.request-confirmation h2{font-size:35px}.request-confirmation>p{font-size:17px}.reference-box{margin-bottom:12px}}
.request-confirmation{background-color:#faf8f3;background-blend-mode:screen}
.request-confirmation::backdrop,.email-sent-check::backdrop{backdrop-filter:none}
.admin-view{gap:8px}
.admin-heading .page-heading{margin-top:10px;margin-bottom:12px}
#admin-preview{position:absolute;top:86px;right:0;font-size:12px!important;padding:4px 8px}
.admin-toolbar{margin-top:8px;margin-bottom:14px}
.admin-table th{padding:10px 12px}
.admin-table td{padding:5px 12px}
.admin-paging{margin-top:8px}
.admin-note{font-size:17px;margin-top:10px}
#admin-preview{top:70px;font-size:11px!important;padding:3px 7px}
.status-result{padding:26px}
.status-result dl{margin:20px 0 15px;padding:12px 0}
.status-result h2{margin-bottom:12px}
.contact-copy .contact-status-link{font-size:19px;margin-top:22px}
.request-confirmation,.email-sent-check{transform:scale(var(--desktop-scale,1));transform-origin:center;max-width:none;max-height:none}
.home-view .service-strip .approved-service-icon{width:80px;height:80px;flex:0 0 80px;object-fit:contain;mix-blend-mode:normal}

/* Service coverage is a single geographic PNG, centred without an injected SVG. */
.areas-dialog{width:1160px;padding:30px 34px}.areas-dialog>.page-heading{margin-bottom:18px}.areas-content{grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:28px}.areas-content #area-map{height:auto;aspect-ratio:1.5;background:none;display:flex;align-items:center;justify-content:center}:where(html:not([data-style-variant~="desktop"])) .areas-content #area-map>img{display:block;width:100%;height:auto;flex:none;border-radius:10px}:where(html[data-style-variant~="desktop"]) :is(.areas-content #area-map,.areas-content #area-map > picture.viewport-image) > img{display:block;width:100%;height:auto;flex:none;border-radius:10px}.areas-content .area-list{margin-bottom:24px}.areas-content h3{margin:0 0 4px}.areas-content p{margin:0;line-height:1.4}.areas-dialog>.text-link{margin-top:18px}

/* Assembly proof is one static collage, without gallery controls or links. */
.assembly-view .assembly-photos{height:530px;display:block;padding-top:24px}.assembly-static-collage{display:block;width:100%;height:auto;border-radius:5px;cursor:default}

/* Name the service first; personality belongs in the smaller tagline. */
.service-title-group h1{margin:0;font-size:54px;line-height:1.08;letter-spacing:-1.6px}.assembly-copy .service-tagline{font-size:30px;font-weight:800;line-height:1.2;letter-spacing:-.35px;margin:12px 0 0}

/* Illustrative service artwork is static and distinct from project photography. */
.service-static-illustration{display:block;width:100%;height:530px;object-fit:contain;border-radius:5px;cursor:default;mix-blend-mode:multiply}

/* French copy uses the same canvas, with room for its longer service names. */
html[lang="fr-CA"] .service-title-group h1{font-size:50px}
html[lang="fr-CA"] .project-title{font-size:43px;line-height:1.08}
/* French rate copy needs a compact rhythm and room above the raised footer. */
html[lang="fr-CA"] .rates-view .page-heading { font-size: 56px; margin: 6px 0; }
html[lang="fr-CA"] .rates-view .page-intro { font-size: 23px; line-height: 1.2; margin-bottom: 14px; }
html[lang="fr-CA"] .rates-view .pricing-pair article { grid-template-columns: 110px minmax(0, 1fr); gap: 18px; padding: 14px 18px; min-height: 218px; }
html[lang="fr-CA"] .rates-view .pricing-pair article > picture.viewport-image > img { width: 110px; height: 130px; padding-right: 14px; }
html[lang="fr-CA"] .rates-view .pricing-pair h2 { font-size: 26px; margin-bottom: 8px; }
html[lang="fr-CA"] .rates-view .pricing-pair .price { display: block; font-size: 32px; white-space: normal; }
html[lang="fr-CA"] .rates-view .pricing-pair article:first-child .price { font-size: 38px; }
html[lang="fr-CA"] .rates-view .pricing-pair p { font-size: 18px; line-height: 1.25; margin-top: 5px; }
html[lang="fr-CA"] .rates-view .job-limit { font-size: 18px; line-height: 1.3; margin-top: 12px; }
html[lang="fr-CA"] .rates-view .payment-pair { margin-top: 14px; }
html[lang="fr-CA"] .rates-view .payment-pair h2 { font-size: 26px; margin-bottom: 10px; }
html[lang="fr-CA"] .rates-view .payment-pair p { font-size: 18px; line-height: 1.3; }
html[lang="fr-CA"] .services-view .service-card .small-icon{height:100px}
html[lang="fr-CA"] .services-view .service-card h2 {
  max-width: calc(100% - 24px);
  font-size: 22px;
  line-height: 26px;
  letter-spacing: -.6px;
  margin: 0;
  text-wrap: balance;
}
html[lang="fr-CA"] .services-view .service-card p{font-size:17px;line-height:20px;min-height:40px}

/* The current service remains visible independently of pointer hover. */
.dropdown>a[aria-current="page"]{color:var(--link-color);background:color-mix(in srgb,var(--button-color) 12%,white);box-shadow:inset 3px 0 var(--button-color)}

/* Heading artwork and editorial spacing remain independent of flex gaps. */
.menu-toggle{display:flex;align-items:center;justify-content:center;padding:10px 4px 10px 7px}
.menu-toggle img{width:16px;height:10px;object-fit:contain;filter:invert(1)}
.mosaic-view .page-heading:after{height:36px;bottom:-25px;background-size:100% auto}
.mosaic-view .headline-rays{width:47px;height:44px;left:-25px;top:-30px}


.about-view{gap:18px}




/* Align the artwork itself at the top of its fixed grid cell. */




/* About shares the service layout: its heading and paragraphs stay in the left column. */
.about-view .service-title-group h1{position:relative}
:where(html:not([data-style-variant~="desktop"])) .about-view .about-illustration>img{display:block;width:100%;height:auto;object-fit:contain}:where(html[data-style-variant~="desktop"]) :is(.about-view .about-illustration,.about-view .about-illustration > picture.viewport-image) > img{display:block;width:100%;height:auto;object-fit:contain}
.about-view .headline-rays{width:46px;height:52px;left:-18px;top:-33px}

.project-mosaic{
  height:100%;
  grid-template-columns:repeat(12,minmax(0,1fr));
  grid-template-rows:repeat(3,minmax(0,1fr));
}
.project-mosaic button{
  grid-column:span 3;
  min-width:0;
  min-height:0;
  padding:0;
  overflow:hidden;
  border-radius:6px;
  background:#eee;
  cursor:zoom-in;
}
.project-mosaic button:is(:nth-child(1),:nth-child(10)){grid-column:span 5}
.project-mosaic button:is(:nth-child(3),:nth-child(8)){grid-column:span 4}
.project-mosaic button:hover img{transform:scale(1.045)}
.project-mosaic button:focus-visible{outline-offset:-4px;outline:4px solid var(--button-color)}

.assembly-project-view .project-tools{border-top:0;padding-top:5px}
.assembly-project-view .tool-grid a{
  text-align:center;
  justify-content:flex-start;
}
.assembly-project-view .tool-grid img{height:68px}
.view.assembly-project-view .project-tools .affiliate-note{
  font-size:13px;
  line-height:1.3;
  color:#333;
  margin-top:8px;
}

html:has(.assembly-project-view) .photo-dialog figure {
  width: fit-content;
  height: auto;
  max-width: calc(100% - 144px);
  max-height: 100%;
  padding: 15px 15px 20px;
  background: rgb(223 223 223);
  border-radius: 15px;
}

html:has(.assembly-project-view) .photo-dialog figure img {
  max-width: 100%;
  max-height: calc(90vh - 130px);
  border-radius: 5px;
}

html:has(.assembly-project-view) .photo-dialog figcaption {
  width: 100%;
  contain: inline-size;
  overflow-wrap: anywhere;
}

html:has(.assembly-project-view) .lightbox-position {
  position: static;
  transform: none;
}

.project-mosaic-rows {
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: none;
  grid-auto-rows: minmax(0, 1fr);
}

.project-mosaic-rows button {
  flex: 1;
}

.project-mosaic-rows .mosaic-row:nth-child(odd) button:first-child,
.project-mosaic-rows .mosaic-row:nth-child(even) button:last-child {
  flex: 1.45;
}

.assembly-project-view .tool-grid .tool-card {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 4px;
  background: #fff9;
  border-radius: 5px;
  text-align: center;
  font-size: 11px;
}

.about-heading-tail {
  display: inline-block;
  position: relative;
}

:where(html:not([data-style-variant~="desktop"])) .about-heading-tail::after {
  content: '';
  position: absolute;
  inset: auto 0 -39px;
  height: 68px;
  background: url(../images/common/decoration-heading-underline.png) center / 100% 100% no-repeat;
  pointer-events: none;
}

:where(html[data-style-variant~="desktop"]) .about-heading-tail::after {
  content: '';
  position: absolute;
  inset: auto 0 -39px;
  height: 68px;
  background: url(../images/common/decoration-heading-underline.webp) center / 100% 100% no-repeat;
  pointer-events: none;
}

html :is(.services-view, .rates-view) .page-intro {
  color: var(--orange);
}

html .rates-heading-tail::after {
  height: 78px;
  bottom: -34px;
}

html .contact-copy .page-heading::after {
  height: 46px;
  bottom: -31px;
}

html.home-page .home-view {
  --home-card-radius: 7px;
}

html.home-page .home-main {
  grid-template-columns: 530px minmax(0, 1fr);
  gap: 34px;
  height: auto;
}

html.home-page .home-copy {
  gap: 16px;
}

html.home-page .home-copy h1 {
  font-size: 47px;
}

html.home-page .home-copy .quote-row {
  gap: 16px;
}

html.home-page .home-copy .quote-row .button {
  padding: 10px 16px;
}

html.home-page:where(:not([data-style-variant~="desktop"])) .home-view .service-strip {
  height: auto;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: repeat(3, 66px);
  align-items: center;
  gap: 4px 0;
  margin-top: 12px;
  padding-top: 18px;
  border-top: 2px dashed #b8b8b8;
}

html.home-page:where([data-style-variant~="desktop"]) .home-view .service-strip {
  height: auto;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: repeat(3, 66px);
  align-items: center;
  gap: 8px 0;
  margin-top: 12px;
  padding-top: 18px;
  border-top: 2px dashed #b8b8b8;
}

html.home-page .home-view .service-strip a {
  min-height: 50px;
  padding: 0 8px;
  gap: 7px;
  font-size: 16px;
  border: 0;
}

html.home-page .home-view .service-strip a:not(:nth-child(3n), .services-overview) {
  border-right: 1px solid #afb4ba;
}

html.home-page .home-view .service-strip .approved-service-icon {
  width: 52px;
  height: 52px;
  flex-basis: 52px;
}

html.home-page .home-view .service-strip .services-overview {
  justify-content: center;
  margin-right: 10px;
  border: 0;
  border-radius: var(--home-card-radius);
  background: #fff;
  box-shadow: 0 2px 5px #0003;
}

html.home-page .gallery-preview {
  align-self: stretch;
  height: auto;
  grid-template-rows: 36px minmax(0, 1fr) auto;
  margin-bottom: 7px;
}

html.home-page .home-photos {
  contain: size;
  grid-template-rows: repeat(2, minmax(0, 1fr));
}

html.home-page .home-photos .photo-button img {
  position: absolute;
  inset: 0;
}

html.home-page .home-view .support-row {
  grid-template-columns: minmax(0, 1fr);
  gap: 18px;
  height: auto;
  min-height: 0;
  margin-top: 4px;
}

html.home-page .home-view .home-photos .photo-button,
html.home-page .home-view .support-row :is(.review-card, .area-card) {
  border-radius: var(--home-card-radius);
}

html.home-page .home-view .support-row :is(.review-card, .area-card) {
  grid-column: 1;
  height: 61px;
  padding: 5px 16px;
  background: #fffffff2;
}

html.home-page .home-view .review-card > div,
html.home-page .home-view .area-card > span:last-child {
  flex: 1;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

html.home-page .home-view :is(.review-card, .area-card, .services-overview) {
  transition: transform .15s, background .15s;
}

html.home-page .home-view :is(.review-card, .area-card, .services-overview):is(:hover, :focus-visible) {
  transform: translateY(-2px);
}

html.home-page .home-view .support-row .support-label {
  color: var(--link-color);
  font-size: 16px;
  text-decoration: none;
  border-left: 1px solid #aaa;
  padding-left: 16px;
  white-space: nowrap;
}

html.home-page .home-view .area-card > .area-map-preview {
  flex-basis: 205px;
  height: 50px;
}

html.home-page .home-view .area-map-image {
  object-fit: cover;
}


/* Homepage */

.home-page .home-view .home-intro { font-size: 23px; line-height: 1.35; }
.home-page .home-view .home-intro a { color: var(--link-color); text-decoration: underline; }
.home-page .home-view .home-hero { display: grid; align-self: start; gap: 8px; min-width: 0; }
.home-page .home-view .home-car-frame { display: block; }
.home-page .home-view .home-car-frame img {
  display: block;
  width: 100%;
  max-width: calc(696px / max(1, var(--desktop-scale, 1)));
  margin-inline: auto;
  height: auto;
}
html.home-page .home-view .service-strip .services-overview,
html.home-page .home-view .support-row :is(.review-card, .area-card) { background: #faf9f7; }

/* Error pages share the site chrome and one content template. */
.error-stage { transform: translate(-50%, -50%) scale(var(--desktop-scale, 1)); }
.error-stage .mobile-header { display: none; }
.error-main .error-view { display: grid; grid-template-columns: minmax(0, 650px) minmax(0, 1fr); grid-template-areas: 'title art' 'description art' 'actions art'; column-gap: 60px; row-gap: 28px; align-content: center; height: 540px; }
.error-title-group { grid-area: title; }
.error-code { position: relative; margin: 0 0 20px; color: var(--orange); font-size: 32px; font-weight: 900; line-height: 1.1; }
.error-code > img { position: absolute; left: -42px; top: -49px; width: 56px; height: 56px; object-fit: contain; }
.error-main #error-title { position: relative; display: inline-block; margin: 0; font-size: 62px; line-height: 1.07; letter-spacing: -2px; max-width: 100%; }
.error-underline { position: absolute; right: 0; bottom: -24px; width: 74%; height: 44px; pointer-events: none; }
.error-art { grid-area: art; display: block; width: 100%; max-width: 512px; height: auto; align-self: center; justify-self: center; }
.error-description { grid-area: description; }
.error-description > p { margin: 0; font-size: 25px; line-height: 1.4; }
.error-description .error-support { margin-top: 20px; font-size: 26px; line-height: 1.3; font-weight: 900; }
.error-actions { grid-area: actions; display: flex; flex-wrap: wrap; align-items: center; gap: 20px 32px; }
.error-actions .error-primary { min-height: 62px; padding: 12px 28px; color: #fff; background: var(--button-color); border-color: var(--button-color); font-size: 28px; font-weight: 900; }
.error-secondary { color: var(--ink); font-size: 27px; font-weight: 900; text-decoration: underline; text-decoration-color: var(--orange); text-underline-offset: 7px; }
.error-contact { margin: 0; font-size: 20px; font-weight: 800; line-height: 1.45; }
.error-contact a { text-decoration: underline; text-decoration-color: var(--orange); text-underline-offset: 4px; overflow-wrap: anywhere; }

/* Privacy document: shared site chrome and an independently scrollable reading area. */
.privacy-stage .mobile-header { display:none; }
.privacy-main .privacy-heading { margin-bottom:20px; }
.privacy-main h1 { position:relative; display:inline-block; margin:0 0 12px; font-size:50px; line-height:1.1; }
.privacy-main h1::after { content:''; position:absolute; bottom:-10px; right:0; width:70%; height:22px; background:url(../images/common/decoration-heading-underline.webp) center/100% 100% no-repeat; }
.privacy-heading > p { margin:8px 0 0; font-size:18px; }
.privacy-content { height:440px; overflow-y:auto; padding:0 22px 16px 0; scrollbar-gutter:stable; }
.privacy-content section { margin-bottom:22px; }
.privacy-content h2 { margin:0 0 8px; font-size:25px; line-height:1.2; }
.privacy-content p { margin:0; font-size:21px; line-height:1.5; }
.privacy-content a { text-decoration:underline; text-underline-offset:3px; }
.form-privacy-link { margin:7px 0; font-size:14px; text-align:center; line-height:1.3; }
.address-suggestions-choice { display:flex; align-items:center; gap:6px; font-size:13px; font-weight:400; margin-top:5px; }
.address-suggestions-choice input { width:auto; height:auto; min-height:0; margin:0; }
.privacy-enquiry-notice { margin:0 0 12px; font-size:16px; }

.contact-page-form .address-suggestions-choice { flex-direction:row; justify-content:flex-end; align-items:center; margin:0; gap:5px; font-size:13px; font-weight:400; line-height:1.2; }
.contact-page-form .address-suggestions-choice input { width:14px; height:14px; padding:0; flex:none; }
.contact-page-form .form-privacy-link { margin:0; font-size:13px; flex-shrink:0; }
.contact-page-form .project-message textarea { min-height:80px; }
.contact-page-form [hidden], .privacy-enquiry .contact-copy [hidden] { display:none; }

/* Turnstile uses a native modal so its challenge cannot displace form fields. */
.contact-verification-dialog { width:min(360px,calc(100vw - 24px)); max-width:calc(100vw - 24px); padding:22px; border:1px solid #ccc; border-radius:14px; background:#faf9f7; color:#151515; box-sizing:border-box; }
.contact-verification-dialog::backdrop { background:rgb(0 0 0 / .5); }
.contact-verification-dialog h2 { margin:0 0 10px; font-size:24px; line-height:1.2; }
.contact-verification-dialog p { margin:0 0 18px; font-size:16px; line-height:1.4; }
.contact-verification-widget { min-height:65px; width:300px; max-width:100%; }
.contact-verification-dialog button { display:block; margin:18px auto 0; padding:8px 18px; background:transparent; border:1px solid #aaa; border-radius:5px; color:#151515; font-size:16px; cursor:pointer; }
