:root {
  --ink: #102d34;
  --ink-soft: #496269;
  --green: #1e565c;
  --green-dark: #153f45;
  --cream: #fcfaf4;
  --paper: #ffffff;
  --line: #dbe4e1;
  --yellow: #f5c94a;
  --yellow-soft: #fff3bd;
  --red-soft: #fce8e5;
  --red: #98493f;
  --shadow: 0 24px 65px rgba(16, 45, 52, .11);
  --shadow-small: 0 12px 34px rgba(16, 45, 52, .08);
  --radius-xl: 32px;
  --radius-lg: 22px;
  --radius-md: 15px;
  --container: min(1160px, calc(100% - 40px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--cream);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
}
body.dialog-open { overflow: hidden; }
a { color: inherit; }
img { display: block; max-width: 100%; }
button, input, textarea { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; }

.skip-link {
  position: fixed;
  z-index: 999;
  left: 16px;
  top: 16px;
  padding: 10px 14px;
  background: var(--ink);
  color: white;
  border-radius: 8px;
  transform: translateY(-160%);
}
.skip-link:focus { transform: translateY(0); }

.container { width: var(--container); margin-inline: auto; }
.eyebrow {
  margin: 0 0 12px;
  color: var(--green);
  font-weight: 800;
  font-size: .79rem;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.site-header {
  position: sticky;
  z-index: 50;
  top: 0;
  background: rgba(252, 250, 244, .88);
  border-bottom: 1px solid rgba(16,45,52,.08);
  backdrop-filter: blur(18px);
}
.header-inner {
  width: var(--container);
  min-height: 78px;
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
}
.brand {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  flex: 0 1 300px;
}
.brand-logo {
  display: block;
  width: min(300px, 100%);
  height: auto;
}
.site-nav { display: flex; align-items: center; gap: 26px; }
.site-nav a {
  text-decoration: none;
  color: var(--ink-soft);
  font-weight: 700;
  font-size: .94rem;
}
.site-nav a:hover, .site-nav a[aria-current="page"] { color: var(--ink); }
.nav-cta {
  padding: 10px 16px;
  color: white !important;
  background: var(--ink);
  border-radius: 999px;
}
.nav-toggle {
  display: none;
  width: 44px;
  height: 44px;
  padding: 10px;
  border: 0;
  background: transparent;
}
.nav-toggle span { display: block; height: 2px; margin: 5px 0; background: var(--ink); }

.hero { padding: 64px 0 48px; overflow: hidden; }
.hero-grid {
  display: grid;
  grid-template-columns: 1.04fr .96fr;
  align-items: center;
  gap: 62px;
}
.hero h1 {
  max-width: 800px;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3rem, 6vw, 5.9rem);
  line-height: .98;
  letter-spacing: -.055em;
  font-weight: 600;
}
.hero h1 span { position: relative; white-space: nowrap; }
.hero h1 span::after {
  content: "";
  position: absolute;
  z-index: -1;
  left: -3%; right: -3%; bottom: .08em;
  height: .23em;
  background: var(--yellow);
  border-radius: 99px;
  transform: rotate(-1.2deg);
}
.hero-copy {
  max-width: 620px;
  margin: 27px 0 0;
  color: var(--ink-soft);
  font-size: clamp(1.03rem, 1.8vw, 1.21rem);
}
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.button {
  min-height: 50px;
  padding: 13px 21px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 1px solid transparent;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 800;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.button:hover { transform: translateY(-2px); }
.button--primary { color: white; background: var(--green); box-shadow: 0 12px 25px rgba(30,86,92,.18); }
.button--primary:hover { background: var(--green-dark); }
.button--secondary { color: var(--ink); background: white; border-color: var(--line); }
.button:disabled { opacity: .48; box-shadow: none; transform: none; }
.hero-note {
  margin-top: 27px;
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--ink-soft);
  font-size: .92rem;
}
.hero-note::before { content: ""; width: 9px; height: 9px; flex: 0 0 auto; background: var(--yellow); border-radius: 50%; }
.hero-art { position: relative; }
.hero-art img { filter: drop-shadow(0 34px 65px rgba(16,45,52,.18)); }
.hero-slides{position:relative;min-height:390px}.hero-slide{position:absolute;inset:0;margin:0;opacity:0;transform:scale(1.025);transition:opacity .65s ease,transform 1.2s ease;pointer-events:none}.hero-slide.is-active{opacity:1;transform:scale(1);pointer-events:auto}.hero-slide img{width:100%;height:100%;min-height:390px;object-fit:cover;border-radius:28px}.hero-arrow{position:absolute;z-index:4;top:50%;transform:translateY(-50%);width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.9);color:var(--ink);font-size:30px;box-shadow:var(--shadow-small);cursor:pointer}.hero-arrow--prev{left:12px}.hero-arrow--next{right:12px}.hero-dots{position:absolute;z-index:4;left:50%;bottom:13px;display:flex;gap:7px;transform:translateX(-50%)}.hero-dots button{width:9px;height:9px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.65);cursor:pointer}.hero-dots button.is-active{width:25px;border-radius:9px;background:var(--yellow)}.category-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 24px}
.hero-stamp {
  position: absolute;
  right: -22px;
  bottom: 26px;
  width: 138px;
  aspect-ratio: 1;
  display: grid;
  place-content: center;
  padding: 16px;
  text-align: center;
  color: var(--ink);
  background: var(--yellow);
  border: 7px solid var(--cream);
  border-radius: 50%;
  box-shadow: var(--shadow-small);
  font-weight: 900;
  line-height: 1.1;
  transform: rotate(7deg);
}

