@font-face{font-family:Manrope;src:url('/assets/fonts/manrope-latin.woff2') format('woff2');font-style:normal;font-weight:400 800;font-display:swap}
:root{--ink:#22382e;--text:#526158;--yellow:#f6ce55;--yellow-hover:#f3c33a;--paper:#fff;--soft:#f6f7f3;--line:#e4e8e1;--muted:#627067;--radius:12px;--type-body:1rem;--type-small:.875rem;--type-meta:.75rem;--surface-warm:#f7f4e9;--radius-large:24px;--font:'Manrope',Arial,sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--font);font-size:var(--type-body);line-height:1.65;-webkit-font-smoothing:antialiased}
body.modal-open{overflow:hidden}
button,input{font:inherit}
button,a,input,summary{-webkit-tap-highlight-color:transparent}
button{color:inherit;cursor:pointer}
a{color:inherit;text-decoration:none}
button{border:0;background:none}
button:disabled{cursor:wait;opacity:.6}
img,svg{display:block}
img{max-width:100%;height:auto}
[hidden]{display:none!important}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-weight:650;letter-spacing:-.04em;line-height:1.1}
fieldset{border:0;padding:0;margin:0;min-width:0}
legend{padding:0}
input{min-width:0}
input:focus{outline:none}
input,select,textarea{font-size:var(--type-body)}
:focus-visible{outline:3px solid #b88b05;outline-offset:5px}
input:focus-visible{outline:2px solid #ae840b;outline-offset:3px}
.container{width:min(1320px,calc(100% - 112px));margin-inline:auto}
.icon{width:22px;height:22px;flex:none}
.sunmark{width:36px;height:36px;flex:none}
.brand{display:inline-flex;align-items:center;gap:10px;font-size:28px;letter-spacing:-1.5px;font-weight:800;line-height:1}
.brand .sunmark{color:var(--yellow)}
.brand-dot{color:var(--ink)}
.button{min-height:48px;display:inline-flex;justify-content:center;align-items:center;gap:22px;background:var(--yellow);padding:19px 25px;border:1px solid transparent;border-radius:8px;font-size:var(--type-body);line-height:1.4;font-weight:750;transition:background .18s,transform .18s}
.button:hover{background:var(--yellow-hover);transform:translateY(-2px)}
.button .icon{width:21px;height:21px}
.text-button{display:inline-flex;align-items:center;gap:20px;padding:8px 0;border-bottom:1px solid var(--ink);font-weight:700;font-size:var(--type-body);transition:gap .18s}
.text-button:hover{gap:27px}
.eyebrow{font-size:var(--type-meta);letter-spacing:1.8px;line-height:1.5;font-weight:800}
.status-dot{display:inline-block;width:7px;height:7px;background:#d1aa24;border-radius:50%;margin-right:9px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;left:20px;top:-100px;background:var(--yellow);padding:12px 18px;z-index:100}
.skip-link:focus{top:12px}
.site-header{height:100px;background:#fff;position:relative;z-index:10;border-bottom:1px solid #eff1ec}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:100%;gap:22px}
.desktop-nav{display:flex;align-items:center;gap:30px;font-size:var(--type-small);font-weight:650}
.desktop-nav a{display:flex;align-items:center;gap:5px;padding:14px 0}
.desktop-nav .icon{width:14px;height:14px}
.desktop-nav a:hover{color:#8c6b08}
.header-actions{display:flex;align-items:center;gap:23px}
.locale{display:flex;align-items:center;gap:9px;font-size:var(--type-small);white-space:nowrap;font-weight:650}
.italian-flag{width:17px;height:11px;border-radius:2px;background:linear-gradient(90deg,#49866c 0 33.3%,#fff 33.3% 66.6%,#cc706a 66.6%);box-shadow:0 0 0 1px #ddd}
.locale-divider{color:#c5cbc5}
.header-quote{display:flex;align-items:center;gap:12px;background:var(--ink);color:#fff;padding:12px 17px;border-radius:6px;font-size:var(--type-small);font-weight:700;transition:background .18s}
.header-quote:hover{background:#365443}
.header-quote .icon{width:16px;height:16px}
.menu-toggle{display:none;padding:8px}
.mobile-nav{background:#fff;border-bottom:1px solid var(--line);padding:10px 24px 24px;box-shadow:0 14px 20px #22382e0b}
.mobile-nav a{display:flex;justify-content:space-between;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}
h1{font-size:clamp(58px,5.45vw,82px);line-height:1.055;font-weight:650;letter-spacing:-.063em}
.choice-tile input,.timeframe-choice input,.contact-choices input{position:absolute;opacity:0;width:1px;height:1px}
.choice-tile:has(input:focus-visible),.timeframe-choice:has(input:focus-visible),.contact-choices label:has(input:focus-visible){outline:3px solid #b88b05;outline-offset:3px}
input::placeholder{color:#818b83;opacity:1}
.field-error{font-size:var(--type-small);color:#a13929;line-height:1.5;margin-top:7px;min-height:0}
.field-error:empty{display:none}
h2{font-size:43px;line-height:1.13}
.site-footer{padding-top:51px}
.footer-main{display:flex;align-items:flex-start;justify-content:space-between;gap:35px;padding-bottom:40px}
.footer-main .brand{font-size:25px}
.footer-main .sunmark{width:30px;height:30px}
.footer-main p{font-size:var(--type-small);margin-top:14px;color:var(--text)}
.footer-links{display:grid;grid-template-columns:1fr 1fr;column-gap:47px;row-gap:12px;padding-top:6px;font-size:var(--type-small);color:var(--text)}
.footer-links a:hover{text-decoration:underline}
.footer-main>.locale{padding-top:9px}
.footer-bottom{border-top:1px solid var(--line);padding:23px 0;display:flex;align-items:center;justify-content:space-between;gap:25px;font-size:var(--type-meta);color:var(--muted)}
.preview-label{display:flex;align-items:center;gap:6px}
.preview-label>span{width:5px;height:5px;border-radius:50%;background:#c5a03c}
.not-found{padding-block:100px 140px;min-height:60vh}
.not-found h1{margin-top:22px}
.not-found p{margin:25px 0}
/* Dialogs */
dialog{border:0;padding:0;color:var(--ink);background:#fff;border-radius:16px;box-shadow:0 30px 100px #0b201d30;max-height:calc(100dvh - 48px)}
dialog::backdrop{background:#10271ec2;backdrop-filter:blur(5px)}
dialog[open]{animation:dialog-in .22s ease-out}
.quote-dialog{width:min(920px,calc(100% - 40px));overflow:auto}
.quote-dialog[open]{display:grid;grid-template-columns:.83fr 1.17fr}
.quote-sidebar{background:var(--soft);padding:37px 31px;display:flex;flex-direction:column;justify-content:space-between;min-height:640px;gap:32px}
.quote-sidebar .brand{font-size:23px}
.quote-sidebar .sunmark{width:30px;height:30px}
.quote-sidebar .eyebrow{font-size:var(--type-meta);margin-bottom:15px}
.quote-sidebar h2{font-size:30px;font-weight:550}
.quote-sidebar img{width:120%;max-width:none;margin:14px -10%;mix-blend-mode:multiply}
.sidebar-reassurance{display:flex;gap:11px;font-size:var(--type-small);color:var(--text)}
.sidebar-reassurance .icon{background:var(--yellow);padding:3px;border-radius:50%}
.sidebar-footer{font-size:var(--type-meta);letter-spacing:1.5px;color:var(--muted)}
.quote-content{padding:76px 42px 28px;position:relative;min-width:0;display:flex;flex-direction:column}
.dialog-close{min-width:44px;min-height:44px;display:grid;place-items:center;position:absolute;right:16px;top:16px;padding:6px;background:#f4f5ef;border-radius:50%;z-index:1}
.dialog-close .icon{width:18px;height:18px}
.dialog-close:hover{background:#e6e9df}
.step-meta{display:flex;justify-content:space-between;font-size:var(--type-meta);letter-spacing:1.2px;font-weight:750;color:var(--muted)}
.progress-track{display:flex;gap:6px;margin:12px 0 28px}
.progress-track span{height:3px;flex:1;background:#e9ede4;border-radius:2px;transition:background .2s}
.progress-track .active{background:#d6b044}
#quote-form{display:flex;flex-direction:column;flex:1}
.quote-step h2{font-size:32px;outline:none;line-height:1.16;letter-spacing:-1.4px}
.step-description{font-size:var(--type-small);color:var(--muted);margin-top:14px;margin-bottom:26px;line-height:1.8}
.form-field>label,.property-choices>legend{font-size:var(--type-small);font-weight:750;display:block;margin-bottom:10px}
.form-field input{border:1px solid #d9dfd1;border-radius:7px;width:100%;height:49px;padding:13px 15px;font-size:var(--type-body);background:#fff;color:var(--ink)}
.form-field input[aria-invalid=true]{border-color:#a13929}
.dialog-input-icon{position:relative}
.dialog-input-icon>.icon{position:absolute;top:15px;left:13px;width:18px;height:18px;color:var(--muted)}
.dialog-input-icon input{padding-left:40px}
.property-choices{margin-top:23px}
.property-choices>div{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.choice-tile{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:9px;border:1px solid #dfe4d7;border-radius:7px;padding:16px 12px;cursor:pointer;min-height:78px}
.choice-tile>.icon{width:21px;height:21px}
.choice-tile>span:not(.radio-indicator){font-size:var(--type-meta);font-weight:650;width:100%}
.radio-indicator{width:14px;height:14px;border:1px solid #bdc7b6;border-radius:50%;flex:none}
.choice-tile>.radio-indicator{position:absolute;right:12px;top:17px}
.choice-tile:has(input:checked),.timeframe-choice:has(input:checked){border-color:#c6a341;background:#fffcf0}
input:checked~.radio-indicator{border:4px solid var(--ink);background:var(--yellow)}
.quote-actions{display:flex;align-items:center;gap:15px;margin-top:auto;padding-top:27px}
.quote-actions>.button{margin-left:auto;flex:1;padding:15px 20px;font-size:var(--type-small)}
.quote-actions>.button .icon{margin-left:auto}
.back-button{display:flex;align-items:center;gap:6px;font-size:var(--type-meta);padding:10px 0}
.back-button .icon{transform:rotate(180deg);width:15px;height:15px}
.quote-footnote{font-size:var(--type-meta);color:var(--muted);text-align:center;margin-top:12px}
.timeframe-choices{display:grid;gap:9px}
.timeframe-choice{position:relative;border:1px solid #e0e4d9;border-radius:7px;padding:14px 15px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer}
.timeframe-choice strong{display:block;font-size:var(--type-small);font-weight:700}
.timeframe-choice small{font-size:var(--type-meta);color:var(--muted);display:block;margin-top:2px}
.contact-choices{display:flex;background:var(--soft);padding:5px;border-radius:8px;margin-bottom:24px;gap:5px}
.contact-choices label{position:relative;display:flex;justify-content:center;align-items:center;gap:9px;flex:1;padding:10px;border:1px solid transparent;border-radius:5px;cursor:pointer;font-size:var(--type-small);font-weight:700}
.contact-choices label:has(input:checked){background:#fff;border-color:#e2e7db;box-shadow:0 2px 4px #22382e05}
.contact-choices .icon{width:17px;height:17px}
.request-summary{background:var(--soft);border-radius:6px;padding:12px 14px;font-size:var(--type-small);color:var(--text);margin-top:21px;overflow-wrap:anywhere}
.request-summary strong{display:block;color:var(--ink);font-size:var(--type-meta);margin-bottom:3px}
.preview-note{font-size:var(--type-meta);line-height:1.8;color:var(--muted);margin-top:20px}
.preview-note .icon{display:inline-block;vertical-align:middle;width:12px;height:12px;margin-right:4px}
.quote-success{margin:auto 0;text-align:center;outline:0;padding-block:30px}
.success-check{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--yellow);margin:0 auto 26px}
.success-check .icon{width:29px;height:29px}
.quote-success .eyebrow{font-size:var(--type-meta);margin-bottom:14px}
.quote-success h2{font-size:34px}
.quote-success>p:not(.eyebrow){font-size:var(--type-small);color:var(--text);margin-top:19px}
.quote-success .button{margin-top:28px;font-size:var(--type-small)}
.partner-dialog{position:relative;width:min(510px,calc(100% - 40px));padding:44px}
.partner-modal-icon{color:var(--yellow);margin-bottom:25px}
.partner-dialog .eyebrow{font-size:var(--type-meta);margin-bottom:13px}
.partner-dialog h2{font-size:38px}
.partner-dialog>p:not(.eyebrow){font-size:var(--type-small);line-height:1.9;margin-top:20px;color:var(--text)}
.partner-points{list-style:none;padding:0;margin:25px 0;font-size:var(--type-small)}
.partner-points li{display:flex;align-items:center;gap:10px;margin:12px 0}
.partner-points .icon{width:16px;height:16px}
.partner-dialog .button{margin-top:25px;width:100%;padding:15px;font-size:var(--type-small)}
@keyframes dialog-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

@media(max-width:1199px){.container{width:calc(100% - 72px)}.desktop-nav{gap:19px;font-size:var(--type-small)}.header-actions{gap:16px}}
@media(max-width:959px){.desktop-nav{display:none}.menu-toggle{display:block}.header-quote{margin-left:8px}.header-actions{gap:16px}.site-header{height:82px}.desktop-break{display:none}h2{font-size:37px}.footer-links{column-gap:23px}.quote-sidebar{padding:30px 23px}.quote-sidebar h2{font-size:25px}.quote-content{padding:76px 29px 27px}}
@media(max-width:699px){html{scroll-padding-top:25px}.container{width:calc(100% - 40px)}.site-header{height:76px}.brand{font-size:26px}.sunmark{width:32px;height:32px}.header-actions{gap:8px}.header-actions .locale{font-size:var(--type-meta);gap:7px}.locale-divider{display:none}.header-quote{display:none}h2{font-size:36px}.footer-main{display:grid;grid-template-columns:1fr 1fr;gap:31px 18px;padding-bottom:30px}.footer-main>.locale{grid-column:1/-1;padding:0}.footer-links{display:flex;flex-direction:column;gap:10px;font-size:var(--type-meta);align-items:flex-end}.footer-main .brand{font-size:23px}.footer-main .sunmark{width:29px;height:29px}.footer-main p{font-size:var(--type-meta)}.site-footer{padding-top:38px}.footer-bottom{flex-wrap:wrap;gap:13px;font-size:var(--type-meta);padding-block:21px}.preview-label{order:3;flex-basis:100%;font-size:var(--type-meta)}.footer-bottom>a{margin-left:auto}.quote-dialog{width:calc(100% - 24px);border-radius:12px;max-height:calc(100dvh - 24px)}.quote-dialog[open]{display:block}.quote-sidebar{display:none}.quote-content{padding:76px 25px 27px;min-height:600px}.quote-step h2{font-size:33px}.quote-actions{padding-top:27px}.quote-actions>.button{min-height:47px}.quote-dialog .quote-step{min-height:360px}.quote-success{padding:40px 0}.partner-dialog{width:calc(100% - 28px);padding:35px 27px}.partner-dialog h2{font-size:34px}.not-found{padding-block:70px 90px}.not-found h1{font-size:52px}}
@media(max-width:374px){.container{width:calc(100% - 32px)}.quote-content{padding-inline:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Comfortable controls and paragraph text in shared dialogs. */
.step-description,.partner-dialog>p:not(.eyebrow),.quote-success>p:not(.eyebrow){font-size:var(--type-body);line-height:1.7}
.choice-tile>span:not(.radio-indicator),.timeframe-choice strong,.contact-choices label,.quote-actions>.button,.back-button{font-size:var(--type-small)}
.quote-actions>.button,.contact-choices label{min-height:48px}
.dialog-close .icon{margin:auto}
