:root{--ink:#203a36;--accent:#285b50;--paper:#f4f3ed;--line:#dcded5;--muted:#64716c;font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0}body.musher{--ink:#263749;--accent:#365a79;--paper:#f2f4f6;--line:#d7dfe6;--muted:#637384}header{padding:24px max(24px,calc((100% - 1160px)/2));display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line);gap:16px}header a{font-size:22px;font-weight:750;text-decoration:none}header span{font-size:13px;color:var(--muted)}a{color:var(--accent)}main{max-width:1160px;padding:0 24px;margin:auto}.intro{max-width:740px;padding:56px 0 36px}.eyebrow,.step{font-size:11px;letter-spacing:.15em;font-weight:750;color:var(--accent)}h1{font-family:Georgia,serif;font-size:clamp(36px,5vw,58px);line-height:1.08;font-weight:400;letter-spacing:-.035em;margin:20px 0}h2{font-size:23px;font-weight:650;letter-spacing:-.02em;margin:12px 0 22px}p{line-height:1.65}.intro>p:not(.eyebrow){font-size:16px;max-width:630px;color:var(--muted)}.layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;align-items:start}section,.summary{background:#fff;padding:30px;border:1px solid var(--line);border-radius:12px;margin-bottom:20px}section .step{margin-top:0}.summary{position:sticky;top:24px;background:var(--ink);color:#fff}.summary .hint,.summary .eyebrow,.summary a{color:#d5e3dd}.summary button{background:#f5f1df;color:var(--ink);width:100%}aside{align-self:stretch}.price{font-size:40px;font-weight:650;letter-spacing:-.035em;margin:20px 0 0}.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}label{display:block;font-size:13px;font-weight:650;margin-bottom:18px}input,select,textarea{display:block;width:100%;margin-top:8px;padding:12px;border:1px solid var(--line);border-radius:6px;background:#fff;font:inherit;color:var(--ink);min-height:44px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:2px}button{border:0;border-radius:6px;background:var(--accent);color:#fff;font:600 14px system-ui;padding:14px 20px;cursor:pointer;min-height:46px}button:disabled{opacity:.45;cursor:not-allowed}.secondary{background:transparent;color:var(--accent);border:1px solid var(--line)}.hint{font-size:13px;color:var(--muted);font-weight:400}.room{border-top:1px solid var(--line);padding-top:18px;margin-top:22px}.room-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.room-title button{padding:6px 10px;min-height:36px}.guest{display:grid;grid-template-columns:1fr 100px 100px;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}.guest label{margin:0}.check{display:flex;gap:10px;align-items:center;line-height:1.5;margin-top:18px;font-weight:400}.check input{width:18px;height:18px;min-height:18px;margin:0;flex-shrink:0;accent-color:var(--accent)}.guest .check{margin:0}.error{color:#aa332c}.notice{background:#fff2d7;padding:12px 16px;border-radius:6px}hr{border:0;border-top:1px solid #ffffff35;margin:24px 0}footer{display:flex;justify-content:space-between;gap:16px;font-size:12px;padding:25px 0 40px;color:var(--muted)}details{font-size:13px;line-height:1.6;margin-bottom:20px}.trap{display:none!important}[hidden]{display:none!important}.admin{max-width:1000px}.admin h1{font-size:38px}.admin textarea{font-family:monospace;font-size:12px}.admin nav{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:24px}.admin pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--paper);padding:16px}.admin .actions{display:flex;gap:12px;flex-wrap:wrap}table{border-collapse:collapse;width:100%;font-size:13px}td,th{padding:12px;text-align:left;border-bottom:1px solid var(--line)}@media(max-width:800px){.layout{grid-template-columns:1fr}.summary{position:static}.intro{padding-top:30px}.intro h1 br{display:none}header{padding:20px 24px}header span{display:none}section,.summary{padding:22px}}@media(max-width:430px){main{padding:0 14px}.grid{grid-template-columns:1fr;gap:0}.guest{grid-template-columns:1fr 75px 85px;font-size:13px;gap:8px}footer{flex-direction:column}.price{font-size:34px}}

#add-room{display:inline-flex;align-items:center;justify-content:center;min-height:50px;margin-top:18px;padding:14px 24px;background:var(--accent);color:#fff;border:2px solid var(--accent);border-radius:8px;font-size:15px;font-weight:700;box-shadow:0 4px 10px #203a3626;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease}
#add-room:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 7px 15px #203a3633;filter:brightness(1.08)}
#add-room:active:not(:disabled){transform:translateY(1px);box-shadow:0 1px 4px #203a3626}
#add-room:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
@media(prefers-reduced-motion:reduce){#add-room{transition:none}#add-room:hover:not(:disabled),#add-room:active:not(:disabled){transform:none}}

.header-tools{display:flex;align-items:center;gap:24px}.language{display:flex;align-items:center;gap:8px;margin:0;flex-shrink:0}.language>span{font-size:12px}.language select{width:auto;min-width:116px;margin:0;padding:9px 12px;font-weight:600;border-color:var(--accent);background:var(--paper)}
.room-title .remove-room{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 14px;background:#fff0ee;color:#9e3026;border:2px solid #c85a4e;border-radius:7px;font-weight:700;box-shadow:0 2px 5px #9e30261a;transition:background .15s,box-shadow .15s}
.room-title .remove-room:hover{background:#ffe0dc;box-shadow:0 3px 9px #9e302633}.remove-room:focus-visible{outline:3px solid #9e3026;outline-offset:3px}.remove-room:active{background:#ffd0c9}
@media(max-width:800px){.header-tools{gap:8px}.header-tools>span{display:none}.language>span{display:none}.language select{min-width:104px}header{flex-wrap:wrap}.room-title{gap:12px;flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.room-title .remove-room{transition:none}}
#room-totals{border-top:1px solid #ffffff45;border-bottom:1px solid #ffffff45;padding:8px 0;margin:24px 0 20px}.room-package-total{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding:10px 0;font-size:15px}.room-package-total strong{font-size:19px;white-space:nowrap}.grand-total-label{font-size:13px;font-weight:700;margin:18px 0 0}.grand-total-label:not([hidden])+.price{margin-top:6px}
.room-price-label{display:flex;flex-direction:column;gap:4px;min-width:0}.room-price-label small{font-size:12px;line-height:1.4;color:#d5e3dd}.room-package-total{align-items:center}

.calculate-action{margin:24px 0}.summary #calculate{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:62px;padding:16px 18px;font-size:17px;font-weight:750;line-height:1.35;color:var(--ink);background:linear-gradient(135deg,#f8e3a6,#efcb70);border:2px solid #f1d17d;border-radius:10px;box-shadow:0 5px 14px #0003;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease}.summary #calculate:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.05);box-shadow:0 8px 20px #0004}.summary #calculate:active:not(:disabled){transform:translateY(1px);box-shadow:0 2px 5px #0003}.summary #calculate:focus-visible{outline:3px solid #fff;outline-offset:4px}.calculator-icon{width:25px;height:25px;flex-shrink:0}.calculate-action .error:empty{display:none}.calculate-action .error:not(:empty){background:#fff0ee;color:#9e3026;border-radius:6px;padding:12px;font-size:13px}.summary #request-open{background:transparent;color:#fff;border:1px solid #d5e3dd99;min-height:50px}.summary #request-open:hover:not(:disabled){background:#ffffff15}
@media(prefers-reduced-motion:reduce){.summary #calculate{transition:none}.summary #calculate:hover:not(:disabled),.summary #calculate:active:not(:disabled){transform:none}}
@media(min-width:801px){.summary{max-height:calc(100dvh - 48px);overflow-y:auto;scrollbar-gutter:stable}}
#ski-start:read-only,#ski-days:read-only{background:var(--paper);border-style:dashed;color:var(--muted)}
#ski-start[aria-invalid=true],#ski-days[aria-invalid=true]{border:2px solid #b43c30;background:#fff4f2;color:#9e3026}.ski-error{padding:12px 14px;border-left:3px solid #b43c30;background:#fff4f2;border-radius:4px;font-size:13px}
.field-error{display:block;margin-top:8px;color:#9e3026;font-size:12px;line-height:1.5;font-weight:600}.summary .ski-error{border-left-color:#c54636;color:#9e3026}

/* Once a quote is ready, the final action becomes the primary button. */
.summary #request-open{min-height:62px;padding:16px 18px;font-size:17px;font-weight:750;line-height:1.35;border-radius:10px;border-width:2px;transition:background .2s ease,box-shadow .2s ease,transform .15s ease}
.summary #request-open:not(:disabled){background:linear-gradient(135deg,#f8e3a6,#efcb70);color:var(--ink);border-color:#f1d17d;box-shadow:0 5px 16px #0004}
.summary #request-open:hover:not(:disabled){background:linear-gradient(135deg,#fff0be,#f3d17c);transform:translateY(-2px);box-shadow:0 8px 22px #0005}
.summary #request-open:active:not(:disabled){transform:translateY(1px);box-shadow:0 2px 5px #0003}
.summary #request-open:focus-visible{outline:3px solid #fff;outline-offset:4px}
.summary:has(#request-open:not(:disabled)) #calculate{background:transparent;color:#e4ece8;border-color:#d5e3dd80;box-shadow:none;font-weight:600}
.summary:has(#request-open:not(:disabled)) #calculate:hover:not(:disabled){background:#ffffff12;box-shadow:none;filter:none}
@media(prefers-reduced-motion:reduce){.summary #request-open{transition:none}.summary #request-open:hover:not(:disabled),.summary #request-open:active:not(:disabled){transform:none}}
.summary-board{margin:12px 0;padding:10px 12px;background:#ffffff12;border-radius:6px;color:#fff;font-size:14px;font-weight:600;line-height:1.5}
/* Hotel identities and alpine setting. */
:root{--ink:#292523;--accent:#b82029;--brand:#ee252b;--paper:#f7f3f0;--line:#e5ded9;--muted:#716862;--tint:#fbf5f3;--summary:#38282a}
body.musher{--ink:#292c23;--accent:#4c4e1a;--brand:#4c4e1a;--paper:#f4f5ef;--line:#dedfd3;--muted:#686d5d;--tint:#f6f7ef;--summary:#30351f}
body{position:relative;isolation:isolate;background:var(--paper)}
body:before{content:"";position:fixed;inset:-12px;z-index:-2;background:url('/assets/pistas-grandvalira.jpg') center 38%/cover no-repeat;filter:blur(5px);opacity:.5;pointer-events:none}
body:after{content:"";position:fixed;inset:0;z-index:-1;background:linear-gradient(100deg,color-mix(in srgb,var(--paper) 93%,transparent),color-mix(in srgb,var(--paper) 65%,transparent) 60%,color-mix(in srgb,var(--paper) 78%,transparent));pointer-events:none}
header{padding-top:22px;padding-bottom:22px;background:#ffffffed;border-bottom:3px solid var(--brand);box-shadow:0 3px 24px #29252306}
#brand{display:flex;align-items:center;flex-shrink:0}#hotel-logo{display:block;width:240px;height:54px;object-fit:contain;object-position:left center}
.header-tools>span{font-size:12px;letter-spacing:.02em}.language select{border:1px solid var(--line);border-radius:9px;background:#fff;min-height:42px}
.intro{max-width:none;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px 48px;padding:42px 0 30px}.intro-copy{max-width:720px}.intro h1{font-size:clamp(36px,4.5vw,54px);margin:14px 0 16px}.intro-copy>p:last-child{color:var(--muted);font-size:16px;max-width:600px;margin-bottom:0}.eyebrow,.step{letter-spacing:.14em}.intro .notice{grid-column:1/-1;margin:0;font-size:12px;max-width:none;padding:10px 14px;border:1px solid #e4d5b5;background:#fff8eae8}
.ski-brand{display:flex;flex-direction:column;gap:13px;align-items:center;text-decoration:none;padding:23px 25px;border:1px solid #ffffffb3;background:#ffffffc9;border-radius:14px;box-shadow:0 7px 30px #222a3508}.ski-brand img{width:170px;height:auto}.ski-brand span{font-size:10px;letter-spacing:.08em;color:#636d72}
.layout{gap:26px;grid-template-columns:minmax(0,1fr) 350px}section,.summary{border-radius:16px;box-shadow:0 8px 32px #29252308}section{padding:30px 32px;background:#fffffffa}section .step{display:flex;align-items:center;gap:10px}section .step:before{content:"";height:18px;width:3px;background:var(--brand);border-radius:3px}h2{font-size:23px;margin:12px 0 22px}.grid{gap:18px}label{font-size:13px;line-height:1.5}input,select,textarea{border-radius:8px;min-height:48px;border-color:var(--line);font-size:14px}input:hover,select:hover,textarea:hover{border-color:var(--muted)}input:focus,select:focus,textarea:focus{outline-width:2px}.hint{line-height:1.65}#stay-nights{display:inline-block;padding:7px 12px;background:var(--tint);border:1px solid var(--line);border-radius:7px;color:var(--accent);font-weight:650;margin:0 0 20px}
.room{border:1px solid var(--line);background:var(--tint);border-radius:12px;padding:20px;margin-top:18px}.room-title{margin-bottom:18px;font-size:15px}.room-title strong{font-weight:700}.guest{padding:12px 0;border-color:var(--line)}.guest label{font-size:12px}.guest input{background:#fff}.guest .check{font-size:13px}#add-room{border-radius:9px;box-shadow:0 4px 10px #29252320}.room-title .remove-room{border-width:1px;border-radius:8px;min-height:38px;font-size:12px}.check input{min-height:18px}.summary{background:linear-gradient(150deg,var(--summary),var(--ink));padding:28px;border:1px solid #ffffff30;box-shadow:0 14px 40px #29252326}.summary h2{font-family:Georgia,serif;font-size:30px;font-weight:400;margin-bottom:18px}.summary .eyebrow,.summary .hint,.summary a,.room-price-label small{color:#e3ddd4}.summary #summary-text{font-size:14px;line-height:1.65}.summary-board{font-size:13px;border:1px solid #ffffff15;background:#ffffff0d;padding:11px 12px}.price{font-size:44px;font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:-.03em}.room-package-total strong{font-variant-numeric:tabular-nums}.summary #calculate,.summary #request-open:not(:disabled){color:#332b1c}.summary:has(#request-open:not(:disabled)) #calculate{color:#eee8df;border-color:#eee8df75}.summary #request-open{font-size:16px}.summary .hint{font-size:12px}#price-caption{margin-top:4px}.calculate-action{margin:22px 0}.summary #calculate{font-size:16px;gap:10px}.summary #request-open:disabled{opacity:.55}#request-section{border-top:3px solid var(--brand)}footer{color:var(--ink);line-height:1.6}
@media(max-width:1000px){.intro{gap:24px}.ski-brand{padding:20px}.ski-brand img{width:145px}.layout{grid-template-columns:minmax(0,1fr) 320px;gap:20px}section{padding:26px}.summary{padding:24px}.room{padding:16px}.guest{grid-template-columns:1fr 80px 85px}}
@media(max-width:800px){header{flex-wrap:nowrap;padding:18px 24px}#hotel-logo{width:210px;height:46px}.intro{padding:30px 0 26px;grid-template-columns:1fr}.intro-copy{max-width:640px}.ski-brand{justify-self:start;flex-direction:row;padding:14px 18px;gap:20px}.ski-brand img{width:145px}.ski-brand span{font-size:10px}.layout{grid-template-columns:1fr}.summary{max-height:none;overflow:visible;position:static}.room{padding:20px}.price{font-size:42px}}
@media(max-width:430px){header{padding:16px}#hotel-logo{width:175px;height:40px}.header-tools{gap:0}.language select{min-width:100px;padding:8px;font-size:12px}main{padding:0 16px}.intro h1{font-size:38px;line-height:1.1}.intro-copy>p:last-child{font-size:14px}.ski-brand{gap:16px;padding:12px 14px;width:100%;justify-content:space-between}.ski-brand img{width:140px}.ski-brand span{letter-spacing:0}.intro .notice{font-size:11px}.grid{gap:0}section{padding:23px 20px}h2{font-size:22px}.room{padding:15px;margin-left:-5px;margin-right:-5px}.guest{grid-template-columns:1fr 70px 77px;gap:8px;font-size:12px}.guest input{padding:10px}.summary{padding:26px}#add-room{width:100%}.room-title{gap:8px}.room-title .remove-room{padding:8px 11px}footer{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
/* Grandvalira and hotel ski-pass collection. */
.ski-brand{width:350px;padding:28px;gap:22px;background:#ffffffed;border:1px solid #fff;box-shadow:0 10px 35px #263f4b12;flex-direction:column;text-align:center;justify-self:end;align-items:center}
.ski-brand>.ski-logo{display:block;width:100%;padding:4px 0 0}.ski-brand img{display:block;width:260px;max-width:100%;height:auto;margin:auto}
.ski-delivery{width:100%;border-top:1px solid var(--line);padding-top:18px}.ski-delivery strong{font-size:16px;line-height:1.4;color:var(--accent)}.ski-delivery p{font-size:13px;line-height:1.6;color:var(--muted);margin:8px 0 0}
@media(min-width:801px) and (max-width:1000px){.ski-brand{width:300px;padding:24px}.ski-brand img{width:245px}}
@media(max-width:800px){.ski-brand{width:100%;justify-self:stretch;padding:25px;gap:20px;flex-direction:column}.ski-brand img{width:270px}.ski-delivery{max-width:480px}.ski-delivery p{font-size:14px}}
@media(max-width:430px){.ski-brand{padding:24px 20px;gap:20px;justify-content:center}.ski-brand img{width:260px}.ski-delivery strong{font-size:16px}.ski-delivery p{font-size:13px}}
.language img.language-flag{display:block;width:26px;height:18px;object-fit:cover;border-radius:2px;box-shadow:0 0 0 1px #0002;flex-shrink:0;margin-right:1px}.language{gap:8px}@media(max-width:430px){.language{gap:6px}.language select{min-width:90px}.language img.language-flag{width:23px;height:16px}}
.hotel-contact{display:flex;flex-direction:column;gap:10px}.hotel-contact p{margin:0 0 3px;font-size:13px;font-weight:650;color:#e3ddd4}.hotel-contact a{width:fit-content;font-size:15px;line-height:1.5;text-underline-offset:4px;overflow-wrap:anywhere}.hotel-contact a:hover{color:#fff}.hotel-contact a:focus-visible{outline:2px solid #fff;outline-offset:4px}
/* Responsive form controls, including narrow phones and landscape screens. */
.layout>* , .grid>* , .intro-copy , .room , .guest>*{min-width:0}
input,select,textarea{min-width:0;max-width:100%}
select{text-overflow:ellipsis}
button{max-width:100%;white-space:normal}
.hotel-contact a{max-width:100%}
@media(max-width:800px){
  input,select,textarea{font-size:16px}
  .language select{font-size:14px}
  .intro h1{overflow-wrap:anywhere}
  .summary{width:100%;scrollbar-gutter:auto}
  .summary #calculate,.summary #request-open,#send{min-height:54px}
  .room-package-total{flex-wrap:wrap;gap:8px 12px}
  .room-price-label{flex:1 1 150px}
}
@media(max-width:600px){
  .grid{grid-template-columns:1fr;gap:0}
  .guest{grid-template-columns:minmax(0,1fr) 75px 80px;gap:8px}
  .guest input{padding:10px 8px;font-size:16px}
  .guest .check{font-size:12px;gap:6px}
  .guest .check input{width:20px;height:20px;min-height:20px}
  .check{align-items:flex-start}
  .check input{margin-top:2px}
  .room-title{flex-wrap:wrap}
  #send{width:100%}
}
@media(max-width:360px){
  header{padding:14px 12px;gap:8px}
  #hotel-logo{width:145px;height:36px}
  .language{gap:5px}
  .language select{min-width:82px;padding:8px 5px;font-size:12px}
  .language img.language-flag{width:20px;height:14px}
  main{padding:0 12px}
  .intro h1{font-size:34px}
  section{padding:22px 16px}
  .room{padding:13px}
  .guest{grid-template-columns:minmax(0,1fr) 65px 74px;gap:6px}
  .summary{padding:24px 20px}
  .summary h2{font-size:28px}
  .summary .price{font-size:38px;overflow-wrap:anywhere}
  footer{overflow-wrap:anywhere}
}

input[aria-invalid="true"],select[aria-invalid="true"],textarea[aria-invalid="true"]{border:2px solid #b43c30;background:#fff4f2;color:#9e3026}

.room-photo-preview{position:relative;display:inline-flex;align-items:center;gap:0;padding:0;margin:12px 0 18px;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:10px;overflow:hidden;width:144px;text-align:left;box-shadow:0 2px 8px #00000008}.room-photo-preview img{display:block;width:144px;height:96px;object-fit:cover;flex-shrink:0}.room-photo-preview span{font-size:13px;font-weight:600;padding-right:14px}.room-photo-preview:hover{border-color:var(--accent);box-shadow:0 4px 12px #00000012}.room-gallery{width:min(860px,calc(100% - 32px));max-height:92dvh;padding:20px;border:0;border-radius:14px;color:var(--ink);background:white;overscroll-behavior:contain}.room-gallery::backdrop{background:#0b1717cf}.room-gallery-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.room-gallery-header h2{font-size:20px;margin:0}.gallery-close{min-width:44px;min-height:44px;padding:0;font-size:28px;background:#f0f2ef;color:var(--ink)}.room-gallery-stage{background:#101b1b;border-radius:8px;overflow:hidden}.room-gallery-stage>img{display:block;width:100%;height:min(56dvh,540px);object-fit:contain}.room-gallery-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0}.room-gallery-nav button{padding:10px 16px;min-height:44px}.room-gallery-nav span{font-size:13px;white-space:nowrap}.room-gallery-thumbs{display:flex;gap:8px;overflow:auto;padding:3px 2px 8px}.room-gallery-thumbs button{padding:0;width:78px;min-width:78px;height:55px;overflow:hidden;border:2px solid transparent;background:#f2f3f1}.room-gallery-thumbs button[aria-current=true]{border-color:var(--accent)}.room-gallery-thumbs img{width:100%;height:100%;object-fit:cover}body:has(.room-gallery[open]){overflow:hidden}@media(max-width:600px){.room-gallery{padding:12px;width:calc(100% - 20px);max-height:94dvh}.room-gallery-header h2{font-size:17px}.room-gallery-nav button{padding:10px;font-size:13px}.room-photo-preview img{width:112px;height:84px}.room-photo-preview span{font-size:12px}.room-gallery-stage>img{height:50dvh}}

.room-photo-preview .room-photo-more{position:absolute;right:6px;bottom:6px;display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:36px;height:25px;padding:4px 7px;border-radius:5px;background:#202a30d9;color:#fff;font-size:11px;line-height:1;font-weight:500;box-shadow:0 1px 4px #0002;border:1px solid #ffffff60;backdrop-filter:blur(4px)}.room-photo-more svg{width:14px;height:14px;flex-shrink:0}@media(max-width:600px){.room-photo-preview{width:112px}.room-photo-preview .room-photo-more{height:23px;padding:3px 6px;font-size:10px;gap:4px}.room-photo-more svg{width:13px;height:13px}}

.room-photo-preview{width:max-content;max-width:100%;gap:9px;overflow:visible;border:0;background:transparent;box-shadow:none;border-radius:8px}.room-photo-preview img{border-radius:8px;border:1px solid var(--line)}.room-photo-preview:hover{box-shadow:none}.room-photo-preview .room-photo-more{position:static;flex-shrink:0;min-width:38px;height:30px;background:#f4f5f4;color:#52615c;border:1px solid #dce2de;border-radius:6px;box-shadow:none;backdrop-filter:none}.room-photo-preview:hover .room-photo-more{background:#e9eeea;border-color:#bdc9c0}@media(max-width:600px){.room-photo-preview{width:max-content;gap:8px}.room-photo-preview .room-photo-more{height:29px;padding:4px 6px}}

.child-rule{border:1px solid #d8e2db;border-radius:8px;padding:14px;display:grid;gap:10px}.child-rule>strong{font-size:13px}.room-child-settings,.composition-editor{margin:20px 0;padding:14px;border:1px solid #d8e2db;border-radius:8px}.room-child-settings summary,.composition-editor summary{cursor:pointer;font-weight:600}.composition-card{padding:10px;border-bottom:1px solid #d8e2db}.family-guests{display:grid;grid-template-columns:1fr 1fr;gap:12px}.family-guests p{grid-column:1/-1;margin:0}.family-guests label{display:block}.family-guests select{width:100%}@media(max-width:600px){.family-guests{grid-template-columns:1fr}.family-guests p{grid-column:1}.child-rule{padding:12px}}

/* Public package journey: compact introduction, clear totals, mobile action. */
.intro:has(.hotel-preview[hidden]){grid-template-columns:minmax(0,1fr)}
html{scroll-padding-bottom:110px}body:before{opacity:.26}header{padding-top:16px;padding-bottom:16px}
.intro{grid-template-columns:minmax(0,1.4fr) minmax(240px,.8fr);gap:28px;padding:32px 0 24px}.intro h1{font-size:clamp(32px,3.5vw,46px);line-height:1.12;margin:10px 0 12px}.intro-copy>p{font-size:15px;color:var(--muted);line-height:1.6}.intro-copy>.eyebrow{color:var(--accent);font-size:11px;margin-top:0}
.ski-brand{display:flex;flex-direction:row;width:auto;justify-self:auto;justify-content:flex-start;gap:16px;text-align:left;padding:14px 0 0;margin-top:18px;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}.ski-brand>.ski-logo{width:145px;flex:0 0 145px;padding:0}.ski-brand img{width:145px}.ski-delivery{border:0;padding:0;width:auto}.ski-delivery strong{font-size:14px}.ski-delivery p{font-size:12px;line-height:1.45;margin:4px 0 0;max-width:280px}
.hotel-preview{margin:0;position:relative;overflow:hidden;border-radius:16px;background:var(--tint);aspect-ratio:1.8}.hotel-preview>img{display:block;width:100%;height:100%;object-fit:cover}.hotel-preview figcaption{position:absolute;bottom:0;left:0;right:0;padding:24px 16px 12px;background:linear-gradient(transparent,#000b);color:#fff;font-size:12px}
.intro .notice{padding:8px 12px;font-size:11px}.layout{grid-template-columns:minmax(0,1fr) 350px}.summary{max-height:none;overflow:visible;position:sticky;top:18px}.summary h2{font-size:28px}.summary .calculate-action{margin:20px 0 8px}.summary-facts{font-size:13px;margin:16px 0}.summary-facts>div{display:flex;justify-content:space-between;gap:16px;margin:9px 0}.summary-facts dt{color:#e3ddd4}.summary-facts dd{margin:0;text-align:right;font-weight:600}.summary.quote-ready #summary-text{margin-bottom:8px}.summary.quote-ready #calculate{min-height:44px;font-size:13px;padding:10px 12px}.summary.quote-ready #calculate .calculator-icon{width:19px;height:22px}.summary #request-open{margin-top:16px}.summary #request-open:disabled{display:none}.summary .price{line-height:1.2;margin:18px 0 8px}.summary .grand-total-label{margin-top:18px}.room-package-total{padding:12px 0}.ski-summary{padding:14px 16px;background:var(--tint);border:1px solid var(--line);border-radius:10px;font-size:15px;font-weight:650;line-height:1.5;margin-bottom:12px}.ski-edit{margin:8px 0 0}.ski-edit span{color:var(--accent);font-weight:650}#ski-fields{margin-top:20px}#ski-fields .hint{margin-bottom:0}.request-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.request-heading h2{margin-bottom:12px}.request-heading button{flex-shrink:0}.request-comments{padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.request-comments summary{cursor:pointer;font-weight:650;color:var(--accent);min-height:32px}.request-comments label{margin-bottom:0}#request-status:not(:empty){padding:16px;background:var(--tint);border-radius:8px;overflow-wrap:anywhere}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mobile-action{display:none}
@media(max-width:800px){
  header{padding:12px 16px}#hotel-logo{height:36px;width:175px}.intro{display:block;padding:22px 0 18px}.intro h1{font-size:32px;max-width:610px}.intro-copy>p{font-size:14px;margin-bottom:0}.hotel-preview{display:none}.ski-brand{gap:12px;margin-top:14px;padding-top:12px}.ski-brand>.ski-logo{width:110px;flex-basis:110px}.ski-brand img{width:110px}.ski-delivery strong{font-size:12px}.ski-delivery p{font-size:11px;max-width:none}.intro .notice{margin-top:14px;font-size:11px;padding:7px 10px}.layout{grid-template-columns:1fr;gap:4px}section{padding:22px}.summary{position:static;padding:24px}.summary h2{font-size:28px}body{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}.mobile-action{display:flex;position:fixed;z-index:30;bottom:0;left:0;right:0;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 24px #00000010}.mobile-action>div{display:flex;flex-direction:column;gap:3px;min-width:0;flex:0 1 34%}.mobile-action span{font-size:10px;color:var(--muted)}.mobile-action strong{font-size:13px;line-height:1.3;overflow-wrap:anywhere}.mobile-action button{flex:1 1 62%;font-size:13px;line-height:1.35;padding:12px;min-height:50px;background:var(--accent);border-radius:9px}.mobile-action button:disabled{opacity:.65}.request-heading{align-items:flex-start;flex-direction:column;gap:0}.request-heading button{margin-bottom:10px}body:has(#request-section:not([hidden])) .mobile-action,body:has(.room-gallery[open]) .mobile-action{display:none}.summary .summary-facts{font-size:13px}
}
@media(max-width:430px){.intro h1{font-size:30px;line-height:1.12}.intro-copy>.eyebrow{font-size:10px}.ski-brand>.ski-logo{width:95px;flex-basis:95px}.ski-brand img{width:95px}.ski-delivery p{font-size:11px}.grid{grid-template-columns:1fr 1fr;gap:12px}.grid label{font-size:12px}.grid input{padding:11px 8px;font-size:16px}#request-form .grid{grid-template-columns:1fr;gap:0}main{padding:0 14px}section{padding:20px 18px}h2{font-size:21px}.mobile-action{padding-left:14px;padding-right:14px}#hotel-logo{max-width:160px}.language select{min-width:84px}}
@media(max-width:360px){.intro h1{font-size:27px}.ski-brand{gap:10px}.ski-brand>.ski-logo{width:85px;flex-basis:85px}.ski-brand img{width:85px}.mobile-action{gap:8px;padding-left:12px;padding-right:12px}.mobile-action button{font-size:12px}.mobile-action strong{font-size:12px}.grid{gap:9px}#hotel-logo{width:145px}}

/* Visible room catalogue, using the hotel's own photographs. */
.room-choices{min-width:0;border:0;padding:0;margin:0 0 22px}.room-choices>legend{font-size:13px;font-weight:650;padding:0;margin-bottom:12px}.room-choice-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.room-choice{min-width:0;border:1px solid var(--line);border-radius:11px;background:#fff;overflow:hidden;transition:border-color .15s,box-shadow .15s}.room-choice:hover{border-color:var(--accent)}.room-choice.is-selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:var(--tint)}.room-choice:focus-within{outline:3px solid color-mix(in srgb,var(--accent) 35%,transparent);outline-offset:3px}.room-choice-select{position:relative;display:flex;flex-direction:column;margin:0;padding:0;cursor:pointer}.room-choice-select input{position:absolute;z-index:1;right:10px;top:10px;width:21px;height:21px;min-height:21px;margin:0;accent-color:var(--accent);cursor:pointer}.room-choice-photo{display:block;width:100%;height:108px;object-fit:cover;background:var(--paper);color:var(--muted);font-size:40px;text-align:center;line-height:108px}.room-choice-copy{display:flex;flex-direction:column;gap:5px;padding:12px;min-width:0}.room-choice-copy strong{font-size:14px;font-weight:700;line-height:1.4;overflow-wrap:anywhere}.room-choice-copy small{font-size:12px;color:var(--muted);line-height:1.4}.room-choice-gallery{display:block;background:transparent;color:var(--accent);border:0;border-top:1px solid var(--line);border-radius:0;width:100%;min-height:40px;padding:9px 12px;text-align:left;font-size:12px;font-weight:600;box-shadow:none}.room-choice-gallery:hover{background:var(--tint);box-shadow:none;transform:none}
@media(max-width:600px){.room-choice-list{grid-template-columns:1fr;gap:10px}.room-choice{position:relative}.room-choice-select{display:grid;grid-template-columns:92px minmax(0,1fr);padding-right:30px;min-height:82px}.room-choice-select input{top:14px;right:11px;width:19px;height:19px;min-height:19px}.room-choice-photo{width:92px;height:100%;min-height:82px;line-height:82px}.room-choice-copy{padding:11px 12px;align-self:center}.room-choice-copy strong{font-size:14px}.room-choice-gallery{padding-left:104px;min-height:38px;font-size:12px}.room-choices>legend{font-size:12px}}
@media(prefers-reduced-motion:reduce){.room-choice{transition:none}}

/* Compact guest rows: name, age and ski pass remain on one line. */
.guest{grid-template-columns:minmax(0,1fr) 132px 96px;gap:12px;padding:5px 0;min-height:54px}.guest>span{font-size:13px}.guest>label:not(.check){display:flex;align-items:center;gap:8px;margin:0;font-size:12px;white-space:nowrap}.guest>label:not(.check) input{width:68px;min-width:0;min-height:38px;height:38px;margin:0;padding:7px 8px;font-size:16px}.guest .check{display:flex;align-items:center;justify-content:space-between;gap:7px;min-height:44px;margin:0;font-size:12px}.guest .check input{margin:0;width:20px;height:20px;min-height:20px}.guest:last-child{padding-bottom:0}
@media(max-width:600px){.guest{grid-template-columns:minmax(62px,1fr) 86px 68px;gap:6px;padding:3px 0;min-height:50px}.guest>span{font-size:12px;white-space:nowrap}.guest>label:not(.check){gap:5px;font-size:11px}.guest>label:not(.check) input{width:55px;height:40px;min-height:40px;padding:6px;font-size:16px}.guest .check{font-size:11px;gap:5px}}

/* A short live selection summary above the mobile action. */
@media(max-width:800px){
  .mobile-action{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);column-gap:12px;row-gap:8px}
  .mobile-action .mobile-selection-summary{grid-column:1/-1;margin:0;padding:0 0 8px;border-bottom:1px solid var(--line);font-size:11px;line-height:1.45;font-weight:500;color:var(--ink);overflow-wrap:anywhere}
  .mobile-action>div{min-width:0}.mobile-action button{width:100%;min-width:0}
  body{padding-bottom:calc(145px + env(safe-area-inset-bottom,0px))}html{scroll-padding-bottom:155px}
}
@media(max-width:360px){.mobile-action{column-gap:8px}.mobile-action .mobile-selection-summary{font-size:10px}}

/* Usability review: readable mobile action, touch controls and enquiry context. */
.mobile-feedback{margin:0;color:#9e3026;font-size:13px;line-height:1.45;background:#fff4f2;border:1px solid #efccc6;border-radius:7px;padding:9px 11px}
.request-offer-summary{display:flex;flex-direction:column;gap:7px;background:var(--tint);border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin:4px 0 16px}.request-offer-summary strong{font-size:19px;color:var(--accent)}.request-offer-summary span{font-size:13px;line-height:1.5;color:var(--muted)}
.request-heading h2:focus{outline:none}.room-choice-gallery{min-height:44px}.room-title .remove-room{min-height:44px}#request-form details summary{min-height:44px;display:list-item;padding:9px 0}#request-form #send{min-height:50px}
@media(min-width:801px){.summary.quote-ready{position:static}}
@media(max-width:800px){
  .intro{padding:16px 0}.intro-copy>.eyebrow{display:none}.intro h1{font-size:clamp(25px,6.8vw,30px);margin:0 0 10px}.intro-copy>p{line-height:1.45}.ski-brand{margin-top:12px;padding-top:10px}
  .mobile-action{row-gap:8px;padding-top:10px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}
  .mobile-action .mobile-selection-summary{font-size:12px;line-height:1.4;padding-bottom:7px}
  .mobile-action:not(.has-quote)>div{display:none}.mobile-action:not(.has-quote)>button{grid-column:1/-1}
  .mobile-action button{font-size:14px}.mobile-action strong{font-size:18px}.mobile-action span{font-size:11px}
  .mobile-action .mobile-feedback{grid-column:1/-1;font-size:12px;max-height:100px;overflow-y:auto}
  body{padding-bottom:calc(var(--mobile-action-height,130px) + 16px)}html{scroll-padding-bottom:calc(var(--mobile-action-height,130px) + 20px)}
  body:has(#request-section:not([hidden])){padding-bottom:16px}.keyboard-open .mobile-action{display:none}
  input,select,textarea{font-size:16px}#request-form .grid input{font-size:16px}#request-form #send{width:100%}
  .guest>label:not(.check) input{height:44px;min-height:44px}.guest>label:not(.check),.guest .check{font-size:12px}
  .hotel-contact a{display:flex;align-items:center;min-height:44px}
}

/* Keep the hotel identity and language available without leaving the calculator. */
:root{--header-scroll-space:105px}
header{position:sticky;top:0;z-index:40;background:#fffffff5;box-shadow:0 3px 18px #2925230c}
html{scroll-padding-top:var(--header-scroll-space)}
@media(min-width:801px){.summary:not(.quote-ready){top:var(--header-scroll-space)}}
@media(max-width:800px){:root{--header-scroll-space:80px}}

.room-ski-note{margin:10px 0 0;padding:10px 12px;background:#fff3d9;color:#704900;border:1px solid #ead5aa;border-radius:7px;font-size:13px;line-height:1.5}.summary .room-ski-exclusion{color:#ffe4a8;font-weight:650}
.validation-inline{display:block;width:100%;margin-top:5px}.check:has(.validation-inline){flex-wrap:wrap}.check>.validation-inline{order:3;flex-basis:100%}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{scroll-margin-block:100px}
.room-ski-note p{margin:0}.room-ski-note p+p{margin-top:8px}
/* Meal plans use the same visible selection pattern as room cards. */
.board-options{border:0;padding:0;margin:18px 0 0;min-width:0}.board-options legend{font-size:14px;font-weight:600;margin-bottom:9px;padding:0}.board-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.board-choice{display:flex;align-items:center;gap:12px;margin:0;padding:16px;min-height:68px;border:2px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}.board-choice strong{flex:1;min-width:0;font-size:14px;line-height:1.4;font-weight:600}.board-choice input{width:18px;height:18px;min-height:18px;margin:0;padding:0;flex:0 0 18px;accent-color:var(--accent)}.board-icon{width:25px;height:25px;flex:0 0 25px;color:var(--accent)}.board-choice:hover{border-color:var(--accent)}.board-choice.is-selected{border-color:var(--accent);background:var(--tint);box-shadow:0 0 0 1px var(--accent)}.board-choice:focus-within{outline:2px solid var(--accent);outline-offset:3px}.board-options[aria-invalid=true]{outline:2px solid #b42318;outline-offset:5px;border-radius:8px}.board-options:focus{outline-offset:5px}@media(max-width:600px){.board-choices{grid-template-columns:1fr}.board-choice{padding:12px 14px;min-height:58px}.board-options legend{font-size:12px}}
.insurance-options{margin:14px 0 0;padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:#fff;min-width:0}.insurance-options summary{cursor:pointer;font-size:14px;line-height:1.5;min-height:44px}.insurance-title{font-weight:650;color:var(--accent)}.insurance-rate,.insurance-selection{display:block;margin:3px 0 0 18px;font-size:12px;color:var(--muted)}.insurance-selection{font-weight:600;color:var(--ink)}.insurance-options .hint{font-size:12px;line-height:1.5}.insurance-tools{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.insurance-tool{min-height:40px;padding:8px 12px;border:1px solid var(--line);border-radius:7px;background:var(--tint);color:var(--accent);font-size:12px}.insurance-guests{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.insurance-person{display:flex;align-items:center;gap:8px;min-height:44px;margin:0;padding:6px 8px;border:1px solid var(--line);border-radius:6px;font-size:12px;line-height:1.4;cursor:pointer}.insurance-person input{width:18px;height:18px;min-height:18px;flex:0 0 18px;padding:0;margin:0;accent-color:var(--accent)}.insurance-breakdown{margin:16px 0;padding:14px 0;border-top:1px solid #ffffff30;border-bottom:1px solid #ffffff30}.insurance-breakdown>div{display:flex;justify-content:space-between;gap:14px;margin-bottom:8px;font-size:14px;line-height:1.5}.insurance-breakdown strong{white-space:nowrap}.insurance-breakdown small{display:block;color:#eee8dc;font-size:12px;line-height:1.5;margin-top:6px}@media(max-width:430px){.insurance-options{padding:14px}.insurance-guests{grid-template-columns:1fr}}
.insurance-conditions{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;margin-top:12px;padding:10px 13px;border:1px solid var(--accent);border-radius:7px;background:var(--tint);color:var(--accent);font-size:12px;line-height:1.4;font-weight:600;text-decoration:none}.insurance-conditions:hover{background:#fff}.insurance-conditions:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* Slightly tighter spacing, preserving the layout and comfortable touch targets. */
#calculator section{padding:25px 28px;margin-bottom:18px}#calculator h2{margin:10px 0 16px}.room{padding:16px;margin-top:14px}.room-title{margin-bottom:12px}.room-choices{margin-bottom:16px}.room-choices>legend{margin-bottom:8px}.room-choice-list{gap:9px}.board-options{margin-top:12px}.board-choice{padding:12px;min-height:58px}.ski-summary{padding:11px 13px;margin-bottom:9px}#ski-fields{margin-top:14px}.insurance-options{margin-top:12px;padding:13px 16px}#stay-nights{margin-bottom:12px;padding:5px 10px}.summary{padding:24px}
@media(max-width:800px){#calculator section{padding:18px;margin-bottom:14px}#calculator h2{margin:8px 0 13px}.room{padding:13px;margin-top:12px}.room-title{margin-bottom:10px}.room-choices{margin-bottom:12px}.room-choice-list{gap:8px}.board-choice{min-height:50px;padding:9px 12px}.guest{padding:2px 0}.insurance-options{padding:12px}.intro{padding:12px 0}.ski-brand{margin-top:9px;padding-top:8px}.summary{padding:20px}.request-offer-summary{padding:12px;margin-bottom:12px}.room-choice-select{min-height:74px}.room-choice-photo{min-height:74px}.room-choice-copy{padding:8px 10px}.room-choice-gallery{padding-top:6px;padding-bottom:6px;min-height:44px}input,select{min-height:44px}}
.stay-calendar-open{display:none;align-items:center;gap:8px;min-height:44px;margin:-3px 0 12px;padding:8px 12px;background:var(--tint);border:1px solid var(--line);color:var(--accent);font-size:13px}.stay-calendar-open svg{width:18px;height:18px}
@media(min-width:801px){.stay-calendar-open{display:inline-flex}}
.stay-calendar{width:min(760px,calc(100vw - 32px));max-height:calc(100dvh - 48px);padding:24px;border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--ink);box-shadow:0 24px 80px #0003;overflow:auto}.stay-calendar::backdrop{background:#15221fcc;backdrop-filter:blur(3px)}.stay-calendar header{position:static;padding:0;margin:0 0 14px;box-shadow:none;border:0;display:flex;justify-content:space-between;gap:16px}.stay-calendar h2{margin:0;font-size:23px}.stay-calendar button{min-height:44px}.stay-calendar-close{background:transparent;color:var(--ink);border:1px solid var(--line);padding:7px 14px}.stay-calendar-parts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.stay-calendar-part{background:#fff;color:var(--ink);border:1px solid var(--line);padding:9px 14px;text-align:left}.stay-calendar-part small{display:block;margin-bottom:3px;color:var(--muted)}.stay-calendar-part.active{border:2px solid var(--accent);background:var(--tint);padding:8px 13px}.stay-calendar-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:10px 0}.stay-calendar-nav button{background:#fff;color:var(--accent);border:1px solid var(--line);min-width:44px;padding:8px}.stay-calendar-nav p{margin:0;font-size:14px;font-weight:650}.stay-calendar-months{display:grid;grid-template-columns:1fr 1fr;gap:24px}.stay-calendar-month{padding:0;margin:0;border:0;background:transparent;box-shadow:none}.stay-calendar-month h3{text-transform:capitalize;margin:4px 0 12px;text-align:center;font-size:16px}.stay-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.stay-calendar-weekday{text-align:center;padding:6px 0;font-size:12px;color:var(--muted)}.stay-calendar-day{padding:7px 0;min-width:0;border:1px solid transparent;border-radius:6px;color:var(--ink);background:#fff;font-size:14px}.stay-calendar-day.in-range{background:var(--tint)}.stay-calendar-day.edge{background:var(--accent);color:#fff;font-weight:700}.stay-calendar-day:disabled{opacity:.3;cursor:default}.stay-calendar-day:not(:disabled):hover{border-color:var(--accent)}.stay-calendar-day:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.stay-calendar footer{padding:14px 0 0;margin-top:16px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:10px}.stay-calendar .hint{font-size:12px;margin:10px 0 0}.stay-calendar button:disabled{cursor:default}
@media(max-width:600px){.stay-calendar{padding:16px}.stay-calendar-months{grid-template-columns:1fr}.stay-calendar-month:nth-child(2){display:none}}

@media(min-width:801px){.layout>aside{position:sticky;top:var(--header-scroll-space);align-self:start}.layout>aside .summary{position:static;max-height:calc(100dvh - var(--header-scroll-space) - 16px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}}

.request-full-summary{margin:0 0 18px;border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden}.request-full-summary>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 15px;min-height:48px;background:var(--tint);color:var(--accent);font-size:14px;font-weight:650;cursor:pointer;list-style:none}.request-full-summary>summary::-webkit-details-marker{display:none}.request-full-summary>summary:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.summary-chevron{font-size:22px;line-height:1}.request-full-summary[open] .summary-chevron{transform:rotate(180deg)}#request-full-content{padding:16px}.request-detail-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px 24px;margin:12px 0 16px}.request-detail-facts>div{min-width:0}.request-detail-facts dt{font-size:12px;color:var(--muted);margin-bottom:3px}.request-detail-facts dd{margin:0;font-size:14px;font-weight:600;overflow-wrap:anywhere}.request-detail-room{padding:14px 0;border-top:1px solid var(--line)}.request-detail-room h3{font-size:15px;margin:0 0 5px}.request-detail-room p{margin:5px 0;font-size:13px;line-height:1.5}.request-detail-room ul{list-style:none;padding:0;margin:10px 0}.request-detail-room li{padding:8px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.5}.request-detail-room li span{display:block;color:var(--muted);margin-top:2px}.request-detail-price{display:flex;justify-content:space-between;gap:14px;align-items:start;font-size:14px;margin-top:10px}.request-detail-price strong{white-space:nowrap}.request-detail-total{padding-top:12px;border-top:1px solid var(--line)}.request-detail-total>.request-detail-price:last-child{font-size:17px;color:var(--accent);font-weight:700}#request-full-content>.hint{font-size:12px;margin-bottom:0}@media(max-width:600px){#request-full-content{padding:13px}.request-detail-facts{gap:10px 14px}.request-full-summary>summary{font-size:13px}}

/* Header contact uses the hotel's saved details, without another mobile row. */
.header-contact{margin:0 auto;position:relative;flex-shrink:0}.header-contact>summary{display:none;list-style:none;cursor:pointer}.header-contact>summary::-webkit-details-marker{display:none}.header-contact svg{width:18px;height:18px;flex:0 0 18px}.header-contact-links{display:flex;align-items:center;gap:20px}.header-contact-links a{display:flex;align-items:center;gap:8px;min-height:44px;color:var(--ink);font-size:13px;text-decoration:none;white-space:nowrap}.header-contact-links a:hover{color:var(--accent);text-decoration:underline}.header-contact-links a:focus-visible,.header-contact>summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}.header-contact-links svg{color:var(--accent)}
@media(min-width:801px) and (max-width:1100px){.header-contact-links{flex-direction:column;align-items:flex-start;gap:0}.header-contact-links a{min-height:24px;font-size:12px}.header-tools>span{display:none}}
@media(max-width:800px){body>header{gap:8px;padding-left:12px;padding-right:12px}#brand{flex-shrink:1;min-width:0}#hotel-logo{width:clamp(102px,34vw,145px);max-width:100%;height:36px}.header-contact{margin:0 0 0 auto}.header-contact>summary{display:flex;align-items:center;justify-content:center;width:44px;min-height:44px;border:1px solid var(--line);border-radius:8px;color:var(--accent);background:#fff}.header-contact>summary svg{width:21px;height:21px}.header-contact-links{position:absolute;top:calc(100% + 9px);right:0;width:max-content;max-width:calc(100vw - 24px);padding:8px 12px;display:flex;flex-direction:column;align-items:stretch;gap:0;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px #0002;z-index:50}.header-contact-links a{min-height:44px;font-size:13px}.header-tools{gap:0;flex-shrink:0}.language select{min-width:0;width:88px;padding:8px 6px}.language img.language-flag{width:20px;height:14px}.language{gap:4px}}
.header-contact-links span{display:inline;color:inherit}.header-contact>summary .sr-only{display:block}
@media(max-width:800px){.header-contact-links{left:50%;right:auto;transform:translateX(-50%)}}


/* Visible, compact occupancy choices with one person icon per guest. */
.occupancy-options{border:0;padding:0;margin:0 0 14px;min-width:0}.occupancy-options legend{font-size:13px;font-weight:650;margin-bottom:8px;padding:0}.occupancy-choices{display:flex;flex-wrap:wrap;gap:8px}.occupancy-choice{position:relative;display:flex;flex:0 1 120px;min-width:72px;min-height:58px;flex-direction:column;align-items:center;justify-content:center;gap:4px;margin:0;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;color:var(--muted);font-size:12px;line-height:1.3}.occupancy-choice input{position:absolute;width:1px;height:1px;min-height:0;margin:0;padding:0;border:0;clip-path:inset(50%);overflow:hidden}.occupancy-people{display:flex;align-items:center;justify-content:center;gap:2px;min-height:20px}.occupancy-people svg{width:12px;height:20px;flex:0 0 12px}.occupancy-choice.is-selected{border:2px solid var(--accent);padding:7px 9px;background:var(--tint);color:var(--accent);font-weight:700}.occupancy-choice:hover{border-color:var(--accent)}.occupancy-choice:focus-within{outline:2px solid var(--accent);outline-offset:3px}@media(max-width:600px){.occupancy-options legend{font-size:12px}.occupancy-choice{flex:1 1 64px;min-width:64px;max-width:140px;min-height:56px;padding:7px 5px;font-size:11px}.occupancy-choice.is-selected{padding:6px 4px}.occupancy-people{gap:1px}.occupancy-people svg{width:10px;flex-basis:10px}}
