/* ============================================================
   FIVE SEASONS: /helsinki reservation request (modal, hero CTA,
   mobile sticky button). Loaded ONLY by helsinki.html; every rule is
   scoped to .hr-* or .hk-hero__request. Reuses the editorial palette,
   Cormorant Garamond / Source Sans 3 and .ed-btn / .ed-link.
   ============================================================ */

/* ---------- hero actions ---------- */
.hk-hero__request{display:flex;flex-wrap:wrap;gap:.8rem 1rem;align-items:center;margin-top:1.3rem;max-width:48rem}
.hk-hero__request .ed-btn{padding-left:1.4rem;padding-right:1.4rem}
.hk-hero__request .hk-cta-note{flex-basis:100%;margin-top:-.2rem;color:var(--bone);text-shadow:0 0 16px rgba(11,10,9,.9)}
.hr-open{display:none}
.fs-js .hr-open{display:inline-flex}
.hk-hero__request .ed-btn--line{background:rgba(11,10,9,.35)}
@media (max-width:700px){
  .hk-hero__request{margin-top:1rem}
  .hk-hero__request .ed-btn{width:100%}
}

/* ---------- mobile sticky request button ---------- */
.hr-sticky{
  position:fixed;left:0;right:0;bottom:0;z-index:120;
  padding:.6rem var(--gx) calc(.6rem + env(safe-area-inset-bottom,0px));
  background:rgba(11,10,9,.94);border-top:1px solid var(--line);
}
.hr-sticky[hidden]{display:none}
.hr-sticky .ed-btn{width:100%;min-height:46px;padding:.7rem 1rem}
body.hr-sticky-on{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}
@media (min-width:701px){.hr-sticky{display:none!important}body.hr-sticky-on{padding-bottom:0}}

/* ---------- scroll lock while the modal is open ---------- */
html.hr-locked,html.hr-locked body{overflow:hidden}

/* ---------- dialog ---------- */
.hr-dialog{
  padding:0;border:1px solid var(--line);background:var(--ink-soft);color:var(--bone);
  width:min(720px,calc(100vw - 2rem));max-width:none;max-height:calc(100vh - 2rem);max-height:calc(100dvh - 2rem);
  margin:auto;overflow:hidden;font-family:var(--body);font-size:1rem;line-height:1.55;
}
.hr-dialog:not([open]){display:none}
.hr-dialog[open]{display:flex;flex-direction:column}
.hr-dialog::backdrop{background:rgba(5,5,4,.78)}
/* fallback when showModal() is unavailable */
.hr-dialog.hr-fallback[open]{position:fixed;inset:0;z-index:400;box-shadow:0 0 0 100vmax rgba(5,5,4,.78)}
.hr-sheet{position:relative;flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  padding:clamp(1.25rem,4vw,2.4rem);padding-bottom:calc(clamp(1.25rem,4vw,2.4rem) + env(safe-area-inset-bottom,0px))}
@media (max-width:700px){
  .hr-dialog{width:100vw;max-height:100vh;max-height:100dvh;height:100vh;height:100dvh;border:0}
  .hr-sheet{padding-top:calc(1.1rem + env(safe-area-inset-top,0px))}
}

.hr-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.hr-head>div:first-child{min-width:0}
/* small screens: language + close on their own top row, fully inside the
   sheet; title and subtitle take the full width below */
@media (max-width:700px){
  .hr-head{flex-direction:column;align-items:stretch;gap:.4rem}
  .hr-tools{order:-1;align-self:flex-end;max-width:100%}
  .hr-title,.hr-sub{overflow-wrap:anywhere}
}
.hr-title{font-family:var(--display);font-weight:300;font-size:clamp(1.8rem,4.2vw,2.5rem);line-height:1.08;text-transform:uppercase;letter-spacing:.02em}
.hr-title:focus{outline:none}
.hr-title:focus-visible{outline:2px solid var(--gold-bright);outline-offset:4px}
.hr-sub{margin-top:.35rem;font-size:.82rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-bright)}
.hr-tools{flex:none;display:flex;align-items:center;gap:.9rem}
.hr-lang{display:flex;align-items:center;gap:.35rem}
.hr-lang a{display:inline-flex;align-items:center;min-height:44px;min-width:32px;justify-content:center}
.hr-close{flex:none;width:48px;height:48px;display:grid;place-items:center;background:transparent;color:var(--bone);
  border:1px solid rgba(239,233,223,.35);font-size:1.6rem;line-height:1;cursor:pointer}
.hr-close:hover{border-color:var(--bone)}
.hr-intro{color:var(--ash-bright);max-width:60ch}
.hr-note{margin-top:.6rem;font-size:.86rem;color:var(--ash)}

