/* Haus H — Mediterranean cinema, clear everyday controls. */
:root { --gh-radius: 16px; --gh-shadow: 0 16px 50px #153d3820; }
html { scroll-padding-top: 110px; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
h1,h2,h3 { font-optical-sizing:auto; text-wrap:balance; }
p { text-wrap:pretty; }
button,a,input,select,textarea,summary { -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
button,a,summary { transition:background-color .18s, color .18s, box-shadow .18s, opacity .18s; }
button:active,.gh-link-button:active,.ghp-link-button:active { filter:brightness(.92); }
:where(a,button,summary,input,select,textarea):focus-visible { outline:3px solid #127c80 !important; outline-offset:4px; }
:where(.gh-site-header,.gh-hero,.ghp-lightbox) :focus-visible { outline-color:#ffda90 !important; }
.gh-skip-link { position:fixed; top:8px; left:16px; z-index:10000; padding:12px 20px; border-radius:12px; color:#163e38; background:#fff9ef; transform:translateY(-160%); }
.gh-skip-link:focus { transform:none; }
#gh-main { scroll-margin-top:100px; }
.gh-site-header { border-radius:20px; background:rgba(22,48,44,.92); box-shadow:0 12px 42px #062d3830; }
.gh-nav { gap:3px; }
.gh-nav a,.gh-nav summary { min-height:44px; display:flex; align-items:center; border-radius:10px; padding:9px 10px; font-size:13px; white-space:nowrap; }
.gh-nav a[aria-current=page] { background:#fff3; box-shadow:inset 0 -2px #f6cf87; }
.gh-more-panel { background:#163a35; border-radius:14px; padding:8px; box-shadow:0 18px 60px #08211d40; }
.gh-more-panel a { color:#fffaf0; }
.gh-more-panel a:hover { background:#fff2; }
.gh-hero { background:#173e38; }
.gh-hero h1 { font-size:clamp(3rem,7.2vw,7rem); line-height:1.02; letter-spacing:-.065em; max-width:100%; }
.gh-hero h1 span { color:#f3d8aa; }
.gh-hero-inner { padding-top:120px; }
.gh-hero-copy p { max-width:36ch; line-height:1.6; }
.gh-hero-frame { border-radius:24px; }
.gh-hero .gh-link-button { border-radius:12px; }
.gh-home-section { padding-block:clamp(56px,8vw,112px); }
.gh-home-section h2 { font-size:clamp(2rem,4vw,3.8rem); letter-spacing:-.045em; line-height:1.1; }
.gh-home-section p { max-width:52ch; line-height:1.7; }
.gh-image-column img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:18px; }
.gh-strip { gap:12px; padding-inline:clamp(16px,3vw,48px); }
.gh-strip img { border-radius:16px; }
.gh-home-photo { padding:0; border:0; border-radius:14px; overflow:hidden; cursor:zoom-in; background:#d9e8e1; aspect-ratio:4/3; }
.gh-home-photo img { width:100%; height:100%; object-fit:cover; transition:transform .35s; }
@media(hover:hover){ .gh-home-photo:hover img { transform:scale(1.035); } }
.gh-page-main { min-height:70svh; }
.ghp-app-head h1,.ghp-app-head h2 { letter-spacing:-.045em; line-height:1.12; }
.ghp-section { scroll-margin-top:110px; }
.ghp-section-head p,.ghp-auth p { line-height:1.65; }
.ghp-form input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.ghp-form select,.ghp-form textarea { min-height:48px; font-size:16px; border-radius:10px; background:#fffefa; color:#203432; }
.ghp-form label { line-height:1.45; }
.ghp-form button,.ghp-link-button { min-height:46px; border-radius:11px; }
.ghp-calendar-day { min-height:40px; }
.ghp-gallery-item { overflow:hidden; border-radius:14px; }
.ghp-gallery-item img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.ghp-video-shell { grid-template-columns:minmax(0,1fr); }
.ghp-video-frame { width:100%; aspect-ratio:16/9; min-height:0; border-radius:20px; overflow:hidden; background:#102c29; }
.ghp-video-frame iframe,.ghp-video-frame video { width:100%; height:100%; border:0; }
.gh-video-launch { width:100%; height:100%; padding:0; border:0; position:absolute; inset:0; cursor:pointer; background:#102c29; }
.gh-video-launch img { width:100%; height:100%; object-fit:contain; }
.gh-video-launch::after { content:''; position:absolute; inset:45% 0 0; background:linear-gradient(transparent,#071e1cbb); }
.gh-video-launch-label { position:absolute; z-index:1; bottom:8%; left:50%; transform:translateX(-50%); display:flex; align-items:center; gap:12px; padding:14px 22px; background:#fff9ed; color:#143d36; border-radius:99px; font-size:16px; font-weight:800; white-space:nowrap; box-shadow:0 8px 30px #071e1c55; }
.gh-video-launch-label span { display:grid; place-items:center; background:#1c6258; color:#fff; border-radius:50%; width:36px; height:36px; }
.ghp-video-side { display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.ghp-video-side img { width:120px; height:80px; object-fit:cover; border-radius:12px; }
dialog.ghp-lightbox { inset:0; width:100%; height:100%; max-width:none; max-height:none; margin:0; padding:60px 72px 80px; border:0; background:#071a18f5; color:#fff; }
dialog.ghp-lightbox:not([open]) { display:none; }
dialog.ghp-lightbox[open] { display:flex; align-items:center; justify-content:center; }
dialog.ghp-lightbox::backdrop { background:#071a18dd; }
dialog.ghp-lightbox img { width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; border-radius:6px; }
.ghp-lightbox-close,.gh-photo-prev,.gh-photo-next { position:absolute; display:grid; place-items:center; width:48px; height:48px; border:1px solid #fff5; border-radius:50%; background:#fff2; color:white; font-size:25px; cursor:pointer; }
.ghp-lightbox-close { top:max(16px,env(safe-area-inset-top)); right:20px; }
.gh-photo-prev { left:14px; top:calc(50% - 24px); }
.gh-photo-next { right:14px; top:calc(50% - 24px); }
.gh-photo-caption { position:absolute; bottom:max(12px,env(safe-area-inset-bottom)); left:20px; right:20px; margin:0; text-align:center; font-size:14px; line-height:1.5; }
@media(max-width:1100px) and (min-width:861px) { .gh-site-header { width:calc(100% - 24px); gap:8px; padding:10px; } .gh-brand span { display:none; } .gh-nav a,.gh-nav summary { padding-inline:8px; } }
@media(max-width:860px) {
  html { scroll-padding-top:90px; }
  .gh-site-header { top:10px; width:calc(100% - 24px); border-radius:17px; padding:10px 14px; }
  .gh-menu-toggle { width:44px; height:44px; flex-shrink:0; border-radius:10px; }
  .gh-nav { visibility:hidden; }
  .gh-site-header.is-menu-open .gh-nav { visibility:visible; max-height:calc(100dvh - 96px); overscroll-behavior:contain; padding-bottom:env(safe-area-inset-bottom); }
  .gh-nav a,.gh-nav summary { min-height:48px; font-size:16px; }
  .gh-more-panel { background:transparent; }
  .gh-hero { padding-top:0; }
  .gh-hero-frame { min-height:710px; border-radius:0 0 24px 24px; }
  .gh-hero-inner { padding:124px 22px 170px; }
  .gh-hero h1 { font-size:clamp(3rem,12.5vw,5rem); letter-spacing:-.055em; }
  .gh-hero-marker { display:none; }
  .gh-hero .gh-actions { width:100%; }
  .gh-hero-copy { margin-top:18px; }
  .gh-hero-copy p { font-size:16px; }
  .gh-hero-rail { border-radius:12px; }
  .gh-page-main { padding-top:108px; }
  .gh-home-section { padding-inline:20px; }
  .ghp-video-frame { border-radius:14px; }
  .gh-video-launch-label { bottom:9%; padding:10px 14px; font-size:14px; }
  .gh-video-launch-label span { width:28px; height:28px; }
  dialog.ghp-lightbox { padding:76px 12px 108px; }
  .gh-photo-prev,.gh-photo-next { top:auto; bottom:48px; }
  .gh-photo-prev { left:calc(50% - 60px); } .gh-photo-next { right:calc(50% - 60px); }
  .gh-photo-caption { font-size:12px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms !important; animation-delay:0s !important; transition-duration:.01ms !important; }
  .gh-hero-frame,[data-ghp-scroll-motion] { transform:none !important; }
}
@media(prefers-reduced-transparency:reduce) { .gh-site-header,.gh-more-panel { background:#173c36; backdrop-filter:none; } }
@media(prefers-contrast:more) { .gh-site-header { background:#102d28; border:2px solid white; } .ghp-form input,.ghp-form select,.ghp-form textarea { border:2px solid #30584e; } }
.ghp-video-side { padding:12px; background:#e1efe7; min-height:0; }
.ghp-video-side img { min-height:0; height:80px; flex:0 0 120px; }
.ghp-app .gh-video-launch { border-radius:0; }
.gh-video-launch img { border-radius:0; }
.ghp-app-head { border-radius:18px; }
.gh-hero-frame { transform:none !important; }
@media(max-width:860px) {
 .gh-site-header { margin:10px auto 0; left:auto; right:auto; }
 .gh-page-main { padding-top:28px; }
 .ghp-app-head { padding:22px; gap:18px; }
 .ghp-app-head h2 { font-size:28px; max-width:22ch; }
 .ghp-app-head-actions { gap:8px; }
 .ghp-app-head-actions .ghp-link-button { flex:1 1 calc(50% - 8px); font-size:13px; padding:9px 10px; }
 .ghp-app-head-actions .ghp-link-button:last-child { flex:0 1 100%; }
 .gh-hero-inner { padding-top:90px; }
}
.ghp-form button:not(.ghp-danger),.ghp-link-button:not(.ghp-muted):not(.ghp-secondary) { background:#176b61; color:#fffefa; }
.gh-nav .gh-more-menu:has(a[aria-current=page])>summary { box-shadow:inset 0 -2px #f6cf87; }
@media(max-width:380px) { .gh-brand span { display:none; } .gh-hero-inner { padding-inline:20px; } }
.ghp-section h3 { font-size:clamp(1.6rem,3vw,2.25rem); line-height:1.2; letter-spacing:-.03em; }
.ghp-calendar-day { touch-action:pan-y; }
@media(min-width:861px) { .gh-nav { overflow:visible; } }
.ghp-app .ghp-calendar-day { touch-action:pan-y; }
/* Private entrance: a readable material and normal document scrolling, including
   short screens and an open software keyboard. The house photo stays original. */
body.gh-gate-open { overflow-x:hidden; overflow-y:auto; }
.ghp-gate { position:relative; inset:auto; min-height:100svh; height:auto; overflow:visible; padding:32px 20px; }
.ghp-gate-bg,.ghp-gate::after { position:fixed; }
.ghp-gate-bg { animation:none; transform:none; }
.ghp-gate-form { width:min(440px,100%); padding:clamp(26px,5vw,40px); border:1px solid #fffaf0cc; border-radius:24px; background:#fffdf4f2; color:#173d35; box-shadow:0 24px 72px #102e3040; backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px); }
.ghp-gate-form>span { color:#526b5e; font-size:11px; font-weight:750; letter-spacing:.12em; }
.ghp-gate-form h1 { font-family:var(--gh-display,var(--ghp-display)); font-size:clamp(44px,10vw,64px); line-height:1; letter-spacing:-.055em; margin:4px 0 28px; }
.ghp-gate-hint { color:#4b6258; font-size:15px; line-height:1.6; }
.ghp-gate-form label { color:#284d40; font-size:12px; letter-spacing:.03em; }
.ghp-gate-form input { border:1px solid #9aaa9c; border-radius:12px; background:#fffef9; color:#173d35; min-height:52px; font-size:16px; }
.ghp-gate-form input:focus { border-color:#18745e; outline:3px solid #18745e; outline-offset:3px; box-shadow:none; }
.ghp-gate-form button { min-height:52px; border-radius:12px; background:#184d40; color:#fffdf3; box-shadow:none; font-size:16px; font-weight:700; }
.ghp-gate-form button:hover { background:#0f3d31; transform:none; filter:none; box-shadow:none; }
.ghp-gate-form button:active { transform:scale(.985); }
.ghp-gate-form button:focus-visible { outline:3px solid #18745e; outline-offset:4px; }
.ghp-gate-form .ghp-error { color:#812e22; background:#ffebe4; border:1px solid #e6b8a7; border-radius:12px; padding:12px 14px; font-size:14px; font-weight:650; line-height:1.5; }
@media(max-height:500px) { .ghp-gate { place-items:start center; padding-block:20px; } }
@media(prefers-reduced-transparency:reduce) { .ghp-gate-form { background:#fffdf4; backdrop-filter:none; -webkit-backdrop-filter:none; } }
@media(prefers-contrast:more) { .ghp-gate-form { background:#fffdf4; border:2px solid #173d35; } .ghp-gate-form input { border:2px solid #284d40; } }
/* Account tasks use the same quiet house materials as the entrance. Keep the
   choices and recovery links compact, readable and comfortable to tap. */
.ghp-auth { padding:clamp(22px,3vw,38px); border:1px solid #dce4d5; border-radius:24px; background:#fffdf4f2; box-shadow:0 16px 48px #153d3814; }
.ghp-auth h2 { max-width:25ch; font-size:clamp(28px,4vw,48px); line-height:1.12; letter-spacing:-.04em; text-wrap:balance; }
.ghp-auth .ghp-eyebrow { color:#526b5e; font-size:11px; font-weight:750; letter-spacing:.1em; }
.ghp-auth p,.ghp-auth-choice-card>span,.ghp-auth-choice-card>small { color:#4b6258; }
.ghp-auth .ghp-form { padding:24px; border:1px solid #dce4d5; border-radius:18px; background:#fffef9; box-shadow:0 8px 24px #153d380a; }
.ghp-auth .ghp-form h3 { margin-top:0; font-size:22px; letter-spacing:-.025em; }
.ghp-auth .ghp-form label { color:#284d40; }
.ghp-auth .ghp-form input { min-height:52px; border:1px solid #7d9284; border-radius:12px; background:#fffef9; color:#173d35; font-size:16px; }
.ghp-auth .ghp-form input:focus { border-color:#18745e; outline:3px solid #18745e; outline-offset:3px; box-shadow:none; }
.ghp-auth .ghp-form button { min-height:52px; border-radius:12px; background:#184d40; color:#fffdf3; box-shadow:none; }
.ghp-auth .ghp-form button:hover { background:#0f3d31; transform:none; filter:none; }
.ghp-auth .ghp-form button:active { transform:scale(.985); }
.ghp-auth .ghp-form button:focus-visible { outline:3px solid #18745e; outline-offset:4px; }
.ghp-auth .ghp-auth-form-links { display:flex; flex-wrap:wrap; gap:4px 16px; margin-top:12px; }
.ghp-auth .ghp-auth-form-links a { display:inline-flex; align-items:center; min-height:44px; color:#245b48; font-size:14px; line-height:1.5; text-decoration:underline; text-underline-offset:3px; }
.ghp-auth-choice-card { min-height:164px; padding:24px; gap:10px; border:1px solid #d4dfd1; border-radius:18px; background:linear-gradient(150deg,#fffef9,#edf3e9); box-shadow:0 8px 24px #153d380a; }
.ghp-auth-choice-card>strong { font-size:clamp(25px,3vw,34px); line-height:1.15; letter-spacing:-.035em; color:#173d35; }
.ghp-auth-choice-card:focus-visible { outline:3px solid #18745e; outline-offset:4px; }
.ghp-auth .ghp-message { border:1px solid #dcbfac; border-radius:12px; background:#f7e9dd; color:#713b25; font-size:14px; line-height:1.5; overflow-wrap:anywhere; }
@media(max-width:480px) { .ghp-auth { padding:22px 16px; border-radius:20px; } .ghp-auth .ghp-form { padding:20px 16px; } .ghp-auth-choice-card { min-height:144px; padding:20px; } }
@media(prefers-reduced-transparency:reduce) { .ghp-auth { background:#fffdf4; } }
@media(prefers-contrast:more) { .ghp-auth,.ghp-auth .ghp-form,.ghp-auth-choice-card { background:#fffdf4; border:2px solid #284d40; } }

/* Private workspace: one clear task heading, readable surfaces and original media. */
.ghp-app { min-width:0; gap:24px; color:#203e34; }
.ghp-app .ghp-app-head { min-height:0; padding:28px 32px; gap:24px; border:0; border-radius:22px; background:linear-gradient(90deg,#102f29f5,#173f37de 48%,#173f3770),url('assets/images/hero-privlaka.jpg') center 52%/cover; box-shadow:0 12px 36px #153d3820; }
.ghp-app .ghp-app-head::before,.ghp-app .ghp-app-head::after { display:none; }
.ghp-app .ghp-app-head h2 { max-width:28ch; margin:8px 0 0; font-size:clamp(25px,3vw,38px); line-height:1.14; letter-spacing:-.035em; color:#fffdf4; }
.ghp-app .ghp-app-head .ghp-eyebrow { color:#f4d8a2; font-size:11px; letter-spacing:.1em; }
.ghp-app .ghp-app-head-actions { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-start; max-width:470px; }
.ghp-app .ghp-app-head-actions .ghp-link-button { flex:0 1 auto; min-height:44px; padding:10px 14px; border-radius:11px; font-size:13px; line-height:1.4; box-shadow:none; background:#fffdf4; color:#173f34; }
.ghp-app .ghp-app-head-actions .ghp-muted { background:#173b32cc!important; color:#fffdf4!important; border:1px solid #fffdf480; }
.ghp-app .ghp-section { padding:clamp(22px,3vw,36px); border:1px solid #dce4d5; border-radius:22px; background:#fffdf6f7; box-shadow:0 12px 36px #153d3810; }
.ghp-app .ghp-eyebrow { color:#4c6758; }
.ghp-app .ghp-section h3 { font-size:clamp(24px,2.5vw,32px); line-height:1.18; letter-spacing:-.03em; }
.ghp-app .ghp-stat-strip { gap:1px; border:1px solid #d6dfd0; border-radius:16px; padding:0; background:#d6dfd0; box-shadow:none; overflow:hidden; }
.ghp-app .ghp-stat-strip article { padding:16px; border-radius:0; background:#f4f7ef; }
.ghp-app .ghp-stat-strip span { color:#4b6254; }
.ghp-app .ghp-overview-card,.ghp-app .ghp-onboarding-step { border:1px solid #dce4d5; border-radius:16px; background:#fffef9; box-shadow:none; }
.ghp-app .ghp-overview-card { border-color:#7d9284; }
.ghp-app summary { min-height:44px; padding-block:12px; }
.ghp-app button:not(.ghp-calendar-day):not(.ghp-gallery-item) { min-height:44px; }
.ghp-app .ghp-overview-card:hover { border-color:#7d9b82; background:#f0f5eb; transform:none; }
.ghp-app .ghp-overview-card span { font-size:26px; letter-spacing:-.025em; line-height:1.1; }
.ghp-app .ghp-onboarding-hero { align-items:center; grid-template-columns:minmax(0,1fr) minmax(220px,.65fr); gap:28px; }
.ghp-app .ghp-onboarding-hero figure { border-radius:16px; width:100%; aspect-ratio:4/3; }
.ghp-app .ghp-onboarding-hero img { display:block; width:100%; height:100%; min-height:0; object-fit:cover; }
.ghp-app .ghp-onboarding-hero p { font-size:16px; line-height:1.65; color:#4b6254; }
.ghp-app .ghp-onboarding-step { min-height:0; padding:20px; align-content:start; }
.ghp-app .ghp-onboarding-step span { color:#2d6550; font-size:13px; }
.ghp-app .ghp-onboarding-step strong { font-size:17px; line-height:1.4; }
.ghp-app .ghp-onboarding-step p { color:#4b6254; font-size:15px; line-height:1.6; }
.ghp-app .ghp-onboarding-done button { min-height:48px; padding:12px 18px; border:0; border-radius:12px; background:#184d40; color:#fffdf3; font-size:16px; }
.ghp-app .ghp-link-button:not(.ghp-danger):not(.ghp-muted):not(.ghp-secondary),.ghp-app .ghp-form button:not(.ghp-danger) { background:#184d40; color:#fffdf3; box-shadow:none; }
.ghp-app .ghp-section .ghp-link-button.ghp-muted { background:#edf3e8!important; color:#274f3e!important; box-shadow:none; }
.ghp-app .ghp-message { border:1px solid #dcbfac; border-radius:12px; background:#f7e9dd; color:#713b25; font-size:15px; line-height:1.55; }
@media(max-width:900px) { .ghp-app .ghp-app-head { display:grid; padding:24px; gap:20px; } .ghp-app .ghp-onboarding-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .ghp-app { gap:18px; } .ghp-app .ghp-app-head { padding:24px 20px; border-radius:18px; } .ghp-app .ghp-app-head-actions { gap:8px; } .ghp-app .ghp-app-head-actions .ghp-link-button { width:auto; min-height:44px; padding:10px 12px; font-size:13px; } .ghp-app .ghp-section { padding:22px 16px; border-radius:18px; } .ghp-app .ghp-onboarding-hero { grid-template-columns:minmax(0,1fr); gap:20px; } .ghp-app .ghp-onboarding-grid { grid-template-columns:minmax(0,1fr); } .ghp-app .ghp-onboarding-step { padding:18px; } }
@media(prefers-reduced-transparency:reduce) { .ghp-app .ghp-section { background:#fffdf6; } }
@media(prefers-contrast:more) { .ghp-app .ghp-section,.ghp-app .ghp-overview-card,.ghp-app .ghp-onboarding-step { border:2px solid #284d40; background:#fffdf6; } }

.ghp-app>*,.ghp-app .ghp-section>* { min-width:0; }
.ghp-app .ghp-recommendation-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr)); min-width:0; }
.ghp-app .ghp-tip { min-width:0; }
.ghp-app .ghp-tip :is(h4,p,small) { overflow-wrap:anywhere; }

.ghp-app .ghp-empty { padding:16px 18px; border:1px solid #dce4d5; border-radius:12px; background:#f1f5ec; color:#4b6254; font-size:16px; line-height:1.6; }
.ghp-app .ghp-overview-primary { background:#184d40; color:#fffdf4; border-color:#184d40; }
.ghp-app .ghp-overview-primary p { color:#edf3e8; }
.ghp-app .ghp-overview-primary:hover { background:#103d31; border-color:#103d31; }
.ghp-app .ghp-house-rules-link { min-height:44px; background:#184d40; color:#fffdf4; border-radius:10px; }
@media(max-height:500px) and (max-width:1040px) {
 .gh-site-header.gh-modern-header:not(.is-menu-open) { top:6px; padding-block:6px; border-radius:14px; }
 .gh-site-header.gh-modern-header .gh-brand { min-height:44px; }
 .gh-site-header.gh-modern-header .gh-brand img { width:32px; height:32px; }
 .gh-site-header.gh-modern-header .gh-wordmark strong { font-size:21px; }
}

.ghp-app :is(.ghp-inline-form,.ghp-mail-toolbar) button:not(.ghp-danger):not(.ghp-secondary) { min-height:44px; padding:12px 16px; border-radius:12px; background:#184d40; color:#fffdf4; box-shadow:none; font-size:16px; }
.ghp-app .ghp-room-switcher button,.ghp-app .ghp-ticket-filter a { min-height:44px; background:#edf3e8; color:#274f3e; border:1px solid #7d9284; box-shadow:none; }
.ghp-app .ghp-room-switcher button.is-active,.ghp-app .ghp-ticket-filter a.is-active { background:#184d40; color:#fffdf4; border-color:#184d40; }
.ghp-app .ghp-danger { background:#8a3328!important; color:#fffdf4!important; box-shadow:none; }
.ghp-app .ghp-gallery-delete .ghp-danger { width:44px; height:44px; min-width:44px; padding:0; border-radius:50%; }
.ghp-app :is(.ghp-check,.ghp-room-fieldset label,.ghp-house-rules-confirm) { min-height:44px; }

.gh-photo-status { max-width:32ch; padding:24px; color:#fffdf4; font-size:18px; line-height:1.6; text-align:center; }
.ghp-map-error { padding:24px; color:#274f3e; background:#f1f5ec; font-size:16px; line-height:1.6; }
.ghp-app .leaflet-control-zoom a { width:44px; height:44px; line-height:44px; }

/* Task content is available immediately; motion remains on the photographic surfaces. */
.ghp-app :is(.ghp-app-head,.ghp-stat-strip article,.ghp-section,.ghp-overview-card,.ghp-tip,.ghp-ticket,.ghp-row,.ghp-onboarding-step) { animation:none!important; opacity:1!important; transform:none!important; }
.ghp-lightbox img[hidden],.gh-photo-status[hidden] { display:none!important; }

.ghp-app .ghp-calendar-status,.ghp-app .ghp-room-calendar-title span,.ghp-app .ghp-tip span,.ghp-app .ghp-tip small,.ghp-app .ghp-calendar-detail-booking small { color:#3f614b; }
:is(.ghp-app,.ghp-auth) .ghp-message.ghp-message-success { background:#e9f3e4; border-color:#8aa37d; color:#285039; }
.ghp-message p { margin:8px 0; }
.ghp-message details { margin-top:8px; }
.ghp-message summary { min-height:44px; padding:10px 0; cursor:pointer; font-weight:650; text-decoration:underline; text-underline-offset:3px; }

/* Keep the private-area tint inside its own content, so it cannot wash out the footer. */
.ghp-app { position:relative; }
.ghp-app::before { position:absolute; }

/* Haus H 404 page: warm paper, clear wayfinding, no new media or shared-rule changes. */
.gh-page-main.gh-404-page {
  display: grid;
  align-items: center;
  padding-top: clamp(88px, 11vh, 132px);
  padding-bottom: clamp(44px, 8vh, 80px);
}

.gh-404-shell {
  display: grid;
  place-items: center;
  width: min(100%, 1040px);
}

.gh-404-card {
  width: min(100%, 760px);
  padding: clamp(24px, 6vw, 64px);
  border: 1px solid rgba(32, 52, 50, 0.12);
  border-radius: clamp(20px, 3vw, 30px);
  background: var(--gh-white, #fffdf8);
  color: var(--gh-ink, #203432);
  box-shadow: var(--gh-shadow, 0 24px 64px rgba(39, 88, 72, 0.14));
}

.gh-404-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 22px;
  padding: 7px 11px;
  border: 1px solid #e6d7bf;
  border-radius: 999px;
  background: #f4e7d2;
  color: #514533;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: 0.08em;
}

.gh-404-kicker span:first-child {
  color: #765b35;
}

.gh-404-card h1 {
  max-width: 14ch;
  margin: 0;
  color: var(--gh-ink, #203432);
  font-family: var(--gh-display, system-ui, sans-serif);
  font-size: clamp(2.3rem, 6.8vw, 4.8rem);
  font-weight: 700;
  line-height: 1.02;
  letter-spacing: -0.055em;
  text-wrap: balance;
}

.gh-404-copy {
  max-width: 48ch;
  margin: 22px 0 0;
  color: var(--gh-ink-soft, #51635f);
  font-size: 17px;
  line-height: 1.7;
}

.gh-404-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}

.gh-404-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 14px 20px;
  border: 1px solid transparent;
  border-radius: 13px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.35;
  text-align: center;
  text-decoration: none;
  transition: background-color 160ms ease, box-shadow 160ms ease, transform 120ms ease;
}

.gh-404-action:focus-visible {
  outline: 3px solid #18745e;
  outline-offset: 4px;
}

.gh-404-action-primary {
  background: #184d40;
  color: #fffdf3;
  box-shadow: 0 5px 16px rgba(21, 62, 48, 0.15);
}

.gh-404-action-secondary {
  border-color: #7d9284;
  background: #fffdf8;
  color: #203432;
}

@media (hover: hover) {
  .gh-404-action-primary:hover {
    background: #0f3d31;
    box-shadow: 0 8px 22px rgba(21, 62, 48, 0.2);
  }

  .gh-404-action-secondary:hover {
    border-color: #647b6c;
    background: #f8f4e9;
  }
}

.gh-404-action:active {
  transform: scale(0.985);
}

@media (max-width: 1040px) {
  .gh-page-main.gh-404-page {
    min-height: auto;
    padding: 32px 16px 48px;
  }
}

@media (max-width: 480px) {
  .gh-404-card {
    padding: 24px;
    border-radius: 20px;
  }

  .gh-404-kicker {
    margin-bottom: 18px;
  }

  .gh-404-copy {
    margin-top: 18px;
    font-size: 16px;
  }

  .gh-404-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    margin-top: 24px;
  }

  .gh-404-action {
    width: 100%;
  }
}

@media (max-height: 480px) and (min-width: 1041px) {
  .gh-page-main.gh-404-page {
    align-items: start;
    padding-top: 82px;
    padding-bottom: 32px;
  }
}

@media (max-height: 480px) and (max-width: 1040px) {
  .gh-page-main.gh-404-page {
    padding-top: 20px;
    padding-bottom: 32px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gh-404-action {
    transition: none;
  }

  .gh-404-action:hover,
  .gh-404-action:active {
    transform: none;
  }
}

@media (prefers-contrast: more) {
  .gh-404-card {
    border: 2px solid #203432;
    background: #fffdf8;
  }

  .gh-404-action-secondary {
    border: 2px solid #203432;
  }
}

/* Horizontal gestures belong to the photo viewer; keep native vertical pan and pinch zoom. */
dialog.ghp-lightbox img { touch-action:pan-y pinch-zoom; }

/* A failed map is a concise explanation, rather than an empty map-sized panel. */
#ghp-map:has(.ghp-map-error) { height:auto; min-height:0; padding:24px; }
.ghp-map-error { margin:0; line-height:1.6; }

/* Keep gallery controls on the same stable, readable paper surface as other tasks. */
.ghp-app .ghp-gallery-section { background:#fffdf6; color:#203e34; }
.ghp-app .ghp-gallery-section::before { display:none; }
.ghp-app .ghp-gallery-section .ghp-section-head h3 { color:#203e34; }
.ghp-app .ghp-gallery-section .ghp-section-head p { color:#4b6254; }
.ghp-app .ghp-gallery-count { color:#3d5747; background:#e9efe4; border-color:#7d9284; }
.ghp-app .ghp-gallery-upload { background:#eff3e9; color:#203e34; border-color:#9caa94; backdrop-filter:none; -webkit-backdrop-filter:none; }
.ghp-app .ghp-gallery-upload .ghp-file-picker { color:#203e34; }
.ghp-app .ghp-gallery-upload-label { color:#4b6254; }
.ghp-app .ghp-gallery-upload .ghp-file-cta { background:#fffdf6; color:#1a493d; border-color:#7d9284; }
.ghp-app .ghp-gallery-upload .ghp-file-name { background:#e0e8d9; color:#3f5949; border-color:#9caa94; }

/* Header scroll padding already provides the main offset for home section anchors. */
#gh-house.gh-home-section { scroll-margin-top:20px; }
