.dm-completion-page{max-width:960px;margin-inline:auto;padding-inline:clamp(20px,4vw,48px)}
.dm-completion-page>p{max-width:65ch;font-size:clamp(18px,1.3vw,20px);line-height:1.6}
.dm-completion-page h1{font-size:clamp(36px,4vw,56px);line-height:1.12}
.dm-completion-page h2{margin-top:40px;font-size:28px}
/* Regali: one choice, two real places, a clear request and collection sequence. */
body .dm-completion-page.dm-gift-page{max-width:1280px;padding-block:48px 64px}
body .dm-gift-page.is-layout-constrained>:not(p){max-width:none;margin-inline:0!important}
body .dm-completion-page.dm-gift-page>p{max-width:65ch;margin-inline:0!important;font-size:20px;line-height:1.6}
body .dm-gift-page h1{max-width:20ch;font-size:clamp(36px,4.5vw,64px);line-height:1.08}
.dm-gift-choices{margin-block:32px 48px;padding:28px;background:var(--color-ink,#192a27);color:var(--color-paper,#faf9f5)}
.dm-gift-page .dm-gift-choices h2{margin:0 0 20px;font-size:clamp(26px,2.6vw,34px);line-height:1.2;color:inherit}
.dm-gift-choice-links{display:flex;flex-wrap:wrap;gap:12px}
.dm-gift-choice-links a{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:52px;padding:12px 18px;background:var(--color-paper,#faf9f5);color:var(--color-ink,#192a27);font-size:18px;line-height:1.4;text-decoration:none;transition:background .15s ease,color .15s ease}
.dm-gift-choice-links a:hover,.dm-gift-choice-links a[aria-current=true]{background:var(--color-accent,#765636);color:#fff}
.dm-gift-start{margin:12px 0 0}
.dm-gift-start a{display:inline-flex;align-items:center;min-height:44px;color:inherit;font-size:18px;text-underline-offset:.2em}
.dm-gift-experiences{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.dm-gift-experience{display:flex;flex-direction:column;align-items:stretch;min-width:0}
.dm-gift-experience-copy{padding-top:20px}
.dm-gift-page .dm-gift-experience h2{margin:0 0 12px;font-size:clamp(26px,2.6vw,34px);line-height:1.2}
.dm-gift-experience p{font-size:18px;line-height:1.6;margin:0 0 12px;max-width:52ch}
.dm-gift-experience .dm-gift-photo{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:0;margin:0}
.dm-gift-experience .text-link{display:inline-flex;align-items:center;min-height:44px;font-size:18px}
.dm-gift-process{margin-block:56px;padding:32px;background:var(--color-warm,#eeeee6)}
.dm-gift-page .dm-gift-process h2{margin:0 0 24px;font-size:clamp(26px,2.6vw,34px)}
.dm-gift-process ol{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin:0;padding:0}
.dm-gift-process h3{font:600 20px/1.35 var(--font-body,inherit);margin:0 0 12px}
.dm-gift-process p{font-size:18px;line-height:1.6;margin:0}
.dm-gift-request-intro{max-width:800px;margin-top:40px}
.dm-gift-page .dm-gift-request-intro h2{margin:0 0 12px;font-size:clamp(26px,2.6vw,34px)}
.dm-gift-request-intro p{max-width:65ch;font-size:18px;line-height:1.6;margin:0}
.dm-gift-form{max-width:800px;margin-top:24px;padding:28px;background:var(--color-paper,#faf9f5)}
#richiesta-regalo{scroll-margin-top:calc(var(--dm-header-height,84px) + 32px)}
.dm-gift-page>p:last-child a,.dm-gift-form .nf-field-description a{display:inline-flex;align-items:center;min-height:44px}
.dm-gift-discovery{margin-block:12px 0!important}
.dm-gift-discovery a{display:inline-flex;align-items:center;min-height:44px;max-width:100%;font-size:18px;color:inherit;text-underline-offset:.2em;overflow-wrap:anywhere}
.dm-gift-discovery a:focus-visible,.dm-gift-choices a:focus-visible,.dm-gift-experience a:focus-visible{outline:3px solid currentColor;outline-offset:4px}
@media(max-width:767px){body .dm-completion-page.dm-gift-page{padding-block:32px 40px}body .dm-completion-page.dm-gift-page>p{font-size:18px}.dm-gift-choices{padding:20px;margin-block:24px 32px}.dm-gift-choice-links{gap:8px}.dm-gift-choice-links a{flex:1 1 120px;padding:12px;gap:12px}.dm-gift-experiences{grid-template-columns:minmax(0,1fr);gap:32px}.dm-gift-process{padding:24px 20px;margin-block:40px}.dm-gift-process ol{grid-template-columns:minmax(0,1fr);gap:24px}.dm-gift-request-intro{margin-top:32px}.dm-gift-form{padding:20px 12px}}
@media(prefers-reduced-motion:reduce){.dm-gift-choice-links a{transition:none}}
/* Keep Ninja Forms' native controls and associations; reset its floated lists only here. */
#main-content .dm-gift-form :is(.nf-form-fields-required,.nf-field-description,.nf-field-description p,.nf-error-msg){font-size:18px;line-height:1.55;letter-spacing:normal}
#main-content .dm-gift-form .nf-field-container{margin-bottom:24px!important}
#main-content .dm-gift-form .nf-field-label{min-width:0}
#main-content .dm-gift-form .nf-field-element :is(input[type=text],input[type=email],input[type=number],textarea){box-sizing:border-box;width:100%;min-height:48px;border:1px solid #68756f!important;border-radius:8px!important;font-size:18px!important;line-height:1.5}
#main-content .dm-gift-form .nf-field-element textarea{min-height:144px;height:144px;resize:vertical}
#main-content .dm-gift-form .nf-error .nf-field-element :is(input[type=text],input[type=email],input[type=number],textarea){border-color:#8a3026!important}
#main-content .dm-gift-form :is(input,textarea,button,a):focus-visible{outline:3px solid #765636;outline-offset:3px}
#main-content .dm-gift-form :is(input,textarea){scroll-margin-top:calc(var(--dm-header-height,84px) + 24px)}
#main-content .dm-gift-form .list-radio-wrap .nf-field-element ul{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;float:none;width:100%;margin:0!important;padding:0!important;list-style:none!important}
#main-content .dm-gift-form .list-radio-wrap .nf-field-element ul>li{position:relative;display:block;float:none;clear:none;width:auto;min-width:0;margin:0!important;padding:0!important;line-height:1.5;text-indent:0!important}
#main-content .dm-gift-form .list-radio-wrap .nf-field-element ul>li>label{box-sizing:border-box;display:flex;align-items:center;float:none;position:relative;width:100%;min-height:52px;margin:0!important;padding:12px 14px 12px 48px;border:1px solid #68756f;border-radius:8px;font-size:18px;line-height:1.5;font-weight:400;white-space:normal;overflow-wrap:anywhere;cursor:pointer;color:#192a27;background:#faf9f5}
#main-content .dm-gift-form :is(.list-radio-wrap .nf-field-element li>label,.checkbox-wrap .nf-field-label label)::before,
#main-content .dm-gift-form :is(.list-radio-wrap .nf-field-element li>label,.checkbox-wrap .nf-field-label label)::after{display:none!important;content:none!important}
#main-content .dm-gift-form .nf-form-content :is(input[type=radio],input[type=checkbox]){appearance:auto;display:block;opacity:1;float:none;box-sizing:border-box;width:22px!important;min-width:22px;height:22px!important;min-height:22px!important;margin:0!important;padding:0!important;border:0!important;box-shadow:none;accent-color:#19312a;cursor:pointer}
#main-content .dm-gift-form .list-radio-wrap .nf-field-element ul>li>input[type=radio]{position:absolute;inset:50% auto auto 14px;transform:translateY(-50%);z-index:1}
#main-content .dm-gift-form .list-radio-wrap input[type=radio]:checked+label{border-color:#19312a;background:#eeeee6}
#main-content .dm-gift-form .list-radio-wrap input[type=radio]:focus-visible+label{outline:3px solid #765636;outline-offset:3px}
#main-content .dm-gift-form .checkbox-wrap{display:grid;grid-template-columns:22px minmax(0,1fr);gap:0 12px}
#main-content .dm-gift-form .checkbox-wrap .nf-field-label{grid-column:2;grid-row:1;width:100%;margin:0!important;padding:0;text-align:left}
#main-content .dm-gift-form .checkbox-wrap .nf-field-label label{display:flex;align-items:center;min-height:44px;width:100%;margin:0!important;padding:0;line-height:1.5;cursor:pointer}
#main-content .dm-gift-form .checkbox-wrap .nf-field-element{grid-column:1;grid-row:1;align-self:center;width:22px;margin:0;padding:0}
#main-content .dm-gift-form .checkbox-wrap .nf-field-description{grid-column:2;grid-row:2;width:100%;margin:0!important;padding:0}
#main-content .dm-gift-form .checkbox-wrap .nf-field-description p{margin:0}
#main-content .dm-gift-form .checkbox-wrap .nf-field-description a{display:inline-flex;align-items:center;min-height:44px}
#main-content .dm-gift-form .nf-form-content :is(input[type=button],input[type=submit]){min-height:48px;max-width:100%;background:#192a27!important;border-radius:8px;color:#faf9f5!important;font-size:18px;line-height:1.5;white-space:normal;cursor:pointer}
@media(min-width:768px){#main-content .dm-gift-form .list-radio-wrap .nf-field-element ul{grid-template-columns:repeat(2,minmax(0,1fr))}#main-content .dm-gift-form .list-radio-wrap .nf-field-element ul>li:last-child{grid-column:1/-1}#main-content .dm-gift-form .list-radio-wrap .nf-field-element ul>li>label{height:100%}}
.dm-gift-callout{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px 32px;max-width:1280px;margin:40px auto;padding:24px clamp(20px,4vw,48px);border-block:1px solid currentColor;color:#192a27;background:#eeeee6}
.dm-gift-callout p{margin:0;max-width:60ch;font-size:18px}
.dm-gift-callout a{min-height:44px;display:inline-flex;align-items:center;font-size:18px}
.dm-announcements{max-width:1280px;margin:24px auto;padding:20px clamp(20px,4vw,48px);background:#eeeee6;color:#192a27;border-inline-start:3px solid #806345}
.dm-announcements p{font-size:18px;line-height:1.6;max-width:65ch;margin:0}
.dm-announcements p+p{margin-top:16px}
.dm-table-composer [data-dm-table-copy-label]{grid-column:1/-1}
.dm-table-composer textarea{width:100%;font:inherit;min-height:120px}
.dm-table-composer button{min-height:48px;white-space:normal}
.footer-cookie-preferences[hidden]{display:none!important}
@media(max-width:767px){.dm-gift-callout{display:block;margin-block:32px}.dm-gift-callout a{margin-top:8px}.dm-completion-page h2{font-size:24px}}
/* Landscape calendars retain month and weekday context inside the scroll panel.
   Narrow layouts retain their existing flow; there is no new dialog/header height. */
@media(max-height:540px) and (min-width:768px){
 .dm-date-range-dialog .dm-date-range-month h3{position:sticky;top:0;z-index:3;margin-bottom:0;padding-bottom:4px;background:var(--color-paper,#f3f0e8)}
 .dm-date-range-dialog .dm-date-range-month thead{position:sticky;top:var(--dm-calendar-month-heading,30.4px);z-index:2;background:var(--color-paper,#f3f0e8)}
 .dm-date-range-dialog .dm-date-range-month th{background:var(--color-paper,#f3f0e8)}
}
/* W15 · Soggiorni di lavoro. Native content, shared contacts, no extra runtime. */
.dm-work-page .dm-work-guide-20261021 .stay-cover-copy{max-width:1080px}
.dm-work-page .dm-work-guide-20261021 .lede{max-width:43ch;text-wrap:pretty}
.dm-work-page .dm-work-guide-20261021 .work-hero-actions{gap:8px 28px}
.dm-work-page .dm-work-guide-20261021 .work-explore{margin:0}
.dm-work-page .dm-work-guide-20261021 .work-explore a{display:inline-flex;align-items:center;min-height:48px;text-underline-offset:.2em}
.dm-work-page :is(.work-guide-request,.work-guide-contact){grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:48px 80px}
.dm-work-page :is(.work-guide-request,.work-guide-contact)>*{min-width:0}
.dm-work-page :is(.work-guide-request,.work-guide-contact) h2{max-width:15ch;text-wrap:balance}
.dm-work-page :is(.work-guide-request,.work-guide-contact) p{font-size:19px;line-height:1.6;max-width:56ch}
.dm-work-page .work-request-details{list-style:none;padding:0;margin:0 0 24px;display:grid;gap:24px}
.dm-work-page .work-request-details li{padding:0;margin:0;font-size:19px;line-height:1.6}
.dm-work-page .work-request-details strong{display:block;font-weight:600;margin-bottom:2px}
.dm-work-page .work-guide-contact{background:var(--color-paper,#f3f0e8);scroll-margin-top:calc(var(--dm-header-height,84px) + 24px);margin-bottom:64px}
.dm-work-page .work-guide-contact .contact-block{margin-top:24px}
.dm-work-page .work-guide-contact .contact-block a{display:inline-flex;align-items:center;min-height:44px;max-width:100%;overflow-wrap:anywhere;text-underline-offset:.2em}
.dm-work-page .work-guide-contact .contact-phone{font-size:clamp(26px,2.6vw,36px);line-height:1.3;font-weight:600;letter-spacing:normal}
.dm-work-page .work-guide-contact .contact-block p{margin-block:8px}
.dm-work-page :is(.dm-work-guide-20261021,.work-guide-request,.work-guide-contact) a:focus-visible{outline:3px solid var(--color-accent,#765636);outline-offset:4px}
.dm-work-page .dm-work-guide-20261021 a:focus-visible{outline-color:#fff}
@media(max-width:1023px){.dm-work-page :is(.work-guide-request,.work-guide-contact){gap:32px}}
@media(max-width:767px){
 .dm-work-page :is(.work-guide-request,.work-guide-contact){grid-template-columns:minmax(0,1fr);gap:28px;padding-block:40px}
 .dm-work-page :is(.work-guide-request,.work-guide-contact) h2{max-width:18ch}
 .dm-work-page :is(.work-guide-request,.work-guide-contact) p,.dm-work-page .work-request-details li{font-size:18px}
 .dm-work-page .work-guide-contact{margin-bottom:40px}
 .dm-work-page .work-guide-contact .contact-phone{font-size:28px}
}

/* W16: agency information, native lists and a direct group enquiry. */
#main-content .stay-cover.dm-agency-guide-20261021 .stay-cover-copy{max-width:1080px}
#main-content .stay-cover.dm-agency-guide-20261021 .stay-cover-copy>.lede{max-width:48ch;font-size:20px;line-height:1.6;font-weight:500;letter-spacing:normal;text-shadow:none;text-wrap:pretty}
.dm-agency-page .dm-agency-guide-20261021 h1{text-shadow:none}
.dm-agency-page .dm-agency-guide-20261021 .agency-hero-actions{gap:8px 28px}
.dm-agency-page .agency-action{margin:0}
.dm-agency-page .agency-action a{min-height:48px;display:inline-flex;align-items:center;max-width:100%;text-underline-offset:.2em}
.dm-agency-page :is(.agency-guide-facts,.agency-guide-request,.agency-guide-context) h2{text-wrap:balance;max-width:22ch;font-size:clamp(32px,3.4vw,44px);line-height:1.15}
.dm-agency-page .agency-guide-facts h3{font:600 23px/1.35 var(--font-body,inherit);margin:0 0 24px;letter-spacing:normal}
.dm-agency-page :is(.agency-guide-facts,.agency-guide-request,.agency-guide-context) p{font-size:19px;line-height:1.6;max-width:58ch;text-wrap:pretty}
.dm-agency-page .agency-guide-facts>.work-introduction{gap:40px 80px;margin-top:36px;align-items:start}
.dm-agency-page :is(.agency-room-types,.agency-request-details){list-style:none;margin:0 0 24px;padding:0;max-width:56ch}
.dm-agency-page :is(.agency-room-types,.agency-request-details) li{font-size:19px;line-height:1.6;margin:0 0 20px;padding:0}
.dm-agency-page :is(.agency-room-types,.agency-request-details) strong{display:block;font-weight:600}
.dm-agency-page .agency-guide-request{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:48px 80px;align-items:start;background:var(--color-paper,#f3f0e8);scroll-margin-top:calc(var(--dm-header-height,84px) + 24px)}
.dm-agency-page :is(.agency-guide-details,.agency-guide-contact){min-width:0}
.dm-agency-page :is(.agency-guide-facts>.work-introduction,.agency-guide-request,.agency-guide-context)>.wp-block-group{margin-block-start:0}
.dm-agency-page .agency-guide-request h2{margin:0 0 28px}
.dm-agency-page .agency-guide-request .contact-block{margin-top:24px;gap:8px}
.dm-agency-page .agency-guide-request .contact-block :is(p,a){font-size:18px;line-height:1.55}
.dm-agency-page .agency-guide-request .contact-block a{min-height:44px;display:inline-flex;align-items:center}
.dm-agency-page .agency-guide-request .contact-block .contact-phone{font-size:clamp(26px,2.6vw,34px);font-weight:600;letter-spacing:normal}
.dm-agency-page .agency-guide-context{gap:40px 80px}
.dm-agency-page :is(.agency-guide-facts,.agency-guide-context) p a{display:inline-flex;align-items:center;min-height:44px;text-underline-offset:.2em}
.dm-agency-page :is(.dm-agency-guide-20261021,.agency-guide-facts,.agency-guide-request,.agency-guide-context) a:focus-visible{outline:3px solid var(--color-accent,#765636);outline-offset:4px}
.dm-agency-page .dm-agency-guide-20261021 a:focus-visible{outline-color:var(--color-paper,#fff)}
@media(max-width:1023px){.dm-agency-page :is(.agency-guide-request,.agency-guide-context,.agency-guide-facts>.work-introduction){gap:32px}}
@media(max-width:767px){
 #main-content .stay-cover.dm-agency-guide-20261021 .stay-cover-copy>.lede{font-size:18px}
 .dm-agency-page .agency-guide-request{grid-template-columns:minmax(0,1fr);gap:40px}
 .dm-agency-page :is(.agency-guide-facts,.agency-guide-request,.agency-guide-context) p,.dm-agency-page :is(.agency-room-types,.agency-request-details) li{font-size:18px}
 .dm-agency-page .agency-guide-facts h3{font-size:22px}
 .dm-agency-page .agency-guide-request .contact-block .contact-phone{font-size:28px}
}
/* W17: readable stay terms and contextual enquiry links. */
body .dm-conditions-guide-20261022{max-width:1280px;padding-block:64px 80px}
.dm-conditions-guide-20261022 .conditions-opening{max-width:880px;margin-bottom:56px}
.dm-conditions-guide-20261022 .conditions-opening h1{font-size:clamp(36px,4.5vw,64px);line-height:1.06;letter-spacing:-.025em;text-wrap:balance;margin:0 0 24px}
.dm-conditions-guide-20261022:lang(de) .conditions-opening h1{hyphens:auto}
.dm-conditions-guide-20261022 .conditions-opening p{font-size:20px;line-height:1.6;max-width:58ch}
.dm-conditions-guide-20261022 .conditions-layout{display:grid;grid-template-columns:minmax(210px,.7fr) minmax(0,1.6fr);gap:40px 72px;align-items:start}
.dm-conditions-guide-20261022 .conditions-layout>.wp-block-group{margin-block-start:0;min-width:0}
.dm-conditions-guide-20261022 .conditions-index{padding:24px;background:var(--color-paper,#efeee7)}
.dm-conditions-guide-20261022 .conditions-index h2{font:600 20px/1.4 var(--font-body,inherit);margin:0 0 16px}
.dm-conditions-guide-20261022 .conditions-topic-list{list-style:none;padding:0;margin:0}
.dm-conditions-guide-20261022 .conditions-topic-list li{margin:0}
.dm-conditions-guide-20261022 a{display:inline-flex;align-items:center;min-height:44px;text-underline-offset:.2em;overflow-wrap:anywhere}
.dm-conditions-guide-20261022 .conditions-topic-list a{font-size:18px;line-height:1.35;padding-block:8px}
.dm-conditions-guide-20261022 .conditions-topic{margin:0 0 48px}
.dm-conditions-guide-20261022 .conditions-topic h2{margin:0 0 16px;font-size:clamp(26px,2.5vw,32px);line-height:1.2;text-wrap:balance;scroll-margin-top:calc(var(--dm-header-height,84px) + 40px)}
.dm-conditions-guide-20261022 .conditions-topic p{max-width:58ch;font-size:19px;line-height:1.65;margin:0 0 16px}
.dm-conditions-guide-20261022 .conditions-confirmation{padding:28px;background:var(--color-ink,#192a27);color:var(--color-paper,#efeee7)}
.dm-conditions-guide-20261022 .conditions-confirmation :is(h2,p){color:inherit}
.dm-conditions-guide-20261022 .conditions-confirmation p{margin-bottom:0}
.dm-conditions-guide-20261022 .conditions-contact{margin-bottom:0;padding-top:8px}
.dm-conditions-guide-20261022 .conditions-request-link{margin-top:20px}
.dm-conditions-guide-20261022 a:focus-visible,.dm-conditions-form-links a:focus-visible{outline:3px solid var(--color-accent,#765636);outline-offset:4px}
.dm-conditions-form-links{margin-block:16px 24px}
.dm-conditions-form-links p{display:flex;flex-wrap:wrap;gap:8px 24px;margin:0}
.dm-conditions-form-links a{display:inline-flex;align-items:center;min-height:44px;gap:6px;font-size:17px;line-height:1.4;text-underline-offset:.2em}
/* The theme sizes every #main-content paragraph, so this note needs the same anchor to stay secondary. */
#main-content .dm-conditions-form-links .dm-conditions-hint{font-size:16px;color:#4f5955}
/* The step's instruction is read first: the page's text size instead of the form's 18px, as specific as that rule and later. */
#main-content .request-desk p.request-intro{font-size:var(--dm-text);font-weight:500}
@media(max-width:767px){body .dm-conditions-guide-20261022{padding-block:40px 56px}.dm-conditions-guide-20261022 .conditions-opening{margin-bottom:32px}.dm-conditions-guide-20261022 .conditions-layout{grid-template-columns:minmax(0,1fr);gap:32px}.dm-conditions-guide-20261022 .conditions-index{padding:0}.dm-conditions-guide-20261022 .conditions-confirmation{padding:24px}.dm-conditions-guide-20261022 .conditions-topic p,.dm-conditions-guide-20261022 .conditions-opening p{font-size:18px}.dm-conditions-guide-20261022 .conditions-topic{margin-bottom:36px}}
/* W18: the celebration story remains distinct from the confirmed programme. */
#main-content .stay-cover.dm-party-guide-20261022 .stay-cover-copy{max-width:1080px}
#main-content .stay-cover.dm-party-guide-20261022 h1{font-size:clamp(40px,6vw,80px);line-height:1.03;text-shadow:none}
#main-content .stay-cover.dm-party-guide-20261022 .lede{max-width:42ch;font-size:20px;line-height:1.6;font-weight:500;letter-spacing:normal;text-shadow:none}
.dm-party-guide-20261022 .party-action{margin-block:28px 0}
.dm-party-guide-20261022 .party-action a{min-height:48px;display:inline-flex;align-items:center}
.dm-party-guide-20261022 a:focus-visible{outline:3px solid var(--color-paper,#efeee7);outline-offset:4px}
body :is(.party-story,.party-programme,.party-contact){display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:40px 80px;padding-block:64px;scroll-margin-top:calc(var(--dm-header-height,84px) + 32px)}
:is(.party-story,.party-programme,.party-contact)>*{min-width:0;margin-block-start:0}
:is(.party-story,.party-programme,.party-contact) h2{font-size:clamp(32px,3.4vw,48px);line-height:1.15;max-width:18ch;text-wrap:balance;margin:0}
:is(.party-story,.party-programme,.party-contact) p{max-width:55ch;font-size:19px;line-height:1.65;margin:0 0 20px}
:is(.party-story,.party-programme,.party-contact) p:last-child{margin-bottom:0}
.party-programme{background:var(--color-ink,#192a27);color:var(--color-paper,#efeee7)}
.party-programme :is(h2,h3,p,a){color:inherit}
.party-programme .party-programme-status{font-weight:600;font-size:22px;line-height:1.4}
.party-programme .events-list{margin:0}
.party-programme .event-row{grid-template-columns:minmax(0,1fr);gap:20px;margin:0;padding:0;border:0}
.party-programme .event-row .event-picture{grid-row:auto;grid-column:auto;margin:0}
.party-programme .event-row .event-photo{max-height:480px;object-fit:contain}
.party-programme .event-copy h3{font-size:30px;line-height:1.2}
.party-programme .event-date span{display:block}
.party-programme .event-details{grid-column:auto}
.party-programme :is(a,summary){min-height:44px}
.party-programme a{display:inline-flex;align-items:center}
.party-programme summary{display:list-item;padding-block:8px;cursor:pointer}
.party-programme .event-confirmation{font-size:16px;line-height:1.6}
.party-programme .event-details[open] summary{margin-bottom:20px}
.party-programme .event-details :is(p,li){font-size:18px;line-height:1.6}
.party-programme a:focus-visible,.party-programme summary:focus-visible{outline:3px solid var(--color-paper,#efeee7);outline-offset:4px}
.party-contact .dm-whatsapp{min-height:48px;display:inline-flex;align-items:center;gap:8px;font-size:20px;text-underline-offset:.2em;margin-bottom:20px}
.party-contact p:last-child{display:flex;flex-wrap:wrap;gap:4px 12px}
.party-contact p:last-child a{display:inline-flex;align-items:center;min-height:44px;font-size:18px;text-underline-offset:.2em}
.party-contact a:focus-visible{outline:3px solid var(--color-accent,#765636);outline-offset:4px}
@media(max-width:1023px){body :is(.party-story,.party-programme,.party-contact){gap:32px}}
@media(max-width:767px){
 #main-content .stay-cover.dm-party-guide-20261022 h1{font-size:clamp(32px,9.6vw,40px)}
 #main-content .stay-cover.dm-party-guide-20261022 .lede{font-size:18px}
 body :is(.party-story,.party-programme,.party-contact){grid-template-columns:minmax(0,1fr);gap:24px;padding-block:40px}
 :is(.party-story,.party-programme,.party-contact) p{font-size:18px}
 .party-programme .party-programme-status{font-size:20px}
}
/* «↗» stays for other sites and new tabs. Where it was the only sign of a same-site link (gift choices,
   route titles, Home room cards) a chevron drawn in the text colour takes its place. */
.dm-link-sign{display:inline-block;flex:none;align-self:center;width:.42em;height:.42em;margin-left:.5em;margin-right:2px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);vertical-align:.1em}
/* The language picker opens with a chevron drawn on the text line, not the «⌄» glyph that read as a low «v».
   The theme's gap already separates it from the language code. */
.language-picker .dm-select-sign{display:inline-block;width:.5em;height:.5em}
.language-picker .dm-select-sign::after{content:'';display:block;width:100%;height:100%;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-30%) rotate(45deg)}
/* Every dish repeats this label: a normal weight stops it competing with the dish, and the list keeps the size and colour
   decided for it. As specific as the theme's rule and loaded later. */
.catalog-allergens>span{font-weight:400}
:is(h1,h2,h3){text-wrap:balance}
/* Four titles took four lines on a phone, one of them splitting «eingeschränkter» in two. Each gets a size measured to fit
   three lines; every other title keeps its size. 18382 is the accessible room in German. */
@media(max-width:767px){
 .dm-osteria-page:lang(de) .cinema-osteria .osteria-glass h1{font-size:clamp(30px,13vw - 12px,64px)}
 .postid-18382 h1.wp-block-post-title{font-size:min(40px,9vw)}
}
@media(max-width:374px){.dm-osteria-page:lang(en) .cinema-osteria .osteria-glass h1{font-size:calc(15vw - 15px)}}
@media(max-width:335px){.dm-mountain-page:lang(fr) .mountain-guide-copy h1{font-size:45px}}
/* Reading down on a narrow screen the header steps aside (site.js). 64 px beyond its height take its shadow out of the window too.
   It takes no touches while away and stays in the Tab order: focus brings it back. */
@media(max-width:1023px){
 body .wp-site-blocks>header.wp-block-template-part{transition:transform .22s ease}
 body.dm-header-away .wp-site-blocks>header.wp-block-template-part{transform:translateY(calc(-100% - 64px));pointer-events:none}
}
/* The home bar, with both labels on two lines, was 69 px: 10.8% of a 320x640 window. 64 px keep both buttons at 48. */
@media(max-width:700px){
 body.home.dm-home-actions-away .mobile-dual{padding-block:7px calc(7px + env(safe-area-inset-bottom))}
 body.home .mobile-dual a{padding-block:4px}
}
/* One style for the line above a cover title (chosen on 3/11/2026): written in the content as it is, set in capitals here.
   Events keeps its sentence and the mountain guide its place line, which stands under the title. */
#main-content :is(.scene-copy,.stay-cover-copy,.cinema-copy,.bar-cover-copy,.arrival-copy,.menu-cover-copy,.request-portrait-copy)>p:has(+h1){font-size:13px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;line-height:1.4}
@media(min-width:768px){#main-content :is(.scene-copy,.stay-cover-copy,.cinema-copy,.bar-cover-copy,.arrival-copy,.menu-cover-copy,.request-portrait-copy)>p:has(+h1){font-size:14px}}
/* Osteria cover: the secondary links share one size (Hours was 21.44px beside 18px on a computer) and the arrow of the
   WhatsApp link stands out of the flow, so it takes no underline of its own beside the text's. */
#main-content .osteria-secondary-actions a{font-size:18px;line-height:1.4}
#main-content .osteria-secondary-actions .dm-whatsapp{position:relative;padding-right:1.15em}
#main-content .osteria-secondary-actions .dm-whatsapp>span{position:absolute;right:0}
/* No invitation to book on Booking.com (owner, 11/11/2026): on Prenotazioni only the guests' rating there, as plain text after
   the footer's links, in small type. Reviews from Booking.com stay as they are.
   «body .footer-inner :is(p, a…)» sets every footer line to 18px at (0,2,2): this needs (0,3,1). */
body .footer-inner .footer-content>.booking-alternative{margin:32px 0 0;font-size:14px;line-height:1.5}
/* One leading action per cover (owner's choice, 3/11/2026). Home: «Scopri l'Osteria» is a link beside the room request; the
   photo switch stays. Osteria: the table leads, the menu and WhatsApp follow as links; since 13/11/2026, by the owner's
   choice, the hours too, between the two. */
/* The theme styles the link as a button up to .home #main-content .scene-home …: the same reach here, later, wins, with the
   Osteria photo too (measured: there the room request already stayed gold). */
.home #main-content .scene-home .scene-copy .visit-actions{align-items:center}
.home #main-content .scene-home .scene-copy .visit-actions .visit-table{display:inline-flex;align-items:center;min-height:44px;padding:0 4px;background:none;border:0;box-shadow:none;color:var(--color-paper);font-weight:400;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.home #main-content .scene-home .scene-copy .visit-actions .visit-table:hover{background:none;color:var(--color-paper);text-decoration-thickness:2px}#main-content .osteria-secondary-actions .osteria-menu-action{display:inline-flex;align-items:center;min-height:44px}
/* Events and Information open with an action (page-presentation.php). */
#main-content .events-cover-copy .events-cover-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:28px}
#main-content .events-cover-copy .events-private-link{display:inline-flex;align-items:center;min-height:44px;color:inherit;text-decoration:underline;text-underline-offset:5px}
#main-content .arrival-copy .info-cover-actions{margin:24px 0}
/* Gifts on a phone: the choice comes right after the opening line, the conditions follow it. */
@media(max-width:767px){
 #main-content .dm-gift-page{display:flex;flex-direction:column}
 #main-content .dm-gift-page>*{order:2}
 #main-content .dm-gift-page>h1,#main-content .dm-gift-page>p:first-of-type,#main-content .dm-gift-page>nav.dm-gift-choices{order:1}
}
/* Events below 360 px: at 42 px «Un’occasione» is wider than its card and broke inside the word (VIS-03, audit 30/10). */
@media(max-width:359px){#main-content .events-private-copy h2{font-size:38px}}
/* Cocktail event card on a phone: the column is too narrow to set the place beside the time, so it keeps its own line as it does above 700 px (VIS-01). */
@media(max-width:700px){#main-content .event-callout>.event-date span{display:block;margin:12px 0 0}}
/* The Home dock follows the other stay pages through 767px. The header can retreat while reading at 701-767px too. */
@media(min-width:701px) and (max-width:767px){
 body.home.dm-home-actions-away .mobile-dual{display:grid;position:fixed;z-index:50;bottom:0;left:0;right:0;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:column;grid-auto-columns:44px;gap:6px;padding:7px 8px calc(7px + env(safe-area-inset-bottom));min-height:64px;box-sizing:border-box;background:var(--color-paper);border-top:1px solid var(--color-rule)}
 body.home .mobile-dual a{display:flex;align-items:center;justify-content:center;font-size:16px;line-height:1.4;min-height:48px;padding:4px 8px;text-align:center;background:var(--color-metal);color:var(--color-ink)}
 body.home .mobile-dual a+a{background:var(--color-night);color:var(--color-paper)}
 body.home .dm-cookie-slot{display:flex;align-items:center;justify-content:center;min-width:44px}
 body.home .dm-cookie-slot button.iubenda-tp-btn.iubenda-cs-preferences-link[data-tp-float]{position:static!important;inset:auto!important;transform:none!important;margin:0!important;width:44px!important;height:48px!important;min-width:44px!important;box-shadow:none!important}
 body.home.dm-home-actions-away{padding-bottom:calc(80px + env(safe-area-inset-bottom))}
}
/* Footer words (F-PIEDE-PAROLE, 11/11/2026): never cut inside a word, never past their column.
   Social lists: two columns only while a cell is at least 7.5rem wide, never more than two. Between about 1024 and 1350 px
   the Home cells were 74-110 px and «Tripadvisor ↗» broke as «Tripadviso / r»; the single wider list of Osteria and Cocktail
   keeps its two columns. The theme sets repeat(2,minmax(0,1fr)) at (0,2,0); this rule is at (0,3,1). */
body .footer-inner .home-footer-social .social-links{grid-template-columns:repeat(auto-fit,minmax(min(100%,max(7.5rem,calc(50% - 12px))),1fr))}
/* On a phone the two link columns wrap when their longest words cannot sit side by side: in German, where the browser has
   no hyphenation dictionary, «Aufenthaltsbedingungen» ran 33 px past the screen at 320 px. Where it hyphenates, and in the
   other languages, the two columns stay as they were. The theme sets the grid at (0,1,0). */
@media(max-width:767px){
 body .footer-inner .footer-bottom{display:flex;flex-wrap:wrap}
 body .footer-inner .footer-bottom>.footer-links{flex:1 1 0;min-width:min-content}
 body .footer-inner .footer-bottom>.footer-privacy{flex-basis:100%}
}
/* Lot A of the four teams' review (13/11/2026): small repairs that change no approved choice. Each rule was measured on
   the served pages before and after; scripts/retouches-a-contracts.cjs keeps them. */
/* WEB-A-5 · In the three narrower boxes a portrait film kept the theme's 360x640 px and its 5% left offset: a green band
   on the left, and in the Osteria the film cut by 56 px on the right. Film and poster now fill their box. Theme: (0,2,1). */
.dm-rooms-page .rooms-film .quiet-film :is(video,.quiet-film-poster),.dm-room-detail-page .room-film .quiet-film :is(video,.quiet-film-poster),.dm-osteria-page .osteria-introduction .quiet-film :is(video,.quiet-film-poster){left:0;width:100%;height:100%}
/* WEB-V-1 · The old carousel's 450 px height for the first photograph still reached the owner's gallery: the first frame
   was 636x450 inside a 636x848 cell. Theme: (0,2,2). */
.social-photo-sequence.owner-osteria-gallery>div:first-child img{height:auto}
/* UI-A-10 · Where the golden bar already carries the request on a phone, the older green link under the footer is not
   shown. The theme hides it page by page and four kinds of page were left out (Accessibility, Stay terms, itineraries,
   not found). Two rules, so that a browser without :has() still reads the first. */
.dm-dock-page .mobile-cta{display:none}
body:has(.rooms-mobile-dock) .mobile-cta{display:none}
/* UI-B-3 · Keyboard focus that could not be seen on dark ground: ink on ink in the winter stay link of Eventi, bronze on
   green (2.4:1) on the map's commands and on the «Ingrandisci» buttons of the Osteria. The two rings the site already
   uses on its bars: paper inside, ink outside, readable on dark and on a photograph. The map's credits are named apart:
   location-map.css gives them bronze at (0,3,1) and loads after this sheet. */
body :is(.dm-discovery-contact a,.dm-location-map :is(a,button),.dm-location-map .dm-map-credit a,.social-atmosphere .photo-expand):focus-visible{outline:3px solid var(--color-paper,#efeee7);outline-offset:3px;box-shadow:0 0 0 6px var(--color-ink,#192a27)}
/* UI-B-2 · On dark ground the underline of a link dimmed to bronze (2.3:1) under the pointer. There it turns gold. */
:is(.footer-inner,.kitchen-story,.dm-stay-feature,.stay-cover,.osteria-glass,.social-atmosphere,.menu-cover,.bar-cover,.private-occasions,.events-private-story,.dm-discovery-natale-territorio,.dm-gift-choices,.arrival-cover,.info-contacts) a:hover{text-decoration-color:var(--color-metal,#bd9d72)}
/* UI-B-8 · A wrong field of the room request looked like a right one: it now takes the border of a wrong field of the
   first step and of the gift form (#8a3026), doubled inside so that nothing moves. The theme sets the fields' border colour
   with !important at (1,5,1): this rule needs both, !important and more weight (1,7,1); two lighter versions lost on the
   served page. The required mark was Ninja Forms' own bright red: it takes the red of the messages. */
#main-content .request-desk .field-wrap.nf-error .nf-field-element :is(input:not([type=checkbox]):not([type=radio]),textarea).ninja-forms-field{border-color:#8a3026!important;box-shadow:inset 0 0 0 1px #8a3026}
#main-content :is(.request-desk,.dm-gift-form) .ninja-forms-req-symbol{color:var(--color-error,#a12828)}
/* Lot B of the four teams' review (13/11/2026, owner's choices): the first impression.
   Covers on a short phone. The Osteria's cover was 760 px whatever the screen and the mountain's 640: on a phone with the
   browser's bars (390x664) the leading button was cut by the edge. Their height now follows the screen; from 844 px of
   height up nothing changes (760 and 640 are the ceilings; the top padding reaches its 120 px). A browser without «svh»
   drops the two declarations and keeps the covers of before. The theme's rule for the Osteria weighs (1,2,0) and the
   mountain's sheet, territory.css, is in the editors' fingerprint: both are corrected here.
   Only on a phone held upright (min-height:541px): held sideways the Osteria keeps the theme's own rule
   (readability.css, max-height:540px) and the mountain its 40rem. Each block has the width of the rule it corrects:
   767 px for the Osteria, 639 px for the mountain (from 640 px territory.css gives 42rem and 9rem, left as they are). */
@media(max-width:767px) and (min-height:541px){
 html body.dm-osteria-page #main-content .cinema-osteria{min-height:min(760px,calc(100svh - 84px));padding-top:clamp(72px,14.3svh,120px)}
}
@media(max-width:639px) and (min-height:541px){
 html body #main-content .mountain-guide-opening.mountain-guide-opening{min-height:min(40rem,calc(100svh - 92px))}
 html body #main-content .mountain-guide-opening .mountain-guide-copy{padding-top:min(8rem,max(72px,calc(100svh - 716px)))}
}
/* Lot D of the four teams' review (13/11/2026, owner's choice on the board of the 17 buttons that changed): one dress
   for the leading invitation, gold with green text on every page, as in the header and on the covers. The theme's base
   rule says it now (site.css: it was bronze with ivory text, 116 buttons on 28 of the 36 captured pages). The two ivory
   buttons of the mountain pages are dressed by territory.css, which is in the editors' fingerprint: they are corrected
   here, with the hover the covers already have. The green fill stays for the sending of a form. */
#main-content :is(.mountain-guide-copy,.guide-stay) .wp-block-button__link{background:var(--color-metal,#bd9d72);border-color:var(--color-metal,#bd9d72);color:var(--color-ink,#192a27)}
#main-content :is(.mountain-guide-copy,.guide-stay) .wp-block-button__link:hover{background:var(--color-paper,#efeee7);border-color:var(--color-paper,#efeee7);color:var(--color-ink,#192a27)}
/* On the dark cover of Eventi and of Informazioni the common hover (dark green) had the colour of the ground and the
   button disappeared under the pointer, before this lot too: there the hover is the ivory of the other covers. */
#main-content :is(.events-cover-actions,.arrival-copy) :is(.button,.wp-block-button__link):hover{background:var(--color-paper,#efeee7);border-color:var(--color-paper,#efeee7);color:var(--color-ink,#192a27)}
/* Lot D, movement (13/11/2026). The panels that appeared at once arrive with one short entrance: 220 ms, opacity and a
   rise of 8 px, on the curve the covers already use. They are the compact menu, the language list, a section of the menu
   card that the guest opens (dm-moved, set by site.js: the sections open at load stay still), the calendar, the enlarged
   photograph, the second and third step of the request. «translate» is animated and not «transform», so a panel placed
   with a transform keeps its place. With «reduce motion» the theme switches every animation off (site.css). */
@keyframes dm-enter{from{opacity:0;translate:0 8px}}
@keyframes dm-veil{from{opacity:0}}
.wp-site-blocks>header .language-picker[open]>.language-options,
#main-content .catalog-section.dm-moved>.catalog-dishes:not([hidden]),
dialog.dm-date-range-dialog[open],
dialog.photo-viewer[open],
#main-content .dm-availability[data-step="2"] .dm-av-result,
#main-content .request-desk:has(.dm-availability[data-step="3"]) .request-form{animation:dm-enter .22s var(--ease-out,ease-out)}
dialog.dm-date-range-dialog[open]::backdrop,dialog.photo-viewer[open]::backdrop{animation:dm-veil .22s ease-out}
/* The compact menu (below 1240 px): the same entrance, and a veil over the page while it is open, under the header
   (z-index 40). A touch on the veil closes the menu, as every touch outside it already did. */
@media(max-width:1239px){
 html.dm-nav-ready body .wp-site-blocks>header.wp-block-template-part #primary-nav.is-open{animation:dm-enter .22s var(--ease-out,ease-out)}
 body:has(.wp-site-blocks>header #primary-nav.is-open)::after{content:"";position:fixed;inset:0;z-index:39;background:rgb(10 16 15/.35);animation:dm-veil .22s ease-out}
}
/* The search of availability: while it lasts a thread runs under the status line (the button is already dimmed and says
   «Verifica in corso…»; after four seconds the line says the search is still going, availability.js). Without movement
   the thread is not drawn: the words remain. */
@keyframes dm-thread{from{background-position:-60% 0,0 0}to{background-position:160% 0,0 0}}
#main-content .dm-availability[aria-busy=true] .dm-av-status::after{content:"";display:block;width:min(240px,100%);height:2px;margin-top:10px;background:linear-gradient(90deg,transparent,var(--color-accent,#765636),transparent) no-repeat,linear-gradient(var(--color-rule,#d9d7cc),var(--color-rule,#d9d7cc));background-size:40% 100%,100% 100%;animation:dm-thread 1.2s linear infinite}
@media(prefers-reduced-motion:reduce){#main-content .dm-availability[aria-busy=true] .dm-av-status::after{display:none}}
/* The lit façade in the second section of the Home, between the text and the staircase film (13/11/2026, owner's choice
   «B · Facciata e film»; page-presentation.php adds the figure and the two classes). From 1280 px three columns as in
   the approved prototype: the text, the façade up to 420 px, the film up to 220 px; from 1024 px the same three, smaller
   (360 and 190 px), so the text keeps a column of its own. From 700 to 1023 px the text stays above and the two stand
   side by side at one height (1600/1502 against 9/16: 1.894 to 1). Below 700 px one column, as before: the façade
   follows the text and the film keeps its own rules. Without the film the façade stands alone, up to 520 px. */
.home-hotel-intro .home-facade{margin:28px auto 0;max-width:640px}
.home-hotel-intro .home-facade img{display:block;width:100%;height:auto;aspect-ratio:1600/1502;object-fit:cover;border-radius:4px}
@media(max-width:480px){.home-hotel-intro .home-facade{max-width:none}.home-hotel-intro .home-facade img{border-radius:0}}
@media(min-width:700px) and (max-width:1023px){
.home-hotel-intro.has-facade.keeps-film{display:grid;grid-template-columns:minmax(0,1.894fr) minmax(0,1fr);gap:28px 32px;align-items:start}
.home-hotel-intro.has-facade.keeps-film .signature-introduction{grid-column:1/-1}
.home-hotel-intro.has-facade.keeps-film .home-facade,.home-hotel-intro.has-facade.keeps-film .quiet-film.is-compact{margin:0;max-width:none}
}
@media(min-width:1024px){
.home-hotel-intro.has-facade{grid-template-columns:minmax(0,1fr) minmax(0,520px)}
.home-hotel-intro.has-facade.keeps-film{grid-template-columns:minmax(0,1fr) minmax(0,360px) minmax(0,190px);gap:32px}
.home-hotel-intro .home-facade{margin:0;max-width:none}
.home-hotel-intro.has-facade.keeps-film .quiet-film.is-compact{max-width:190px}
}
@media(min-width:1280px){
.home-hotel-intro.has-facade.keeps-film{grid-template-columns:minmax(0,1fr) minmax(0,420px) minmax(0,220px);gap:48px}
.home-hotel-intro.has-facade.keeps-film .quiet-film.is-compact{max-width:220px}
}
/* The guests' words: the line under the title («Estratti positivi selezionati») was taken out on 13/11/2026 at the
   owner's request. It also kept the excerpts away from the title: without it they stood 12 px below. Now 32 px (this
   margin and the title's own 12 px are one, the larger). */
.dm-guest-reviews h2+.dm-review-grid{margin-top:32px}
/* ── Column, titles and the phone (14/11/2026) ────────────────────────────────────────────────────────────────────────
   The owner's choices on the six boards of 13–14/11. Every rule names its page and #main-content (or the header), so it
   wins over the theme's own rules without «!important»; what the browser computes is measured on the bench, not here.

   1. The Home in one column. Three sections stood outside the column of the others (1280 px): «Hotel e Osteria» was 1200
      wide, «La luce del Natale» and «Una serata in più» 1440. On a 1440 px screen their text began at 192, 72 and 72 px,
      the others at 152. Up to 1024 px every section already fills the window. From 1024 px the season's box takes the
      gutter of the other sections (72 px at 1440, 80 at 1920): with its own 5vw, capped at 72, it began 8 px early at 1920. */
body.home #main-content :is(.home-hotel-intro,.dm-stay-feature,.events-preview){max-width:1280px;margin-left:auto;margin-right:auto}
@media(min-width:1024px){body.home #main-content .dm-stay-feature .dm-stay-copy{padding-left:var(--gutter);padding-right:var(--gutter)}}

/* 2. Section titles (h2) of the Home and of the Osteria on four steps, and one letter-spacing. Before: six sizes on the
      Home and seven on the Osteria (from 36 to 68 px at 1440), three letter-spacings. Each step is a straight line from a
      390 px window to a 1440 px one and stops there; under 390 it goes on down to 320.
        large   40 → 64 px   a title that opens a chapter on a band of its own
        title   36 → 56 px   a section
        narrow  32 → 48 px   a long title in a narrow column, beside photographs
        small   28 → 40 px   a section of service: reviews, the menu's heading, Instagram
      Covers (h1), the titles of cards (h3) and the reading text are not touched. Other pages keep their sizes until each
      has its own comparison. A section title of the two pages that no rule below names is a «title»: a section that
      appears with the season or with the language (the mountain on the Home in English, German and French, where the
      Italian one has the season's box) does not fall out of the scale. */
:root{--dm-title-large:clamp(38.4px,calc(31.086px + 2.2857vw),64px);--dm-title:clamp(34.667px,calc(28.571px + 1.9048vw),56px);--dm-title-narrow:clamp(30.933px,calc(26.057px + 1.5238vw),48px);--dm-title-small:clamp(27.2px,calc(23.543px + 1.1429vw),40px)}
body.home #main-content h2,body.dm-osteria-page #main-content h2{font-size:var(--dm-title);letter-spacing:-.025em}
body.home #main-content .dm-stay-feature h2,body.dm-osteria-page #main-content .social-gallery-intro h2{font-size:var(--dm-title-large)}
body.home #main-content :is(.signature-rooms,.events-preview,.signature-finale) h2,body.dm-osteria-page #main-content :is(.osteria-introduction,.dm-cuisine-gallery,.preparation-story,.local-evenings,.dm-hours-section,.restaurant-contact,.closing) h2{font-size:var(--dm-title)}
body.home #main-content :is(.home-hotel-intro,.kitchen-story,.signature-mountain) h2{font-size:var(--dm-title-narrow)}
body.home #main-content .home-reviews h2,body.dm-osteria-page #main-content :is(.catalog-heading,.dm-guest-reviews,.instagram-window) h2{font-size:var(--dm-title-small)}

/* 3. The rooms' page on a phone. The three kinds of room were a title and a line that repeated it («Matrimoniale /
      Matrimoniale, anche a uso singolo.»), 330 px that looked like entries to tap and were not: now three lines, the title
      kept for screen readers. The six rooms were six equal cards in a column, 3,266 px (3.9 screens of 844): now one wide
      and two side by side, twice. Every room stays on the page; the two small ones give up the line of description. */
@media(max-width:767px){
body.dm-rooms-page #main-content .room-selection{padding-top:26px;padding-bottom:22px}
body.dm-rooms-page #main-content .room-selection-list{display:block}
body.dm-rooms-page #main-content .room-selection-list>div{padding:13px 0;border-bottom:0}
body.dm-rooms-page #main-content .room-selection-list>div:last-child{border-bottom:1px solid var(--color-rule)}
body.dm-rooms-page #main-content .room-selection-list h2{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
body.dm-rooms-page #main-content .room-selection-list p{font-size:18px;line-height:1.35}
body.dm-rooms-page #main-content .room-atlas .rooms-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 14px}
body.dm-rooms-page #main-content .room-atlas .rooms-grid>.room{min-width:0}
body.dm-rooms-page #main-content .room-atlas .rooms-grid>.room:nth-child(3n+1){grid-column:1/-1}
body.dm-rooms-page #main-content .room-atlas .rooms-grid>.room:not(:nth-child(3n+1))>p{display:none}
body.dm-rooms-page #main-content .room-atlas .rooms-grid>.room:not(:nth-child(3n+1)) .room-label h3{font-size:20px;line-height:1.15}
}

/* 4. The menu on a phone: its categories in a row of labels that scrolls sideways and stays at the top while one reads
      (site.js opens the index at every width and marks the category being read with aria-current). Only where the script
      has run (.is-disclosure): without it the list of categories stays as it was. The row is as wide as the window. While
      the header is in view the row waits under it (the header is 80 px high and stands 10 px from the top). */
@media(max-width:767px){
:is(body.dm-menu-page,body.dm-osteria-page) #main-content .osteria-catalog.is-disclosure .catalog-layout{display:block}
:is(body.dm-menu-page,body.dm-osteria-page) #main-content .osteria-catalog.is-disclosure .catalog-navigation{display:contents}
:is(body.dm-menu-page,body.dm-osteria-page) #main-content .osteria-catalog.is-disclosure .catalog-index{position:sticky;top:0;z-index:30;width:100vw;margin:0 0 16px calc(50% - 50vw);padding:0;background:var(--color-paper);border-bottom:1px solid var(--color-rule);transition:top .22s ease}
body:not(.dm-header-away):is(.dm-menu-page,.dm-osteria-page) #main-content .osteria-catalog.is-disclosure .catalog-index{top:96px}
:is(body.dm-menu-page,body.dm-osteria-page) #main-content .osteria-catalog.is-disclosure .catalog-index>summary{display:none}
:is(body.dm-menu-page,body.dm-osteria-page) #main-content .osteria-catalog.is-disclosure .catalog-index .catalog-nav{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;margin:0;padding:10px 22px}
:is(body.dm-menu-page,body.dm-osteria-page) #main-content .osteria-catalog.is-disclosure .catalog-index .catalog-nav::-webkit-scrollbar{display:none}
:is(body.dm-menu-page,body.dm-osteria-page) #main-content .osteria-catalog.is-disclosure .catalog-index .catalog-nav a{flex:none;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid var(--color-muted);border-radius:999px;background:transparent;color:var(--color-ink);font-size:16px;line-height:1;white-space:nowrap;text-decoration:none}
:is(body.dm-menu-page,body.dm-osteria-page) #main-content .osteria-catalog.is-disclosure .catalog-index .catalog-nav a[aria-current]{border-color:var(--color-night);background:var(--color-night);color:var(--color-paper)}
:is(body.dm-menu-page,body.dm-osteria-page) #main-content .osteria-catalog.is-disclosure .catalog-section{scroll-margin-top:84px}
:is(body.dm-menu-page,body.dm-osteria-page) #main-content .osteria-catalog.is-disclosure .catalog-expand-all{margin-bottom:14px}
}

/* 5. The site's menu on a phone: a sheet as high as the window instead of a list of seven equal entries. Camere, Osteria
      and Menù in the brand's type; the others smaller, two by two; at the foot today's hours, Chiama, WhatsApp and Come
      arrivare (render.php, dm_nav_service). «Menù» and the foot belong to the sheet: from 701 px they are not shown and the
      navigation is the one of before. The sheet is fixed to the window, so the header gives up its blur while the menu is
      open (a blurred ancestor would be the sheet's frame); the brand and the button stay above it. Where :has() is not
      understood the menu stays the panel of before, with the new entries in it.
      Rows: up to nine of entries, a spring, the foot. */
body .wp-site-blocks>header.wp-block-template-part #primary-nav .nav-service{grid-column:1/-1}
body .wp-site-blocks>header.wp-block-template-part #primary-nav .nav-service-links{display:flex;flex-wrap:wrap;justify-content:space-between;gap:0 18px}
body .wp-site-blocks>header.wp-block-template-part #primary-nav .nav-today{margin:12px 0 4px;font-size:16px;line-height:1.4;color:var(--color-muted)}
@media(min-width:701px){body .wp-site-blocks>header.wp-block-template-part #primary-nav :is(.nav-sheet-only,.nav-service){display:none}}
@media(max-width:700px){
@supports selector(:has(*)){
body .wp-site-blocks>header.wp-block-template-part:has(#primary-nav.is-open){-webkit-backdrop-filter:none;backdrop-filter:none}
html.dm-nav-ready body .wp-site-blocks>header.wp-block-template-part #primary-nav.is-open{position:fixed;inset:0;z-index:-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(9,auto) minmax(20px,1fr) auto;gap:0 18px;max-height:none;padding:112px 28px 20px;border:0;border-radius:0;background:var(--color-paper);overscroll-behavior:contain}
html.dm-nav-ready body .wp-site-blocks>header.wp-block-template-part #primary-nav.is-open>a:not(.button){display:flex;align-items:center;min-height:44px;padding:0;font-size:18px}
html.dm-nav-ready body .wp-site-blocks>header.wp-block-template-part #primary-nav.is-open>a.nav-major{grid-column:1/-1;min-height:56px;padding:6px 0;font-family:var(--font-display);font-size:40px;font-weight:500;line-height:1.08;letter-spacing:-.025em}
html.dm-nav-ready body .wp-site-blocks>header.wp-block-template-part #primary-nav.is-open>a.nav-major:not(:has(~a.nav-major)){margin-bottom:10px;padding-bottom:16px;border-bottom:1px solid var(--color-rule)}
html.dm-nav-ready body .wp-site-blocks>header.wp-block-template-part #primary-nav.is-open>.nav-context-action{margin-top:14px}
html.dm-nav-ready body .wp-site-blocks>header.wp-block-template-part #primary-nav.is-open>.nav-service{grid-row:11;align-self:end}
html.dm-nav-ready body .wp-site-blocks>header.wp-block-template-part #primary-nav.is-open .nav-today{margin:0 0 8px;color:var(--color-ink)}
html.dm-nav-ready body .wp-site-blocks>header.wp-block-template-part #primary-nav.is-open .nav-service-links{border-top:1px solid var(--color-rule)}
html.dm-nav-ready body .wp-site-blocks>header.wp-block-template-part #primary-nav.is-open .nav-service-links a{display:flex;align-items:center;min-height:48px;padding:0;font-size:17px;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
}
}
