/* Hallmark · shape: Photographic · genre: editorial · theme: Atelier (deal 3/3) · job: hire · draw: 2f1f6f · hero: Ledge · nav: edge-aligned · footer: letter close · imagery: user photographs · signature: a garden-hall photograph followed by the owner's Korean phrase · axes: light/roman-serif/cool · posture: restrained · v2.0.0 */
/* Hallmark · pre-emit critique: P4 H4 E4 S5 R5 V4 · weakest: H, separate Korean headline from the photograph so faces and type do not compete */
/* Hallmark · draw swap: Photographic and Ledge replace Split Studio and Corridor to honor the requested photo-first homepage; natural image color preserves the photographer's grading. */
@import url('./tokens.css');
@import url('./base.css');
:root { --color-paper: oklch(98.5% 0.005 76); --color-paper-2: oklch(95.8% 0.008 76); --color-paper-3: oklch(92% 0.010 76); --font-display: 'Sentient', 'Noto Serif KR', serif; --font-body: 'Hanken Grotesk', 'Apple SD Gothic Neo', 'Malgun Gothic', sans-serif; --color-photo-backdrop: oklch(16% 0.01 76 / .94); --color-clear: transparent; --color-photo-ink: oklch(98% 0.006 76); }
html { scroll-behavior: smooth; }
body { font-synthesis: none; }
button, a, summary { -webkit-tap-highlight-color: var(--color-clear); }
a { text-decoration: none; }
a:hover { color: var(--color-accent); }
a:active, button:active { opacity: .7; }
button:disabled { opacity: .5; cursor: not-allowed; }
:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 5px; }
.skip { position:absolute; top:var(--space-md); left:var(--space-md); transform:translateY(-200%); z-index:var(--z-tooltip); padding:var(--space-sm); background:var(--color-paper); }
.skip:focus-visible { transform:none; }
.site-nav { display:flex; align-items:center; justify-content:space-between; min-height:96px; gap:var(--space-lg); }
.wordmark { font-family:var(--font-display); font-size:28px; font-weight:300; white-space:nowrap; }
.nav-links { display:flex; align-items:center; gap:var(--space-xl); font-size:var(--text-sm); }
.nav-links a { display:inline-flex; align-items:center; min-height:44px; }
.nav-links .contact-link { text-decoration:underline; text-underline-offset:6px; }
.mobile-menu { display:none; }
.hero { padding-bottom:var(--space-2xl); }
.hero-photo { margin:0; height:clamp(340px, 57dvh, 620px); position:relative; overflow:clip; background:var(--color-paper-2); }
.hero-photo img { width:100%; height:100%; object-fit:cover; object-position:center 57%; }
.hero-caption { display:flex; justify-content:space-between; margin-top:var(--space-sm); color:var(--color-muted); font-size:var(--text-sm); }
.hero-bottom { display:flex; justify-content:space-between; align-items:flex-end; gap:var(--space-xl); padding-top:var(--space-xl); }
h1 { font-size:clamp(30px,3.2vw,46px); line-height:1.4; letter-spacing:-.04em; max-width:24ch; word-break:keep-all; }
.hero-copy { display:flex; flex-direction:column; align-items:flex-start; gap:var(--space-lg); padding-bottom:var(--space-xs); }
.hero-copy p { font-size:var(--text-md); color:var(--color-ink-2); }
.button { display:inline-flex; justify-content:center; align-items:center; min-height:48px; padding:var(--space-sm) var(--space-lg); border:1px solid var(--color-ink); border-radius:var(--radius-pill); background:var(--color-clear); color:var(--color-ink); cursor:pointer; font-size:var(--text-sm); }
.button:hover { background:var(--color-ink); color:var(--color-paper); }
.text-link { display:inline-flex; align-items:center; min-height:44px; text-decoration:underline; text-underline-offset:6px; font-size:var(--text-sm); }
@media (max-width: 60rem) { .site-nav { min-height:80px; } .nav-links { gap:var(--space-lg); } .wordmark { font-size:24px; } .hero-bottom { gap:var(--space-lg); } .hero-photo { height:52dvh; } }
@media (max-width: 40rem) { .site-nav { min-height:76px; } .nav-links { display:none; } .mobile-menu { display:block; position:relative; } .mobile-menu summary { cursor:pointer; min-height:44px; display:flex; align-items:center; font-size:var(--text-sm); } .mobile-menu nav { position:absolute; right:0; top:100%; z-index:var(--z-dropdown); width:200px; background:var(--color-paper); border:1px solid var(--color-rule); padding:var(--space-md); } .mobile-menu nav a { display:flex; align-items:center; min-height:48px; } .hero-photo { height:47dvh; min-height:300px; } .hero-photo img { object-position:52% 55%; } .hero-caption { font-size:var(--text-xs); gap:var(--space-sm); } .hero-bottom { display:block; padding-top:var(--space-lg); } h1 { font-size:30px; } .hero-copy { margin-top:var(--space-lg); gap:var(--space-md); } .hero-copy p { font-size:var(--text-sm); } .hero { padding-bottom:var(--space-xl); } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
.hero-photo img { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:100%; height:auto; min-height:150%; max-width:none; object-fit:cover; }
.portfolio-section { padding-block:var(--section-gap-s) var(--section-gap-l); }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:var(--space-xl); margin-bottom:var(--space-2xl); }
.section-heading h2, .questions-layout h2 { font-size:clamp(28px,3vw,44px); line-height:1.45; word-break:keep-all; }
.section-heading p { color:var(--color-muted); max-width:40ch; }
.venue-layout { display:grid; grid-template-columns:minmax(0, 8fr) minmax(0, 4fr); gap:var(--gap-columns); }
.photo-frame { display:block; position:relative; overflow:clip; background:var(--color-paper-2); }
.gallery-main { aspect-ratio:3/2; }
.photo-frame img { position:absolute; width:100%; height:150%; top:-25%; left:0; object-fit:cover; }
.photo-frame.portrait img { width:150%; height:100%; top:0; left:-25%; }
.gallery-main:hover { outline:1px solid var(--color-ink); outline-offset:5px; }
.gallery-meta { display:flex; justify-content:space-between; align-items:center; margin-top:var(--space-xs); gap:var(--space-md); font-size:var(--text-sm); color:var(--color-muted); }
.quiet-button { border:0; padding:var(--space-xs) 0; min-height:44px; background:var(--color-clear); color:var(--color-ink); text-decoration:underline; text-underline-offset:5px; cursor:pointer; font-size:var(--text-sm); }
.thumbs { display:flex; gap:var(--space-sm); margin-top:var(--space-sm); }
.thumb { width:92px; height:68px; position:relative; overflow:clip; padding:0; border:0; background:var(--color-paper-2); cursor:pointer; opacity:.58; }
.thumb img { width:100%; height:150%; position:absolute; top:-25%; object-fit:cover; }
.thumb.portrait img { width:150%; height:100%; top:0; left:-25%; max-width:none; }
.thumb.is-selected { opacity:1; outline:1px solid var(--color-ink); outline-offset:3px; }
.thumb:hover { opacity:1; }
.venue-index { padding-left:var(--space-xl); display:flex; flex-direction:column; align-items:flex-start; }
.venue-buttons { width:100%; border-top:1px solid var(--color-rule); }
.venue-choice { display:flex; flex-direction:column; align-items:flex-start; width:100%; border:0; border-bottom:1px solid var(--color-rule); padding:var(--space-lg) 0; color:var(--color-muted); background:var(--color-clear); cursor:pointer; text-align:left; }
.venue-choice span { font-size:var(--text-lg); }
.venue-choice small { font-size:var(--text-sm); margin-top:var(--space-xs); }
.venue-choice.is-selected { color:var(--color-ink); border-bottom-color:var(--color-ink); }
.venue-choice.is-selected span { text-decoration:underline; text-underline-offset:6px; }
.venue-choice:hover { color:var(--color-ink); }
.venue-note { color:var(--color-muted); margin-top:var(--space-xl); margin-bottom:var(--space-md); font-size:var(--text-sm); }
.collection-section { background:var(--color-paper-2); padding-block:var(--section-gap-s); }
.price-list { border-top:1px solid var(--color-ink); }
.price-row { display:grid; grid-template-columns:minmax(0, 3fr) minmax(0, 5fr) minmax(0, 3fr) minmax(0, 1fr); gap:var(--gap-columns); align-items:center; padding-block:var(--space-xl); border-bottom:1px solid var(--color-rule); }
.price-row h3 { font-size:32px; }
.price-row p { font-size:var(--text-sm); line-height:1.8; }
.price-row p>span { color:var(--color-muted); }
.price-row .price { font-family:var(--font-display); font-size:32px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.price-row .price span { font-family:var(--font-body); font-size:var(--text-sm); margin-left:var(--space-xs); color:var(--color-ink); }
.price-row .text-link { white-space:nowrap; justify-self:end; }
.included { display:flex; justify-content:space-between; gap:var(--space-lg); color:var(--color-muted); font-size:var(--text-sm); margin-top:var(--space-lg); }
.questions-section { padding-block:var(--section-gap-l); }
.questions-layout { display:grid; grid-template-columns:minmax(0, 4fr) minmax(0, 8fr); gap:var(--gap-columns); }
.questions-layout>div>.text-link { margin-top:var(--space-lg); }
.questions { border-top:1px solid var(--color-rule); }
.questions details { border-bottom:1px solid var(--color-rule); }
.questions summary { list-style:none; display:flex; justify-content:space-between; gap:var(--space-lg); align-items:center; cursor:pointer; min-height:88px; padding-block:var(--space-lg); }
.questions summary::-webkit-details-marker { display:none; }
.questions summary::after { content:'+'; font-size:24px; font-family:var(--font-display); }
.questions details[open] summary::after { content:'−'; }
.questions details p { color:var(--color-muted); padding-bottom:var(--space-lg); }
.questions details>a { margin-bottom:var(--space-lg); }
.site-footer { background:var(--color-paper-2); padding-block:var(--section-gap-s) var(--space-xl); }
.footer-invitation { display:flex; justify-content:space-between; align-items:flex-end; gap:var(--space-xl); }
.footer-invitation h2 { font-size:clamp(32px,4vw,56px); line-height:1.45; }
.footer-invitation p { margin-bottom:var(--space-lg); color:var(--color-muted); }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; gap:var(--space-lg); border-top:1px solid var(--color-rule); padding-top:var(--space-xl); margin-top:var(--space-3xl); }
.footer-bottom nav { display:flex; gap:var(--space-lg); }
.footer-bottom nav a { display:inline-flex; align-items:center; min-height:44px; font-size:var(--text-sm); }
.footer-bottom>span { color:var(--color-muted); font-size:var(--text-xs); }
.lightbox { position:fixed; inset:0; width:min(100%,1200px); max-width:100%; height:100dvh; max-height:100dvh; margin:auto; border:0; padding:var(--space-lg); background:var(--color-photo-backdrop); color:var(--color-photo-ink); }
.lightbox::backdrop { background:var(--color-photo-backdrop); }
.lightbox[open] { display:flex; flex-direction:column; align-items:center; }
.lightbox-top, .lightbox-bottom { display:flex; width:100%; align-items:center; justify-content:space-between; gap:var(--space-md); }
.lightbox-top { margin-bottom:var(--space-md); }
.lightbox-top p { font-size:var(--text-sm); }
.lightbox img { width:100%; min-height:0; flex:1; object-fit:contain; }
.lightbox button { cursor:pointer; color:var(--color-photo-ink); background:var(--color-clear); border:1px solid var(--color-muted); min-height:44px; padding:var(--space-xs) var(--space-md); font-size:var(--text-sm); }
.lightbox button:hover { border-color:var(--color-photo-ink); }
.lightbox :focus-visible { outline-color:var(--color-photo-ink); }
.lightbox-bottom { margin-top:var(--space-md); }
.lightbox-bottom span { font-size:var(--text-sm); }
@media (min-width:60rem) { .hero-photo img { transform:translate(-50%,-58%); } }
@media (max-width:60rem) { .section-heading { display:block; } .section-heading p { margin-top:var(--space-md); } .venue-index { padding-left:var(--space-lg); } .price-row { grid-template-columns:minmax(0, 3fr) minmax(0, 5fr) minmax(0, 3fr); } .price-row .text-link { grid-column:3; justify-self:start; } .included { display:block; } .included p+p { margin-top:var(--space-xs); } .questions-layout { grid-template-columns:minmax(0, 1fr); } .questions { margin-top:var(--space-xl); } .footer-bottom { flex-wrap:wrap; } }
@media (max-width:40rem) { .section-heading { margin-bottom:var(--space-xl); } .section-heading p { font-size:var(--text-sm); } .venue-layout { display:flex; flex-direction:column; gap:var(--space-xl); } .venue-index { order:-1; padding:0; } .venue-buttons { display:flex; gap:var(--space-md); border-top:0; } .venue-choice { width:auto; flex:1; padding:var(--space-md) 0; } .venue-choice span { font-size:var(--text-sm); word-break:keep-all; } .venue-choice small { font-size:var(--text-xs); } .venue-note, .venue-index>.text-link { display:none; } .price-row { grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:var(--space-md); padding-block:var(--space-xl); } .price-row h3 { font-size:28px; } .price-row .price { grid-column:2; grid-row:1; font-size:27px; text-align:right; } .price-row>p:not(.price) { grid-column:1 / -1; } .price-row .text-link { grid-column:1 / -1; } .included { font-size:var(--text-xs); } .footer-invitation { display:block; } .footer-invitation>div { margin-top:var(--space-xl); } .footer-bottom { display:block; margin-top:var(--space-2xl); padding-top:var(--space-lg); } .footer-bottom nav { margin-block:var(--space-lg) var(--space-md); } .lightbox { padding:var(--space-md); } .questions summary { font-size:var(--text-sm); } }
.venue-choice { min-height:52px; height:52px; flex-direction:row; justify-content:space-between; align-items:center; gap:var(--space-md); padding:var(--space-xs) 0; }
.venue-choice span { font-size:var(--text-md); }
.venue-choice small { margin:0; }
.thumb { width:72px; height:48px; }
.price-row h3 { font-variant-numeric:tabular-nums; }
.questions-layout { grid-template-columns:minmax(0, 1fr); }
.questions-layout>div:first-child { display:flex; align-items:center; justify-content:space-between; gap:var(--space-lg); }
.questions-layout>div>.text-link { margin-top:0; }
.questions { margin-top:0; }
@media (max-width:40rem) { .venue-choice { flex-direction:column; justify-content:center; gap:var(--space-2xs); } .venue-choice span { font-size:var(--text-xs); } .venue-choice small { font-size:var(--text-xs); } .questions-layout>div:first-child { display:block; } .questions-layout>div>.text-link { margin-top:var(--space-md); } }
/* Venue portfolio pages share the homepage's type, paper and spacing. */
.venue-detail { padding-bottom:var(--section-gap-s); }
.back-link { margin-top:var(--space-lg); }
.detail-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:var(--space-xl); padding-block:var(--space-xl) var(--space-2xl); }
.detail-label { color:var(--color-muted); font-size:var(--text-sm); margin-bottom:var(--space-md); }
.detail-heading h1 { max-width:none; }
.detail-heading>.text-link { flex-shrink:0; }
.venue-description { max-width:50ch; color:var(--color-muted); margin-top:var(--space-lg); line-height:1.9; }
.venue-notes { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:var(--gap-columns); padding-block:var(--space-xl); border-block:1px solid var(--color-rule); margin-bottom:var(--space-2xl); }
.venue-notes h2 { font-size:24px; margin-bottom:var(--space-md); }
.venue-notes p { line-height:1.9; color:var(--color-muted); }
.portfolio-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-2xl) var(--gap-columns); align-items:start; }
.portfolio-photo { margin:0; min-width:0; }
.portfolio-photo:first-child { grid-column:1 / -1; width:min(100%,1000px); justify-self:center; }
.portfolio-photo a { display:block; }
.portfolio-photo a:hover { opacity:.92; }
.portfolio-photo img { display:block; width:100%; height:auto; }
.portfolio-photo figcaption { display:flex; justify-content:space-between; gap:var(--space-md); padding-top:var(--space-sm); font-size:var(--text-sm); color:var(--color-muted); }
.portfolio-photo figcaption span:last-child { font-variant-numeric:tabular-nums; }
.other-venues { margin-top:var(--section-gap-s); padding-top:var(--space-xl); border-top:1px solid var(--color-rule); }
.other-venues h2 { font-size:28px; margin-bottom:var(--space-lg); }
.other-venues>div { display:flex; flex-wrap:wrap; gap:var(--space-lg) var(--space-2xl); }
.other-venues a { gap:var(--space-md); }
@media(max-width:40rem) { .detail-heading { display:block; padding-block:var(--space-lg) var(--space-xl); } .detail-heading>.text-link { margin-top:var(--space-md); } .portfolio-grid { grid-template-columns:minmax(0,1fr); gap:var(--space-xl); } .portfolio-photo figcaption { font-size:var(--text-xs); } .other-venues>div { display:block; } .other-venues a { display:flex; justify-content:space-between; } }
/* Confirmed shooting guidance and grouped FAQs. */
.guide-section { padding-block:var(--section-gap-s); }
.guide-intro { border-top:1px solid var(--color-ink); padding-top:var(--space-xl); }
.guide-section h3,.faq-group h3 { font-size:24px; line-height:1.5; word-break:keep-all; }
.guide-section p { line-height:1.9; color:var(--color-ink-2); max-width:75ch; margin-top:var(--space-md); }
.guide-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--gap-columns); margin-top:var(--space-2xl); }
.guide-columns ul { padding-left:1.2em; margin-top:var(--space-md); line-height:2; }
.guide-block { margin-top:var(--space-2xl); }
.guide-rows { margin-top:var(--space-lg); border-top:1px solid var(--color-rule); }
.guide-rows>div { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--gap-columns); padding-block:var(--space-md); border-bottom:1px solid var(--color-rule); }
.guide-rows dd { margin:0; text-align:right; font-variant-numeric:tabular-nums; }
.guide-rows dt span { color:var(--color-muted); font-size:var(--text-sm); }
.faq-group { margin-top:var(--space-2xl); }
.faq-group h3 { margin-bottom:var(--space-lg); }
.faq-group .questions details p { max-width:80ch; line-height:1.9; }
@media(max-width:40rem) { .guide-columns { grid-template-columns:minmax(0,1fr); gap:var(--space-xl); } .guide-section h3,.faq-group h3 { font-size:22px; } .guide-rows>div { gap:var(--space-md); } .guide-rows dd,.guide-rows dt { font-size:var(--text-sm); word-break:keep-all; } }
/* Separate menu pages; every menu remains visible on small screens. */
.page-header { border-bottom:1px solid var(--color-rule); margin-bottom:var(--space-xl); }
.brand-row { min-height:88px; display:flex; justify-content:space-between; align-items:center; gap:var(--space-md); }
.page-tabs { display:flex; gap:var(--space-xl); overflow-x:auto; }
.page-tabs a { display:flex; align-items:center; min-height:52px; flex-shrink:0; border-bottom:2px solid transparent; font-size:var(--text-sm); color:var(--color-muted); }
.page-tabs a[aria-current="page"] { border-color:var(--color-ink); color:var(--color-ink); }
.page-tabs a:hover { color:var(--color-ink); }
.section-heading h1 { font-size:clamp(28px,3vw,44px); }
.venue-list { padding-block:var(--space-xl) var(--section-gap-s); }
.venue-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-2xl) var(--gap-columns); }
.venue-card { display:block; min-width:0; }
.venue-card>img { width:100%; aspect-ratio:1; object-fit:contain; background:white; }
.venue-card h3 { font-size:22px; line-height:1.6; margin-block:var(--space-md) var(--space-xs); }
.venue-card div>span { font-size:var(--text-sm); color:var(--color-muted); }
.venue-card:hover h3 { text-decoration:underline; text-underline-offset:5px; }
.portfolio-photo:first-child { width:100%; }
.portfolio-photo img { max-height:1200px; object-fit:contain; }
.compact-footer { border-top:1px solid var(--color-rule); padding-block:var(--space-xl); margin-top:var(--space-2xl); }
.compact-footer>.container { display:flex; align-items:center; justify-content:space-between; gap:var(--space-lg); flex-wrap:wrap; }
.compact-footer nav { display:flex; gap:var(--space-lg); }
.compact-footer nav a { font-size:var(--text-sm); min-height:44px; display:inline-flex; align-items:center; }
.compact-footer small { color:var(--color-muted); }
@media(max-width:60rem){ .venue-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:40rem){ .brand-row { min-height:72px; } .brand-row .wordmark { font-size:22px; } .page-tabs { gap:var(--space-lg); } .page-tabs a { font-size:13px; min-height:48px; } .venue-card-grid { grid-template-columns:minmax(0,1fr); } .compact-footer>.container { display:block; } .compact-footer nav { margin-block:var(--space-md); } }
/* Product detail: complete deliverables, with color-edited files foregrounded. */
.product-page { padding-top:var(--space-xl); padding-bottom:var(--section-gap-s); }
.product-intro { max-width:860px; }
.product-intro h1 { font-size:clamp(32px,4vw,54px); }
.product-intro>p:not(.detail-label) { margin-top:var(--space-lg); line-height:1.9; }
.product-lead { font-size:clamp(19px,2vw,25px); }
.product-note { color:var(--color-muted); font-size:var(--text-sm); line-height:1.8; margin-top:var(--space-lg); }
.product-jump { display:flex; flex-wrap:wrap; gap:var(--space-lg); border-bottom:1px solid var(--color-rule); padding-block:var(--space-xl); }
.product-section { margin-top:var(--section-gap-s); scroll-margin-top:var(--space-lg); }
.product-common { padding:var(--space-xl); background:var(--color-paper-2); margin-bottom:var(--space-xl); }
.product-common h3 { font-size:24px; margin-bottom:var(--space-md); }
.product-common ul,.package ul,.sub-package ul { padding-left:1.2em; line-height:2; }
.package-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--gap-columns); }
.package { padding-block:var(--space-lg); border-block:1px solid var(--color-rule); display:flex; flex-direction:column; align-items:flex-start; }
.package h3 { font-size:32px; }
.package-price { font-family:var(--font-display); font-size:32px; font-variant-numeric:tabular-nums; margin-block:var(--space-md) var(--space-lg); }
.package-price span { font-family:var(--font-body); font-size:var(--text-sm); margin-left:var(--space-xs); }
.package ul { margin-bottom:var(--space-lg); font-size:var(--text-sm); }
.package li span { color:var(--color-muted); }
.package>.text-link { margin-top:auto; }
.sub-package { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--gap-columns); border-block:1px solid var(--color-rule); padding-block:var(--space-xl); }
.sub-package p { line-height:1.9; }
.sub-package .text-link { margin-top:var(--space-lg); }
.file-types { border-top:1px solid var(--color-rule); }
.file-types>div { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:var(--gap-columns); padding-block:var(--space-xl); border-bottom:1px solid var(--color-rule); }
.file-types dt { font-size:22px; }
.file-types dt span { display:block; font-size:var(--text-sm); color:var(--color-muted); margin-top:var(--space-xs); }
.file-types dd { margin:0; line-height:1.9; }
@media(max-width:60rem){ .package-grid { grid-template-columns:minmax(0,1fr); } .package ul { font-size:var(--text-md); } }
@media(max-width:40rem){ .product-common { padding:var(--space-lg); } .sub-package,.file-types>div { grid-template-columns:minmax(0,1fr); gap:var(--space-lg); } .product-jump { gap:var(--space-md); } }
.slide-frame { position:relative; background:var(--color-paper-2); overflow:hidden; height:clamp(320px,60vh,680px); }
.slide-frame>a,.slide-frame img { display:block;width:100%;height:100%; }
.slide-frame img { object-fit:cover;object-position:center; }
.slide-controls:not([hidden]) { display:flex;position:absolute;bottom:16px;left:50%;transform:translateX(-50%);background:rgba(18,18,18,.78);border-radius:32px; }
.slide-controls button { border:none;background:transparent;color:white;cursor:pointer;width:44px;height:44px;font-size:21px; }
.slide-controls button:focus-visible { outline:2px solid white;outline-offset:-3px; }
@media(max-width:40rem){.slide-frame {height:clamp(280px,48vh,430px)}}
/* Home is a photographic landing page. Navigation occupies only its natural height. */
.photo-home { margin:0; display:grid; grid-template-rows:auto minmax(0,1fr); height:100vh; height:100dvh; }
.photo-home .page-header { margin:0; }
.photo-home #main,.photo-home .home-gallery,.photo-home .slide-frame { width:100%;height:100%;min-height:0; }
.photo-home .slide-controls { bottom:max(18px,env(safe-area-inset-bottom)); }
@media(min-width:64rem){
.photo-home .page-header { display:flex;align-items:center;justify-content:space-between;padding-inline:4vw;gap:2rem; }
.photo-home .brand-row,.photo-home .page-tabs { width:auto;max-width:none;margin:0;padding:0; }
.photo-home .brand-row { min-height:68px; gap:2rem; }
}
.photo-home .home-gallery { display:grid;grid-template-rows:minmax(0,1fr) auto; }
.home-intro { padding:clamp(12px,2.3vh,26px) 4vw;display:flex;align-items:baseline;justify-content:space-between;gap:12px; }
.home-intro h1 { font-size:clamp(21px,2.6vw,38px);line-height:1.35; }
.home-intro p { color:var(--color-muted);font-size:var(--text-sm); }
@media(max-width:46rem){ .home-intro { display:block; } .home-intro p { margin-top:4px; } }
.photo-home .home-gallery { display:flex; flex-direction:column; }
.home-stage { flex:1 1 0; min-height:0; container-type:size; display:grid; place-items:center; }
.photo-home .slide-frame { width:min(100cqw,133.333333cqh); height:auto; aspect-ratio:4 / 3; }
.photo-home .slide-frame>a { position:absolute; inset:0; }
.photo-home .home-intro { flex:none; padding-block:calc(clamp(12px,2.3vh,26px) * 1.3 + clamp(21px,2.6vw,38px) * .2025); }
@media(max-width:46rem){
 .photo-home { height:auto; min-height:100svh; display:block; }
 .photo-home #main,.photo-home .home-gallery { height:auto; }
 .home-stage { flex:none; container-type:normal; }
 .photo-home .slide-frame { width:100%; }
 .photo-home .home-intro { padding-block:calc(clamp(12px,2.3vh,26px) * 1.3 + .2025 * clamp(21px,2.6vw,38px) + .8px + .24 * var(--text-sm)); }
}

#booking { max-width: 46rem; word-break: keep-all; overflow-wrap: break-word; }
#booking h2 { margin-bottom: 2rem; }
#booking h3 { margin: 2.5rem 0 .8rem; }
#booking h2 + h3 { margin-top: 0; }
#booking p { line-height: 1.8; }
#booking p + p { margin-top: .85rem; }
.business-info { display: flex; flex-wrap: wrap; gap: .35rem 1.1rem; }
.photo-home .compact-footer { grid-row: 3; }
@media (min-width: 761px) {
  .photo-home { grid-template-rows: auto minmax(0, 1fr) 0; }
  .photo-home .compact-footer { align-self: start; width: 100%; }
}
