/* Cardenio Modern by Nils Cordes ? https://nilscordes.com
   License: CC BY-SA 4.0; see cardenio_modern/Cardenio Modern License.txt */
@font-face{
  font-family:'Cardenio Modern';
  src:url('cardenio_modern/CardenioModern-Regular.otf') format('opentype');
  font-style:normal;
  font-weight:400 500;
  font-display:swap;
}
@font-face{
  font-family:'Cardenio Modern';
  src:url('cardenio_modern/CardenioModern-Bold.otf') format('opentype');
  font-style:normal;
  font-weight:600 900;
  font-display:swap;
}

/* Site theme variables (from user palette) */
:root{
  --font-heading: 'Cardenio Modern', 'Rozha One', serif;
  /* --bg: #efe9e6; */
  --bg: #f1ecea;
  --text: #3F3B36;
  --accent: #7b5f55;
  --button: #5b463e;
  --muted: #6B665F;
  --max-width: 1100px;
}

/* Header */
.site-header{
  position: sticky;
  top: calc(-1 * var(--contact-bar-height, 36px));
  margin-bottom:0;
  left: 0;
  width: 100%;
  /* background: rgb(125 124 96 / 72%); */
  /* #717152 */
  background: #f1ecea;
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(3px);
  color: #7B5F55;
  z-index: 1000;
}