.trust-strip { padding: 0 0 66px; }
.trust-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-small);
}
.trust-item { padding: 22px 26px; }
.trust-item + .trust-item { border-left: 1px solid var(--line); }
.trust-item strong { display: block; font-size: 1rem; }
.trust-item span { color: var(--ink-soft); font-size: .9rem; }

.tours-section { padding: 80px 0 94px; background: #f3f5f1; border-block: 1px solid #e4e9e5; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 28px; }
.section-heading h2, .content-section h1, .content-section h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 600;
  line-height: 1.04;
  letter-spacing: -.035em;
}
.section-heading h2 { font-size: clamp(2.4rem, 5vw, 4.5rem); }
.section-intro { max-width: 470px; margin: 0 0 8px; color: var(--ink-soft); }
.month-tabs { display: flex; flex-wrap: wrap; gap: 10px; margin: 35px 0 27px; }
.month-tab {
  padding: 10px 17px;
  border: 1px solid var(--line);
  color: var(--ink-soft);
  background: white;
  border-radius: 999px;
  font-weight: 800;
}
.month-tab.is-active { color: var(--ink); background: var(--yellow); border-color: var(--yellow); }
.tour-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.tour-card {
  min-height: 385px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: white;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  box-shadow: 0 0 0 rgba(16,45,52,0);
  animation: card-in .55s both;
  animation-delay: var(--delay);
  transition: transform .2s ease, box-shadow .2s ease;
}
.tour-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-small); }
.tour-card__image{height:220px;overflow:hidden;background:#e8eeec}.tour-card__image img{display:block;width:100%;height:100%;object-fit:cover}.tour-card--with-image{min-height:560px}.tour-card--with-image .tour-card__topline{padding-top:18px}
@keyframes card-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
.tour-card__topline { padding: 20px 22px 0; display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.tour-status { padding: 5px 10px; border-radius: 999px; font-size: .77rem; font-weight: 850; }
.tour-status--available { color: #276249; background: #def3e6; }
.tour-status--few { color: #725617; background: var(--yellow-soft); }
.tour-status--soldout, .tour-status--past { color: var(--red); background: var(--red-soft); }
.tour-date { color: var(--ink-soft); font-weight: 750; font-size: .9rem; }
.tour-card__body { padding: 27px 25px 22px; flex: 1; }
.tour-location { margin: 0 0 8px; color: var(--green); font-weight: 800; font-size: .86rem; letter-spacing: .035em; text-transform: uppercase; }
.tour-card h3 { max-width: 570px; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.65rem, 3vw, 2.15rem); line-height: 1.12; font-weight: 600; }
.tour-description{margin:16px 0 0;color:var(--ink-soft);line-height:1.65;white-space:pre-line}
.tour-meta { margin: 26px 0 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 13px; }
.tour-meta div { padding-top: 10px; border-top: 1px solid var(--line); }
.tour-meta dt { color: var(--ink-soft); font-size: .76rem; }
.tour-meta dd { margin: 2px 0 0; font-weight: 800; font-size: .91rem; }
.tour-card__footer { padding: 20px 23px; display: flex; align-items: center; justify-content: space-between; gap: 20px; background: #f8faf8; border-top: 1px solid var(--line); }
.tour-price strong { display: block; font-size: 1.4rem; line-height: 1; }
.tour-price span { display: block; margin-top: 5px; color: var(--ink-soft); font-size: .78rem; }
.empty-state { grid-column: 1 / -1; padding: 60px 30px; text-align: center; background: white; border: 1px solid var(--line); border-radius: var(--radius-lg); }
.empty-state strong { font-family: Georgia, serif; font-size: 2rem; }
.empty-state p { color: var(--ink-soft); }

.process-section { padding: 95px 0; }
.process-grid { display: grid; grid-template-columns: .72fr 1.28fr; gap: 80px; align-items: start; }
.process-copy h2 { margin: 0; font-family: Georgia, serif; font-size: clamp(2.3rem, 5vw, 4rem); line-height: 1.04; font-weight: 600; letter-spacing: -.04em; }
.process-copy p { color: var(--ink-soft); }
.process-steps { display: grid; gap: 12px; }
.process-step { padding: 24px; display: grid; grid-template-columns: 50px 1fr; gap: 18px; background: white; border: 1px solid var(--line); border-radius: var(--radius-lg); }
.step-number { width: 50px; height: 50px; display: grid; place-items: center; background: var(--yellow); border-radius: 50%; font-weight: 900; }
.process-step h3 { margin: 0; font-size: 1.08rem; }
.process-step p { margin: 4px 0 0; color: var(--ink-soft); font-size: .93rem; }

.about-band { padding: 72px 0; color: white; background: var(--ink); }
.about-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 80px; align-items: center; }
.about-grid h2 { margin: 0; font-family: Georgia, serif; font-size: clamp(2.4rem, 5vw, 4.6rem); line-height: 1; font-weight: 600; letter-spacing: -.04em; }
.about-grid p { color: #d1dcdc; }
.about-links { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 25px; }
.about-links a { color: white; border-color: rgba(255,255,255,.22); background: rgba(255,255,255,.06); }
.about-quote { padding: 29px; border: 1px solid rgba(255,255,255,.16); border-radius: var(--radius-lg); background: rgba(255,255,255,.05); }
.about-quote strong { display: block; color: var(--yellow); font-family: Georgia, serif; font-size: 1.75rem; line-height: 1.17; font-weight: 600; }
.about-quote span { display: block; margin-top: 18px; color: #bacaca; }

.site-footer { padding: 44px 0 25px; background: white; }
.footer-grid { display: grid; grid-template-columns: 1.2fr .8fr .8fr; gap: 45px; }
.footer-title { margin: 0 0 13px; font-weight: 900; }
.footer-text { max-width: 420px; color: var(--ink-soft); }
.footer-links { display: grid; gap: 8px; }
.footer-links a { width: fit-content; color: var(--ink-soft); text-decoration: none; }
.footer-links a:hover { color: var(--ink); text-decoration: underline; }
.footer-bottom { margin-top: 37px; padding-top: 20px; display: flex; justify-content: space-between; gap: 20px; color: var(--ink-soft); border-top: 1px solid var(--line); font-size: .84rem; }

.booking-dialog {
  width: min(620px, calc(100% - 28px));
  padding: 0;
  border: 0;
  border-radius: var(--radius-xl);
  color: var(--ink);
  background: white;
  box-shadow: var(--shadow);
}
.booking-dialog::backdrop { background: rgba(8,25,29,.72); backdrop-filter: blur(5px); }
.dialog-inner { position: relative; padding: 34px; }
.dialog-close { position: absolute; top: 18px; right: 18px; width: 42px; height: 42px; border: 0; border-radius: 50%; color: var(--ink); background: #eef3f1; font-size: 1.5rem; }
.dialog-inner h2 { padding-right: 45px; margin: 0; font-family: Georgia, serif; font-size: 2rem; line-height: 1.12; font-weight: 600; }
.dialog-details { margin: 9px 0 25px; color: var(--ink-soft); }
.payment-options { display: grid; gap: 11px; }
.payment-option { padding: 16px 17px; display: flex; align-items: center; gap: 14px; text-decoration: none; border: 1px solid var(--line); border-radius: var(--radius-md); transition: transform .18s ease, border-color .18s ease; }
.payment-option:hover { transform: translateY(-2px); border-color: var(--green); }
.payment-option__icon { width: 47px; height: 47px; display: grid; place-items: center; flex: 0 0 auto; color: white; background: var(--green); border-radius: 13px; font-weight: 900; }
.payment-option--paypal .payment-option__icon { color: #123f7b; background: #ffd24a; }
.payment-option div { display: grid; }
.payment-option strong { font-size: 1rem; }
.payment-option small { color: var(--ink-soft); }
.payment-option.is-fallback { border-style: dashed; }
.dialog-note { margin: 20px 0 0; padding: 13px 15px; color: var(--ink-soft); background: #f4f7f5; border-radius: 12px; font-size: .85rem; }

.page-hero { padding: 73px 0 53px; background: #f3f5f1; border-bottom: 1px solid var(--line); }
.page-hero h1 { max-width: 850px; margin: 0; font-family: Georgia, serif; font-size: clamp(2.8rem, 6vw, 5rem); line-height: 1; font-weight: 600; letter-spacing: -.045em; }
.page-hero p { max-width: 680px; margin: 21px 0 0; color: var(--ink-soft); font-size: 1.1rem; }
.content-section { padding: 70px 0 95px; }
.content-grid { display: grid; grid-template-columns: minmax(0, 760px) minmax(220px, 1fr); gap: 70px; align-items: start; }
.prose { padding: 37px; background: white; border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-small); }
.prose h2 { margin-top: 37px; font-size: 1.75rem; }
.prose h2:first-child { margin-top: 0; }
.prose h3 { margin: 30px 0 7px; }
.prose p, .prose li { color: var(--ink-soft); }
.prose a { color: var(--green); }
.placeholder {
  padding: 14px 16px;
  color: #765a18 !important;
  background: var(--yellow-soft);
  border: 1px dashed #d7b43f;
  border-radius: 11px;
  font-weight: 750;
}
.side-card { position: sticky; top: 108px; padding: 26px; background: var(--ink); color: white; border-radius: var(--radius-lg); }
.side-card h2 { font-size: 1.55rem; }
.side-card p { color: #c9d5d5; }
.side-card .button { width: 100%; margin-top: 7px; }
.contact-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; }
.contact-card { padding: 25px; text-decoration: none; color: var(--ink); background: white; border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-small); }
.contact-card:hover { border-color: var(--green); }
.contact-card strong { display: block; font-size: 1.16rem; }
.contact-card span { color: var(--ink-soft); }

@media (max-width: 920px) {
  .hero-grid, .process-grid, .about-grid, .content-grid { grid-template-columns: 1fr; gap: 42px; }
  .hero-art { max-width: 720px; }
  .section-heading { display: block; }
  .section-intro { margin-top: 16px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > :first-child { grid-column: 1 / -1; }
  .side-card { position: static; }
}

@media (max-width: 720px) {
  :root { --container: min(100% - 28px, 1160px); --radius-xl: 24px; }
  .header-inner { min-height: 68px; }
  .brand { flex-basis: 230px; }
  .brand-logo { width: min(230px, 100%); }
  .nav-toggle { display: block; }
  .site-nav {
    position: absolute;
    top: 68px;
    left: 14px;
    right: 14px;
    padding: 18px;
    display: none;
    align-items: stretch;
    flex-direction: column;
    gap: 5px;
    background: white;
    border: 1px solid var(--line);
    border-radius: 17px;
    box-shadow: var(--shadow);
  }
  .site-nav.is-open { display: flex; }
  .site-nav a { padding: 10px 12px; }
  .hero { padding-top: 43px; }
  .hero-grid { gap: 35px; }
  .hero-slides,.hero-slide img{min-height:270px}.hero-arrow{width:40px;height:40px}.site-nav{max-height:calc(100vh - 90px);overflow-y:auto}
  .hero h1 { font-size: clamp(2.8rem, 16vw, 4.4rem); }
  .hero-stamp { right: -5px; width: 105px; border-width: 5px; font-size: .8rem; }
  .trust-grid { grid-template-columns: 1fr; }
  .trust-item + .trust-item { border-left: 0; border-top: 1px solid var(--line); }
  .tours-section { padding: 65px 0; }
  .tour-grid { grid-template-columns: 1fr; }
  .tour-meta { grid-template-columns: 1fr 1fr; }
  .tour-meta div:last-child { grid-column: 1 / -1; }
  .tour-card__footer { align-items: stretch; flex-direction: column; }
  .tour-card__footer .button { width: 100%; }
  .process-section { padding: 70px 0; }
  .footer-grid, .contact-cards { grid-template-columns: 1fr; }
  .footer-grid > :first-child { grid-column: auto; }
  .footer-bottom { flex-direction: column; }
  .prose { padding: 23px; }
  .dialog-inner { padding: 27px 20px 22px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* MGT 1e.1 - full-width hero background slider */
.hero{position:relative;min-height:620px;padding:82px 0 64px;overflow:hidden;background:#f6f3ea}
.hero .hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,850px);min-height:474px;align-items:center}
.hero .hero-grid>div:first-child{position:relative;z-index:3;padding:32px 38px 32px 0}
.hero .hero-art{position:absolute;z-index:-1;inset:-82px calc((100vw - var(--container))/2 * -1) -64px;max-width:none;overflow:hidden}
.hero .hero-art::after{content:"";position:absolute;z-index:2;inset:0;background:linear-gradient(90deg,rgba(252,250,244,.98) 0%,rgba(252,250,244,.91) 42%,rgba(252,250,244,.57) 70%,rgba(252,250,244,.34) 100%)}
.hero .hero-slides,.hero .hero-slide img{min-height:620px}
.hero .hero-slide img{width:100%;height:100%;object-fit:cover;border-radius:0;opacity:.78;filter:none}
.hero .hero-arrow{z-index:5}.hero .hero-arrow--prev{left:18px}.hero .hero-arrow--next{right:18px}
.hero .hero-dots{z-index:5}.hero .hero-stamp{z-index:5}
@media(min-width:721px){.hero .hero-arrow--prev{left:max(24px,calc((100vw - var(--container))/2 + 18px))}.hero .hero-arrow--next{right:max(24px,calc((100vw - var(--container))/2 + 18px))}.hero .hero-stamp{right:max(28px,calc((100vw - var(--container))/2 + 8px));bottom:32px}.hero .hero-dots{left:50%;transform:translateX(-50%)}}
@media(max-width:720px){html,body{width:100%;max-width:100%;overflow-x:hidden}.site-header,.header-inner,.site-nav{max-width:100vw}.header-inner{width:calc(100% - 28px)}.site-nav{left:14px;right:14px;width:auto;box-sizing:border-box}.hero .hero-grid{overflow:hidden}.hero .hero-grid>div:first-child{width:100%;max-width:100%;min-width:0}.hero h1{width:100%;max-width:100%;font-size:clamp(2.45rem,13vw,4rem);overflow-wrap:anywhere;word-break:normal}.hero h1 span{white-space:normal}.hero-copy,.hero-note,.hero-actions{max-width:100%;overflow-wrap:anywhere}.hero-actions .button{max-width:100%;white-space:normal;text-align:center}}

/* MGT 1e.3 - keep slider controls safely inside the visible hero */
.hero .hero-arrow--prev{left:clamp(32px,3vw,58px)!important;right:auto!important}
.hero .hero-arrow--next{right:clamp(32px,3vw,58px)!important;left:auto!important}
@media(min-width:721px){.hero .hero-arrow--prev{left:calc((100vw - var(--container))/2 * -1 + 32px)!important}.hero .hero-arrow--next{right:calc((100vw - var(--container))/2 * -1 + 32px)!important}}
@media(max-width:720px){.hero .hero-arrow--prev{left:20px!important}.hero .hero-arrow--next{right:20px!important}.hero .hero-arrow{transform:translateY(0)!important}}

/* MGT 1e.4 - anchor the background slider to the hero, not to the inner grid */
.hero{position:relative!important;isolation:isolate}
.hero .hero-grid{position:static!important;display:block!important;min-height:474px}
.hero .hero-grid>div:first-child{position:relative!important;z-index:4!important;width:min(850px,100%)}
.hero .hero-art{position:absolute!important;inset:0!important;z-index:1!important;width:100%!important;max-width:none!important;height:100%!important;margin:0!important;overflow:hidden!important}
.hero .hero-art::after{z-index:2!important}
.hero .hero-slides,.hero .hero-slide,.hero .hero-slide img{position:absolute;inset:0;width:100%!important;height:100%!important;min-height:100%!important;max-width:none!important;margin:0!important;border-radius:0!important}
.hero .hero-slide{z-index:1}.hero .hero-slide.is-active{z-index:2}
.hero .hero-arrow,.hero .hero-dots,.hero .hero-stamp{z-index:6!important}
@media(min-width:721px){.hero .hero-arrow--prev{left:32px!important}.hero .hero-arrow--next{right:32px!important}}
@media(max-width:720px){.site-header{width:100%!important;max-width:100vw!important}.header-inner{width:calc(100% - 28px)!important;max-width:calc(100vw - 28px)!important}.brand{min-width:0}.brand span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-toggle{flex:0 0 44px}.hero{min-height:610px!important}.hero .hero-grid{min-height:507px!important;width:calc(100% - 30px)!important;max-width:calc(100vw - 30px)!important}.hero .hero-grid>div:first-child{padding:18px 0 118px!important}.hero .hero-art{inset:0!important}.hero .hero-slide img{object-position:center center;opacity:.52!important}.hero .hero-art::after{background:linear-gradient(180deg,rgba(252,250,244,.94) 0%,rgba(252,250,244,.85) 62%,rgba(252,250,244,.58) 100%)!important}.hero .hero-arrow{top:auto!important;bottom:22px!important}.hero .hero-arrow--prev{left:18px!important}.hero .hero-arrow--next{right:18px!important}.hero .hero-dots{bottom:38px!important}.hero .hero-stamp{right:10px!important;bottom:72px!important}}
@media(max-width:720px){html,body{max-width:100%;overflow-x:hidden}.hero{width:100%;max-width:100vw;min-height:600px;padding:55px 0 48px;overflow:hidden}.hero .hero-grid{width:calc(100% - 30px);max-width:calc(100vw - 30px);margin-inline:auto}.hero .hero-grid>div:first-child{max-width:100%;padding:20px 0 120px}.hero .hero-art{inset:-55px 0 -48px;width:100%;max-width:100%;overflow:hidden}.hero .hero-art::after{background:linear-gradient(180deg,rgba(252,250,244,.9) 0%,rgba(252,250,244,.82) 58%,rgba(252,250,244,.55) 100%)}.hero .hero-slides,.hero .hero-slide,.hero .hero-slide img{width:100%;max-width:100%;min-height:600px}.hero .hero-slide img{opacity:.57}.hero .hero-arrow{top:auto;bottom:24px;width:42px;height:42px}.hero .hero-arrow--prev{left:18px}.hero .hero-arrow--next{right:18px}.hero .hero-dots{bottom:39px;max-width:calc(100% - 140px)}.hero .hero-stamp{right:8px;bottom:78px;transform:scale(.82);transform-origin:right bottom}}


/* Separate booking and payment page */
.booking-hero { padding-bottom: 45px; }
.booking-page-section { padding: 58px 0 94px; }
.booking-layout { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: 28px; align-items: start; }
.booking-summary,
.booking-payment,
.booking-error {
  padding: 32px;
  background: white;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-small);
}
.booking-summary { position: sticky; top: 106px; }
.selected-tour-image { margin: 0 0 24px; overflow: hidden; border-radius: var(--radius-md); background: #e8eeec; aspect-ratio: 16 / 10; }
.selected-tour-image[hidden] { display: none; }
.selected-tour-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.selected-tour-description { margin: 16px 0 0; color: var(--ink-soft); line-height: 1.65; white-space: pre-line; }
.booking-summary h2,
.booking-payment h2,
.booking-error h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2rem, 4vw, 2.8rem);
  line-height: 1.08;
  font-weight: 600;
  letter-spacing: -.035em;
}
.booking-meta { margin: 28px 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.booking-meta div { padding: 13px 0 0; border-top: 1px solid var(--line); }
.booking-meta dt { color: var(--ink-soft); font-size: .78rem; }
.booking-meta dd { margin: 2px 0 0; font-weight: 800; }
.booking-price-row { margin-top: 26px; padding: 20px; display: flex; align-items: end; justify-content: space-between; gap: 20px; background: #f4f7f5; border-radius: var(--radius-md); }
.booking-price-row > div > span,
.participant-field > span,
.booking-total > span { display: block; color: var(--ink-soft); font-size: .8rem; font-weight: 700; }
.booking-price-row strong { display: block; font-size: 1.8rem; line-height: 1.15; }
.booking-price-row small { display: block; color: var(--ink-soft); }
.participant-field select { min-width: 92px; margin-top: 5px; padding: 10px 34px 10px 12px; color: var(--ink); background: white; border: 1px solid var(--line); border-radius: 10px; font-weight: 800; }
.booking-total { margin-top: 12px; padding: 18px 20px; display: flex; align-items: center; justify-content: space-between; gap: 20px; color: white; background: var(--ink); border-radius: var(--radius-md); }
.booking-total > span { color: #c9d5d5; }
.booking-total strong { color: var(--yellow); font-size: 1.55rem; }
.back-link { margin-top: 24px; display: inline-block; color: var(--green); font-weight: 800; }
.booking-payment h2 { margin-bottom: 13px; }
.payment-intro { margin: 0 0 23px; color: var(--ink-soft); }
.payment-options--page { margin-bottom: 25px; }
.booking-reference { margin-top: 26px; padding: 21px; background: #f4f7f5; border-radius: var(--radius-md); }
.booking-reference h3 { margin: 0; font-size: 1.05rem; }
.booking-reference p { margin: 5px 0 13px; color: var(--ink-soft); font-size: .9rem; }
.booking-reference textarea { width: 100%; resize: vertical; padding: 13px; color: var(--ink); background: white; border: 1px solid var(--line); border-radius: 10px; line-height: 1.5; }
.booking-reference .button { margin-top: 10px; min-height: 44px; padding-block: 9px; }
.booking-contact { width: 100%; margin-top: 18px; }
.payment-legal-note { margin: 16px 0 0; color: var(--ink-soft); font-size: .82rem; }
.booking-error { max-width: 700px; margin-inline: auto; text-align: center; }
.booking-error p { color: var(--ink-soft); }

@media (max-width: 920px) {
  .booking-layout { grid-template-columns: 1fr; }
  .booking-summary { position: static; }
}

@media (max-width: 520px) {
  .booking-summary, .booking-payment, .booking-error { padding: 23px; }
  .booking-meta { grid-template-columns: 1fr; }
  .booking-price-row { align-items: stretch; flex-direction: column; }
  .participant-field select { width: 100%; }
  .booking-total { align-items: flex-start; flex-direction: column; gap: 4px; }
}

/* Booking form, email confirmation and cash payment */
.booking-form { margin-top: 24px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.form-field { display: grid; gap: 7px; }
.form-field--wide { grid-column: 1 / -1; }
.form-field > span,
.payment-methods legend { color: var(--ink); font-size: .88rem; font-weight: 800; }
.form-field input,
.form-field textarea {
  width: 100%;
  padding: 13px 14px;
  color: var(--ink);
  background: white;
  border: 1px solid var(--line);
  border-radius: 11px;
  outline: none;
}
.form-field input:focus,
.form-field textarea:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(30, 86, 92, .10); }
.payment-methods { margin: 26px 0 0; padding: 0; display: grid; gap: 11px; border: 0; }
.payment-methods legend { margin-bottom: 9px; }
.payment-method-card {
  position: relative;
  padding: 15px;
  display: grid;
  grid-template-columns: auto auto 1fr;
  align-items: center;
  gap: 12px;
  background: white;
  border: 1px solid var(--line);
  border-radius: 14px;
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease, transform .18s ease;
}
.payment-method-card[hidden] { display: none; }
.payment-method-card:hover { transform: translateY(-1px); border-color: var(--green); }
.payment-method-card:has(input:checked) { border-color: var(--green); background: #f3f8f6; box-shadow: 0 0 0 2px rgba(30,86,92,.08); }
.payment-method-card input { width: 18px; height: 18px; accent-color: var(--green); }
.payment-method-card__icon { width: 43px; height: 43px; display: grid; place-items: center; color: white; background: var(--green); border-radius: 12px; font-weight: 900; font-size: .82rem; }
.payment-method-card__icon--paypal { color: #123f7b; background: #ffd24a; font-size: 1.05rem; }
.payment-method-card > span:last-child { display: grid; }
.payment-method-card strong { font-size: .98rem; }
.payment-method-card small { color: var(--ink-soft); }
.payment-action { margin-top: 15px; padding: 17px; background: var(--yellow-soft); border: 1px solid #ead47a; border-radius: 13px; }
.payment-action p { margin: 0 0 11px; color: #66531a; font-size: .9rem; }
.payment-action .button { min-height: 44px; padding-block: 9px; }
.button.is-disabled { opacity: .5; pointer-events: none; }
.confirmation-check { margin-top: 15px; display: grid; grid-template-columns: 20px 1fr; gap: 10px; align-items: start; color: var(--ink-soft); font-size: .88rem; }
.confirmation-check input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--green); }
.confirmation-check a { color: var(--green); font-weight: 800; }
.booking-form > .form-field { margin-top: 22px; }
.booking-submit { width: 100%; margin-top: 25px; }
.form-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

.result-page { min-height: 100vh; padding: 50px 20px; display: grid; place-items: center; background: var(--cream); }
.result-card { width: min(680px, 100%); padding: clamp(28px, 6vw, 52px); text-align: center; background: white; border: 1px solid var(--line); border-radius: var(--radius-xl); box-shadow: var(--shadow); }
.result-card h1 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.4rem, 7vw, 4.2rem); line-height: 1; font-weight: 600; letter-spacing: -.045em; }
.result-card > p { color: var(--ink-soft); }
.result-icon { width: 64px; height: 64px; margin: 0 auto 20px; display: grid; place-items: center; color: var(--ink); background: var(--yellow); border-radius: 50%; font-size: 1.8rem; font-weight: 900; }
.result-card--error .result-icon { background: var(--red-soft); color: var(--red); }
.result-details { margin: 27px 0; display: grid; text-align: left; background: #f4f7f5; border-radius: 15px; overflow: hidden; }
.result-details div { padding: 13px 16px; display: grid; grid-template-columns: minmax(120px, .7fr) 1.3fr; gap: 15px; border-bottom: 1px solid var(--line); }
.result-details div:last-child { border-bottom: 0; }
.result-details dt { color: var(--ink-soft); font-size: .82rem; }
.result-details dd { margin: 0; font-weight: 800; }
.result-note { padding: 14px 16px; background: var(--yellow-soft); border-radius: 12px; }

@media (max-width: 620px) {
  .form-grid { grid-template-columns: 1fr; }
  .form-field--wide { grid-column: auto; }
  .payment-method-card { grid-template-columns: auto auto 1fr; padding: 13px; }
  .result-details div { grid-template-columns: 1fr; gap: 2px; }
}
.seat-note{display:block;margin-top:6px;color:var(--green);font-weight:800}.payment-method-card.is-disabled{opacity:.48;cursor:not-allowed;transform:none}.payment-method-card.is-disabled:hover{border-color:var(--line)}

/* MGT 1e.5 - definitive mobile hero layout (must remain at end of file) */
@media (max-width:720px){
  html,body{width:100%!important;max-width:100%!important;overflow-x:hidden!important}
  .site-header{width:100%!important;max-width:100%!important}
  .header-inner{width:calc(100% - 28px)!important;max-width:calc(100% - 28px)!important;margin-inline:auto!important}
  .brand{min-width:0!important;max-width:calc(100% - 58px)!important}
  .brand>span:last-child{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
  .nav-toggle{display:block!important;flex:0 0 44px!important;margin-left:auto!important}
  .site-nav{position:absolute!important;top:68px!important;left:14px!important;right:14px!important;width:auto!important;max-width:calc(100vw - 28px)!important;box-sizing:border-box!important;overflow-y:auto!important;overflow-x:hidden!important}
  .hero{position:relative!important;isolation:isolate!important;width:100%!important;max-width:100%!important;min-height:650px!important;padding:48px 0!important;overflow:hidden!important}
  .hero .hero-grid{position:static!important;display:block!important;width:calc(100% - 28px)!important;max-width:calc(100% - 28px)!important;min-height:554px!important;margin-inline:auto!important;overflow:visible!important}
  .hero .hero-grid>div:first-child{position:relative!important;z-index:5!important;width:100%!important;max-width:100%!important;min-width:0!important;padding:10px 0 125px!important;overflow:visible!important}
  .hero .eyebrow{max-width:100%!important;font-size:.72rem!important;letter-spacing:.09em!important;overflow-wrap:anywhere!important}
  .hero h1{width:100%!important;max-width:100%!important;margin:20px 0 0!important;font-size:clamp(2.4rem,12.2vw,3.7rem)!important;line-height:1.01!important;letter-spacing:-.045em!important;overflow:visible!important;overflow-wrap:anywhere!important;word-break:normal!important}
  .hero h1 span{display:inline!important;max-width:100%!important;white-space:normal!important;overflow-wrap:anywhere!important}
  .hero-copy,.hero-note{width:100%!important;max-width:100%!important;font-size:1rem!important;overflow-wrap:anywhere!important}
  .hero-actions{display:grid!important;grid-template-columns:1fr!important;width:100%!important;max-width:100%!important;gap:10px!important}
  .hero-actions .button{width:100%!important;max-width:100%!important;white-space:normal!important;text-align:center!important}
  .hero .hero-art{position:absolute!important;z-index:1!important;inset:0!important;width:100%!important;max-width:100%!important;height:100%!important;margin:0!important;overflow:hidden!important}
  .hero .hero-slides,.hero .hero-slide,.hero .hero-slide img{position:absolute!important;inset:0!important;width:100%!important;max-width:100%!important;height:100%!important;min-height:100%!important;margin:0!important;border-radius:0!important}
  .hero .hero-slide img{object-fit:cover!important;object-position:center!important;opacity:.45!important}
  .hero .hero-art::after{position:absolute!important;z-index:3!important;inset:0!important;background:linear-gradient(180deg,rgba(252,250,244,.96) 0%,rgba(252,250,244,.86) 68%,rgba(252,250,244,.58) 100%)!important}
  .hero .hero-arrow{position:absolute!important;z-index:8!important;top:auto!important;bottom:20px!important;width:42px!important;height:42px!important;transform:none!important}
  .hero .hero-arrow--prev{left:18px!important;right:auto!important}
  .hero .hero-arrow--next{right:18px!important;left:auto!important}
  .hero .hero-dots{position:absolute!important;z-index:8!important;left:50%!important;right:auto!important;bottom:36px!important;max-width:calc(100% - 140px)!important;transform:translateX(-50%)!important}
  .hero .hero-stamp{z-index:7!important;right:8px!important;bottom:70px!important;width:90px!important;transform:none!important}
}

/* MGT 1e.6 - stronger, more visible frontend slider images */
.hero .hero-slide img{
  opacity:1!important;
  filter:saturate(1.04) contrast(1.03)!important;
}
.hero .hero-art::after{
  background:linear-gradient(90deg,
    rgba(252,250,244,.90) 0%,
    rgba(252,250,244,.72) 38%,
    rgba(252,250,244,.28) 68%,
    rgba(252,250,244,.08) 100%)!important;
}
@media (max-width:720px){
  .hero .hero-slide img{
    opacity:.88!important;
    filter:saturate(1.04) contrast(1.03)!important;
  }
  .hero .hero-art::after{
    background:linear-gradient(180deg,
      rgba(252,250,244,.82) 0%,
      rgba(252,250,244,.64) 58%,
      rgba(252,250,244,.24) 100%)!important;
  }
}
.inline-content-image{display:block;margin:1.6rem 0}.inline-content-image img{display:block;max-width:100%;height:auto;border-radius:16px}.inline-content-image figcaption:empty{display:none}@media(min-width:721px){.media-mobile-only{display:none!important}}@media(max-width:720px){.media-desktop-only{display:none!important}}

/* Treffpunkt-Kartenvorschau: Google Maps wird erst nach aktivem Klick geladen. */
.tour-meeting{margin:18px 0 0;padding:14px 0 0;border-top:1px solid var(--line)}
.tour-meeting>strong{display:block;font-size:.78rem;color:var(--ink-soft);margin-bottom:3px}
.tour-meeting>span{display:block;font-weight:800;margin-bottom:10px}
.tour-map-preview{height:150px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#eef3f2;display:grid;place-items:center}
.tour-map-load{border:0;border-radius:999px;padding:10px 16px;background:var(--ink);color:#fff;font:800 .85rem/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;cursor:pointer}
.tour-map-load:hover{opacity:.9}
.tour-map-frame{display:block;width:100%;height:100%;border:0}
.booking-tour-meeting{margin:22px 0}.booking-tour-meeting .tour-map-preview{height:220px}
