@font-face{font-family:Jakarta;src:url('fonts/plus-jakarta-sans-variable.ttf') format('truetype');font-style:normal;font-weight:200 800;font-display:swap}
/* Without script, avoid a late font swap moving a native fragment target. */
@font-face{font-family:JakartaStable;src:url('fonts/plus-jakarta-sans-variable.ttf') format('truetype');font-style:normal;font-weight:200 800;font-display:optional}
html:not(.js) body{font-family:JakartaStable,'Segoe UI',Arial,sans-serif}
:root{--navy:#173b43;--navy-deep:#0e2c33;--teal:#006e78;--mint:#b2e5df;--ink:#173b43;--body:#52676a;--line:#cedbd9;--surface:#f0f3ef;--paper:#fafbf8;--max:1440px;--gutter:clamp(20px,4.5vw,88px)}
/* Native fragment navigation clears exactly the sticky header. */
html{scroll-padding-top:var(--header-height,100px)}
body{font-family:Jakarta,'Segoe UI',Arial,sans-serif;font-size:1.125rem;line-height:1.8;background:var(--paper);overflow-wrap:normal}
h1,h2,h3{font-weight:650;line-height:1.14;letter-spacing:-.03em;text-wrap:balance;overflow-wrap:normal}
h2{font-size:clamp(2.1rem,3.8vw,3.75rem)}
p{margin-bottom:24px}p:last-child{margin-bottom:0}figure{margin:0}
a,button{touch-action:manipulation}a{transition:color .2s,background .2s}
:focus-visible{outline:3px solid #007e89;outline-offset:5px}
.container{width:min(var(--max),calc(100% - var(--gutter)*2))}
.section{padding-block:clamp(64px,7.5vw,116px)}
.eyebrow{font-size:1rem;font-weight:700;line-height:1.65;letter-spacing:.09em;margin-bottom:22px}
.topbar{background:var(--navy-deep);font-size:1rem;letter-spacing:.015em}
.topbar .container{gap:20px;align-items:center;padding-block:7px;line-height:1.6}
.topbar .dot{padding-inline:10px}
.topbar .container{flex-wrap:wrap;gap:6px 24px;padding-block:0}
.topbar .container>span{order:1;flex:1;min-width:0}
.topbar .container>a{order:2}
.language-switcher{order:3;display:flex;flex-shrink:0;align-items:center;gap:2px}
.topbar .language-switcher a{display:grid;place-items:center;min-width:44px;min-height:44px;padding:6px 9px;font-size:.9375rem;font-weight:700;letter-spacing:.04em;border-bottom:2px solid transparent}
.language-switcher a[aria-current]{color:var(--mint);border-bottom-color:var(--mint)}
.language-switcher a:hover{background:#ffffff12;color:white}
.language-switcher a:focus-visible{outline-color:var(--mint);outline-offset:-4px}
/* Keep words intact in every component, including native form controls. */
html,body,body *,body *::before,body *::after{-webkit-hyphens:none;hyphens:none;word-break:normal;overflow-wrap:normal}
@media(max-width:1100px){.topbar .container>a{display:none}}
@media(max-width:700px){.topbar .container>span{display:none}.topbar .container{padding-block:0!important;justify-content:flex-end}.language-switcher{margin-left:auto}}
.site-header{background:#fafbf8f5;border-color:var(--line);backdrop-filter:blur(16px)}
.site-header.is-scrolled{box-shadow:0 3px 18px #102e3710}
.header-inner{height:auto;min-height:96px;gap:26px;flex-wrap:wrap}
.brand img{width:135px;height:auto}
.site-header nav{gap:clamp(18px,1.7vw,27px);flex-wrap:wrap;max-width:100%}
.site-header nav a{font-size:1rem;font-weight:600;padding-block:14px;white-space:normal}
.site-header nav a:after{bottom:8px}
.header-cta{font-size:1rem;line-height:1.5;background:var(--navy);color:white;border:1px solid var(--navy);padding:14px 19px;white-space:normal;max-width:100%}
.header-cta:hover{background:var(--teal)}
.skip-link{top:0;transform:translateY(calc(-100% - 10px));max-width:calc(100% - 40px)}
.skip-link:focus{top:10px;transform:none}
.button{justify-content:center;min-height:54px;max-width:100%;padding:15px 24px;gap:12px;border-radius:0;font-size:1.0625rem;font-weight:700;line-height:1.6;background:var(--teal);text-align:center}
.button:hover{background:#005660;transform:none}
.button-dark{background:var(--navy)}
.button-light{background:white;color:var(--navy)}
.button-light:hover{background:var(--mint)}
.button-outline{background:transparent;border-color:#779294;color:var(--ink)}
.button-outline:hover{background:#e5eeea}
.text-link{min-height:44px;font-size:1.0625rem;font-weight:700;line-height:1.6;padding-block:10px;border-color:#7fa6a6}
.text-link:hover{color:var(--teal);border-color:var(--teal)}

/* The home introduces the craft through one complete photograph. */
.hero{height:auto;min-height:0;max-height:none;background:var(--surface);color:var(--ink);overflow:visible}
.hero-grid{display:grid;grid-template-columns:.94fr 1.06fr;gap:clamp(36px,5vw,80px);padding-block:56px;align-items:center}
.hero-content{padding:0;min-width:0}
.hero .eyebrow{color:var(--teal);font-size:1rem;line-height:1.65;letter-spacing:.08em;margin-bottom:28px;max-width:none}
.hero h1{font-size:clamp(3.2rem,5.2vw,5.4rem);line-height:1.04;font-weight:500;letter-spacing:-.05em;text-wrap:initial;margin-bottom:28px}
.hero h1 em{font-style:normal;color:var(--teal)}
.hero p{color:var(--body);font-size:1.1875rem;line-height:1.85;max-width:490px}
.hero-actions{gap:12px;align-items:stretch;flex-direction:row;flex-wrap:wrap;margin-top:32px}
.hero-actions .button{font-size:1rem;padding-inline:21px}
.hero-signature{display:flex;gap:16px;align-items:center;font-size:1rem;line-height:1.65;color:var(--body);margin-top:30px}
.signature-line{width:36px;height:1px;flex-shrink:0;background:var(--teal)}
.hero-visual{min-width:0;display:grid;grid-template-columns:minmax(0,1fr)}
.hero-main{position:relative;overflow:hidden;background:#d8e1dc}
.hero-main>img{width:100%;height:clamp(480px,40vw,600px);object-fit:cover;object-position:50% 43%}
.hero-main:after{content:'';position:absolute;inset:60% 0 0;background:linear-gradient(transparent,#092d35bf);pointer-events:none}
.hero-main figcaption{position:absolute;bottom:25px;left:28px;right:28px;color:white;z-index:1;font-size:1.25rem;line-height:1.6}
.hero-main figcaption span{display:block;font-size:1rem;letter-spacing:.06em;margin-bottom:5px}
.hero-project{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 20px;background:var(--navy);color:white;padding:22px 28px;align-items:center;border:1px solid var(--navy)}
.hero-project>span:first-child{grid-column:1/-1;font-size:1rem;line-height:1.65;color:var(--mint);letter-spacing:.06em}
.hero-project strong{font-size:1.3125rem;font-weight:500;line-height:1.45}
.project-link-label{font-size:1rem;line-height:1.65;text-decoration:underline;text-underline-offset:5px}
.hero-project:hover{background:#23505a}
.hero-bottom{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #bccfcb;gap:0;padding-bottom:0}
.hero-bottom a{display:flex;align-items:center;gap:17px;padding:21px 0;font-size:1.0625rem;font-weight:600;line-height:1.6}
.hero-bottom a span{font-size:1rem;font-weight:400;color:var(--teal)}
.hero-bottom a:hover{color:var(--teal)}
.trust-strip{background:white}
.trust-strip>.container{grid-template-columns:repeat(3,minmax(0,1fr)) 1.1fr;gap:24px;padding-block:34px}
.trust-strip .container>div{margin-right:0;padding-right:20px;gap:16px;min-width:0}
.trust-strip strong{font-size:clamp(2.3rem,3vw,3rem);font-weight:500;letter-spacing:-.06em;white-space:nowrap}
.trust-strip strong span{font-size:1.5rem}
.trust-strip div>span{font-size:1rem;line-height:1.65}
.trust-strip a{font-size:1.0625rem;line-height:1.7}
.trust-strip b{color:var(--teal)}

/* Rectilinear sections, generous type and captions clear of photographs. */
.intro-grid{grid-template-columns:1.08fr 1fr;gap:clamp(42px,7vw,104px)}
.intro-grid>*,.content-grid>*,.faq-layout>*,.contact-layout>*,.cta-section .container>*,.split-hero>*,.section-heading>*,.feature-section>*,.work-grid>*,.projects-home>*,.related-grid>*,.footer-grid>*,.process-grid>*{min-width:0;max-width:100%}
.intro-photo{padding:0}
.photo-index{display:block;font-size:1rem;line-height:1.65;letter-spacing:.07em;color:var(--teal);margin-bottom:18px}
.intro-photo>img{height:420px;width:100%;object-fit:cover;object-position:55%}
.photo-tag{position:static;display:block;background:var(--navy);font-size:1rem;line-height:1.65;letter-spacing:.04em;padding:18px 24px}
.lead{font-size:1.3125rem;line-height:1.75;color:var(--ink)}
.section-heading{margin-bottom:44px;gap:36px}
.section-heading p{max-width:430px}
.service-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:38px 28px}
.service-card{background:white;display:flex;flex-direction:column;border:1px solid var(--line);transition:border-color .2s;min-width:0;max-width:100%}
.image-wrap img{height:auto;aspect-ratio:1.5;width:100%;object-fit:cover}
.image-number{left:0;top:auto;bottom:0;font-size:1rem;line-height:1.6;padding:11px 17px;background:var(--navy);color:white}
.service-card-text{padding:28px;display:flex;flex-direction:column;flex:1;min-width:0;max-width:100%}
.service-card h3{font-size:clamp(1.4rem,1.8vw,1.8rem);line-height:1.25;margin:0 0 15px;letter-spacing:-.035em}
.service-card p{font-size:1.125rem;line-height:1.8;max-width:none;margin:0 0 24px}
.service-link{font-size:1rem;font-weight:700;line-height:1.65;margin-top:auto;border-top:1px solid var(--line);padding-top:17px;color:var(--teal)}
.round-arrow,.project-arrow{display:none}
.feature-section{background:var(--navy-deep)}
.feature-image img{min-height:0;max-height:none;height:100%;object-position:50% 40%}
.feature-copy{padding:clamp(52px,6vw,94px) clamp(28px,5vw,84px)}
.feature-index{display:block;font-size:1rem;letter-spacing:.12em;color:var(--mint);border-bottom:1px solid #567478;padding-bottom:22px;margin-bottom:34px}
.feature-copy p{color:#c6dbdc}
.projects-home{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px;align-items:start}
.project-tile{display:block;background:transparent;overflow:visible;border-bottom:1px solid var(--line)}
.project-tile:after,.project-tile:before{display:none}
.project-tile>img,.related-grid .project-tile>img{position:static;inset:auto;width:100%;height:auto;min-height:0;aspect-ratio:1.35;object-fit:cover;transform:none}
.project-tile>div,.related-grid .project-tile>div{position:static;color:var(--ink);padding:23px 0 27px;inset:auto;min-width:0;margin:0}
.project-tile>div>span:first-child{display:block;color:var(--teal);font-size:1rem;line-height:1.6;letter-spacing:.055em}
.project-tile h3{font-size:clamp(1.6rem,2.4vw,2.3rem);line-height:1.22;margin:12px 0 0}
.project-tile:hover>img{transform:none}
.project-tile:hover h3{color:var(--teal)}
.process-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.process-grid article{border-top:2px solid var(--teal);padding-top:25px}
.process-grid article>span{font-size:1rem;color:var(--teal);line-height:1.65;margin-bottom:26px}
.process-grid h3{font-size:1.6rem;line-height:1.3}
.process-grid p{font-size:1.125rem}
.territory-band{padding:clamp(80px,9vw,145px) 0;background-image:linear-gradient(90deg,#0e2c33f0,#0e2c3366),url('images/portoferraio-panorama-tetti-mare.webp')}
.territory-band h2{max-width:790px}
.territory-band .text-link{border-color:var(--mint)}
.cta-section{background:var(--mint);color:var(--navy-deep);padding:clamp(64px,7vw,100px) 0}
.cta-section .eyebrow{font-size:1rem;color:#285860}
.cta-section p{color:#28535b}
.cta-section .button{background:var(--navy);color:white}
.cta-section .button:hover{background:var(--teal)}
.site-footer{padding-top:64px}
.footer-grid{gap:60px;padding-bottom:52px}
.site-footer p{font-size:1.0625rem;line-height:1.8;color:#bfd2d5}
.site-footer h2{font-size:1.0625rem;line-height:1.5;letter-spacing:.02em}
.site-footer a{width:fit-content;font-size:1.0625rem;line-height:1.6;min-height:44px;padding-block:9px;margin:0}
.site-footer a:hover{color:var(--mint)}
.site-footer .footer-phone{font-size:clamp(1.4rem,2vw,1.9rem);letter-spacing:-.03em}
.footer-logo{width:150px}
.site-footer .footer-youritaly{margin-top:20px}
.site-footer .footer-bottom{align-items:center;flex-wrap:wrap;gap:12px 25px;font-size:1rem;padding-block:24px}
.footer-bottom>*{min-width:0;max-width:100%}
.site-footer .footer-bottom a{font-size:1rem;overflow-wrap:normal}
.footer-pec span,.back-top{text-decoration:underline;text-underline-offset:4px}
.footer-cookie{border-top:1px solid #38545b;padding-block:24px 32px;padding-inline-end:max(0px,calc(11rem + 44px - var(--gutter)))}
.site-footer .footer-cookie p{max-width:1100px;margin:0;font-size:1rem;line-height:1.8;color:#c4d5da;overflow-wrap:normal}
.floating-contact{background:var(--navy);color:white;border:1px solid #a7d5d1;border-radius:0;min-height:50px;font-size:1rem;line-height:1.5;box-shadow:0 5px 20px #0e2c3320;transition:opacity .15s,visibility .15s}
.floating-contact svg{color:var(--mint);flex-shrink:0}
.floating-contact:hover{background:var(--teal)}
.floating-contact.is-obscured,body:has(.lightbox[open])>.floating-contact,.site-header:has(nav.is-open)~.floating-contact{visibility:hidden;opacity:0;pointer-events:none}
body:has(#project-form)>.floating-contact{display:none}

/* Shared content pages and service details. */
.breadcrumbs{font-size:1rem;line-height:1.65;padding-block:20px;gap:12px}
.breadcrumbs a{text-decoration:underline;text-underline-offset:4px}
.page-intro{padding:clamp(44px,5.4vw,80px) 0;background:var(--surface);border-bottom:1px solid var(--line)}
.page-intro h1{font-size:clamp(2.7rem,5vw,5rem);max-width:1070px}
.page-intro p{font-size:1.25rem;max-width:760px;line-height:1.85}
.split-hero{background:var(--navy-deep);grid-template-columns:repeat(2,minmax(0,1fr))}
.split-hero-copy{padding:64px var(--gutter);padding-left:max(var(--gutter),calc((100vw - 1440px)/2));align-self:center}
.split-hero h1{font-size:clamp(2.65rem,4.4vw,4.6rem);line-height:1.1}
.split-hero p{color:#c6dbdc;font-size:1.1875rem}
.split-hero-copy .button{background:var(--mint);color:var(--navy-deep);margin-top:14px}
.split-hero-image{min-width:0}
.split-hero-image img{min-height:580px;max-height:none;height:100%;width:100%;object-fit:cover}
.content-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(40px,7vw,104px)}
.check-list{margin:0 0 32px}
.check-list li{padding:18px 0 18px 28px}
.check-list li:before{content:'';width:9px;height:9px;background:var(--teal);left:0;top:28px}
.detail-box{padding:34px;border-top:2px solid var(--teal)}
.detail-box h3{line-height:1.3}
.faq-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:clamp(36px,6vw,90px)}
summary{font-size:1.1875rem;line-height:1.7;padding:24px 42px 24px 0}
summary:after{top:23px;font-size:1.4rem}
details[open] summary{color:var(--teal)}
details p{font-size:1.125rem;margin:0;padding-bottom:26px;padding-right:22px;line-height:1.85}
.related-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}
.related-grid .project-tile h3{font-size:1.5rem}
.related-services{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:23px}
.related-services a{border-bottom:1px solid var(--line);padding-bottom:20px;display:block}
.related-services img{width:100%;aspect-ratio:1.25;object-fit:cover;margin-bottom:18px}
.related-services span{font-size:1.0625rem;font-weight:600;line-height:1.6;display:block}
.related-services a:hover{color:var(--teal);border-color:var(--teal)}
.filter-bar{gap:10px;margin-bottom:20px}
.filter-bar[hidden]{display:none}
.filter-button{border-radius:0;min-height:48px;padding:11px 20px;font-size:1.0625rem;font-weight:600;line-height:1.5}
.filter-button:hover{border-color:var(--teal);color:var(--teal)}
.filter-button[aria-pressed=true]{background:var(--navy);color:white;border-color:var(--navy)}
.filter-status{font-size:1rem;line-height:1.65;color:var(--body);border-bottom:1px solid var(--line);padding-bottom:24px;margin-bottom:36px}
.work-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:52px 36px}
.work-card{border-bottom:1px solid var(--line);padding-bottom:24px}
.work-card .image-wrap img{height:auto;aspect-ratio:1.45}
.work-card h2{font-size:clamp(1.65rem,2.3vw,2.25rem);line-height:1.25;margin:12px 0 18px}
.work-card p{font-size:1.125rem}
.work-card .eyebrow{font-size:1rem;line-height:1.65;letter-spacing:.06em;margin:23px 0 0}
.project-meta{padding-block:24px;gap:28px 54px;margin-bottom:52px}
.project-meta div{font-size:1.125rem;min-width:0}
.project-meta span{font-size:1rem;letter-spacing:.05em;color:var(--teal);margin-bottom:6px}
.project-meta a{text-decoration:underline;text-underline-offset:5px}
.gallery-heading{margin:60px 0 34px}
.gallery-heading h2{margin-bottom:16px}
.gallery-heading p{max-width:680px}
.gallery-grid{display:block;columns:3;column-gap:28px}
.gallery-item{break-inside:avoid;margin-bottom:32px}
.gallery-item img{height:auto;width:100%;object-fit:contain}
.gallery-item a{overflow:hidden}
.gallery-item a:after{content:'+';width:44px;height:44px;font-size:1.5rem;border:1px solid #c6d7d6;line-height:1}
.gallery-item figcaption{font-size:1rem;line-height:1.75;margin-top:13px}
.gallery-grid.collage-grid{columns:2}
.lightbox{border:1px solid #52747b;border-radius:0;width:min(1200px,94vw);max-width:94vw;max-height:94dvh;overflow:hidden}
.lightbox[open]{display:flex;flex-direction:column;height:min(920px,94dvh)}
.lightbox-bar,.lightbox-nav{flex-shrink:0}
.lightbox-bar{align-items:flex-start;gap:18px;padding:18px 22px}
.lightbox-bar p{font-size:1.0625rem;line-height:1.65;min-width:0;max-height:23dvh;overflow:auto;overscroll-behavior:contain}
.lightbox-close{display:grid;place-content:center;flex-shrink:0;width:max(44px,2rem);height:max(44px,2rem);padding:0;line-height:1;border-radius:0}
.lightbox button svg{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:2;flex-shrink:0}
.lightbox-nav button svg{display:none}
.lightbox-image{flex:1 1 0;min-height:0;height:0;max-height:none;width:100%;object-fit:contain;touch-action:pan-y pinch-zoom}
.lightbox-nav{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:18px;padding:18px 22px}
.lightbox-nav button{min-width:0;min-height:48px;font-size:1.0625rem;line-height:1.5;padding:10px 16px;border-radius:0}
.lightbox-nav button:hover,.lightbox-close:hover{background:#34555d}
.lightbox-count{font-size:1rem;white-space:nowrap;line-height:1.6}
.lightbox :focus-visible{outline-color:var(--mint)}

/* Contact details remain usable independently of the message composer. */
.contact-layout{grid-template-columns:.85fr 1.15fr;gap:clamp(36px,6vw,88px)}
.contact-card{padding:27px 0}
.contact-card .eyebrow{font-size:1rem;letter-spacing:.055em}
.contact-card a.big-phone{font-size:clamp(1.7rem,2.8vw,2.6rem);font-weight:500;line-height:1.5;width:fit-content;max-width:100%;margin-bottom:12px}
.contact-form{padding:clamp(26px,3.5vw,52px);border:1px solid var(--line);border-top:3px solid var(--teal);align-self:start;min-width:0;background:white}
.contact-form h2{font-size:clamp(1.85rem,2.7vw,2.65rem);line-height:1.2}
.contact-form>p{font-size:1.125rem}
.form-row{grid-template-columns:repeat(2,minmax(0,1fr))}
.field{min-width:0;gap:8px;margin-bottom:24px}
.field label{font-size:1.0625rem;font-weight:600;line-height:1.65}
.field input,.field select,.field textarea{font-size:1.125rem;line-height:1.65;min-height:52px;padding:14px;border-color:#9db5b4;border-radius:0;background:var(--paper)}
.field input::placeholder,.field textarea::placeholder{color:#667b7d;opacity:1}
.field textarea{min-height:165px}
.field-hint,.form-required{font-size:1rem;line-height:1.6;color:var(--body)}
.field-hint{text-align:right}
.selected-service{font-size:1.0625rem;line-height:1.65;overflow-wrap:normal;margin:0;border-left:2px solid var(--teal);padding-left:12px;color:var(--navy)}
.selected-service[hidden]{display:none}
.error-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:stretch}
.error-actions .button{justify-content:center}
@media(max-width:600px){.error-actions .button{width:100%}}
.form-note{font-size:1rem;line-height:1.85;margin-bottom:25px}
.form-note a{text-decoration:underline;text-underline-offset:4px}
.form-status{font-size:1.0625rem;line-height:1.7;margin-top:20px}
.form-status:empty{display:none}
.message-preview{padding:26px;margin-top:28px;background:var(--surface);border:1px solid var(--line)}
.message-preview[hidden]{display:none}
.message-preview h3{font-size:1.5rem;line-height:1.3}
.message-preview #preview-text{white-space:pre-wrap;overflow-wrap:normal;font-size:1.125rem;line-height:1.8}
.message-preview .form-note{margin-top:18px;margin-bottom:0}
.message-preview .button{width:100%}
.preview-edit{background:transparent;border:0;border-bottom:1px solid #79999d;color:var(--navy);padding:12px 0;display:block;margin-top:10px;max-width:100%}
.town-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.town-grid div{font-size:1.125rem;line-height:1.65;border-top:2px solid var(--teal)}
.quote-panel{padding:clamp(34px,4vw,64px);border-left:3px solid var(--mint)}
.quote-panel blockquote{line-height:1.45;letter-spacing:-.035em}
.quote-panel p{font-size:1.0625rem}
.legal-copy{overflow-wrap:normal}

@media(hover:hover){.service-card:hover{border-color:#769e9f}.service-card:hover img,.work-card:hover .image-wrap img{transform:scale(1.025)}}
@media(min-width:1800px){.hero-grid{padding-block:72px}.hero-main>img{height:630px}}
@media(max-width:1250px){.header-cta{display:none}.hero-grid{gap:36px}.hero-actions{flex-direction:column;max-width:310px}.hero-project{grid-template-columns:1fr;padding:23px}.hero-project>span:first-child{grid-column:auto}.project-link-label{margin-top:5px}.trust-strip .container>div{gap:12px;padding-right:12px}.service-card-text{padding:24px}.contact-layout{gap:36px}.form-row{grid-template-columns:1fr;gap:0}}
@media(max-width:1023px){
 .header-inner{min-height:86px;gap:20px}.brand img{width:122px}
 .menu-toggle{display:none}.js .menu-toggle{display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;width:48px;height:48px;background:transparent;border:1px solid #9db7b6;flex-shrink:0;border-radius:0}
 .menu-toggle span{width:20px;height:1.5px;background:var(--navy);transition:transform .2s}
 .menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.75px) rotate(45deg)}
 .menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.75px) rotate(-45deg)}
 .site-header nav{position:static;display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:flex-end;padding:12px 0;box-shadow:none;border:0}
 .js .site-header nav{display:none;position:absolute;top:100%;left:0;right:0;padding:16px var(--gutter) 24px;background:var(--paper);border-bottom:1px solid var(--line);max-height:var(--navigation-space,calc(100dvh - 130px));overflow-y:auto;overscroll-behavior:contain;box-shadow:0 15px 25px #0e2c3315}
 .js .site-header nav.is-open{display:flex;flex-direction:column;flex-wrap:nowrap;align-items:stretch;justify-content:flex-start;gap:0}
 .site-header nav a{font-size:1.125rem;padding:14px 0;flex-shrink:0}.site-header nav a:after{max-width:40px}
 .trust-strip>.container{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.trust-strip .container>div:nth-child(2){border:0}.trust-strip a{justify-self:start}
 .service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
 .section-heading{align-items:flex-start}.section-heading p{max-width:340px}
 .feature-copy{padding:52px 34px}.feature-copy h2{font-size:2.5rem}
 .footer-grid{gap:32px}.footer-grid .footer-phone{font-size:1.4rem}
 .split-hero-copy{padding:48px 34px}.split-hero h1{font-size:2.8rem}.split-hero-image img{min-height:520px}
 .content-grid{gap:38px}.related-services{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 20px}
 .gallery-grid{columns:2}.related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.process-grid{gap:28px}.town-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
 .hero-grid{grid-template-columns:1fr;gap:36px;padding-block:48px 32px}.hero-content{max-width:740px}.hero h1{font-size:clamp(3.2rem,8.5vw,5.1rem)}.hero h1 br:nth-child(2){display:none}.hero h1 em:before{content:' '}
 .hero p{max-width:610px}.hero-actions{flex-direction:row;max-width:none}.hero-signature{display:none}.hero-main>img{height:490px;object-position:50% 48%}
 .hero-project{grid-template-columns:minmax(0,1fr) auto;gap:6px 20px}.hero-project>span:first-child{grid-column:1/-1}.project-link-label{margin:0}
 .intro-grid{grid-template-columns:1fr;gap:36px}.intro-photo{max-width:700px}.intro-photo>img{height:auto;aspect-ratio:1.6}.intro-grid>div:last-child{max-width:740px}
 .contact-layout{grid-template-columns:1fr;gap:48px}.contact-form{width:100%;max-width:850px;margin-inline:auto}.form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
}
@media(max-width:700px){
 .topbar .container{font-size:1rem;text-align:center;line-height:1.5;padding-block:8px}.topbar .dot{padding-inline:5px}
 .header-inner{min-height:78px;gap:16px}.brand img{width:111px}.site-header nav{gap:4px 16px;flex-direction:row;align-items:center}.menu-toggle{display:none}
 .hero-grid{padding-block:36px 28px;gap:30px}.hero h1{font-size:clamp(2.7rem,10.6vw,4rem);line-height:1.06}.hero h1 br:nth-child(2){display:block}.hero h1 em:before{content:none}
 .hero .eyebrow{font-size:1rem;letter-spacing:.06em;margin-bottom:23px}.hero p{font-size:1.125rem;line-height:1.8}.hero-actions{gap:12px;margin-top:26px;align-items:stretch}.hero-actions .button{flex:1;font-size:1rem;padding-inline:16px}
 .hero-main>img{height:400px}.hero-main figcaption{left:20px;right:20px;bottom:19px;font-size:1.1875rem}.hero-main figcaption span{font-size:1rem}
 .hero-project{grid-template-columns:1fr;padding:20px;gap:9px}.hero-project>span:first-child{grid-column:auto}.hero-project strong{font-size:1.25rem}
 .hero-bottom{grid-template-columns:1fr}.hero-bottom a{padding:15px 0;font-size:1.0625rem;gap:18px;border-bottom:1px solid #cfddda}.hero-bottom a:last-child{border:0}
 .trust-strip>.container{gap:26px 20px;padding-block:28px}.trust-strip .container>div{display:block;padding-right:8px}.trust-strip strong{display:block;font-size:2.7rem;margin-bottom:9px}.trust-strip div>span{font-size:1rem}.trust-strip a{font-size:1.0625rem}
 h2{font-size:clamp(2rem,7.8vw,2.8rem);line-height:1.16}.eyebrow{letter-spacing:.07em;font-size:1rem}
 .section-heading{gap:24px;margin-bottom:32px}.section-heading p{max-width:none;font-size:1.125rem}.intro-photo>img{aspect-ratio:1.25}.photo-tag{padding:17px 20px;letter-spacing:.025em}.intro-grid{gap:30px}
 .service-grid{grid-template-columns:1fr;gap:25px}.service-card h3{font-size:1.65rem}.service-card-text{padding:25px}.image-wrap img{aspect-ratio:1.45}
 .feature-section{grid-template-columns:1fr}.feature-image img{height:380px;min-height:0}.feature-copy{padding:42px var(--gutter) 54px}.feature-index{margin-bottom:27px}
 .projects-home{grid-template-columns:1fr;gap:32px}.project-tile>img{aspect-ratio:1.22}.project-tile>div{padding:21px 0 25px}.project-tile h3{font-size:1.9rem}.project-tile>div>span:first-child{font-size:1rem}
 .process-grid{grid-template-columns:1fr;gap:29px}.process-grid article>span{margin-bottom:18px}.process-grid h3{font-size:1.5rem}
 .cta-section>.container{grid-template-columns:1fr;gap:28px}.cta-section .eyebrow{font-size:1rem}.cta-section h2{font-size:2.4rem;line-height:1.17}
 .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 22px;padding-bottom:36px}.footer-grid .footer-phone{font-size:1.3rem}.site-footer a,.site-footer h2{font-size:1.0625rem}.site-footer .footer-bottom{align-items:flex-start;gap:8px;padding-block:22px}
 .footer-cookie{padding-inline-end:max(0px,calc(88px - var(--gutter)));padding-bottom:max(30px,env(safe-area-inset-bottom))}
 .floating-contact{right:16px;bottom:max(16px,env(safe-area-inset-bottom));width:52px;height:52px;padding:13px;justify-content:center}.floating-contact span{display:none}
 .breadcrumbs{font-size:1rem;padding-block:17px}.page-intro{padding-block:38px 44px}.page-intro h1{font-size:clamp(2.4rem,8.8vw,3.4rem);line-height:1.15}.page-intro p{font-size:1.1875rem}
 .split-hero{grid-template-columns:1fr}.split-hero-copy{padding:42px var(--gutter) 48px}.split-hero h1{font-size:clamp(2.35rem,8.6vw,3.3rem)}.split-hero p{font-size:1.125rem}.split-hero-image img{height:390px;min-height:0;max-height:none;object-position:50% 42%}
 .content-grid{grid-template-columns:1fr;gap:35px}.detail-box{padding:27px}.faq-layout{grid-template-columns:1fr;gap:12px}
 .related-grid{grid-template-columns:1fr;gap:34px}.related-grid .project-tile>img{aspect-ratio:1.3}.related-grid .project-tile h3{font-size:1.65rem}.related-services{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 18px}
 .related-services span{font-size:1.0625rem}.related-services img{margin-bottom:15px}.filter-button{font-size:1rem;min-height:46px;padding:10px 15px}.filter-status{margin-bottom:30px}
 .work-grid{grid-template-columns:1fr;gap:38px}.work-card .image-wrap img{aspect-ratio:1.25}.work-card h2{font-size:1.9rem}
 .project-meta{gap:23px 30px;margin-bottom:38px}.gallery-grid{column-gap:20px}.gallery-grid.collage-grid{columns:1}.gallery-item figcaption{font-size:1rem}.gallery-heading{margin-top:42px}
 .contact-layout{gap:36px}.contact-form{padding:28px 22px}.contact-form .button{width:100%}.form-row{grid-template-columns:1fr;gap:0}.message-preview{padding:22px 18px}
 .town-grid div{padding:22px 16px;font-size:1.125rem}.quote-panel{padding:34px 28px}.quote-panel blockquote{font-size:1.85rem}
 .lightbox{width:96vw;max-width:96vw;max-height:96dvh}.lightbox[open]{height:96dvh}.lightbox-bar,.lightbox-nav{padding:12px;gap:12px}.lightbox-bar p{font-size:1rem}.lightbox-nav button{font-size:1rem;padding:10px}
}
@media(max-width:420px){.hero-actions{flex-direction:column}.hero-main>img{height:350px}.hero h1{font-size:clamp(2.6rem,10.5vw,3.5rem)}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}.footer-grid .footer-phone{font-size:1.5rem}.gallery-grid{columns:1}.lightbox-nav{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:'count count' 'previous next';row-gap:8px}.lightbox-count{grid-area:count;text-align:center}.lightbox-prev{grid-area:previous}.lightbox-next{grid-area:next}}
@media(max-width:350px){.contact-form{padding:25px 18px}.related-services{grid-template-columns:1fr}.contact-card a.big-phone{font-size:1.8rem}.hero-main>img{height:320px}.hero-main figcaption{font-size:1.125rem}.hero-main figcaption span{font-size:1rem}.message-preview{padding:20px 14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
/* Keep the skylight in frame and enlarged text free to reflow. */
.hero-main>img{object-position:50% 0}
.service-card h3{overflow-wrap:normal}
.floating-contact{width:52px;height:52px;padding:13px;right:12px;justify-content:center}
.floating-contact span{display:none}
@media(max-width:700px){.trust-strip>.container{grid-template-columns:repeat(auto-fit,minmax(min(100%,8rem),1fr))}.floating-contact{right:16px}.service-grid{grid-template-columns:minmax(0,1fr)}}
.button:disabled{opacity:.55;cursor:not-allowed}
/* Short landscape screens need the full height for reading and anchor targets. */
@media(max-height:500px){html{scroll-padding-top:0}.site-header{position:relative}}
/* Keep space for the photograph on phones and in short, zoomed windows. */
@media(max-height:500px),(max-width:700px){
 .lightbox-bar,.lightbox-nav{padding:8px 12px;gap:12px}
 .lightbox-nav{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-areas:'previous count next'}
 .lightbox-nav button{display:grid;place-content:center;width:max(44px,2rem);height:max(44px,2rem);min-height:44px;padding:8px}
 .lightbox-nav button svg{display:block}.lightbox-nav button span{display:none}
 .lightbox-prev{grid-area:previous;justify-self:start}.lightbox-count{grid-area:count;text-align:center}.lightbox-next{grid-area:next;justify-self:end}
}
html:not(.js){scroll-padding-top:0;scroll-behavior:auto}
html:not(.js) .site-header{position:relative}
/* JavaScript hides the floating contact at the footer; retain the reserved
   space only for the no-script fallback. */
.js .footer-cookie{padding-inline-end:0}
/* An architectural composition: warm surfaces, dark photographic openings
   and a shared, spacious reading scale in all three languages. */
@media screen{
 :root{--navy:#173c42;--navy-deep:#102c31;--teal:#006c73;--mint:#bce6d8;--ink:#183b40;--body:#4c6264;--surface:#f0eee7;--paper:#fcfbf7;--line:#d8dfd9;--accent:#955336;--card-radius:8px}
 body{background:var(--paper);font-size:1.125rem}
 h1,h2,h3{font-weight:650;letter-spacing:-.035em}
 h2{font-size:clamp(2.2rem,3.6vw,3.6rem);line-height:1.17}
 .section{padding-block:clamp(72px,7.5vw,120px)}
 .eyebrow{font-size:.9375rem;letter-spacing:.09em;font-weight:700}
 .topbar{background:var(--navy-deep)}
 .site-header{background:#fcfbf7f5;border-bottom:1px solid var(--line)}
 .header-inner{min-height:96px;gap:24px}
 .site-header nav{gap:clamp(16px,1.6vw,26px)}
 .site-header nav a{font-size:1rem;font-weight:650;line-height:1.5}
 .header-cta,.button{border-radius:4px;font-size:1.0625rem;font-weight:700}
 .header-cta{padding:15px 20px}
 .button{padding:17px 25px;min-height:58px}
 .button-outline{border-color:#829c9c}
 .text-link{font-size:1.0625rem;line-height:1.7;border-bottom:1px solid var(--teal);padding-block:12px}
 .hero{background:var(--navy-deep);color:var(--paper);border-bottom:0}
 .hero-grid{grid-template-columns:1fr 1.08fr;gap:clamp(36px,4.2vw,70px);padding-block:clamp(44px,4vw,64px)}
 .hero-content{max-width:650px}
 .hero h1{font-size:clamp(3.1rem,4.7vw,5.2rem);line-height:1.12;font-weight:600;letter-spacing:-.045em;margin-bottom:30px;text-wrap:balance}
 .hero h1 span{display:inline}.hero h1 em{display:block;font-style:normal;color:var(--mint);margin-top:.08em}.hero h1 em:before{content:none}
 .hero .eyebrow{color:var(--mint);font-size:.9375rem;letter-spacing:.08em;line-height:1.8;margin-bottom:28px}
 .hero p{color:#d2dedc;font-size:1.25rem;line-height:1.8;max-width:35ch}
 .hero-actions{gap:14px;max-width:none;flex-direction:row}
 .hero-actions .button{font-size:1.0625rem;background:var(--mint);color:var(--navy-deep);padding-inline:23px}
 .hero-actions .button:hover{background:#ddf2e9}
 .hero-actions .button-outline{background:transparent;color:var(--paper);border-color:#7a999a}
 .hero-actions .button-outline:hover{background:#ffffff0e}
 .hero-signature{display:flex;color:#bacfcb;font-size:1rem;line-height:1.7;margin-top:30px}
 .signature-line{background:var(--mint);width:40px}
 .hero-visual{align-self:stretch;align-content:center}
 .hero-main{border-radius:8px 8px 0 0}
 .hero-main>img{height:clamp(440px,34vw,540px);object-position:50% 5%}
 .hero-main:after{inset:45% 0 0;background:linear-gradient(transparent,#0c282bd9)}
 .hero-main figcaption{font-size:1.25rem;line-height:1.65;font-weight:600;left:28px;right:28px;bottom:24px}
 .hero-main figcaption span{font-size:.9375rem;font-weight:500;letter-spacing:.07em;margin-bottom:7px}
 .hero-project{border:1px solid #577775;background:#1c4146;border-radius:0 0 8px 8px;padding:23px 28px;gap:8px 20px}
 .hero-project strong{font-size:1.25rem;font-weight:600;line-height:1.5}
 .hero-project>span:first-child{font-size:.9375rem;letter-spacing:.06em;color:var(--mint)}
 .project-link-label{font-size:1rem}
 .hero-bottom{border-top:1px solid #456467;gap:28px}
 .hero-bottom a{font-size:1.0625rem;line-height:1.7;padding-block:22px}
 .hero-bottom a span{color:var(--mint);font-size:.9375rem;font-variant-numeric:tabular-nums}
 .hero-bottom a:hover{color:var(--mint)}
 .trust-strip{background:#fff;border-bottom:1px solid var(--line)}
 .trust-strip>.container{padding-block:38px;gap:28px;align-items:center}
 .trust-strip .container>div{display:block;padding-right:24px}
 .trust-strip strong{display:block;font-size:3rem;font-weight:600;letter-spacing:-.04em;margin-bottom:14px}
 .trust-strip div>span,.trust-strip a{font-size:1.0625rem;line-height:1.7}
 .intro-grid{grid-template-columns:1fr 1fr;gap:clamp(42px,7vw,104px)}
 .intro-photo{border-left:1px solid #b8cbc4;padding-left:22px}
 .photo-index{color:var(--accent);font-size:.9375rem;letter-spacing:.09em;font-weight:650}
 .intro-photo>img{height:460px;border-radius:6px}
 .photo-tag{padding:19px 0 0;background:transparent;color:var(--body);font-size:.9375rem;line-height:1.8;letter-spacing:.05em}
 .lead{font-size:1.375rem;line-height:1.65}
 .section-heading{gap:48px;margin-bottom:48px;align-items:flex-end}
 .section-heading>div{min-width:0}.section-heading h2{margin-bottom:0}
 .section-heading p{font-size:1.125rem;line-height:1.8;max-width:36ch}
 .services-section{background:var(--surface);border-block:1px solid var(--line)}
 .service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
 .service-card{display:grid;grid-template-columns:.75fr 1fr;border:1px solid #cdd8d1;border-radius:8px;background:var(--paper);box-shadow:none;overflow:visible;transition:border-color .2s,box-shadow .2s}
 .service-card .image-wrap{min-width:0;align-self:stretch;border-radius:7px 0 0 7px}
 .service-card .image-wrap img{height:100%;min-height:280px;width:100%;aspect-ratio:auto;object-fit:cover}
 .image-number{top:16px;bottom:auto;left:16px;padding:9px 13px;font-size:.9375rem;line-height:1.4;font-weight:650;background:var(--paper);color:var(--navy);border-radius:3px}
 .service-card-text{padding:28px}
 .service-card h3{font-size:clamp(1.5rem,1.65vw,1.8rem);line-height:1.3;letter-spacing:-.025em;margin-bottom:18px}
 .service-card p{font-size:1.125rem;line-height:1.8;margin-bottom:28px}
 .service-link{display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:1rem;line-height:1.65;padding-top:18px;color:var(--teal)}
 .service-link:after{content:'';display:block;flex-shrink:0;width:9px;height:9px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:rotate(45deg);margin-right:5px}
 .feature-section{grid-template-columns:1fr 1fr;background:var(--navy-deep)}
 .feature-image img{height:100%;min-height:0;object-position:50% 45%}
 .feature-copy{padding:clamp(48px,6vw,90px) clamp(30px,5vw,82px)}
 .feature-copy h2{font-size:clamp(2.3rem,3.4vw,3.6rem);line-height:1.2}
 .feature-copy p{font-size:1.1875rem;line-height:1.85;color:#ccdcda}
 .feature-index{font-size:.9375rem;letter-spacing:.12em;color:var(--mint);margin-bottom:30px;padding-bottom:24px;border-color:#54716f}
 .feature-copy .button{background:var(--mint);color:var(--navy-deep)}
 .projects-home{grid-template-columns:1.15fr .85fr;gap:44px;align-items:start}
 .project-tile{display:block;border:0;border-radius:0;background:transparent;box-shadow:none}
 .project-tile>img,.related-grid .project-tile>img{aspect-ratio:1.45;border-radius:6px}
 .projects-home>.project-tile:nth-child(2){margin-top:64px}
 .projects-home>.project-tile:nth-child(2)>img{aspect-ratio:1.2}
 .project-tile>div,.related-grid .project-tile>div{padding:25px 0 20px;border-bottom:1px solid #aebfba}
 .project-tile>div>span:first-child{font-size:.9375rem;line-height:1.7;letter-spacing:.08em;color:var(--accent)}
 .project-tile h3{font-size:clamp(1.8rem,2.4vw,2.4rem);line-height:1.3;margin:12px 0 0;letter-spacing:-.03em}
 .process-section{background:var(--surface);border-block:1px solid var(--line)}
 .process-section>.container>h2{margin-bottom:46px}
 .process-grid{gap:0;border-top:1px solid #b3c2bb}
 .process-grid article{padding:34px 30px 0;border:0;border-left:1px solid #b3c2bb;background:transparent;border-radius:0}
 .process-grid article:first-child{padding-left:0;border-left:0}.process-grid article:last-child{padding-right:0}
 .process-grid article>span{font-size:2.9rem;line-height:1.2;font-weight:500;letter-spacing:-.05em;color:var(--accent);margin-bottom:28px}
 .process-grid h3{font-size:1.625rem;line-height:1.35}.process-grid p{font-size:1.125rem;line-height:1.8}
 .territory-band{padding-block:clamp(88px,9.5vw,152px);background-image:linear-gradient(90deg,#102c31f2,#102c3170),url('images/portoferraio-panorama-tetti-mare.webp');background-position:center;background-size:cover}
 .territory-band h2{max-width:900px}.territory-band p{font-size:1.25rem;color:#d7e5e2}
 .cta-section{background:#e9e1d4;color:var(--navy-deep);padding-block:clamp(64px,7vw,104px);border-top:1px solid #d4c9b9}
 .cta-section>.container{gap:60px;align-items:center}
 .cta-section .eyebrow{font-size:.9375rem;color:#704c37;letter-spacing:.07em}
 .cta-section h2{font-size:clamp(2.3rem,3.4vw,3.6rem);line-height:1.2;margin-bottom:0}
 .cta-section p{font-size:1.25rem;line-height:1.8;color:#465956}
 .cta-section .button{background:var(--navy);color:white}
 .breadcrumbs{font-size:1rem;padding-block:24px}
 .page-intro{background:var(--surface);padding-block:clamp(48px,5vw,80px);border-block:1px solid var(--line)}
 .page-intro>.container{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:26px 64px;align-items:end}
 .page-intro>.container>*{min-width:0;max-width:100%}
 .page-intro .eyebrow{grid-column:1/-1;margin:0;color:var(--accent)}
 .page-intro h1{font-size:clamp(2.6rem,4.2vw,4.8rem);line-height:1.15;font-weight:600;letter-spacing:-.04em;margin:0}
 .page-intro p{font-size:1.25rem;line-height:1.85;max-width:40ch;margin:0}
 .split-hero{width:min(1568px,calc(100% - var(--gutter)*2));margin-inline:auto;grid-template-columns:1fr 1fr;border-radius:8px;background:var(--navy-deep)}
 .split-hero-copy{padding:clamp(36px,4.4vw,70px)}
 .split-hero h1{font-size:clamp(2.6rem,3.9vw,4.3rem);line-height:1.17;font-weight:600;letter-spacing:-.035em}
 .split-hero p{font-size:1.25rem;line-height:1.85;color:#ccdcda}
 .split-hero-image img{border-radius:0 8px 8px 0;min-height:550px}
 .content-grid h2,.faq-layout h2{line-height:1.2}
 .check-list li{font-size:1.125rem;line-height:1.8;padding-block:20px}.check-list li:before{top:32px;width:8px;height:8px}
 .detail-box{padding:36px;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--teal);border-radius:4px}
 .detail-box h3{font-size:1.625rem;line-height:1.4}
 details{border-bottom:1px solid #b3c2bb}
 summary{font-size:1.1875rem;line-height:1.7;padding-block:26px}
 details p{font-size:1.125rem;line-height:1.85}
 .related-grid{gap:32px}.related-grid .project-tile h3{font-size:1.625rem;line-height:1.35}
 .related-services img{border-radius:5px}.related-services span{font-size:1.0625rem;line-height:1.65}
 .filter-bar{gap:12px}.filter-button{font-size:1rem;border-radius:4px;min-height:50px;padding:12px 20px;background:transparent;border-color:#aebfba}
 .work-grid{gap:52px 40px}.work-card{border:0;border-bottom:1px solid #aebfba;border-radius:0;padding:0 0 28px;background:transparent}
 .work-card .image-wrap{border-radius:6px}.work-card .image-wrap img{aspect-ratio:1.45}
 .work-card h2{font-size:clamp(1.8rem,2.4vw,2.4rem);line-height:1.3;letter-spacing:-.03em}
 .work-card p{font-size:1.125rem;line-height:1.8}.work-card .eyebrow{font-size:.9375rem;color:var(--accent);letter-spacing:.07em}
 .gallery-item{margin-bottom:36px}.gallery-item img,.gallery-item a{border-radius:5px}.gallery-item a:after{border-radius:3px}
 .gallery-item figcaption{font-size:1rem;line-height:1.8;margin-top:16px;padding-left:14px;border-left:2px solid #becfc5}
 .project-meta{border-block:1px solid var(--line);background:var(--surface);padding:24px 28px;gap:24px 42px}
 .project-meta div{font-size:1.125rem;line-height:1.7}.project-meta span{font-size:.9375rem;color:var(--accent);line-height:1.7}
 .contact-layout{gap:clamp(36px,6vw,88px)}
 .contact-card .eyebrow{color:var(--accent)}.contact-card a.big-phone{font-weight:600;letter-spacing:-.035em}
 .contact-form{padding:clamp(28px,3.6vw,54px);border:1px solid #b5c8bd;border-top:3px solid var(--teal);border-radius:6px;box-shadow:0 16px 44px #102c3108;background:#fff}
 .contact-form h2{font-size:clamp(2rem,2.7vw,2.8rem);line-height:1.25}
 .contact-form>p{font-size:1.125rem;line-height:1.8}
 .field label{font-size:1.0625rem;line-height:1.65}.field input,.field select,.field textarea{font-size:1.125rem;min-height:58px;border-radius:4px;line-height:1.65;background:var(--paper)}
 .field-hint,.form-required,.form-note{font-size:1rem;line-height:1.8}.message-preview{border-radius:5px}
 .town-grid{background:transparent;border:0;gap:16px}.town-grid div{background:var(--surface);font-size:1.125rem;line-height:1.7;border:0;border-left:2px solid var(--teal);border-radius:3px;padding:24px}
 .quote-panel{border-radius:6px;background:var(--navy-deep)}
 .site-footer{background:var(--navy-deep);padding-top:76px}
 .footer-grid{gap:60px;padding-bottom:56px}
 .site-footer p,.site-footer a{font-size:1.0625rem;line-height:1.85}
 .site-footer h2{font-size:.9375rem;text-transform:uppercase;letter-spacing:.08em;line-height:1.7;color:var(--mint)}
 .site-footer .footer-bottom,.site-footer .footer-bottom a,.site-footer .footer-cookie p{font-size:1rem;line-height:1.8}
 .footer-cookie{padding-block:28px 36px}.floating-contact{border-radius:4px;background:var(--navy);box-shadow:0 6px 20px #102c3124}
 @media(hover:hover){.service-card:hover{border-color:#779d8c;box-shadow:0 8px 28px #173b430a}.service-card:hover .service-link{color:#004f54}.work-card:hover h2{color:var(--teal)}.gallery-item a:hover img{transform:scale(1.015)}}
 @media(min-width:1440px){body{font-size:1.1875rem}.intro-grid p:not(.lead),.content-grid p{font-size:1.1875rem}}
 @media(max-width:1250px){.header-cta{display:none}.hero-actions .button{align-self:stretch}.hero-project{grid-template-columns:1fr}.hero-project>span:first-child{grid-column:auto}.section-heading{gap:32px}.process-grid article{padding-inline:24px}}
 @media(max-width:1100px){.service-grid{grid-template-columns:1fr}.service-card{grid-template-columns:.65fr 1fr}.service-card .image-wrap img{min-height:260px;max-height:420px}.service-card h3{font-size:1.8rem}.service-card-text{padding:32px}.page-intro>.container{gap:24px 38px}}
 @media(max-width:1023px){.header-inner{min-height:86px}.site-header nav a{font-size:1.125rem}.footer-grid{gap:32px}.feature-copy{padding:48px 32px}.split-hero-copy{padding:36px}.split-hero h1{font-size:2.7rem}.projects-home{gap:32px}}
 @media(max-width:900px){.hero-grid{grid-template-columns:1fr;gap:40px}.hero-content{max-width:740px}.hero h1{font-size:clamp(3rem,7.2vw,4.7rem);max-width:16ch}.hero p{max-width:40ch}.hero-main>img{height:490px}.hero-project{grid-template-columns:minmax(0,1fr) auto}.hero-project>span:first-child{grid-column:1/-1}.intro-grid{grid-template-columns:1fr;gap:38px}.intro-photo>img{height:auto;aspect-ratio:1.5}.intro-photo{max-width:740px}.section-heading{flex-direction:column;align-items:flex-start;gap:26px}.section-heading p{max-width:50ch}.page-intro>.container{grid-template-columns:1fr;gap:24px}.page-intro p{max-width:55ch}.form-row{grid-template-columns:1fr;gap:0}}
 @media(max-width:700px){
  .header-inner{min-height:82px}.section{padding-block:64px}.hero-grid{padding-block:36px 30px;gap:34px}
  .hero h1{font-size:clamp(2.65rem,8.8vw,3.8rem);line-height:1.15;letter-spacing:-.04em;max-width:16ch}.hero .eyebrow{font-size:.9375rem;letter-spacing:.05em;margin-bottom:23px}
  .hero p{font-size:1.125rem;line-height:1.85}.hero-signature{font-size:1rem}.hero-actions .button{font-size:1rem}
  .hero-main>img{height:410px}.hero-main figcaption{left:22px;right:22px;font-size:1.125rem}.hero-project{grid-template-columns:1fr;padding:22px}.hero-project>span:first-child{grid-column:auto}
  .hero-bottom{gap:0}.hero-bottom a{font-size:1.0625rem;padding-block:18px;border-color:#456467}
  .trust-strip>.container{grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr));gap:28px 22px}.trust-strip strong{font-size:2.8rem}.trust-strip .container>div{padding-right:14px}.trust-strip div>span,.trust-strip a{font-size:1rem}
  .intro-photo{padding-left:14px}.intro-photo>img{aspect-ratio:1.2}.photo-tag{font-size:.9375rem;letter-spacing:.035em}.lead{font-size:1.25rem}
  .section-heading{gap:24px;margin-bottom:34px}.section-heading p{font-size:1.125rem}
  .service-grid{grid-template-columns:minmax(0,1fr);gap:28px}.service-card{display:flex;flex-direction:column}.service-card .image-wrap{border-radius:7px 7px 0 0}.service-card .image-wrap img{height:auto;min-height:0;max-height:none;aspect-ratio:1.55}.service-card-text{padding:26px}.service-card h3{font-size:1.625rem}
  .feature-section{grid-template-columns:1fr}.feature-image img{height:400px}.feature-copy{padding:44px var(--gutter) 56px}.feature-copy h2{font-size:2.35rem}.feature-copy p{font-size:1.125rem}
  .projects-home{grid-template-columns:1fr;gap:34px}.projects-home>.project-tile:nth-child(2){margin-top:0}.project-tile>img,.projects-home>.project-tile:nth-child(2)>img,.related-grid .project-tile>img{aspect-ratio:1.3}.project-tile h3{font-size:1.8rem}.project-tile>div,.related-grid .project-tile>div{padding:22px 0 25px}
  .process-section>.container>h2{margin-bottom:34px}.process-grid{grid-template-columns:1fr;gap:0}.process-grid article,.process-grid article:first-child,.process-grid article:last-child{padding:28px 0;border:0;border-bottom:1px solid #b3c2bb}.process-grid article:last-child{border-bottom:0}.process-grid article>span{font-size:2.5rem;margin-bottom:20px}
  .territory-band{padding-block:76px}.territory-band p,.cta-section p{font-size:1.125rem}.cta-section>.container{gap:28px}.cta-section h2{font-size:2.4rem}
  .breadcrumbs{padding-block:18px}.page-intro h1{font-size:clamp(2.4rem,8.5vw,3.3rem)}.page-intro p,.split-hero p{font-size:1.125rem}
  .split-hero{width:100%;grid-template-columns:1fr;border-radius:0}.split-hero-copy{padding:44px var(--gutter) 48px}.split-hero h1{font-size:clamp(2.35rem,8.4vw,3.3rem)}.split-hero-image img{border-radius:0;height:390px;min-height:0}
  .detail-box{padding:28px}.work-grid{gap:38px}.work-card h2{font-size:1.8rem}.work-card .image-wrap img{aspect-ratio:1.3}.project-meta{padding:22px 20px;gap:22px 30px}
  .contact-form{padding:30px 24px}.contact-form h2{font-size:2rem}.field label{font-size:1.0625rem}
  .footer-grid{gap:36px 24px}.site-footer{padding-top:56px}.site-footer .footer-cookie p{font-size:1rem}
 }
 @media(max-width:420px){.hero-actions{flex-direction:column}.hero h1{font-size:2.6rem}.hero-main>img{height:360px}.hero-project{padding:22px}.footer-grid{grid-template-columns:1fr}.contact-form{padding:26px 20px}}
 /* Keep every panel and the before/after labels visible in comparison photos. */
.projects-home .project-tile>img[src*="prima-dopo"],.related-grid .project-tile>img[src*="prima-dopo"],.work-card .image-wrap img[src*="prima-dopo"]{aspect-ratio:auto 1/1;height:auto;object-fit:contain}
/* Whole-word wrapping also applies to dynamic captions and form messages. */
.hero-bottom>a,.breadcrumbs>*{min-width:0;max-width:100%}
.filter-button{max-width:100%;min-width:0;white-space:normal}
.town-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr))}
.section-heading{flex-wrap:wrap}
.section-heading>div{flex:1 1 22rem}
.section-heading>p{flex:1 1 20rem}
.process-grid article>.process-label{font-size:clamp(1.125rem,2vw,1.5rem);line-height:1.5;letter-spacing:.02em}
.message-preview #preview-text{overflow-x:auto}
@media(max-width:900px){.section-heading>div,.section-heading>p{flex:auto}}
@media(max-width:350px){
 .service-card h3{font-size:1.4375rem}
 .content-grid h2{font-size:1.75rem}
 .territory-band h2{font-size:2rem}
}
}

@media print{.topbar,.site-header,.floating-contact,.hero-actions,.filter-bar,.site-footer,.message-preview .button,.preview-edit{display:none}body{color:#000;background:white;font-size:11pt}.container{width:100%}.section{padding:25px 0}.hero,.split-hero,.cta-section,.feature-section{background:white;color:#000}.hero p,.split-hero p,.feature-copy p{color:#333}.gallery-item,.service-card,.work-card{break-inside:avoid}}

/* Keep the home section spacing outside its fragment target. */
@media screen{#impresa{margin-top:clamp(72px,7.5vw,120px);padding-top:0}}
@media screen and (max-width:700px){#impresa{margin-top:64px}}

/* Social link in the footer contact column. */
.site-footer .footer-facebook{display:flex;align-items:center;justify-content:center;width:48px;height:48px;min-height:48px;margin-top:22px;padding:0;border:1px solid #65858c;border-radius:50%;color:#d1e0e5;transition:background-color .2s ease,border-color .2s ease,color .2s ease}
.footer-facebook svg{display:block;flex:none;width:24px;height:24px}
.site-footer .footer-facebook:hover{background:var(--mint);border-color:var(--mint);color:var(--navy-deep)}
.site-footer .footer-facebook:focus-visible{outline:3px solid var(--mint);outline-offset:4px}

/* Website credit, below the footer information. */
.footer-credit{padding-bottom:max(28px,env(safe-area-inset-bottom));text-align:center}
.site-footer .footer-credit p{margin:0;font-size:1rem;line-height:1.8;color:#bfd2d5}
.footer-credit img{display:inline-block;width:12px;height:20px;vertical-align:middle}
.site-footer .footer-email{max-width:100%;text-decoration:underline;text-underline-offset:4px}
.site-footer .footer-credit a{display:inline;min-height:0;margin:0;padding:0;font-size:inherit;line-height:inherit;color:var(--mint);text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.site-footer .footer-credit a:hover{color:#fff}
.site-footer .footer-credit a:focus-visible{outline-color:var(--mint)}
