/* Photo-led visit planning. Text controls also work with keyboard and touch. */
.catalog-preview { display:grid; grid-template-columns:1fr 1fr; gap:6%; align-items:center; padding-block:28px 65px; }
.catalog-preview-copy h2 { max-width:540px; margin-block:17px; }
.catalog-preview-copy>p:not(.eyebrow) { max-width:480px; line-height:1.85; }
.catalog-preview-copy .button { margin-top:25px; }
.catalog-preview-photos { display:grid; grid-template-columns:1fr 1fr; gap:15px; align-items:center; }
.catalog-preview-photos img { aspect-ratio:3/4; object-fit:cover; }
.catalog-preview-photos img:last-child { margin-top:40px; }
.catalog-hero { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:8%; padding-block:50px 46px; }
.catalog-hero h1 { font-size:clamp(36px,4.4vw,62px); margin-top:19px; }
.catalog-hero .lead { max-width:510px; }
.catalog-hero .text-link { margin-top:24px; }
.catalog-hero-images { display:grid; grid-template-columns:1.15fr .85fr; gap:18px; align-items:center; }
.catalog-hero-images figure { margin:0; overflow:hidden; }
.catalog-hero-images img { aspect-ratio:3/4; object-fit:cover; }
.catalog-hero-images figure:last-child { margin-top:65px; }
.catalog-hero-images figure:last-child img { aspect-ratio:4/5; }
.catalog-collection { padding-block:15px 50px; scroll-margin-top:calc(var(--header-height,120px) + 20px); }
.catalog-tools { position:sticky; top:var(--header-height,100px); z-index:14; display:flex; align-items:center; justify-content:space-between; gap:16px; padding-block:14px; background:var(--paper); border-block:1px solid var(--line); }
.catalog-filter { display:flex; gap:6px; overflow-x:auto; min-width:0; overscroll-behavior-inline:contain; scrollbar-width:thin; }
.catalog-filter button,.saved-filter { background:transparent; border:1px solid transparent; padding:10px 16px; min-height:46px; white-space:nowrap; font-size:14px; }
.catalog-filter button[aria-pressed=true],.saved-filter[aria-pressed=true] { background:var(--brand); color:var(--paper); border-color:var(--brand); }
.saved-filter { flex-shrink:0; border-color:var(--brand); color:var(--brand); }
.catalog-collection-heading { display:flex; justify-content:space-between; align-items:start; gap:20px; padding-block:17px 25px; font-size:13px; }
.catalog-storage-note { max-width:370px; text-align:end; }
.catalog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); column-gap:25px; row-gap:35px; }
.catalog-card { min-width:0; }
.catalog-image { display:block; overflow:hidden; background:var(--sand); }
.catalog-image img { aspect-ratio:3/4; object-fit:cover; transition:transform .45s ease; }
.catalog-image.seating img { object-position:center; }
.catalog-card-copy { padding-block:17px 0; border-bottom:1px solid var(--line); }
.catalog-card h2 { font-size:26px; line-height:1.3; margin-block:9px 4px; }
.catalog-card .eyebrow { font-size:10px; }
.save-idea { background:transparent; color:var(--brand); padding:10px 0; min-height:46px; font-size:14px; text-decoration:underline; text-underline-offset:5px; text-align:start; }
.save-idea[aria-pressed=true] { font-weight:600; }
#catalog-plan { background:var(--sand); border-inline-start:3px solid var(--brand); padding:22px; margin-bottom:28px; }
#catalog-plan h2 { font-size:25px; margin-bottom:12px; }
#catalog-plan p { max-width:770px; }
#catalog-empty { padding:40px 0 65px; max-width:570px; }
#catalog-empty .button { margin-top:22px; }
.catalog-invite { display:flex; justify-content:space-between; align-items:center; gap:45px; padding-block:30px 65px; }
.catalog-invite h2 { font-size:34px; }
.catalog-invite p { max-width:630px; margin-top:16px; }
.catalog-invite .button-row { flex-shrink:0; margin:0; }
.catalog-dialog { width:min(1080px,calc(100% - 40px)); max-height:calc(100dvh - 40px); padding:0; border:0; background:var(--paper); color:var(--ink); overflow:auto; overscroll-behavior:contain; }
.catalog-dialog::backdrop { background:#241913dc; }
.photo-topbar { position:sticky; top:0; z-index:2; display:flex; justify-content:space-between; align-items:center; background:var(--paper); border-bottom:1px solid var(--line); padding:6px 20px; }
.photo-topbar button,.photo-navigation button { min-height:46px; background:none; padding:8px 15px; color:var(--brand); font-size:15px; }
.photo-topbar button { border:1px solid var(--line); }
.photo-detail { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); }
.photo-stage { display:flex; align-items:center; justify-content:center; background:#eee3d4; min-width:0; }
.photo-stage img { width:100%; height:65dvh; object-fit:contain; }
.photo-description { padding:clamp(25px,4vw,44px); align-self:center; }
.photo-description h2 { font-size:36px; margin-block:15px 18px; }
.photo-description>p:not(.eyebrow):not(.catalog-small) { margin-bottom:18px; line-height:1.8; }
.photo-description .button { display:flex; width:100%; margin-top:12px; }
.photo-description .catalog-small { font-size:13px; margin-top:20px; line-height:1.8; }
#photo-price { color:var(--brand); font-size:24px; text-align:start; unicode-bidi:isolate; }
.photo-navigation { display:flex; justify-content:space-between; border-top:1px solid var(--line); padding:6px 20px; }
.photo-navigation button:disabled { opacity:.4; cursor:default; }
.photo-is-open { overflow:hidden; }
#menu-photo-note { background:var(--sand); padding:15px 20px; margin-bottom:18px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.menu-item.from-gallery { background:#f2e8dc; outline:2px solid var(--brand); outline-offset:5px; margin-block:10px; scroll-margin-top:calc(var(--header-height,120px) + 100px); }
.booking-call { display:flex; width:fit-content; margin-top:12px; color:var(--brand); text-decoration:underline; text-underline-offset:5px; }
html { scroll-padding-top:calc(var(--header-height,100px) + 20px); }
html[dir=rtl] .catalog-hero h1 { font-size:clamp(29px,3.5vw,43px); line-height:1.75; }
html[dir=rtl] .catalog-card h2 { font-size:20px; line-height:1.85; }
html[dir=rtl] .photo-description h2 { font-size:28px; line-height:1.8; }
html[dir=rtl] #photo-price { text-align:right; }
@media(hover:hover) and (prefers-reduced-motion:no-preference) { .catalog-image:hover img { transform:scale(1.035); } }
@media(min-width:1101px) { .main-nav { gap:18px; margin-inline-end:8px; } .header-inner { gap:18px; } }
@media(max-width:1000px) {
 .catalog-tools { display:block; }
 .saved-filter { margin-top:9px; }
 .catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .catalog-invite { display:block; }
 .catalog-invite .button-row { margin-top:25px; }
}
@media(max-width:760px) {
 .wrap,.header-inner { width:calc(100% - 36px); }
 .header-inner { padding-block:10px 5px; gap:5px 12px; }
 .brand-sub { font-size:10px; }
 .language-switch button { min-height:44px; padding:6px 18px; font-size:14px; }
 .main-nav { max-height:calc(100dvh - var(--header-height,125px)); overflow-y:auto; }
 .main-nav.open { grid-template-columns:1fr 1fr; gap:6px; }
 .main-nav a { white-space:normal; font-size:15px; }
 .home-intro { padding-block:24px 28px; }
 .intro-copy h1 { font-size:37px; }
 html[dir=rtl] .intro-copy h1 { font-size:29px; line-height:1.8; }
 .cinema-screen { aspect-ratio:4/3; }
 .playback-actions button { font-size:14px; min-height:46px; }
 .booking-panel textarea { font-size:16px; }
 .booking-panel input,.booking-panel select,.booking-panel textarea { scroll-margin-top:calc(var(--header-height,125px) + 30px); }
 .catalog-preview { grid-template-columns:1fr; gap:22px; padding-block:15px 40px; }
 .catalog-preview-copy h2 { font-size:30px; }
 .catalog-preview-photos img { aspect-ratio:1; }
 .catalog-preview-photos img:last-child { margin-top:20px; }
 .catalog-hero { grid-template-columns:1fr; gap:25px; padding-block:30px 25px; }
 .catalog-hero h1 { font-size:39px; line-height:1.25; }
 .catalog-hero .lead { margin-top:17px; font-size:16px; }
 .catalog-hero .text-link { margin-top:15px; }
 .catalog-hero-images { grid-template-columns:1.1fr .9fr; gap:13px; }
 .catalog-hero-images img { aspect-ratio:1; }
 .catalog-hero-images figure:last-child { margin-top:25px; }
 .catalog-hero-images figure:last-child img { aspect-ratio:1; }
 .catalog-tools { padding:9px 0; }
 .catalog-filter { padding-bottom:5px; gap:5px; }
 .catalog-filter button { padding:8px 13px; }
 .saved-filter { min-height:42px; padding:6px 13px; font-size:13px; margin-top:3px; }
 .catalog-collection-heading { display:block; padding-block:17px 20px; }
 .catalog-storage-note { text-align:start; font-size:12px; margin-top:5px; }
 .catalog-grid { gap:27px 13px; }
 .catalog-image img { aspect-ratio:3/4; }
 .catalog-card-copy { padding-top:12px; }
 .catalog-card h2 { font-size:21px; line-height:1.35; }
 .catalog-card .eyebrow { font-size:9px; letter-spacing:.08em; }
 .save-idea { font-size:13px; }
 .catalog-invite { padding-block:10px 45px; }
 .catalog-invite h2 { font-size:29px; }
 .catalog-dialog { width:100%; height:100dvh; max-height:100dvh; max-width:100%; margin:0; }
 .photo-topbar { padding:7px 14px; }
 .photo-detail { display:block; }
 .photo-stage img { height:45dvh; }
 .photo-description { padding:24px 20px; }
 .photo-description h2 { font-size:30px; }
 .photo-description .catalog-small { font-size:12px; }
 .photo-navigation { padding:6px 14px calc(6px + env(safe-area-inset-bottom)); }
 #menu-photo-note { padding:15px; font-size:14px; }
 .menu-category-cover>img { height:185px; min-height:0; }
 .menu-category-content { padding-inline:16px; }
 .menu-filter button { padding-inline:12px; }
 .phone-fields { grid-template-columns:90px minmax(0,1fr); gap:10px; }
 .phone-fields .field { margin:0; }
 .phone-fields label { min-height:32px; }
 .booking-panel label[for=guest-phone] { margin-block-start:0; }
 html[dir=rtl] .catalog-hero h1 { font-size:28px; line-height:1.8; }
 html[dir=rtl] .catalog-preview-copy h2 { font-size:25px; line-height:1.8; }
 html[dir=rtl] .catalog-card h2 { font-size:16px; line-height:1.9; }
 html[dir=rtl] .catalog-card .eyebrow { font-size:11px; letter-spacing:0; }
 html[dir=rtl] .photo-description h2 { font-size:25px; }
 .site-footer { padding-bottom:calc(22px + env(safe-area-inset-bottom)); }
}
@media(max-width:359px) {
 .catalog-grid { grid-template-columns:1fr; }
 .catalog-image img { aspect-ratio:4/3; }
 .language-switch button { padding-inline:13px; }
 .catalog-hero h1 { font-size:34px; }
}
