/* Conversion and responsive refinements after inspecting the Opus design in a real browser. */
html { scrollbar-gutter: stable; }
.hero { --pano-h: clamp(16rem,min(32vw,100svh - 29rem),34rem); }
.hero-title { z-index:4; }
.hero-lead { max-width: 31rem; text-wrap: pretty; }
.hero-foot { grid-template-columns: minmax(0,1fr) minmax(0,1.35fr); gap: 2rem; }
.hero-deal { justify-content: space-between; gap: 1rem 1.25rem; }
.hero-offer span { max-width: 16rem; }
.hero-film { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 32%; opacity: 0; transition: opacity .35s; }
.hero-photo::before { z-index: 2; }
.hero-photo figcaption { z-index: 3; }
.hero-photo:has(.hero-film) figcaption { display:none; }
.hero-film.has-frame { opacity: 1; }
.hero-motion-control { position: absolute; z-index: 3; bottom: 1rem; left: var(--gutter); min-height: 44px; padding: .7rem 1rem; border: 1px solid #ffffff70; border-radius: 3px; background: #000d; color: white; font-size: .875rem; font-weight: 700; cursor: pointer; }
.hero-motion-control:focus-visible { outline-color: white; }
.hero-photo:has(.hero-film) figcaption { bottom: 1.15rem; }
.format h3,.visit-copy h2 { text-wrap: balance; }
.section-head p,.format p,.inquiry-lead { text-wrap: pretty; }
.event-formats { padding-block: clamp(3.5rem,7vw,7rem); background:#f4f4f1; color:#000; }
.format-intro { display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:end;margin-bottom:2.5rem; }
.format-intro h2 { max-width:12ch;font-size:clamp(2.8rem,5vw,4.75rem);line-height:.98; }
.format-intro p { max-width:33rem;font-size:1.125rem;color:#4a4a46;text-wrap:pretty; }
.format-tabs { display:flex;gap:2rem;border-bottom:1px solid #b9b9b3;margin-bottom:1.5rem; }
.format-tabs button { border:0;border-bottom:3px solid transparent;background:none;color:#565650;min-height:60px;padding:.6rem .1rem .95rem;font-size:1.125rem;font-weight:700;cursor:pointer; }
.format-tabs button[aria-selected=true] { color:#000;border-bottom-color:var(--red); }
.format-panel { display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);background:white;margin-bottom:1.5rem; }
.format-visual { min-height:32rem;overflow:hidden; }
.format-visual img { width:100%;height:100%;object-fit:cover; }
.format-content { display:flex;flex-direction:column;align-items:flex-start;padding:clamp(1.5rem,3.7vw,3.5rem); }
.format-content h3 { font-size:clamp(1.8rem,2.7vw,2.8rem);line-height:1.05;letter-spacing:-.035em;text-wrap:balance; }
.format-content>p { margin-top:1.25rem;font-size:1rem;color:#474744;line-height:1.65;text-wrap:pretty; }
.format-decision { margin-top:auto;padding-top:2rem;display:grid;justify-items:start;gap:1.1rem; }
.format-price { font-size:.9375rem;font-weight:700; }
.format-decision .text-link { font-size:.9375rem; }
.form-more { color:#333; }
.form-more summary { min-height:44px;display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.9375rem;font-weight:600;list-style:none; }
.form-more summary::before { content:'+';font-size:1.3rem;line-height:1; }
.form-more[open]>summary::before { content:'−'; }
.form-more summary::-webkit-details-marker { display:none; }
.form-more>.field { margin-top:1rem; }
.event-summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem; background:#f4f4f1; border-radius:6px; }
.event-summary strong { font-size:.9375rem; }
.event-summary p { margin-top:.2rem; font-size:.875rem; line-height:1.5; color:#565650; overflow-wrap:anywhere; }
.event-summary .text-button { flex:none; min-height:44px; font-size:.875rem; }
.field-error { display:block;font-size:.875rem;line-height:1.4;color:#b20c15;grid-column:1/-1; }
.privacy-label { flex-wrap:wrap; }
.checkbox-label { min-height:44px; align-items:center; }
.privacy-label>span:not(.field-error) { flex:1;min-width:0; }
.privacy-label>.field-error { flex-basis:100%; }
.inquiry-form-placeholder { order:2; }
#inquiry-form [aria-invalid=true] { border-color:#b20c15; }
#inquiry-form input:not([type=checkbox]),#inquiry-form select,#inquiry-form textarea { border-color:#a4a4a0;border-width:1px;border-radius:5px; }
.form-progress { gap:1rem; }
.form-progress span { border:0;border-bottom:2px solid #ddd;border-radius:0;padding:.6rem 0;color:#777; }
.form-progress span.current { color:#000;background:none;border-bottom-color:var(--red); }
.inquiry-section { scroll-margin-top: var(--header-h); }
body.inquiry-open { overflow: hidden; }
body.inquiry-open .mobile-action { visibility: hidden; }
#inquiry-dialog { padding: 0; border: 0; border-radius: 4px; background: white; color: black; width: min(42rem,calc(100% - 2rem)); max-width: none; max-height: calc(100dvh - 2rem); overflow-y: auto; overscroll-behavior: contain; --ring: #000; }
#inquiry-dialog::backdrop { background: #000b; backdrop-filter: blur(5px); }
.inquiry-dialog-heading { position: sticky; top: 0; z-index: 2; display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; padding: 1.5rem 2rem 1rem; background: white; border-bottom: 1px solid #ddd; }
.inquiry-dialog-heading p { font-size: .875rem; font-weight: 700; margin: 0 0 .3rem; }
.inquiry-dialog-heading h2 { font-size: clamp(1.6rem,3vw,2rem); line-height: 1.05; max-width: 18ch; }
[data-inquiry-close] { display: flex; flex: none; align-items: center; gap: .6rem; min-height: 44px; padding: .4rem .7rem; border: 1px solid #ccc; background: white; border-radius: 3px; font-size: .875rem; font-weight: 700; cursor: pointer; }
[data-inquiry-close] span { font-size: 1.5rem; line-height: 1; }
.dialog-promise { margin: 0; padding: 1rem 2rem 0; font-size: .9rem; color: #444; }
#inquiry-dialog #inquiry-form { margin: 0; padding: 1.5rem 2rem 2rem; box-shadow: none; border-radius: 0; }
#inquiry-dialog .form-progress { margin-bottom: 1.5rem; }
.confirmation,.legal { color: black; background: var(--concrete); width: 100%; padding: clamp(3rem,8vw,7rem) max(var(--pad),calc((100% - 58rem)/2)); }
.confirmation { min-height: 70vh; }
.confirmation h1,.legal h1 { font-size: clamp(2.5rem,6vw,5.5rem); line-height: .97; letter-spacing: -.04em; margin-bottom: 2rem; }
.confirmation p,.legal p { max-width: 48rem; margin: 1.3rem 0; }
.confirmation-mark { display: inline-grid; place-items: center; background: var(--red); color: white; width: 3rem; height: 3rem; margin-bottom: 1.5rem; font-size: 1.8rem; }
.legal h2 { font-size: 1.75rem; margin-top: 2.5rem; line-height: 1.1; }
.preview-legal { padding: 1.2rem; border: 1px solid #777; margin: 2rem 0; }
@media(max-width:1099px) { .hero-foot { grid-template-columns: 1fr; } .hero-deal { justify-content: flex-start; gap: 1.25rem 2rem; } }
@media(max-width:959px) {
  .format-content { padding:1.75rem; }
  .format-visual { min-height:28rem; }
  .inquiry-layout { gap: 1.5rem; }
  .inquiry-copy { display: contents; }
  .inquiry-copy h2 { order: 0; }
  .inquiry-lead { order: 1; margin-top: 0; }
  #inquiry-form { order: 2; }
  .inquiry-price { order: 3; }
  .booking-steps { order: 4; margin-top: 0; }
  .response-promise { order: 5; margin-top: 0; }
  .inquiry-section .plain-link { order: 6; margin-top: 0; }
}
@media(max-width:700px) {
  .format-intro { grid-template-columns:1fr;gap:1rem;margin-bottom:1.4rem; }
  .format-intro h2 { max-width:14ch; }
  .format-intro p { font-size:1rem; }
  .format-tabs { gap:1.35rem; }
  .format-tabs button { font-size:1rem;min-height:54px;line-height:1.3;text-align:left; }
  .format-panel { grid-template-columns:1fr; }
  .format-visual { min-height:0;aspect-ratio:4/3; }
  .format-content { padding:1.5rem; }
  .format-content h3 { font-size:2rem; }
  .format-decision { width:100%;padding-top:1.5rem; }
  .format-decision .button { width:100%; }
  .hero { --pano-h: clamp(13.5rem,62vw,20rem); --hero-size: 11.1vw; padding-bottom: 2.25rem; }
  .hero-foot { margin-top: 1.25rem; gap: 1.25rem; }
  .hero-deal { display: flex; flex-direction: column; align-items: stretch; gap: 1.1rem; }
  .hero-lead { font-size: 1rem; line-height: 1.5; }
  .hero-offer span { max-width: none; margin-top: .35rem; }
  .hero-actions { gap: .6rem; }
  .hero-actions .hero-button { flex-basis: 100%; }
  .hero-actions .tour-trigger { min-height: 44px; }
  .hero-film { object-position: center; }
  .hero-motion-control { bottom: .7rem; left: var(--pad); padding: .5rem .7rem; font-size: .8125rem; }
  .hero-photo figcaption { max-width: 48%; text-align: right; font-size: .7rem; }
  .hero-photo:has(.hero-film) figcaption { bottom: .75rem; }
}
@media(max-width:520px) {
  #inquiry-dialog { width: 100%; height: 100dvh; max-height: 100dvh; margin: 0; border-radius: 0; }
  .inquiry-dialog-heading { padding: 1.1rem 1.25rem; gap: .7rem; }
  .inquiry-dialog-heading h2 { font-size: 1.6rem; }
  .dialog-promise { padding: 1rem 1.25rem 0; }
  #inquiry-dialog #inquiry-form { padding: 1.25rem 1.25rem 2rem; }
}
@media(prefers-reduced-motion:reduce) { .hero-film { transition: none; } }
