:root{--navy:#173b4b;--blue:#287a98;--sky:#dceff3;--sand:#f3eadb;--paper:#fffdf8;--coral:#d2694e;--ink:#233b43;--muted:#66777c;--line:#cbd9da;--shadow:0 18px 48px #173b4b1c}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f8f4eb;color:var(--ink);font:16px/1.55 "DM Sans",sans-serif}button,input,select,textarea{font:inherit}a{color:inherit}.port-hero{min-height:670px;background:linear-gradient(90deg,#143846e8 0 42%,#14384630 72%),url("immagini/le-case-del-porto-hero.webp") center/cover;color:#fff;padding:26px max(5vw,24px);position:relative}.port-hero nav{max-width:1380px;margin:auto;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;flex-direction:column;text-decoration:none}.brand b{font:600 27px Fraunces,serif}.brand span,.hero-copy>span{font-size:11px;text-transform:uppercase;letter-spacing:.17em}.port-hero nav>a:last-child{text-decoration:none;border:1px solid #ffffff99;padding:11px 18px}.hero-copy{max-width:670px;margin:115px max(0px,calc((100% - 1380px)/2))}.hero-copy h1,.quote-intro h2,.case-step h2,.thanks h2{font:600 clamp(42px,5vw,74px)/1.02 Fraunces,serif;margin:15px 0}.hero-copy p{max-width:560px;font-size:19px}.hero-strip{position:absolute;left:max(5vw,24px);right:max(5vw,24px);bottom:0;background:#fff;color:var(--navy);display:grid;grid-template-columns:repeat(3,1fr)}.hero-strip span{padding:18px 22px;text-align:center;border-right:1px solid var(--line);font-weight:700;font-size:13px}.hero-strip span:last-child{border:0}main{max-width:1180px;margin:0 auto 80px;padding:0 24px}.quote-intro{display:grid;grid-template-columns:1fr auto;align-items:center;padding:54px 42px;background:var(--paper)}.quote-intro>div>span,.case-step header>span{color:var(--coral);text-transform:uppercase;letter-spacing:.15em;font-size:12px;font-weight:700}.quote-intro h2{font-size:47px;margin:8px 0}.quote-intro p{margin:0;max-width:720px;color:var(--muted)}.principle{background:var(--sky);padding:24px 30px;display:flex;flex-direction:column;margin-left:35px}.principle b{font:600 21px Fraunces,serif}.progress{display:grid;grid-template-columns:repeat(5,1fr);list-style:none;margin:0 0 24px;padding:0;background:var(--navy);color:#b8d2da}.progress li{display:flex;align-items:center;gap:9px;padding:15px;border-right:1px solid #ffffff25}.progress b{display:grid;place-items:center;width:30px;height:30px;border:1px solid #ffffff50;border-radius:50%}.progress .active{background:var(--blue);color:#fff;font-weight:700}.progress .done b{background:#fff;color:var(--navy)}.case-step{display:none;background:var(--paper);padding:54px;border:1px solid var(--line);box-shadow:var(--shadow)}.case-step.active{display:block}.case-step header{max-width:760px;margin-bottom:38px}.case-step h2{font-size:40px;margin:5px 0}.case-step header p{color:var(--muted);margin:0}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.field-grid label{display:flex;flex-direction:column;gap:8px;font-weight:700}.field-grid input,.field-grid select,.field-grid textarea{padding:15px;border:1px solid #aebfc2;background:#fff;color:var(--ink);width:100%}.wide{grid-column:1/-1}.actions{display:flex;justify-content:space-between;gap:12px;margin-top:38px}.actions.end{justify-content:flex-end}.actions.center{justify-content:center}.button{border:1px solid var(--blue);background:#fff;color:var(--navy);padding:14px 24px;font-weight:700;cursor:pointer}.button.primary{background:var(--blue);color:#fff}.button:hover{transform:translateY(-1px)}#message{display:none;background:#fff0e7;color:#7c3725;padding:16px;border-left:4px solid var(--coral);margin-bottom:24px}#message.show{display:block}.units{display:grid;gap:20px}.unit{display:grid;grid-template-columns:260px 1fr 180px;border:1px solid var(--line);background:#fff;cursor:pointer;transition:.2s}.unit input{position:absolute;opacity:0}.unit:hover,.unit:has(input:checked){border-color:var(--blue);box-shadow:var(--shadow);transform:translateY(-2px)}.unit>img{width:100%;height:100%;min-height:240px;object-fit:cover}.unit-copy{padding:25px}.unit-copy>span{color:var(--coral);font-size:12px;text-transform:uppercase;letter-spacing:.1em}.unit h3{font:600 28px Fraunces,serif;margin:6px 0}.unit p{color:var(--muted);margin:0 0 8px}.unit-copy>small{font-weight:700}.unit ul{display:flex;gap:6px 18px;flex-wrap:wrap;padding-left:17px;font-size:13px}.unit-price{background:var(--sky);padding:22px;display:flex;justify-content:center;flex-direction:column;text-align:right}.unit-price b{font:600 29px Fraunces,serif;margin-top:10px}.extras{display:grid;grid-template-columns:1fr 1fr;gap:13px}.extra{display:grid;grid-template-columns:auto 1fr auto;gap:13px;border:1px solid var(--line);padding:18px;cursor:pointer}.extra input{width:19px;height:19px;accent-color:var(--blue)}.extra span{display:flex;flex-direction:column}.extra small{color:var(--muted)}.extra strong{color:var(--blue);font-size:13px}.extra:has(input:checked){background:var(--sky);border-color:var(--blue)}.extra.required{cursor:default}.summary-card{display:grid;grid-template-columns:190px 1fr auto;background:var(--navy);color:#fff;align-items:center}.summary-card img{width:100%;height:180px;object-fit:cover}.summary-card>div{padding:24px}.summary-card span{font-size:12px;text-transform:uppercase;letter-spacing:.08em}.summary-card h3{font:600 30px Fraunces,serif;margin:5px 0}.summary-card p{margin:0}.summary-card>b{font:600 31px Fraunces,serif;padding:25px}.breakdown h4{color:var(--coral);font-size:12px;text-transform:uppercase;letter-spacing:.15em;margin:27px 0 7px}.summary-line{display:flex;justify-content:space-between;gap:20px;padding:13px;border-bottom:1px solid var(--line)}.summary-line>span:first-child{display:flex;flex-direction:column}.summary-line small{color:var(--muted)}.summary-line.total{background:var(--sky);font-size:18px}.deposit{display:flex;justify-content:space-between;gap:25px;background:var(--sand);padding:20px;margin-top:22px}.deposit span{display:flex;flex-direction:column}.deposit small{color:var(--muted)}.deposit strong{text-align:right;font-size:13px}.disclaimer{background:#e9f3f5;padding:20px;margin-top:25px}.check{display:flex;gap:12px;margin-top:21px}.check input{width:19px;height:19px;accent-color:var(--blue)}.check span{display:flex;flex-direction:column}.check small{color:var(--muted)}.thanks{text-align:center;background:var(--sky);padding:35px}.thanks span{color:var(--coral);font-size:12px;text-transform:uppercase;letter-spacing:.15em}.thanks h2{font-size:42px}.request-preview{border:1px solid var(--line);margin-top:24px}.preview-head,.preview-body{padding:24px 28px}.preview-head{background:var(--sand);display:flex;flex-direction:column}.preview-body dl{display:grid;grid-template-columns:170px 1fr;margin:0}.preview-body dt,.preview-body dd{padding:11px;border-bottom:1px solid var(--line);margin:0}.preview-body dt{font-weight:700}footer{background:var(--navy);color:#fff;padding:28px max(5vw,24px);display:flex;justify-content:space-between}
@media(max-width:780px){.port-hero{min-height:690px;background:linear-gradient(0deg,#143846ef 0 52%,#14384620),url("immagini/le-case-del-porto-hero.webp") center/cover}.port-hero nav>a:last-child{display:none}.hero-copy{margin-top:300px}.hero-copy h1{font-size:44px}.hero-strip{left:18px;right:18px;grid-template-columns:1fr}.hero-strip span{padding:10px;border-right:0;border-bottom:1px solid var(--line)}main{padding:0 14px}.quote-intro{grid-template-columns:1fr;padding:34px 22px}.quote-intro h2{font-size:36px}.principle{margin:25px 0 0}.progress li{justify-content:center;padding:11px 5px}.progress span{display:none}.case-step{padding:31px 20px}.case-step h2{font-size:31px}.field-grid,.extras{grid-template-columns:1fr}.unit{grid-template-columns:1fr}.unit>img{height:230px;min-height:0}.unit-price{text-align:left}.summary-card{grid-template-columns:1fr}.summary-card img{height:205px}.summary-card>b{padding-top:0}.deposit{flex-direction:column}.deposit strong{text-align:left}.actions{flex-wrap:wrap}.button{flex:1}.preview-body dl{grid-template-columns:1fr}.preview-body dt{padding-bottom:0;border-bottom:0}.preview-body dd{padding-top:4px}footer{flex-direction:column;gap:5px}}
@media(max-width:430px){.port-hero{padding-left:18px;padding-right:18px}.hero-copy p{font-size:16px}.case-step{padding:27px 16px}.unit-copy{padding:20px}.extra{grid-template-columns:auto 1fr}.extra>strong{grid-column:2}.button{width:100%;flex-basis:100%}.summary-line{padding-left:10px;padding-right:10px}}
@media print{.port-hero,.quote-intro,.progress,.case-step header,.disclaimer,.actions,footer,.case-step:not(.active){display:none!important}body,main,.case-step{background:#fff;margin:0;padding:0;border:0;box-shadow:none}.request-preview{border:0;margin:0}}
.hero-strip{grid-template-columns:repeat(2,1fr)}.quote-intro{display:block}@media(max-width:780px){.hero-strip{grid-template-columns:1fr}}
.date-trigger{width:100%;padding:15px;border:1px solid #aebfc2;background:#fff;color:var(--ink);display:flex;justify-content:space-between;align-items:center;text-align:left;cursor:pointer}.date-trigger:hover,.date-trigger:focus-visible{border-color:var(--blue);box-shadow:0 0 0 3px #287a9820}.date-trigger i{font-style:normal;color:var(--blue)}.date-dialog{width:min(430px,calc(100% - 24px));padding:0;border:0;color:var(--ink);box-shadow:0 24px 70px #0006}.date-dialog::backdrop{background:#082e3dcc}.calendar-head{padding:20px 22px;background:var(--navy);color:#fff;display:flex;justify-content:space-between}.calendar-head small{text-transform:uppercase;letter-spacing:.13em;color:#b8d2da}.calendar-head h3{font:600 29px Fraunces,serif;margin:3px 0}.calendar-head button{width:40px;height:40px;border:1px solid #ffffff70;background:transparent;color:#fff;font-size:25px;cursor:pointer}.calendar-nav{padding:16px 18px 7px;display:grid;grid-template-columns:40px 1fr 40px;align-items:center;text-align:center}.calendar-nav strong{text-transform:capitalize}.calendar-nav button{width:38px;height:38px;border:0;background:var(--sky);color:var(--navy);font-size:24px;cursor:pointer}.weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:0 16px}.weekdays span{text-align:center;color:var(--muted);font-size:12px;font-weight:700;padding:8px 0}.calendar-days button{aspect-ratio:1;border:0;border-radius:50%;background:transparent;color:var(--ink);font-weight:700;cursor:pointer}.calendar-days button:hover:not(:disabled),.calendar-days button.selected{background:var(--blue);color:#fff}.calendar-days button.today:not(.selected){box-shadow:inset 0 0 0 2px var(--coral)}.calendar-days button:disabled{color:#c6cecf;text-decoration:line-through;cursor:not-allowed}.calendar-hint{min-height:40px;margin:13px 20px;color:var(--muted);font-size:13px}.calendar-actions{display:flex;justify-content:flex-end;gap:10px;padding:15px 20px 20px;border-top:1px solid var(--line)}.calendar-actions button{border:1px solid var(--blue);padding:10px 18px;background:#fff;color:var(--blue);font-weight:700;cursor:pointer}.calendar-actions .primary{background:var(--blue);color:#fff}.calendar-actions button:disabled{opacity:.45;cursor:not-allowed}
