/* Contact page: clear ways to get in touch, a welcoming address and an easy enquiry. */
.page-contatti .contact-hero{grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr);gap:0;padding:0;margin-block:28px 38px;background:#ede9df;border-radius:20px;overflow:hidden;align-items:stretch}
.page-contatti .contact-hero>div:first-child{display:flex;flex-direction:column;justify-content:center;padding:clamp(30px,4vw,56px);min-width:0}
.page-contatti .contact-hero .eyebrow{font-size:12px;line-height:1.7;margin-bottom:30px}
.page-contatti .contact-hero h1{font-size:clamp(39px,4.3vw,62px);line-height:1.12;letter-spacing:-.045em;margin-bottom:0}
.page-contatti .contact-hero h1 em{color:#99573e}
.page-contatti .contact-hero .contact-hero-lead{font-size:18px;line-height:1.8;max-width:440px;color:#4d6054;margin:25px 0 30px}
.page-contatti .contact-hero .page-hero-actions{display:flex;flex-wrap:wrap;gap:18px 25px;margin:0;align-items:center}
.page-contatti .contact-hero .page-hero-actions .button{font-size:15px;min-height:54px;padding:16px 20px}
.page-contatti .contact-hero .text-link{display:inline-flex;margin:0;font-size:var(--text-link-size);padding:9px 0}
.page-contatti .contact-hero .page-hero-image{height:auto;min-height:520px;max-height:none;margin:0;border-radius:0;position:relative}
.page-contatti .contact-hero .page-hero-image>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:46% center}
.page-contatti .contact-hero .image-caption{left:24px;bottom:24px;right:24px;padding:15px 19px;max-width:calc(100% - 48px);background:#153d33ed;border-left:2px solid #e4bc8f;color:#fffdf6}
.page-contatti .contact-hero .image-caption>span{display:block;font-size:10px;letter-spacing:.12em;margin-bottom:4px}
.page-contatti .contact-hero .image-caption>strong{display:block;font-size:15px;font-weight:500;letter-spacing:0}

.page-contatti .contact-channels{padding-block:58px 28px}
.contact-channel-heading{display:flex;justify-content:space-between;align-items:end;gap:35px;margin-bottom:30px}
.contact-channel-heading .eyebrow{font-size:12px;color:#92543b;margin-bottom:14px;letter-spacing:.1em}
.contact-channel-heading h2{font-size:clamp(29px,3vw,42px);line-height:1.25;font-weight:550}
.contact-channel-heading>p{font-size:17px;line-height:1.8;max-width:390px;margin:0;color:#56665a}
.contact-channel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.contact-channel{position:relative;display:flex;flex-direction:column;min-width:0;padding:28px;border:1px solid #d9dfd3;border-radius:13px;background:#fffefb;transition:transform .2s,border-color .2s,box-shadow .2s}
.contact-channel-icon{display:flex;align-items:center;justify-content:start;height:35px;margin-bottom:24px;color:#a36645}
.contact-channel-icon svg{width:31px;height:31px;flex:none}
.contact-channel-icon img{width:32px;height:32px;object-fit:contain}
.contact-channel-body{display:flex;flex-direction:column;min-width:0}
.contact-channel-label{font-size:13px;letter-spacing:.035em;line-height:1.5;margin-bottom:10px;color:#64715e}
.contact-channel strong{font-size:clamp(17px,1.55vw,22px);font-weight:600;line-height:1.5;letter-spacing:-.025em;overflow-wrap:normal}
.contact-channel-note{font-size:14px;line-height:1.7;color:#637260;margin-top:9px}
.contact-channel-arrow{position:absolute;top:27px;right:28px;font-size:25px;line-height:1.4;color:#42614e}
.contact-channel-whatsapp{background:#173f34;border-color:#173f34;color:#fffdf3}
.contact-channel-whatsapp .contact-channel-label,.contact-channel-whatsapp .contact-channel-note{color:#d3dec9}
.contact-channel-whatsapp .contact-channel-arrow{color:#edc89f}
.contact-channel-email{background:#efede5}
.contact-channel:hover{transform:translateY(-4px);border-color:#aebca4;box-shadow:0 12px 25px #173c320c}
.contact-channel:focus-visible{outline:3px solid #a9613e;outline-offset:4px}

.page-contatti .contact-section{padding-block:36px 84px}
.page-contatti .contact-grid{grid-template-columns:minmax(0,.76fr) minmax(0,1.24fr);align-items:start;gap:32px}
.contact-aside{display:grid;gap:25px;min-width:0}
.contact-address{background:#173f34;color:#f9f6e9;border-radius:16px;padding:34px;position:relative}
.contact-address-icon{display:block;color:#e4bd92;margin-bottom:24px}
.contact-address-icon svg{width:32px;height:32px}
.contact-address>.eyebrow{color:#e4bd92;font-size:11px;line-height:1.8;letter-spacing:.09em;margin-bottom:18px}
.contact-address h2{font-size:clamp(28px,2.5vw,35px);line-height:1.25;letter-spacing:-.035em;margin-bottom:24px;font-weight:550}
.contact-address address{font-style:normal;font-size:17px;line-height:1.85;color:#edf1e4}
.contact-address address strong{font-weight:600;color:#fffdf4}
.page-contatti .contact-directions{background:#f5efdf;color:#173f34;border:0;width:100%;font-size:15px;min-height:54px;padding:15px 17px;margin-top:28px;gap:16px}
.page-contatti .contact-directions:hover{background:#fffaf0}
.contact-address a:focus-visible{outline:3px solid #edc89f;outline-offset:4px}
.contact-identity{border-top:1px solid #d3dfca35;padding-top:24px;margin-top:28px}
.contact-identity h3{font:500 13px/1.7 var(--sans);letter-spacing:.015em;color:#d0ddc7;margin:0 0 12px}
.contact-identity dl{margin:0;font-size:13px;line-height:1.8}
.contact-identity dl>div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;padding-block:3px}
.contact-identity dt{color:#bfcdb6}.contact-identity dd{margin:0;text-align:right;overflow-wrap:normal;color:#f2f3e9;font-variant-numeric:tabular-nums}
.contact-postcard{background:#ecefe5;border:1px solid #dce2d4;border-radius:15px;overflow:hidden}
.contact-postcard>img{width:100%;height:210px;object-fit:cover}
.contact-postcard>div{padding:26px 29px 29px}
.contact-postcard .eyebrow{font-size:11px;margin-bottom:13px;color:#805137;letter-spacing:.08em}
.contact-postcard h3{font-size:26px;line-height:1.3;font-weight:550;margin-bottom:13px}
.page-contatti .contact-postcard p{font-size:16px;line-height:1.8;color:#52654f;margin:0}

/* Give the postcard room to follow the form, stopping at the same bottom edge. */
@media screen and (min-width:901px){
 .contact-aside{align-self:stretch;grid-template-rows:auto minmax(0,1fr);align-items:start}
 .contact-postcard{align-self:start;top:calc(var(--header-height) + var(--section-nav-height) + 24px)}
 .contact-postcard.is-sticky{position:sticky}
}

.page-contatti .contact-form-wrap{background:#fffefb;border:1px solid #dce2d5;border-top:3px solid #b17d57;border-radius:16px;padding:38px;box-shadow:0 12px 38px #123c3406}
.page-contatti .contact-form-wrap>.eyebrow{font-size:12px;line-height:1.8;letter-spacing:.07em;color:#935739;margin-bottom:18px}
.page-contatti .contact-form-wrap>h2{font-size:clamp(29px,2.8vw,40px);line-height:1.23;font-weight:550;letter-spacing:-.035em;margin-bottom:19px}
.page-contatti .contact-form-wrap>.contact-intro{font-size:17px;line-height:1.8;color:#52644f;margin:0 0 18px}
.page-contatti .contact-form-wrap>.contact-required-note{font-size:13px;line-height:1.8;color:#65705f;margin:0 0 30px}
.page-contatti .contact-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px;row-gap:0}
.page-contatti .contact-form>fieldset,.page-contatti .contact-form>.stay-panel,.page-contatti .contact-form>.contact-message{grid-column:1/-1;min-width:0}
/* The outer panel keeps the semantic legend inside a continuous, unbroken border. */
.page-contatti .stay-panel{padding:22px;margin:0 0 30px;border:1px solid #dbe2d1;border-radius:10px;background:#f1f4eb}
.page-contatti .stay-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 17px;padding:0;margin:0;border:0;border-radius:0;background:none}
.page-contatti .stay-fields legend{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;width:100%;margin:0;font-size:17px;padding:0 0 20px;line-height:1.6;gap:8px 16px}
.page-contatti .stay-fields legend span{margin:0;padding:4px 10px;border:1px solid #d4ddcb;border-radius:999px;background:#fffefb;font-size:12px;font-weight:500;line-height:1.5;color:#5d6d53;flex:none}
.page-contatti .stay-fields>div:nth-of-type(3){grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center}
.page-contatti .stay-fields select{min-width:130px;margin-left:auto;padding-inline:13px}
.page-contatti .contact-form .stay-fields input{background:#fffefb;margin-bottom:20px}
.page-contatti .contact-form .stay-summary{font-size:14px;line-height:1.8;margin-top:15px}
.page-contatti .contact-personal-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;padding:0;margin:0 0 4px;border:0}
.contact-personal-fields legend{font-size:17px;font-weight:600;line-height:1.6;padding:0 0 20px;width:100%;margin:0}
.contact-personal-fields>div{min-width:0}
.contact-personal-fields .contact-field-name{grid-column:1/-1}
.page-contatti .contact-form label{font-size:15px;line-height:1.6;margin-bottom:9px;color:#344d3d}
.page-contatti .contact-form input:not([type=checkbox]):not([type=hidden]),.page-contatti .contact-form textarea,.page-contatti .contact-form select{width:100%;max-width:100%;min-width:0;min-height:54px;font-size:17px;line-height:1.5;padding:14px;background:#fafbf7;border:1px solid #cbd6c2;border-radius:7px;color:#173f34}
.page-contatti .contact-form input:not([type=checkbox]):not([type=hidden]),.page-contatti .contact-form textarea{margin-bottom:21px}
.page-contatti .contact-form .stay-fields select{width:auto;min-width:125px}
.page-contatti .contact-form textarea{min-height:160px;resize:vertical}
.page-contatti .contact-form input:focus,.page-contatti .contact-form textarea:focus,.page-contatti .contact-form select:focus{border-color:#6a8657;background:#fffefb;box-shadow:0 0 0 3px #d4e2c950}
.page-contatti .contact-consent{padding-top:6px;margin:0 0 20px}
.page-contatti .contact-consent label,.page-contatti .contact-consent a{font-size:14px;line-height:1.9;color:#56644e}
.page-contatti .contact-consent a{text-underline-offset:3px}
.page-contatti .contact-form input[type=checkbox]{width:19px;height:19px;margin-right:7px;flex:none}
.page-contatti .contact-form button[type=submit]{justify-self:stretch;justify-content:space-between;width:100%;min-height:58px;margin:0;padding:17px 22px;font-size:16px;border-radius:8px}
.page-contatti .contact-form button[type=submit]::after{content:'→';font-size:23px;line-height:1;margin-left:15px}
.page-contatti .contact-form .contact-submit-note{margin:14px 0 0;font-size:13px;line-height:1.8;color:#67755f;text-align:center}
.page-contatti .contact-form .form-status:empty{display:none}
.page-contatti .contact-form .form-status{grid-column:1/-1;margin-bottom:0}
.page-contatti .location{border-block:1px solid #dce3d4}
.page-contatti .location-grid{grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);gap:7%;align-items:center}
.page-contatti .location h2{font-size:clamp(32px,3.1vw,44px);line-height:1.25}
.page-contatti .location .map-placeholder{min-height:550px;max-height:none;border:1px solid #d2ddca}
.page-contatti .faq-section{padding-block:84px}
.page-contatti .video-section{padding-top:10px;padding-bottom:80px}

@media(min-width:1600px){.page-contatti .contact-hero .page-hero-image{min-height:550px}}
@media(max-width:1100px){
 .page-contatti .contact-hero>div:first-child{padding:32px}.page-contatti .contact-hero h1{font-size:43px}
 .page-contatti .contact-hero .page-hero-image{min-height:500px}
 .contact-channel{padding:23px}.contact-channel-arrow{top:22px;right:23px}.contact-channel strong{font-size:18px}
 .page-contatti .contact-grid{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:24px}
 .contact-address{padding:28px}.page-contatti .contact-form-wrap{padding:28px}
 .page-contatti .stay-fields{grid-template-columns:minmax(0,1fr)}
 .page-contatti .contact-personal-fields{grid-template-columns:minmax(0,1fr)}
 .contact-identity dl>div{grid-template-columns:minmax(0,1fr);gap:0;padding-block:5px}.contact-identity dd{text-align:left}
 .contact-postcard>div{padding:25px}.page-contatti .location-grid{gap:5%}
}
@media(max-width:900px){
 .page-contatti .contact-grid{grid-template-columns:minmax(0,1fr)}
 .contact-aside{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:24px}
 .contact-address{padding:30px}.contact-postcard{display:flex;flex-direction:column}
 .contact-postcard>img{height:260px;flex:1;min-height:210px;max-height:330px}
 .page-contatti .contact-form-wrap{padding:36px}.page-contatti .stay-fields,.page-contatti .contact-personal-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
 .page-contatti .contact-hero h1{font-size:38px}.page-contatti .contact-hero .contact-hero-lead{font-size:17px}
 .page-contatti .contact-hero>div:first-child{padding:28px}.page-contatti .contact-hero .page-hero-image{min-height:490px}
 .contact-channel-heading{gap:25px}.contact-channel-heading>p{max-width:300px;font-size:16px}
 .contact-channel{padding:23px 19px}.contact-channel strong{font-size:17px}.contact-channel-note{font-size:13px}
 .contact-channel-email strong{font-size:16px}
}
@media(max-width:760px){
 .page-contatti .contact-hero{grid-template-columns:minmax(0,1fr);margin-block:20px 28px;border-radius:15px}
 .page-contatti .contact-hero>div:first-child{padding:32px}
 .page-contatti .contact-hero h1{font-size:clamp(35px,6.5vw,48px)}
 .page-contatti .contact-hero .page-hero-image{height:330px;min-height:0}
 .page-contatti .contact-hero .contact-hero-lead{max-width:550px;margin-block:21px 25px}
 .page-contatti .contact-hero .eyebrow{margin-bottom:23px}
 .contact-channel-heading{display:block}.contact-channel-heading>p{max-width:520px;margin-top:18px}
 .contact-channel-grid{grid-template-columns:minmax(0,1fr);gap:13px}
 .contact-channel{display:grid;grid-template-columns:36px minmax(0,1fr) 22px;gap:17px;align-items:center;padding:23px}
 .contact-channel-icon{margin:0}.contact-channel-arrow{position:static;font-size:24px}.contact-channel strong{font-size:19px}
 .contact-channel-label{font-size:12px;margin-bottom:6px}.contact-channel-note{font-size:14px;margin-top:6px}
 .page-contatti .contact-channels{padding-top:40px;padding-bottom:22px}
 .page-contatti .contact-section{padding-top:22px;padding-bottom:60px}
 .page-contatti .location-grid{grid-template-columns:minmax(0,1fr);gap:35px}.page-contatti .location .map-placeholder{min-height:450px}
 .page-contatti .faq-section{padding-block:60px}
}
@media(max-width:620px){
 .page-contatti .contact-hero>div:first-child{padding:28px 24px}.page-contatti .contact-hero .eyebrow{font-size:11px;letter-spacing:.025em}
 .page-contatti .contact-hero .page-hero-image{height:290px}
 .page-contatti .contact-hero .image-caption{left:18px;right:18px;bottom:18px;max-width:calc(100% - 36px);padding:12px 15px}
 .page-contatti .contact-hero .image-caption>strong{font-size:14px}
 .page-contatti .contact-hero .page-hero-actions .button{font-size:14px;width:100%;justify-content:space-between}
 .page-contatti .contact-hero .page-hero-actions .text-link{font-size:var(--text-link-size)}
 .contact-channel-heading h2{font-size:31px}.contact-channel-heading .eyebrow{font-size:11px}
 .contact-channel{padding:21px 18px;gap:14px;grid-template-columns:32px minmax(0,1fr) 20px}
 .contact-channel strong{font-size:17px}.contact-channel-email strong{font-size:16px}
 .contact-aside{grid-template-columns:minmax(0,1fr);gap:20px}.contact-address{padding:29px}
 .contact-address h2{font-size:31px}.contact-address address{font-size:17px}
 .contact-identity dl>div{grid-template-columns:auto minmax(0,1fr);gap:13px}.contact-identity dd{text-align:right}
 .contact-postcard{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1fr);align-items:stretch}
 .contact-postcard>img{height:100%;min-height:230px;max-height:none}
 .contact-postcard>div{padding:23px 20px}.contact-postcard h3{font-size:24px}.page-contatti .contact-postcard p{font-size:15px}
 .page-contatti .contact-form-wrap{padding:28px 23px}.page-contatti .contact-form-wrap>h2{font-size:31px}
 .page-contatti .contact-form-wrap>.contact-intro{font-size:16px}
 .page-contatti .contact-form-wrap>.eyebrow{font-size:11px;letter-spacing:.04em}
 .page-contatti .stay-fields,.page-contatti .contact-personal-fields{grid-template-columns:minmax(0,1fr)}
 .page-contatti .stay-panel{padding:20px 16px;margin-bottom:25px}
 .page-contatti .stay-fields legend{font-size:16px;padding-bottom:18px;gap:8px 12px}
 .page-contatti .stay-fields legend span{font-size:11px}
 .page-contatti .contact-form input:not([type=checkbox]):not([type=hidden]),.page-contatti .contact-form textarea,.page-contatti .contact-form select{font-size:16px;padding:13px 11px}
 .page-contatti .contact-form button[type=submit]{font-size:15px;padding-inline:17px}
 .page-contatti .contact-personal-fields legend{font-size:16px}
 .page-contatti .contact-form .contact-submit-note{font-size:13px}
 .page-contatti .video-section{padding-bottom:60px}
}
@media(max-width:370px){
 .page-contatti .contact-hero>div:first-child{padding:25px 20px}.page-contatti .contact-hero h1{font-size:31px}
 .page-contatti .contact-hero .contact-hero-lead{font-size:16px}.page-contatti .contact-hero .page-hero-image{height:240px}
 .contact-channel-heading h2{font-size:28px}.contact-channel{grid-template-columns:28px minmax(0,1fr);padding:20px 16px;gap:12px}
 .contact-channel-icon svg,.contact-channel-icon img{width:27px;height:27px}.contact-channel-arrow{display:none}
 .contact-channel-note{font-size:13px}.contact-channel strong{font-size:16px}.contact-channel-email strong{font-size:15px}
 .contact-address{padding:25px 21px}.contact-address h2{font-size:28px}.contact-address address{font-size:16px}
 .contact-identity dl>div{grid-template-columns:minmax(0,1fr);gap:0}.contact-identity dd{text-align:left}
 .contact-postcard{display:block}.contact-postcard>img{height:190px;min-height:0}.contact-postcard>div{padding:23px}
 .page-contatti .contact-form-wrap{padding:25px 17px}.page-contatti .contact-form-wrap>h2{font-size:28px}
 .page-contatti .stay-panel{padding:18px 12px}
 .page-contatti .contact-form .stay-fields select{min-width:105px}
 .page-contatti .location .map-placeholder{min-height:430px}
}
/* Leave room for the header and persistent controls when editing in landscape. */
@media screen and (max-height:500px){
 .page-contatti .contact-form textarea{height:clamp(110px,35dvh,160px);min-height:110px}
}
@media(prefers-reduced-motion:reduce){.contact-channel{transition:none}.contact-channel:hover{transform:none}}
@media print{
 .page-contatti .contact-hero{display:block;margin:0;padding:0;background:none}.page-contatti .contact-hero>div:first-child{padding:0}.page-contatti .contact-hero .page-hero-image,.page-contatti .contact-hero .page-hero-actions{display:none}
 .contact-channel-grid,.page-contatti .contact-grid,.contact-aside{display:block}.contact-channel{color:#111;background:#fff;border:1px solid #aaa;break-inside:avoid;margin-bottom:10px}.contact-channel *{color:#111!important}
 .contact-address{background:#fff;color:#111;border:1px solid #aaa}.contact-address *{color:#111!important}.contact-postcard{display:none}.page-contatti .contact-form-wrap{margin-top:20px;box-shadow:none}
}