.hr-form{margin-top:1.2rem;display:grid;gap:1.15rem}
.hr-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.15rem}
@media (max-width:560px){.hr-grid{grid-template-columns:1fr}}
.hr-field{display:grid;gap:.35rem;align-content:start;min-width:0;border:0;padding:0;margin:0}
.hr-label{font-size:.82rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--bone);padding:0}
.hr-req{color:var(--gold-bright)}
.hr-opt{font-weight:400;letter-spacing:.02em;text-transform:none;color:var(--ash)}
.hr-help{font-size:.86rem;color:var(--ash);max-width:none}
.hr-count{font-size:.78rem;color:var(--ash);text-align:right;max-width:none}
.hr-form input[type=text],.hr-form input[type=email],.hr-form input[type=tel],.hr-form select,.hr-form textarea{
  width:100%;min-height:48px;padding:.7rem .85rem;font:inherit;font-size:16px;color:var(--bone);
  background:var(--ink);border:1px solid rgba(239,233,223,.32);border-radius:0;
}
.hr-form select{appearance:auto}
.hr-form select:disabled{opacity:.55}
.hr-form textarea{min-height:96px;resize:vertical}
.hr-form input:focus-visible,.hr-form select:focus-visible,.hr-form textarea:focus-visible{outline:2px solid var(--gold-bright);outline-offset:1px}
.hr-form [aria-invalid=true]{border-color:#e39a7f}

.hr-choice{display:grid;grid-template-columns:auto 1fr;gap:.75rem;align-items:start;padding:.75rem .85rem;
  border:1px solid rgba(239,233,223,.2);cursor:pointer;margin-top:.45rem}
.hr-choice:has(input:checked){border-color:var(--gold-bright);background:rgba(201,177,131,.06)}
.hr-choice input{width:20px;height:20px;margin-top:.15rem;accent-color:#c9b183}
.hr-choice__text{display:grid;gap:.15rem}
.hr-choice__name{font-weight:600;color:var(--bone)}
.hr-choice__desc{font-size:.88rem;color:var(--ash-bright)}
.hr-field--choices[aria-invalid=true] .hr-choice{border-color:rgba(227,154,127,.6)}

.hr-err{font-size:.88rem;color:#f0b49d;font-weight:600;max-width:none}
.hr-err[hidden]{display:none}
.hr-summary{border:1px solid #e39a7f;padding:.9rem 1rem;margin-top:1rem}
.hr-summary[hidden]{display:none}
.hr-summary:focus{outline:2px solid var(--gold-bright);outline-offset:2px}
.hr-summary__title{font-family:var(--body);font-size:.95rem;font-weight:600;color:#f0b49d}
.hr-summary__list{margin:.4rem 0 0 1.1rem;list-style:disc}
.hr-summary__list a{color:var(--bone);text-decoration:underline;text-underline-offset:3px}

.hr-trap{position:absolute!important;top:0;left:-10000px;width:1px;height:1px;overflow:hidden}

.hr-consent{display:grid;grid-template-columns:auto 1fr;gap:.7rem;align-items:start;font-size:.9rem;color:var(--ash-bright);cursor:pointer}
.hr-consent input{width:20px;height:20px;margin-top:.15rem;accent-color:#c9b183}
.hr-privacy{font-size:.86rem;color:var(--ash);max-width:none}

.hr-status:empty{display:none}
.hr-status{border-left:2px solid var(--gold);padding:.6rem .9rem;background:rgba(239,233,223,.04);font-size:.92rem;color:var(--bone)}
.hr-status.is-error{border-left-color:#e39a7f}
.hr-status p{max-width:none}
.hr-status a{color:var(--gold-bright);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.hr-actions{display:flex;flex-wrap:wrap;gap:.8rem 1.4rem;align-items:center}
.hr-actions .ed-link{background:none;border:0;cursor:pointer;padding:0;font-family:var(--body)}
.hr-actions .ed-link[hidden]{display:none}
.hr-submit[disabled]{opacity:.6;cursor:progress}
.hr-submit [hidden]{display:none!important}
@media (max-width:700px){.hr-actions .ed-btn{width:100%}}

.hr-success{display:grid;gap:1rem}
.hr-success[hidden]{display:none}
.hr-success__title{font-family:var(--display);font-weight:300;font-size:clamp(1.5rem,3.6vw,2.1rem);line-height:1.15;color:var(--gold-bright);margin-bottom:.8rem}
.hr-success__title:focus{outline:none}
.hr-success p{color:var(--ash-bright);margin-top:.7rem}
.hr-ref{font-size:.9rem;color:var(--ash)}
.hr-ref strong{color:var(--bone);letter-spacing:.05em}
.hr-view[hidden]{display:none}