.site-header:has(~ .hero:not([hidden])){ margin-bottom:calc(-1 * var(--header-height, 111px)); background:transparent; backdrop-filter:none; -webkit-backdrop-filter:none; color:#fff; }
.site-header:has(~ .hero:not([hidden])) .site-nav a,
.site-header:has(~ .hero:not([hidden])) .header-contact-links a{ color:#fff; }
.site-header{ transition:background-color 0.25s ease; }
.site-header.is-past-hero:has(~ .hero:not([hidden])){ background:rgba(91,70,62,0.5); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
.site-header:has(~ .hero:not([hidden])) .site-logo{ filter:brightness(0) invert(1); }
.site-header:has(~ .hero:not([hidden])) .header-contact-links::before{ background:rgba(255,255,255,0.25); }
.hero[hidden] ~ .site-main{ margin-top:0; margin-bottom:0; }

.header-contact-links{ max-width:1220px; margin:0 auto; padding:0.25rem 1.25rem 0; display:flex; justify-content:flex-end; gap:0.25rem; }
.header-contact-links a{ display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; color:#7B5F55; border-radius:50%; }
.header-contact-links a:hover{ background:rgba(123,95,85,0.1); }
.header-contact-links a:focus-visible{ outline:2px solid currentColor; outline-offset:2px; }
.header-contact-links svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.header-contact-links .icon-fill{ fill:currentColor; stroke:none; }
.header-contact-links .header-contact-text{ width:auto; padding:0 0.5rem; gap:0.45rem; border-radius:4px; font-size:0.8rem; text-decoration:none; white-space:nowrap; }
.header-contact-text svg{ flex-shrink:0; }
.header-contact-links > a:nth-child(2){ margin-right:auto; }
.header-contact-links{ position:relative; }
.header-contact-links::before{ content:""; position:absolute; bottom:0; left:1.25rem; right:1.25rem; height:1px; background:rgba(123,95,85,0.18); }
@media (max-width:800px){
  .header-contact-links .header-contact-text{ display:none; }
  .header-contact-links::before{ left:1rem; right:1rem; }
}
.header-inner{ max-width:1220px; margin:0 auto; padding:0.8rem 1.25rem; display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.logo-link{ display:inline-block; padding:0.3rem 0; flex-shrink:0 }
.site-logo{ height:40px; width:auto; display:block }
.menu-toggle{ display:none; border:0; padding:0.5rem; background:transparent; color:#fff; cursor:pointer }
.menu-toggle > span:not(.sr-only){ display:block; width:1.5rem; height:2px; margin:4px 0; background:currentColor }

.site-nav .nav-list{ list-style:none; margin:0; padding:0; display:flex; gap:0.75rem; align-items:center }
.site-nav a{ color:#7B5F55; font-family:'Montserrat', sans-serif; font-size:1rem; letter-spacing: 0.12px; font-weight:500; text-decoration:none; padding:0.4rem 0.75rem; border-radius:0px }
.site-nav a{ transition:background-color 0.2s ease; }
.site-nav a:hover{ background:rgba(123,95,85,0.07) }
.site-header:has(~ .hero:not([hidden])) .site-nav a:hover{ background:rgba(255,255,255,0.1) }

@media (max-width:640px){ .site-logo{ height:40px } .site-nav .nav-list{ gap:0.5rem } }

/* Hero */
.hero{ width:100%; min-height:100vh; position:relative; overflow:hidden }
.hero-image{ width:100%; height:100vh; object-fit:cover; display:block; filter:brightness(0.65); }
.hero-content{ position:absolute; left:clamp(1rem,8vw,7rem); bottom:clamp(2rem,16vh,7rem); max-width:620px; padding:1.5rem 1.75rem; color:#fff; background:rgba(190,163,143,0.24); border-left:4px solid #fff; backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); text-shadow:0 1px 4px rgba(40,28,20,0.65); }
.hero-content h1{ margin-bottom:0.75rem; color:#fff; font-size:clamp(2.35rem,5.9vw,4.3rem); line-height:0.95 }
.hero-content p{ margin:0; color:#fff; font-size:clamp(1rem,1.6vw,1.25rem); line-height:1.65 }

/* Main content */
.site-main{ max-width:var(--max-width); margin:0 auto; padding:0 1rem }
.intro h1{ font-size:clamp(2rem,4vw,40px); margin-bottom:1.5rem; text-align:center }
.intro p{ max-width:780px; margin:0 auto 2.6rem; color:var(--text); text-align:center }

.btn-row{ display:flex; justify-content:center; gap:0.75rem; margin-top:1rem }
.btn{ display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0.7rem 1.15rem; border:1px solid transparent; border-radius:0px; font-family:'Montserrat', sans-serif; font-size:0.85rem; line-height:1.2; font-weight:400; text-decoration:none; color:#fff; transition:background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease }
.btn:hover{ transform:translateY(-1px) }
.btn-primary{ background:var(--button); color:#fff }
.btn-primary:hover{ background:var(--accent) }
.btn-outline{ background:transparent; color:var(--text); border-color:var(--button) }
.btn-outline:hover{ background:rgba(123,95,85,0.08); color:var(--text); border-color:var(--accent); transform:none }
.btn-sm{ min-height:40px; padding:0.6rem 0.9rem; border-radius:4px; background:transparent; color:var(--button); border-color:var(--button) }
.btn-sm:hover{ background:var(--accent); color:#fff; border-color:var(--accent) }

/* Gallery */
.gallery{ width:100vw; max-width:100vw; margin-left:calc(50% - 50vw) }
.gallery-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-auto-rows:280px; gap:0; padding-block:1px; background:var(--bg) }
.gallery-tile{ display:block; position:relative; overflow:hidden; cursor:pointer; background:var(--button); transition:box-shadow 0.25s ease }
.gallery-tile + .gallery-tile{ border-left:2px solid var(--bg) }
.gallery-tile img{ width:100%; height:100%; display:block; object-fit:cover; transition:transform 0.35s ease }
.gallery-tile::after{ content:""; position:absolute; inset:0; background:rgba(60,60,60,0.32); transition:opacity 0.3s ease; pointer-events:none }
.gallery-tile:hover img, .gallery-tile:focus-visible img{ transform:scale(1.03) }
.gallery-tile:hover::after, .gallery-tile:focus-visible::after{ opacity:0 }
.gallery-tile:focus-visible{ outline:3px solid var(--accent); outline-offset:-3px }
.gallery-tile-featured{ grid-column:1 / -1 }
.gallery-tile-featured .gallery-featured-title{ position:absolute; z-index:1; inset:0; display:flex; align-items:center; justify-content:center; padding:1rem; background:rgba(63,59,54,0.52); color:#fff; font-family:var(--font-heading); font-size:clamp(2.2rem,5vw,3.5rem); font-weight:500; line-height:1; text-align:center; }
.gallery-tile-featured > .gallery-description{ position:absolute; z-index:1; left:50%; bottom:clamp(1.25rem,4vw,3rem); width:min(760px,calc(100% - 2rem)); margin:0; transform:translateX(-50%); color:#fff; font-size:clamp(0.9rem,1.5vw,1.15rem); line-height:1.55; text-align:center; }

/* Content sections */
.content-section{ width:100vw; margin-left:calc(50% - 50vw); padding:clamp(4rem,8vw,7rem) 1rem; text-align:center }
.section-inner{ max-width:760px; margin:0 auto }
.content-section h2{ margin-bottom:1rem; font-size:clamp(2.2rem,5vw,3.5rem); line-height:1 }
.content-section p{ max-width:600px; margin:0 auto 1.75rem; color:var(--text) }
.story-section{ background:#f1ece4 }
.gallery-section{ padding:0; background:linear-gradient(rgba(63,59,54,0.46),rgba(63,59,54,0.46)), url('IMG_4.jpg') center 35% / cover no-repeat; }
.gallery-section .section-inner{ min-height:clamp(480px,65vh,740px); display:flex; flex-direction:column; justify-content:center; align-items:center; padding:clamp(4.5rem,8vw,7.5rem) 1.5rem; margin-bottom:0; }
.gallery-section h2, .gallery-section p{ color:#fff; }
.podcast-section{ position:relative; isolation:isolate; background:linear-gradient(rgba(36,24,19,0.62),rgba(36,24,19,0.74)), url('obyvak.jpg') center/cover no-repeat; }
.podcast-section h2, .podcast-section p{ color:#fff }
.spotify-link{ gap:0.5rem; }
.spotify-link:focus-visible{ outline:2px solid #fff; outline-offset:4px; }
.spotify-arrow{ width:20px; height:20px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.calendar-section{ background:var(--bg) }

/* How it works page */

.how-hero{ padding:clamp(3rem,7vw,5.5rem) 1.25rem; background:#efe7e0; text-align:center; }
.how-hero-inner{ max-width:800px; margin:0 auto; }
.how-hero h1{ margin-bottom:1rem; font-size:clamp(2.4rem,5vw,3.5rem); line-height:1.1; }
.how-hero-subtitle{ max-width:660px; margin:0 auto; font-size:clamp(1rem,1.6vw,1.15rem); }
.how-block{ padding:clamp(3rem,7vw,6rem) 1.25rem; scroll-margin-top:2rem; }
.how-private{ background:#e6ddd4; }
.how-block-inner{ max-width:var(--max-width); margin:0 auto; display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:clamp(2rem,6vw,5rem); align-items:center; }
.how-content{ min-width:0; }
.how-content h2{ margin-bottom:1rem; font-size:clamp(1.8rem,3.5vw,2.6rem); line-height:1.15; }
.how-content .how-lead{ margin-bottom:1.75rem; font-size:1.1rem; }
.how-subblocks{ display:grid; gap:1.5rem; }
.how-subblock h3{ margin-bottom:0.6rem; font-size:1.4rem; line-height:1.2; }
.how-subblock p, .how-text-block p:last-child{ margin-bottom:0; }
.how-figure{ margin:0; }
.how-figure img{ display:block; width:100%; max-width:480px; height:auto; margin:0 auto; border-radius:8px; }
.how-reverse{ grid-template-columns:minmax(0,1fr) minmax(0,1.5fr); }
.how-reverse .how-content{ grid-column:2; grid-row:1; }
.how-reverse .how-figure{ grid-column:1; grid-row:1; }
.how-whatsapp-card{ margin-top:2rem; padding:1.4rem; border:1px solid rgba(138,154,123,0.45); background:rgba(138,154,123,0.1); }
.how-whatsapp-text{ margin-bottom:1rem; }
.btn-whatsapp{ gap:0.6rem; background:#456444; color:#fff; }
.btn-whatsapp:hover{ background:#365235; }
.whatsapp-icon{ display:block; width:20px; height:20px; flex:0 0 20px; }
.how-cta-row{ display:flex; flex-wrap:wrap; gap:0.75rem; margin-top:1.75rem; }
.how-whatsapp-card .how-cta-row{ margin-top:0; }
.how-terms{ border-top:1px solid rgba(123,95,85,0.18); }
.how-terms-inner{ max-width:var(--max-width); margin:0 auto; display:flex; align-items:center; gap:2rem; justify-content:space-between; }
.how-terms .how-content{ max-width:680px; }
.how-terms p{ margin:0; }
.how-terms .btn{ flex-shrink:0; }
.how-badge-bar{ display:flex; flex-wrap:wrap; align-items:center; gap:0.5rem; margin-bottom:1.5rem; color:#657453; font-size:0.85rem; line-height:1.6; }
.how-it-works-page .btn:focus-visible{ outline:3px solid var(--accent); outline-offset:4px; }
@media (max-width:800px){

  .how-block-inner, .how-reverse{ grid-template-columns:minmax(0,1fr); gap:2rem; }
  .how-reverse .how-content, .how-reverse .how-figure{ grid-column:auto; grid-row:auto; }
  .how-figure{ order:-1; }
  .how-figure img{ max-width:480px; }
  .how-terms-inner{ flex-direction:column; align-items:flex-start; gap:1.5rem; }
}
.page-view{ width:100vw; margin-left:calc(50% - 50vw); background:var(--bg); }
.how-it-works{ padding:clamp(7rem,12vw,10rem) 1rem clamp(5rem,10vw,8rem); background:#f1ece4; }
.how-it-works-inner{ max-width:var(--max-width); margin:0 auto; }
.how-it-works-title{ margin-bottom:clamp(2.5rem,6vw,4.5rem); text-align:center; font-size: clamp(2.2rem, 5vw, 3.5rem); }
.offers-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.5rem,4vw,4rem); max-width:1000px; margin:2rem auto clamp(2rem,6vw,4rem); }
.offer-card{ text-align:center; }
.offer-card img{ width:min(100%,220px); aspect-ratio:1; object-fit:contain; display:block; margin:1rem auto 0rem; }
.offer-card h3{ margin-bottom:0.75rem; font-size:clamp(1.5rem,2.5vw,2rem); }
.offer-card p{ max-width:250px; margin:0 auto; line-height:1.55; }
.look-around-section{ padding:clamp(5rem,10vw,8rem) 1rem; background:linear-gradient(rgba(63,59,54,0.5),rgba(63,59,54,0.5)), url('IMG_4.jpg') center/cover no-repeat; }
.look-around{ max-width:760px; margin:0 auto; text-align:center; }
.look-around h2{ margin-bottom:1rem; font-size:clamp(2.2rem,5vw,3.6rem); }
.look-around h2, .look-around p{ color:#fff; }
.look-around p{ max-width:620px; margin:0 auto 1.75rem; }
.how-it-works-end-strip{ height:clamp(3rem,6vw,5rem); background:#f1ece4; }

/* Story page */
.story-page{ --story-bg:#f5f0ec; --story-surface:#eee6df; background:var(--story-bg); }
.story-page p{ font-size:1rem; font-weight:400; line-height:1.75; }
.story-hero{ padding:clamp(4.5rem,9vw,7rem) 1rem clamp(3.5rem,7vw,5.5rem); background:var(--story-surface); }
.story-hero-inner{ max-width:var(--max-width); margin:0 auto; display:grid; grid-template-columns:minmax(0,1.02fr) minmax(280px,0.78fr); gap:clamp(2.5rem,6vw,5rem); align-items:center; }
.story-hero-copy{ text-align:left; }
.story-hero h1{ margin-bottom:0.6rem; font-size:clamp(2.4rem,5vw,3rem); line-height:1.15; }
.story-subtitle{ margin:0 0 1.8rem; color:#7B5F55; font-size:1rem; line-height:1.75; }
.story-hero p:not(.story-subtitle){ max-width:620px; margin:0 0 1rem; color:var(--text); font-size:1rem; line-height:1.75; }
.story-portrait{ width:100%; max-width:300px; margin:0 auto; position:relative; }
.story-portrait img{ width:100%; aspect-ratio:3/4; display:block; object-fit:cover; border-radius:8px; box-shadow:0 12px 30px rgba(63,59,54,0.1); }
.story-section-block{ max-width:var(--max-width); margin:0 auto; padding:clamp(4rem,8vw,6.5rem) 1rem; display:grid; grid-template-columns:minmax(0,0.92fr) minmax(280px,0.86fr); gap:clamp(2rem,6vw,5rem); align-items:center; }
.story-origin{ background:var(--story-bg); }
.story-text{ text-align:left; }
.story-text h2{ margin-bottom:1rem; font-size:clamp(2rem,4vw,2.6rem); line-height:1.15; }
.story-text p{ max-width:640px; margin:0 0 1rem; color:var(--text); line-height:1.75; }
.story-text-wide{ max-width:820px; margin:0 auto; text-align:center; }
.story-text-wide p{ margin-left:auto; margin-right:auto; }
.story-lead{ color:#7B5F55; line-height:1.75; }
.story-image{ width:100%; max-width:300px; margin:0 auto; }
.story-image img{ width:100%; aspect-ratio:3/4; display:block; object-fit:cover; border-radius:8px; box-shadow:0 12px 30px rgba(63,59,54,0.1); }
.story-image-stack{ position:relative; max-width:280px; padding-bottom:2rem; }
.story-image-stack .story-image-overlay{ position:absolute; right:-10rem; bottom:0; width:80%; aspect-ratio:3/4; transform:rotate(6deg); box-shadow:0 8px 24px rgba(63,59,54,0.2); }
@media (max-width:480px){
  .story-image-stack{ max-width:59%; margin-left:0; margin-right:auto; }
  .story-image-stack .story-image-overlay{ right:-53%; }
}
.story-now{ display:block; max-width:none; padding-left:1rem; padding-right:1rem; background:var(--story-surface); }
.story-name-band{ padding:clamp(4.5rem,9vw,7rem) 1rem clamp(3rem,6vw,5rem); background:var(--story-bg); color:var(--text); text-align:center; }
.story-name-inner{ max-width:880px; margin:0 auto; }
.story-name-inner > p{ max-width:720px; margin:0 auto 1.25rem; color:var(--text); line-height:1.75; }
.story-name-inner h2{ margin:0 0 clamp(2rem,5vw,3.5rem); color:var(--accent); font-size:clamp(2rem,4vw,2.6rem); line-height:1.15; }
.story-name-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; margin-bottom:clamp(2rem,5vw,3rem); text-align:left; }
.story-name-grid > div{ padding:clamp(1.3rem,3vw,2rem); background:var(--story-surface); border-radius:16px; }
.story-name-grid h3{ margin:0 0 0.6rem; color:var(--accent); font-size:clamp(1.6rem,3vw,2rem); line-height:1.2; }
.story-name-grid p{ margin:0; color:var(--text); line-height:1.75; }
.story-vision-aside{ min-width:0; display:grid; gap:1.5rem; }
.story-vision-photo{ width:100%; max-width:360px; margin:0 auto; }
.story-vision-photo img{ display:block; width:100%; height:auto; border-radius:16px; }
.story-name-photo{ max-width:720px; margin:2rem auto 0; }
.story-name-photo img{ display:block; width:100%; height:auto; border-radius:16px; }
.story-vision{ grid-template-columns:minmax(0,0.98fr) minmax(280px,0.84fr); }
.story-section-block.story-vision{ padding-top:clamp(3rem,6vw,4.5rem); }
.story-quote-section{ padding:clamp(3rem,7vw,5rem) 1.25rem; background:var(--story-surface); text-align:center; }
.story-quote-branch{ display:block; width:min(100%,620px); height:auto; margin:0 auto 1.5rem; color:var(--accent); opacity:0.65; }
.story-quote-section blockquote{ max-width:760px; margin:0 auto; }
.story-quote-section blockquote p{ margin:0 0 0.8rem; color:#5b463e; font-family:var(--font-heading); font-style:normal; font-weight:400; font-size:clamp(1.4rem,3vw,1.9rem); line-height:1.5; }
.story-quote-section blockquote p:last-child{ margin-bottom:0; }

/* Gallery page */
.gallery-page{ background:#f1ecea; }
.gallery-page-hero{ padding:clamp(3.5rem,6vw,5rem) 1rem clamp(4rem,8vw,6.5rem); }
.gallery-page-inner{ max-width:var(--max-width); margin:0 auto; text-align:center; }
.gallery-page-title{ margin-bottom:0.6rem; font-size:clamp(2.5rem,6vw,3.6rem); line-height:1; }
.gallery-page-subtitle{ max-width:620px; margin:0 auto clamp(2.5rem,5vw,4rem); color:var(--text); font-size:clamp(1rem,1.6vw,1.18rem); line-height:1.6; }
.gallery-page-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.gallery-page-grid .gallery-card a{ aspect-ratio:3/2; background:#e6ddd4; }
.gallery-page-grid .gallery-card img{ height:100%; }
.gallery-page-grid img[hidden]{ display:none; }
.gallery-image-error{ display:flex; align-items:center; justify-content:center; height:100%; padding:1.5rem; color:var(--text); font-size:0.85rem; line-height:1.6; }
.gallery-image-error[hidden]{ display:none; }
.gallery-status{ margin:0; color:var(--muted); }
.gallery-status a{ color:var(--accent); text-underline-offset:3px; }
.gallery-card{ margin:0; position:relative; overflow:hidden; border-radius:4px; box-shadow:0 12px 35px rgba(63,59,54,0.1); background:#241813; }
.gallery-card a{ display:block; overflow:hidden; cursor:pointer; }
.gallery-card img{ width:100%; aspect-ratio:3/2; object-fit:cover; display:block; transition:transform 0.4s ease, opacity 0.3s ease; }
.gallery-card:hover img{ transform:scale(1.04); opacity:0.95; }

/* Photo viewer, created only after a gallery photo is opened. */
html.gallery-viewer-open{ overflow:hidden; }
.gallery-viewer{ position:fixed; inset:0; width:100%; height:100dvh; max-width:none; max-height:none; margin:0; border:0; padding:1rem clamp(0.75rem,3vw,2.5rem) max(1rem,env(safe-area-inset-bottom)); background:transparent; color:#fff; overflow:hidden; }
.gallery-viewer[open]{ display:grid; grid-template-rows:44px minmax(0,1fr) 90px; gap:0.75rem; }
.gallery-viewer::backdrop{ background:rgba(32,24,20,0.65); }
.gallery-viewer-toolbar{ display:flex; align-items:center; justify-content:space-between; }
.gallery-viewer-counter{ padding-left:0.5rem; font-size:0.9rem; font-variant-numeric:tabular-nums; }
.gallery-viewer button{ font:inherit; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.gallery-viewer-control{ display:grid; place-items:center; width:44px; height:44px; padding:10px; border:1px solid rgba(255,255,255,0.3); border-radius:50%; color:#fff; background:rgba(40,29,24,0.55); transition:background-color 0.2s ease; }
.gallery-viewer-control:hover{ background:rgba(123,95,85,0.9); }
.gallery-viewer-control svg{ width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.gallery-viewer-stage{ position:relative; display:flex; align-items:center; justify-content:center; min-width:0; min-height:0; padding-inline:60px; touch-action:pan-y pinch-zoom; }
.gallery-viewer-photo{ display:block; width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; opacity:0; box-shadow:0 8px 40px rgba(0,0,0,0.25); transition:opacity 0.15s ease; }
.gallery-viewer-photo.is-loaded{ opacity:1; }
.gallery-viewer-prev,.gallery-viewer-next{ position:absolute; top:50%; z-index:2; transform:translateY(-50%); }
.gallery-viewer-prev{ left:0; }
.gallery-viewer-next{ right:0; }
.gallery-viewer-feedback{ position:absolute; left:50%; top:50%; width:min(80%,340px); transform:translate(-50%,-50%); text-align:center; pointer-events:none; }
.gallery-viewer-notice{ margin:0; color:#fff; font-size:0.9rem; line-height:1.6; }
.gallery-viewer-retry{ pointer-events:auto; margin-top:1rem; padding:0.6rem 1rem; border:1px solid rgba(255,255,255,0.6); border-radius:4px; color:#fff; background:#5b463e; }
.gallery-viewer-thumbnails{ position:relative; display:flex; align-items:center; gap:8px; min-width:0; min-height:0; overflow-x:auto; overflow-y:hidden; overscroll-behavior-x:contain; padding:6px 4px 10px; scrollbar-width:thin; scrollbar-color:rgba(255,255,255,0.5) transparent; }
.gallery-viewer-thumbnail{ flex:0 0 88px; width:88px; height:60px; padding:0; overflow:hidden; border:2px solid transparent; border-radius:4px; background:#5b463e; opacity:0.6; transition:opacity 0.15s ease,border-color 0.15s ease; }
.gallery-viewer-thumbnail:hover,.gallery-viewer-thumbnail[aria-current="true"]{ opacity:1; }
.gallery-viewer-thumbnail[aria-current="true"]{ border-color:#fff; }
.gallery-viewer-thumbnail img{ display:block; width:100%; height:100%; object-fit:cover; }
.gallery-viewer button:focus-visible{ outline:2px solid #fff; outline-offset:3px; }
.gallery-viewer [hidden]{ display:none; }
@media (max-width:640px){
  .gallery-viewer{ padding:0.75rem 0.5rem max(0.75rem,env(safe-area-inset-bottom)); }
  .gallery-viewer[open]{ grid-template-rows:44px minmax(0,1fr) 78px; gap:0.5rem; }
  .gallery-viewer-stage{ padding-inline:0; }
  .gallery-viewer-control{ background:rgba(40,29,24,0.75); }
  .gallery-viewer-thumbnail{ flex-basis:72px; width:72px; height:50px; }
}
@media (prefers-reduced-motion:reduce){
  .gallery-viewer-photo,.gallery-viewer-control,.gallery-viewer-thumbnail{ transition:none; }
}


.features h2{ margin:1.25rem 0 0.5rem }
.cards{ display:flex; gap:1rem; margin-top:1rem; flex-wrap:wrap }
.card{ background:#fff; border-radius:10px; padding:1rem; box-shadow:0 6px 18px rgba(0,0,0,0.06); flex:1 1 220px }
.card h3{ margin:0 0 0.5rem; color:var(--text) }
.card p{ color:var(--muted); margin-bottom:0.75rem }

/* Footer */

.contact-hero{ padding:clamp(3rem,7vw,5rem) 1.25rem; text-align:center; background:#efe7e0; }
.contact-hero h1{ font-size:clamp(2.5rem,6vw,3.5rem); line-height:1.1; margin-bottom:1rem; }
.contact-hero p{ max-width:620px; margin:0 auto; }
.contact-inner{ max-width:1280px; margin:0 auto; padding:clamp(3rem,7vw,5rem) 1.25rem; display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:clamp(2rem,6vw,5rem); align-items:start; }
.contact-inner h2, .contact-details h2{ margin-bottom:1rem; font-size:clamp(2rem,4vw,2.8rem); line-height:1.1; }
.contact-details{ padding:clamp(2.5rem,5vw,4rem) 1.25rem; background:#e6ddd4; }
.contact-details-inner{ max-width:var(--max-width); margin:0 auto; display:grid; grid-template-columns:minmax(0,0.8fr) minmax(0,1.2fr); gap:clamp(2rem,5vw,4rem); align-items:center; }
.contact-details-copy{ min-width:0; }
.contact-details-copy > a{ display:block; width:fit-content; max-width:100%; overflow-wrap:anywhere; color:var(--text); margin-top:0.8rem; text-underline-offset:4px; }
.contact-details address{ margin-bottom:1.25rem; font-style:normal; line-height:1.7; }
.contact-map{ display:block; width:100%; max-width:100%; height:280px; border:1px solid #a99a91; border-radius:8px; }
.contact-form{ min-width:0; padding:clamp(1.25rem,3vw,2rem); background:#efe7e0; }
.contact-form > label{ display:block; font-size:0.9rem; margin-bottom:0.5rem; }
.contact-form > input, .contact-form > textarea{ display:block; width:100%; padding:0.6rem 0.7rem; margin-bottom:1rem; border:1px solid #a99a91; border-radius:0; background:#fffcfa; color:var(--text); font:inherit; line-height:1.5; }
.contact-form > input[type="hidden"]{ display:none; }
.contact-form textarea{ resize:vertical; min-height:150px; }
.contact-form input:focus-visible, .contact-form textarea:focus-visible, .contact-form button:focus-visible{ outline:2px solid var(--accent); outline-offset:0; }
.contact-optional, .contact-note{ font-size:0.8rem; }
.contact-form button{ cursor:pointer; }
.contact-form button:disabled{ opacity:0.65; cursor:wait; }
.contact-status{ margin:1rem 0 0; font-size:0.9rem; }
.contact-status:empty{ display:none; }
@media (max-width:960px){
  .contact-inner{ max-width:800px; grid-template-columns:minmax(0,1fr); }
}
@media (max-width:800px){

  .contact-details-inner{ grid-template-columns:minmax(0,1fr); }
}

/* #241813 */
.site-footer{ background: var(--button); color:#fff; padding:clamp(3rem,7vw,5rem) 1rem 2rem; }
.footer-inner{ max-width:var(--max-width); margin:0 auto; display:flex; gap:2.5rem; align-items:flex-start; justify-content:space-between; flex-wrap:wrap }
.footer-logo{ width:min(190px,100%); height:auto; display:block; margin:0 0 0.5rem }
.footer-columns{ display:grid; grid-template-columns:repeat(2,minmax(180px,1fr)); gap:clamp(2rem,7vw,5rem); flex:1 1 520px; max-width:620px }
.footer-block h3{ margin:0 0 0.6rem; font-size:1.25rem; color:#fff }
.footer-block p, .footer-block address{ margin:0; color:rgba(255,255,255,0.78) }
.footer-block address{ font-style:normal; line-height:1.7 }
.footer-contact-list{ list-style:none; margin:0; padding:0; display:grid; gap:0.55rem }
.footer-contact-list li{ display:flex; align-items:center; gap:0.55rem; color:rgba(255,255,255,0.9) }
.footer-contact-list svg{ width:1rem; height:1rem; flex:0 0 1rem; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round }
.footer-form-link{ margin-top:0.15rem; display:inline-flex }
.site-footer a{ color:rgba(255,255,255,0.78); text-decoration:none }
.footer-bottom{ flex:0 0 100%; margin-top:clamp(1.5rem,4vw,2.5rem); padding-top:1.25rem; border-top:1px solid rgba(255,255,255,0.22) }
.footer-bottom p{ margin:0; color:rgba(255,255,255,0.78); font-size:0.9rem }

@media (max-width:800px){
  .header-contact-links{ padding-right:1rem; padding-left:1rem; }
  .header-inner{ padding:0.85rem 1rem }
  .menu-toggle{ display:block; position:relative; z-index:2; color:inherit }
  .menu-toggle:hover,
  .menu-toggle[aria-expanded="true"]{ background:rgba(123,95,85,0.1) }
  .site-header:has(~ .hero:not([hidden])) .menu-toggle:hover,
  .site-header:has(~ .hero:not([hidden])) .menu-toggle[aria-expanded="true"],
  .site-header:has(~ .hero:not([hidden])) .header-contact-links a:hover{ background:rgba(255,255,255,0.1) }
  .menu-toggle:focus-visible{ outline:2px solid currentColor; outline-offset:2px }
  .site-nav{ position:absolute; top:100%; left:0; right:0; display:none; padding:0.5rem 1rem 1rem; background:var(--bg); border-top:1px solid rgba(123,95,85,0.18); box-shadow:0 8px 18px rgba(91,70,62,0.16) }
  .site-nav.is-open{ display:block }
  .site-nav .nav-list{ flex-direction:column; align-items:stretch; gap:0 }
  .site-nav a{ display:block; padding:0.75rem 0.5rem; font-size:1.05rem }
  .site-header .site-nav a,
  .site-header:has(~ .hero:not([hidden])) .site-nav a{ color:var(--text) }
  .site-header .site-nav a:hover,
  .site-header .site-nav a:active,
  .site-header .site-nav a:focus-visible,
  .site-header:has(~ .hero:not([hidden])) .site-nav a:hover{ background:rgba(123,95,85,0.1) }
  .site-nav a:focus-visible{ outline:2px solid var(--accent); outline-offset:2px }
  .hero{ min-height:78svh }
  .hero-image{ height:78svh; min-height:520px }
  .hero-content{ left:1rem; right:1rem; bottom:2rem; max-width:none; padding:1.25rem 1.1rem }
  .hero-content h1{ font-size:clamp(2rem,10vw,3.35rem) }
  .hero-content p{ font-size:0.95rem; line-height:1.5 }
  .gallery-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:220px; grid-template-rows:none }
  .gallery-page-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .gallery-tile:nth-child(odd){ border-left:0 }
  .gallery-tile:nth-child(n+3){ border-top:2px solid var(--bg) }
  .offers-grid{ grid-template-columns:1fr; max-width:430px; gap:1.5rem; margin:1.5rem auto 2rem }
  .offer-card img{ width:min(100%,190px); margin-top:0 }

  .story-hero-inner, .story-section-block, .story-vision{ grid-template-columns:1fr; }
  .story-hero-copy, .story-text{ text-align:left; }
  .story-portrait{ max-width:300px; }
  .story-image{ order:-1; }
  .story-name-grid{ grid-template-columns:1fr; }
}
@media (max-width:640px){
  .site-footer{ padding:3rem 1rem 2rem }
  .footer-inner{ flex-direction:column; gap:2.5rem }
  .footer-logo{ margin:0 }
  .footer-columns{ flex:none; width:100%; grid-template-columns:1fr; gap:2.2rem }
  .footer-bottom{ flex:none; width:100%; margin-top:0.75rem; padding-top:1.5rem }
  .cards{ flex-direction:column }
  .site-main{ margin:0 auto; padding:0 0.9rem }
  .intro h1{ font-size:clamp(2rem,10vw,40px) }
  .intro p{ margin-bottom:2rem }
  .btn-row{ flex-direction:column; align-items:stretch; margin:0 auto; max-width:280px }
  .gallery-grid{ grid-template-columns:1fr; grid-auto-rows:220px; grid-template-rows:none }
  .gallery-tile + .gallery-tile{ border-left:0; border-top:2px solid var(--bg) }
  .story-hero{ padding-top:3rem; }
  .story-hero h1{ font-size:clamp(2.4rem,10vw,3rem); }
  .story-section-block{ padding-top:3.5rem; padding-bottom:3.5rem; }
  .story-name-band{ padding-top:4rem; padding-bottom:3rem; }
  .gallery-page-hero{ padding-top:3rem; }
  .gallery-page-grid{ grid-template-columns:1fr; }
}


/* Home calendar and shared contact form */
.calendar-contact-layout{ max-width:1200px; margin:0 auto; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:clamp(2rem,6vw,5rem); align-items:start; }
.calendar-panel{ min-width:0; }
.calendar-frame{ position:relative; height:600px; max-height:600px; margin-top: 1.6rem; }
.calendar-contact-layout .contact-form{ text-align:left; }
.calendar-contact-layout .contact-form h2{ font-size:clamp(2rem,4vw,2.8rem); line-height:1.1; }
.calendar-contact-layout .contact-form p{ max-width:none; margin:0 0 1.25rem; }
.calendar-contact-layout .contact-form .contact-status{ margin:1rem 0 0; }
@media (max-width:960px){
  .calendar-contact-layout{ grid-template-columns:minmax(0,1fr); max-width:760px; gap:2rem; }
  .calendar-frame{ height:600px; }
}
@media (max-width:480px){
  .calendar-frame{ height:520px; }
  .calendar-contact-layout .contact-form button{ width:100%; }
}
