/* The desktop studio is preserved. Phones become an edge-to-edge experience. */
.mobile-nav,.mobile-menu-button,.mobile-explore-hint { display:none; }
.menu-links { display:grid; margin:28px 0 34px; }
.menu-links button { display:flex; align-items:center; justify-content:space-between; text-align:left; background:transparent; border-bottom:1px solid var(--line); padding:22px 0; font:27px Georgia,serif; }
.menu-links span { font:11px Montserrat,Arial,sans-serif; color:var(--wine); }
.menu-location { margin:35px 0 12px; font-size:10px; letter-spacing:.15em; color:var(--muted); }
.menu-email { font-size:12px; }
@media(max-width:850px) {
  html { scrollbar-width:none; scroll-padding-top:24px; }
  html::-webkit-scrollbar { display:none; }
  body { padding-bottom:calc(78px + env(safe-area-inset-bottom)); background:#f6efe5; }
  .header { position:absolute; inset:0 0 auto; height:calc(80px + env(safe-area-inset-top)); padding:calc(19px + env(safe-area-inset-top)) 24px 19px; background:transparent; z-index:5; }
  .wordmark { font-size:15px; letter-spacing:.16em; }
  .header-cta { display:none; }
  .mobile-menu-button { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:6px; width:44px; height:44px; padding:10px; background:#fff9ed6b; border:1px solid #fff7; border-radius:50%; backdrop-filter:blur(12px); }
  .mobile-menu-button span { width:18px; height:1px; background:var(--ink); }
  .mobile-menu-button span:last-child { width:13px; align-self:flex-end; margin-right:2px; }
  .studio { display:block; height:100svh; min-height:640px; aspect-ratio:auto; position:relative; overflow:hidden; background:#d7ba97; }
  .room { position:absolute; inset:0; aspect-ratio:auto; height:100%; z-index:0; }
  .room-image { width:100%; height:100%; object-fit:cover; object-position:34% center; animation:mobile-room-arrive 1.2s ease-out both; }
  .room::after { content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,#efe1cfee 0%,#edddcbd9 19%,#ead8be8c 33%,#e9d2b400 49%,#40251b00 68%,#40251b33 91%,#40251b44 100%); }
  .room-shade,.room-glow,.hotspot { display:none; }
  .introduction { position:absolute; left:26px; right:24px; top:calc(106px + env(safe-area-inset-top)); padding:0; width:auto; text-align:left; z-index:2; }
  .mobile-eyebrow { display:block; max-width:300px; color:#6e4b36; font-size:8px; font-weight:400; line-height:1.6; letter-spacing:.13em; margin-bottom:20px; }
  .introduction h1 { font-size:clamp(54px,14.6vw,91px); line-height:.99; text-align:left; white-space:normal; letter-spacing:-.055em; }
  .find-style { display:inline-flex; align-items:center; gap:15px; min-height:44px; font-size:20px; line-height:1.3; margin-top:17px; padding-bottom:4px; }
  .find-style .arrow { width:12px; height:12px; }
  .motto { display:block; position:absolute; left:26px; right:24px; bottom:calc(253px + env(safe-area-inset-bottom)); padding:0; text-align:left; font-size:20px; color:#fffaf2; text-shadow:0 1px 9px #452c24a8; z-index:2; }
  .service-dock { display:grid; position:absolute; left:20px; right:20px; bottom:calc(130px + env(safe-area-inset-bottom)); grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; max-width:none; margin:0; padding:0; z-index:2; }
  .service-dock > button { min-height:105px; padding:15px 12px; justify-content:space-between; gap:10px; border-radius:5px; background:#fff9edee; border:1px solid #fffc; backdrop-filter:blur(16px); box-shadow:0 5px 20px #3c25121a; font-family:Georgia,serif; font-size:15px; line-height:1.16; font-weight:400; }
  .service-dock > button:hover { background:#fffaf2; transform:translateY(-2px); }
  .service-dock .dock-number { font-family:Georgia,serif; font-style:italic; font-size:13px; color:var(--wine); }
  .service-dock .arrow { right:12px; top:17px; width:9px; height:9px; color:var(--wine); }
  .mobile-explore-hint { display:flex; position:absolute; left:23px; right:23px; bottom:calc(105px + env(safe-area-inset-bottom)); align-items:center; justify-content:space-between; gap:10px; color:#fff9ed; font-size:8px; line-height:1; letter-spacing:.1em; z-index:2; text-shadow:0 1px 8px #382317a6; }
  .mobile-explore-hint span:last-child { letter-spacing:.03em; font-size:9px; }
  .mobile-nav { position:fixed; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); inset:auto 0 0; z-index:10; min-height:calc(78px + env(safe-area-inset-bottom)); padding:8px 9px calc(8px + env(safe-area-inset-bottom)); background:#faf6eff5; backdrop-filter:blur(25px); -webkit-backdrop-filter:blur(25px); border-top:1px solid #fff9; box-shadow:0 -5px 35px #3b251512; }
  .mobile-nav button { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; min-height:60px; background:transparent; border-radius:8px; color:#8d7767; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; font-size:10px; line-height:1.3; }
  .mobile-nav button[aria-current] { color:var(--wine); }
  .mobile-nav button.nav-book { background:var(--wine); color:var(--paper); }
  .mobile-nav svg { width:22px; height:22px; stroke:currentColor; stroke-width:1.25; stroke-linecap:round; stroke-linejoin:round; fill:none; }
  .client-note { padding:58px 28px 35px; background:#f6efe5; }
  .client-note blockquote { font-size:27px; line-height:1.35; }
  .quiet-proof { font-size:11px; color:#847162; margin-top:23px; }
  footer { background:#f6efe5; padding:15px 22px 28px; }
  footer div { font-size:11px; gap:19px; }
  footer button, footer a { min-height:44px; }
  /* Every destination fills the phone, with safe areas and natural scrolling. */
  dialog, #detail-dialog, .stories-dialog, .gallery-dialog { position:fixed; inset:0; width:100%; max-width:100%; height:100dvh; max-height:100dvh; margin:0; border:0; border-radius:0; padding:calc(80px + env(safe-area-inset-top)) 24px calc(35px + env(safe-area-inset-bottom)); background:#faf6ef; box-shadow:none; overflow-y:auto; -webkit-overflow-scrolling:touch; }
  dialog[open] { animation:mobile-sheet-arrive .34s cubic-bezier(.22,.61,.36,1); }
  dialog::backdrop { background:#37251b80; }
  dialog .close { position:fixed; top:calc(17px + env(safe-area-inset-top)); right:21px; width:44px; height:44px; border:1px solid #e5d8c9; background:#faf6eff2; color:var(--ink); backdrop-filter:blur(15px); z-index:3; }
  dialog h2 { font-family:Georgia,serif; font-size:44px; font-weight:400; letter-spacing:-.045em; line-height:1.04; margin:15px 0 20px; }
  dialog h2 em { font-style:italic; }
  dialog .eyebrow { font-size:9px; letter-spacing:.12em; padding-right:0; }
  dialog .modal-intro { font-size:14px; line-height:1.65; }
  .service-options { gap:12px; margin-top:30px; }
  .service-options > button,.service-options > button:hover { border-radius:6px; padding:23px 16px; min-height:112px; background:#efe5d9; }
  .service-options strong { font-family:Georgia,serif; font-size:24px; font-weight:400; line-height:1.1; }
  .service-options small { font-size:11px; margin-top:9px; }
  .option-number { border-radius:50%; background:#faf6ef; width:30px; height:30px; font:italic 13px Georgia,serif; }
  .modal-footer { display:grid; gap:22px; margin:30px 0; }
  .modal-footer button { justify-self:start; min-height:30px; font-size:12px; }
  .service-summary { border-radius:7px; padding:22px 18px; background:#efe5d9; margin-top:34px; }
  dialog .button { border-radius:4px; font-size:14px; min-height:52px; }
  .detail-list { gap:26px; margin:32px 0; }
  .detail-list strong { font-size:15px; }
  .detail-list li { font-size:14px; line-height:1.6; }
  .detail-price strong { font-family:Georgia,serif; font-size:34px; }
  .detail-price span { font-size:11px; }
  .service-note { font-size:11px; margin:18px 0; }
  .story-grid { display:grid; grid-template-columns:1fr; gap:32px; }
  .story-grid > button { border-radius:8px; padding:0 0 24px; }
  .story-photos { height:min(48dvh,400px); border-radius:8px 8px 0 0; }
  .story-grid h3 { font-family:Georgia,serif; font-weight:400; font-size:32px; padding-inline:18px; }
  .story-grid .eyebrow,.story-grid p { padding-inline:18px; }
  .story-grid .inline-link { margin-left:18px; }
  .gallery-heading h2 { font-size:34px; }
  .gallery-heading > p:not(.eyebrow) { font-size:12px; line-height:1.55; }
  .gallery-stage { margin-top:22px; border-radius:4px; }
  .gallery-stage > img { width:100%; height:48dvh; min-height:220px; object-fit:contain; }
  .gallery-nav { padding:10px 12px; }
  .gallery-caption { font-size:13px; }
  .gallery-note { font-size:11px; }
  .gallery-back { margin-top:20px; min-height:44px; }
  .about-modal-photo { height:38dvh; border-radius:4px; object-position:center 30%; }
  .about-prose { font-size:15px; }
  .about-film-link { min-height:44px; }
  dialog input,dialog select,dialog textarea { font-size:16px; border-radius:6px; background:#f2e9de; }
  dialog label { font-size:13px; }
  .contact-alternative a { min-height:44px; display:flex; align-items:center; }
  .faq-item { border-radius:6px; }
  .film-dialog { display:none; padding:0; background:#191412; }
  .film-dialog[open] { display:grid; place-items:center; }
  .film-dialog video { max-width:100%; width:100%; max-height:100dvh; }
  .menu-dialog h2 { font-size:62px; margin-bottom:38px; }
  .menu-dialog .button { width:100%; justify-content:space-between; }
}
@media(max-width:380px) {
  .header { padding-inline:20px; }
  .wordmark { font-size:13px; }
  .introduction { left:22px; right:20px; }
  .service-dock { left:16px; right:16px; gap:6px; }
  .service-dock > button { font-size:14px; padding:14px 10px; }
  dialog,#detail-dialog,.stories-dialog,.gallery-dialog { padding-inline:20px; }
  dialog h2 { font-size:40px; }
  .service-options strong { font-size:22px; }
  .service-summary { gap:15px; }
}
@media(max-width:850px) and (max-height:740px) {
  .introduction { top:calc(87px + env(safe-area-inset-top)); }
  .mobile-eyebrow { margin-bottom:12px; }
  .introduction h1 { font-size:clamp(50px,14vw,70px); }
  .find-style { font-size:18px; margin-top:12px; }
  .motto { bottom:calc(234px + env(safe-area-inset-bottom)); font-size:18px; }
  .service-dock { bottom:calc(117px + env(safe-area-inset-bottom)); }
  .service-dock > button { min-height:98px; }
  .mobile-explore-hint { bottom:calc(96px + env(safe-area-inset-bottom)); }
}
@media (min-width:600px) and (max-width:850px) {
  .introduction { left:40px; top:calc(115px + env(safe-area-inset-top)); }
  .mobile-eyebrow { font-size:11px; }
  .service-dock { left:40px; right:40px; gap:14px; }
  .service-dock > button { font-size:20px; padding:18px; min-height:112px; }
  .motto,.mobile-explore-hint { left:40px; right:40px; }
  .room-image { object-position:40% center; }
  dialog,#detail-dialog,.stories-dialog,.gallery-dialog { padding-inline:max(40px,calc((100vw - 620px)/2)); }
}
@keyframes mobile-room-arrive { from { opacity:.5; transform:scale(1.035); } to { opacity:1; transform:none; } }
@keyframes mobile-sheet-arrive { from { opacity:.7; transform:translateY(6%); } to { opacity:1; transform:none; } }
@media(prefers-reduced-motion:reduce) { .room-image,dialog[open] { animation:none!important; } }
