:root {
  --ink: #282421;
  --ink-soft: #665d57;
  --cream: #fff7e8;
  --paper: #fffdf8;
  --sand: #f3dfc3;
  --coral: #cb3947;
  --coral-dark: #9f2330;
  --sun: #f4ad3f;
  --sun-soft: #ffe3a8;
  --mint: #b9d9ca;
  --teal: #28706a;
  --sky: #9cced6;
  --blue: #3f708d;
  --line: #dcc9b1;
  --white: #fff;
  --shadow: 0 24px 58px rgba(67, 44, 25, .14);
  --shadow-soft: 0 13px 32px rgba(67, 44, 25, .09);
  --radius-sm: 12px;
  --radius: 22px;
  --radius-lg: 34px;
  --max: 1220px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  /* The booking widget can set body height to 100%, which cuts off sticky positioning. */
  height: auto !important;
  background: var(--cream);
  color: var(--ink);
  font-family: "Avenir Next", "Trebuchet MS", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
}
html.menu-open { overflow: hidden; }
body.menu-open { overflow: clip; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 9999; background: var(--ink); color: #fff; padding: .8rem 1rem; border-radius: 12px; }
.skip-link:focus { top: 1rem; }
.container { width: min(calc(100% - 2.5rem), var(--max)); margin-inline: auto; }
.section { padding: clamp(4.6rem, 7vw, 7.2rem) 0; }

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  margin: 0 0 .9rem;
  color: var(--coral-dark);
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.eyebrow::before {
  content: "";
  width: 1.7rem;
  height: 5px;
  border-radius: 999px;
  background: var(--sun);
  transform: rotate(-2deg);
}
.display, .h2, .h3 {
  font-family: "Arial Rounded MT Bold", "Avenir Next Rounded", "Trebuchet MS", ui-rounded, system-ui, sans-serif;
  text-wrap: balance;
  overflow-wrap: normal;
  hyphens: none;
}
.display {
  margin: 0;
  max-width: 100%;
  white-space: pre-line;
  font-size: clamp(3rem, 5.25vw, 5.35rem);
  font-weight: 900;
  line-height: .98;
  letter-spacing: -.045em;
}
.h2 {
  margin: 0;
  max-width: 18ch;
  font-size: clamp(2.05rem, 3.65vw, 3.75rem);
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: -.035em;
}
.h3 { margin: 0; font-size: clamp(1.22rem, 1.7vw, 1.55rem); line-height: 1.17; letter-spacing: -.02em; }
.lead { max-width: 61ch; margin: 1.15rem 0 0; color: var(--ink-soft); font-size: clamp(1.02rem, 1.45vw, 1.2rem); line-height: 1.64; }

.btn {
  display: inline-flex;
  min-height: 3.25rem;
  align-items: center;
  justify-content: center;
  gap: .7rem;
  border: 2px solid var(--ink);
  border-radius: 14px;
  padding: .8rem 1.25rem;
  background: var(--ink);
  color: #fff;
  font-weight: 860;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 4px 5px 0 rgba(40, 36, 33, .12);
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.btn:hover, .btn:focus-visible { transform: translate(-1px, -2px); box-shadow: 6px 8px 0 rgba(40, 36, 33, .13); }
.btn-primary { border-color: var(--coral); background: var(--coral); }
.btn-primary:hover, .btn-primary:focus-visible { background: var(--coral-dark); border-color: var(--coral-dark); }
.btn-soft { border-color: var(--ink); background: var(--paper); color: var(--ink); }
.btn-soft:not(.hero-room-button):hover, .btn-soft:not(.hero-room-button):focus-visible { background: #fff; }
.btn-ink { background: var(--ink); border-color: var(--ink); }
.btn-light { background: #fff; border-color: #fff; color: var(--ink); }
.btn-small { min-height: 2.7rem; padding: .65rem 1rem; font-size: .9rem; box-shadow: none; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  border-bottom: 1px solid rgba(73, 43, 25, .11);
  background: rgba(255, 247, 232, .985);
  transition: transform .24s ease, background-color .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.site-header.is-hidden { transform: translateY(-100%); }
@media (prefers-reduced-motion: reduce) {
  .site-header { transition: none; }
}
.site-header.is-scrolled {
  border-bottom-color: rgba(73,43,25,.16);
  background: #fff7e8;
  box-shadow: 0 10px 28px rgba(67,44,25,.075);
}
.nav-wrap { min-height: 5.5rem; display: flex; align-items: center; justify-content: space-between; gap: 1.15rem; }
.brand {
  display: inline-flex;
  align-items: center;
  color: var(--ink);
  text-decoration: none;
}
.brand-skyline-lockup {
  flex: 0 1 380px;
  gap: .69rem;
  min-width: 278px;
  padding: .18rem 0;
  transition: transform .18s ease, opacity .18s ease;
}
.brand-skyline-lockup:hover,
.brand-skyline-lockup:focus-visible { transform: translateY(-1px); }
.brand-mark {
  display: grid;
  flex: 0 0 3.03rem;
  width: 3.03rem;
  height: 3.03rem;
  place-items: center;
  overflow: hidden;
  border: 1.5px solid rgba(203, 57, 71, .74);
  border-radius: 9px;
  background: transparent;
}
.brand-mark img { width: 2.49rem; height: 2.49rem; object-fit: contain; }
.brand-copy { display: grid; align-content: center; gap: .17rem; min-width: 0; }
.brand-wordmark { display: block; width: 200px; max-width: 100%; height: auto; }
.brand-lower {
  display: flex;
  align-items: center;
  gap: .55rem;
  width: min(100%, 340px);
}
.brand-tagline {
  flex: 0 0 auto;
  color: var(--coral);
  font-size: .48rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: .18em;
  text-transform: uppercase;
  white-space: nowrap;
}
.brand-skyline {
  display: flex;
  flex: 1 1 142px;
  align-items: center;
  min-width: 82px;
}
.brand-skyline::before {
  content: "";
  flex: 0 0 18px;
  height: 1px;
  margin-right: .34rem;
  background: rgba(204,57,69,.55);
}
.brand-skyline img { display: block; width: 100%; height: auto; max-height: 27px; object-fit: contain; object-position: left center; opacity: .96; }
.nav-links { display: flex; align-items: center; gap: 1.05rem; }
.nav-message-link { display: none; }
.nav-links > a:not(.btn) { position: relative; font-size: .91rem; font-weight: 800; text-decoration: none; }
.nav-links > a:not(.btn)::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -.35rem; height: 3px; border-radius: 999px; background: var(--sun); transition: right .18s ease; }
.nav-links > a:not(.btn):hover::after { right: 0; }
.lang-switch { display: inline-flex; margin-left: auto; border: 1px solid var(--line); border-radius: 999px; padding: .18rem; background: #fff; }
.lang-switch a { min-width: 2.25rem; padding: .34rem .48rem; border-radius: 999px; font-size: .75rem; font-weight: 850; text-align: center; text-decoration: none; }
.lang-switch a[aria-current=page] { background: var(--ink); color: #fff; }
.menu-toggle { display: none; width: 2.85rem; height: 2.85rem; border: 2px solid var(--ink); border-radius: 50%; background: transparent; cursor: pointer; }
.menu-toggle span, .menu-toggle::before, .menu-toggle::after { content: ""; display: block; width: 1.2rem; height: 2px; margin: 4px auto; background: var(--ink); transition: .2s; }
.menu-open .menu-toggle span { opacity: 0; }
.menu-open .menu-toggle::before { transform: translateY(6px) rotate(45deg); }
.menu-open .menu-toggle::after { transform: translateY(-6px) rotate(-45deg); }
.preview-banner { position: sticky; top: 5.5rem; z-index: 900; padding: .55rem 1rem; background: var(--teal); color: #fff; font-weight: 800; text-align: center; }

.hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(3.5rem, 6vw, 6.4rem) 0 clamp(4.3rem, 7vw, 7rem);
  background-color: #fff0d7;
  background-image: radial-gradient(circle at 8px 8px, rgba(203,57,71,.065) 1.7px, transparent 2px);
  background-size: 32px 32px;
}
.hero::before {
  content: "";
  position: absolute;
  z-index: 0;
  width: clamp(18rem, 31vw, 34rem);
  aspect-ratio: 1;
  right: clamp(-12rem, -8vw, -5rem);
  top: clamp(3rem, 8vw, 8rem);
  border: 1px solid rgba(203,57,71,.11);
  border-radius: 50%;
  box-shadow: 0 0 0 clamp(1.8rem, 3.5vw, 3.8rem) rgba(203,57,71,.02), 0 0 0 clamp(4.7rem, 7.5vw, 7.6rem) rgba(244,173,63,.02);
  pointer-events: none;
}
.hero::after {
  content: "";
  position: absolute;
  left: -4%;
  right: -4%;
  bottom: -42px;
  height: 86px;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  background: var(--paper);
}
.hero-classic-decor { position:absolute; z-index:0; pointer-events:none; user-select:none; }
.hero-classic-clouds { top:2.2rem; left:34%; width:min(29vw,22rem); opacity:.46; transform:rotate(-2deg); filter:drop-shadow(0 8px 15px rgba(203,57,71,.05)); }
.hero-classic-birds { left:47%; top:11.2rem; width:min(8vw,6rem); opacity:.58; transform:rotate(5deg); }
.hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(390px, .95fr); grid-template-areas: "copy visual" "actions visual"; column-gap: clamp(2.8rem, 6vw, 6.2rem); row-gap: 1.15rem; align-items: center; }
.hero-copy { grid-area: copy; align-self: end; position: relative; z-index: 3; }
.hero-brand-lockup { width: min(100%, 390px); margin: 0 0 1.65rem; }
.hero-brand-lockup img { width: 100%; height: auto; }
.hero-classic-mobile-pictograms { display:none; }
.hero-classic-mobile-pictograms img { display:block; width:100%; height:auto; }
.hero-classic-title-line { display:inline; }
.hero .display { text-wrap: balance; }
.hero-copy .lead { max-width: 54ch; color: #5e554f; }
.hero-actions {
  --hero-cta-width: 18.8rem;
  --hero-cta-height: calc(var(--hero-cta-width) / 4.2453);
  grid-area: actions;
  width: min(100%, 39rem);
  display: grid;
  grid-template-columns: max-content max-content;
  grid-template-areas: "primary secondary" "note note";
  column-gap: .95rem;
  row-gap: .55rem;
  align-items: center;
  justify-content: start;
  margin-top: 1.9rem;
}
.hero-booking-cluster { display: contents; }
.hero-booking-cluster .btn-primary { grid-area: primary; }
.hero-actions > .btn-soft { grid-area: secondary; }
.hero-room-button {
  position: relative;
  width: var(--hero-cta-width);
  min-width: var(--hero-cta-width);
  min-height: unset;
  aspect-ratio: 675 / 159;
  height: auto;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 0 4.05rem 0 4.55rem;
  border: 0 !important;
  border-radius: 0;
  background: url('/assets/images/hero/room-button-frame.png') center / 100% 100% no-repeat;
  box-shadow: none !important;
  filter: drop-shadow(0 5px 12px rgba(67,44,25,.08));
  overflow: visible;
}
.hero-room-button::before,
.hero-room-button::after { content: none; }
.hero-room-label {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  min-width: 0;
  font-family: "Arial Rounded MT Bold", "Trebuchet MS", sans-serif;
  font-size: 1.02rem;
  font-weight: 860;
  letter-spacing: -.03em;
  line-height: 1.05;
  text-align: left;
  color: #2b2724;
}
.hero-note { display: flex; align-items: center; gap: .6rem; color: var(--ink-soft); font-size: .92rem; font-weight: 740; }
.hero-note-inline {
  grid-area: note;
  width: auto;
  max-width: min(100%, 32rem);
  margin: .02rem 0 0 .18rem;
  color: #685e57;
  font-size: .88rem;
  line-height: 1.3;
}
.spark { color: var(--coral); font-size: 1.2rem; }
.hero .btn { border-radius: 16px; box-shadow: 0 9px 22px rgba(67,44,25,.10); }
.hero .btn:hover, .hero .btn:focus-visible { transform: translateY(-2px); box-shadow: 0 13px 28px rgba(67,44,25,.14); }
.hero .hero-room-button:hover, .hero .hero-room-button:focus-visible { background: url('/assets/images/hero/room-button-frame.png') center / 100% 100% no-repeat; box-shadow: none !important; filter: drop-shadow(0 9px 18px rgba(67,44,25,.12)) brightness(.99); }
.hero .hero-booking-cluster .btn-primary { width: var(--hero-cta-width); margin: 0; min-height: var(--hero-cta-height); padding-inline: 1.35rem 1rem; border-radius: 1.15rem; box-shadow: 0 7px 18px rgba(67,44,25,.10); }
.hero .btn-primary span[aria-hidden="true"] {
  width: 2rem;
  height: 2rem;
  display: inline-grid;
  place-items: center;
  margin: -.25rem -.35rem -.25rem .2rem;
  border-radius: 50%;
  background: rgba(255,255,255,.18);
  font-size: 1.08rem;
}
.hero-visual { grid-area: visual; position: relative; min-height: 600px; }
.hero-image {
  position: absolute;
  inset: 1rem 0 0 2.5rem;
  overflow: hidden;
  border: 8px solid #fff;
  border-radius: 34px 18px 38px 22px;
  box-shadow: var(--shadow);
  transform: rotate(.45deg);
}
.hero-image img { width: 100%; height: 100%; object-fit: cover; }
.hero-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(28,20,14,.17), transparent 46%); }
.hero-mini-image {
  position: absolute;
  z-index: 3;
  right: -1.2rem;
  bottom: 1.2rem;
  width: 38%;
  height: 31%;
  overflow: hidden;
  border: 7px solid #fff;
  border-radius: 18px 34px 18px 26px;
  box-shadow: 0 17px 38px rgba(64,46,29,.18);
  transform: rotate(-2.6deg);
}
.hero-mini-image::before { content: ""; position: absolute; z-index: 2; left: 50%; top: -10px; width: 58px; height: 20px; background: rgba(255,227,168,.9); transform: translateX(-50%) rotate(2deg); }
.hero-mini-image img { width: 100%; height: 100%; object-fit: cover; }
.hero-place-tag {
  position: absolute;
  z-index: 4;
  right: -1rem;
  top: 1.4rem;
  display: grid;
  min-width: 145px;
  padding: .8rem 1rem;
  border: 2px solid var(--ink);
  border-radius: 14px;
  background: var(--sun);
  box-shadow: 5px 6px 0 rgba(40,36,33,.18);
  text-transform: uppercase;
  transform: rotate(4deg);
}
.hero-place-tag span { font-size: .68rem; font-weight: 850; letter-spacing: .14em; }
.hero-place-tag strong { font-family: "Arial Rounded MT Bold", "Trebuchet MS", sans-serif; font-size: 1.25rem; line-height: 1; }
.hero-card {
  position: absolute;
  left: -.5rem;
  bottom: 2.3rem;
  z-index: 4;
  max-width: 25rem;
  padding: 1rem 1.15rem;
  border: 1.5px solid var(--ink);
  border-radius: 16px 24px 16px 20px;
  background: var(--paper);
  box-shadow: 0 13px 28px rgba(40,36,33,.12);
  transform: rotate(-.8deg);
}
.hero-card strong, .hero-card span { display: block; }
.hero-card strong { margin-bottom: .15rem; }
.hero-card span { color: var(--ink-soft); font-size: .86rem; }

@media (prefers-reduced-motion: no-preference) {
  body:not(.design-no-motion) .hero-copy.visible > * { animation: bsp-hero-rise .58s cubic-bezier(.2,.72,.22,1) both; }
  body:not(.design-no-motion) .hero-copy.visible > .hero-brand-lockup { animation-delay: .02s; }
  body:not(.design-no-motion) .hero-copy.visible > .display { animation-delay: .09s; }
  body:not(.design-no-motion) .hero-copy.visible > .lead { animation-delay: .16s; }
  body:not(.design-no-motion) .hero-actions.visible { animation: bsp-hero-rise .58s .23s cubic-bezier(.2,.72,.22,1) both; }
  body:not(.design-no-motion) .hero-visual.visible .hero-image { animation: bsp-hero-image-in .72s .12s cubic-bezier(.2,.72,.22,1) both; }
  body:not(.design-no-motion) .hero-visual.visible .hero-mini-image,
  body:not(.design-no-motion) .hero-visual.visible .hero-place-tag,
  body:not(.design-no-motion) .hero-visual.visible .hero-card { animation: bsp-hero-detail-in .55s .30s cubic-bezier(.2,.72,.22,1) both; }
  body:not(.design-no-motion) .hero-visual.visible .hero-place-tag { animation-delay: .38s; }
  body:not(.design-no-motion) .hero-visual.visible .hero-card { animation-delay: .46s; }
}
@keyframes bsp-hero-rise { from { opacity: 0; transform: translateY(17px); } to { opacity: 1; transform: translateY(0); } }
@keyframes bsp-hero-image-in { from { opacity: 0; transform: translateY(14px) scale(.985) rotate(.45deg); } to { opacity: 1; transform: translateY(0) scale(1) rotate(.45deg); } }
@keyframes bsp-hero-detail-in { from { opacity: 0; translate: 0 10px; } to { opacity: 1; translate: 0 0; } }

.fact-strip { position: relative; z-index: 2; background: var(--paper); }
.fact-list { display: grid; grid-template-columns: repeat(6, 1fr); gap: .75rem; padding: 1.4rem 0 1.8rem; }
.fact {
  min-height: 6.7rem; display:flex; flex-direction:column; justify-content:space-between; gap:.7rem;
  padding:1rem; border:1px solid var(--line); border-radius:15px 21px 15px 19px;
  background:rgba(255,253,248,.92); box-shadow:2px 3px 0 rgba(40,36,33,.07); transform:rotate(-.35deg);
}
.fact:nth-child(2n) { background:rgba(255,249,238,.95); transform:rotate(.35deg); }
.fact:nth-child(3n), .fact:nth-child(4n) { background:rgba(255,253,248,.92); }
.fact small { color:var(--coral); font-weight:900; letter-spacing:.08em; }
.fact span { font-size:.86rem; font-weight:850; line-height:1.35; }

.section-head { display: flex; justify-content: space-between; gap: 2.5rem; align-items: end; margin-bottom: 2.5rem; }
.section-head > div { position: relative; }
.section-head .lead { max-width: 43ch; margin: 0; }
.section-head.compact { margin-bottom: 2rem; }
.room-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.room-card {
  overflow: hidden;
  border: 2px solid var(--ink);
  border-radius: 26px 18px 28px 18px;
  background: var(--paper);
  box-shadow: 6px 7px 0 rgba(40,36,33,.1);
  transition: transform .2s ease, box-shadow .2s ease;
}
.room-card:nth-child(even) { border-radius: 18px 28px 18px 26px; }
.room-card:hover { transform: translateY(-4px) rotate(-.25deg); box-shadow: 8px 11px 0 rgba(40,36,33,.12); }
.room-photo { position:relative; overflow:hidden; display:block; width:100%; margin:0; padding:0; border:0; background:transparent; text-align:left; }
.room-photo img { width:100%; height:315px; object-fit:cover; transition:transform .45s ease; }
.room-photo[data-room-gallery] { cursor:pointer; }
.room-photo[data-room-gallery]:focus-visible { outline:4px solid rgba(203,57,71,.24); outline-offset:-4px; }
.room-image-enter { animation:room-image-enter .28s ease both; }
@keyframes room-image-enter { from { opacity:.48; transform:scale(1.018); } to { opacity:1; transform:scale(1); } }
.room-card:hover .room-photo img { transform: scale(1.025); }
.room-image-counter {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  display: inline-flex;
  min-width: 3.65rem;
  justify-content: center;
  padding: .42rem .65rem;
  border: 1px solid rgba(40,36,33,.38);
  border-radius: 999px;
  background: rgba(255,253,248,.92);
  color: var(--ink);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .035em;
  box-shadow: 0 5px 15px rgba(40,36,33,.14);
  backdrop-filter: blur(7px);
}
.room-copy { padding: 1.3rem 1.4rem 1.5rem; }
.room-copy p { margin: .5rem 0 0; color: var(--ink-soft); }
.room-note { margin-top: 1.2rem; color: var(--ink-soft); font-size: .9rem; }

.section-warm { position:relative; overflow:hidden; border-block:1px solid var(--line); background:#f1e4d2; color:var(--ink); }
.section-warm::before { content:""; position:absolute; inset:0; background:linear-gradient(105deg,transparent 0 76%,rgba(203,57,71,.055) 76% 100%),radial-gradient(circle at 8px 8px,rgba(40,36,33,.045) 1.5px,transparent 1.8px) 0 0/34px 34px; }
.section-warm .container { position:relative; }
.section-warm .eyebrow { color:var(--coral-dark); }
.section-warm .eyebrow::before { background:var(--coral); }
.feature-grid { position:relative; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.9rem; }
.feature-grid::before { content:""; position:absolute; left:3%; right:3%; top:4.35rem; border-top:2px dashed rgba(203,57,71,.24); }
.feature-card { position:relative; min-height:300px; display:flex; flex-direction:column; padding:1rem 1rem 1.25rem; border:1px solid #d8c3aa; border-radius:18px 24px 18px 22px; background:rgba(255,253,248,.96); color:var(--ink); box-shadow:4px 5px 0 rgba(40,36,33,.08); transform:rotate(-.25deg); }
.feature-card:nth-child(even) { transform:rotate(.3deg) translateY(.35rem); }
.feature-pictogram { position:relative; z-index:1; min-height:9rem; display:grid; place-items:center; margin:-.15rem -.15rem .7rem; border-bottom:1px solid #eadbc9; background:linear-gradient(180deg,rgba(255,247,232,.55),rgba(255,253,248,0)); }
.feature-pictogram img { width:104px; height:104px; object-fit:contain; }
.feature-card .h3 { margin-top:.25rem; font-size:1.18rem; }
.feature-card p { margin:.65rem 0 0; color:var(--ink-soft); font-size:.91rem; line-height:1.52; }

.story-grid { display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(2.8rem,6vw,5.7rem); align-items:center; }
.story-visual { min-width:0; }
.hostel-gallery { outline:none; }
.hostel-gallery:focus-visible .gallery-stage { box-shadow:0 0 0 4px rgba(203,57,71,.18); }
.gallery-stage { position:relative; min-height:555px; }
.gallery-main-frame { position:absolute; inset:0 20% 3.4rem 0; overflow:hidden; margin:0; border:7px solid #fff; border-radius:26px 18px 34px 18px; background:#e7d4bc; box-shadow:var(--shadow); transform:rotate(-.7deg); }
.gallery-main-frame img { width:100%; height:100%; object-fit:cover; }
.gallery-main-open { position:relative; display:block; width:100%; height:100%; padding:0; border:0; background:transparent; cursor:zoom-in; }
.gallery-main-open:focus-visible { outline:4px solid var(--coral); outline-offset:-7px; }
.gallery-main-cue { position:absolute; left:1rem; bottom:1rem; display:inline-flex; gap:.5rem; align-items:center; padding:.6rem .85rem; border-radius:999px; background:rgba(255,253,248,.95); color:var(--ink); font-size:.78rem; font-weight:850; box-shadow:0 4px 14px rgba(40,36,33,.18); }
.gallery-main-open:hover .gallery-main-cue,.gallery-main-open:focus-visible .gallery-main-cue { background:#fff; }
body.gallery-overview-open { overflow:hidden; }
.gallery-overview { width:min(1240px,96vw); max-width:none; height:min(760px,92dvh); max-height:92dvh; padding:0; border:0; border-radius:20px; background:var(--paper); color:var(--ink); box-shadow:0 24px 80px rgba(20,18,17,.4); }
.gallery-overview[open] { display:flex; flex-direction:column; }
.gallery-overview::backdrop { background:rgba(20,18,17,.78); }
.gallery-overview-head { display:flex; flex:none; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.2rem; border-bottom:1px solid rgba(40,36,33,.14); }
.gallery-overview-head strong,.gallery-overview-head span { display:block; }
.gallery-overview-head strong { font-size:1rem; }
.gallery-overview-head span { color:var(--ink-soft); font-size:.78rem; }
.gallery-overview-close { display:grid; place-items:center; flex:0 0 2.6rem; width:2.6rem; height:2.6rem; padding:0; border:1px solid rgba(40,36,33,.2); border-radius:50%; background:#fff; color:var(--ink); font-size:1.6rem; cursor:pointer; }
.gallery-overview-close:focus-visible,.gallery-overview-tile:focus-visible { outline:3px solid var(--coral); outline-offset:2px; }
.gallery-overview-layout { display:grid; flex:1; min-height:0; grid-template-columns:minmax(0,1fr) minmax(220px,285px); gap:1rem; padding:1rem 1.2rem 1.2rem; }
.gallery-overview-scroll { min-height:0; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; padding-inline-end:.55rem; }
.gallery-overview-focus { position:relative; display:grid; min-width:0; min-height:0; place-items:center; margin:0; border-radius:14px; overflow:hidden; background:#282421; }
.gallery-overview-focus img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:contain; }
.gallery-overview-focus figcaption { position:absolute; right:.8rem; bottom:.7rem; padding:.32rem .6rem; border-radius:999px; background:rgba(20,18,17,.72); color:#fff; font-size:.76rem; font-weight:800; }
.gallery-overview-grid { columns:2; column-gap:.65rem; }
.gallery-overview-tile { display:block; break-inside:avoid; width:100%; overflow:hidden; margin:0 0 .65rem; padding:0; border:1px solid rgba(40,36,33,.16); border-radius:11px; background:#e7d4bc; box-shadow:0 3px 10px rgba(40,36,33,.08); cursor:zoom-in; line-height:0; transition:border-color .2s ease,box-shadow .2s ease; }
.gallery-overview-tile[aria-pressed="true"] { border-color:var(--coral); box-shadow:0 0 0 2px rgba(203,57,71,.23),0 5px 14px rgba(40,36,33,.1); }
.gallery-overview-tile img { display:block; width:100%; height:auto; max-height:190px; object-fit:cover; transition:transform .2s ease; }
.gallery-overview-tile:hover { border-color:rgba(40,36,33,.42); box-shadow:0 6px 18px rgba(40,36,33,.15); }
.gallery-overview-tile[aria-pressed="true"]:hover { border-color:var(--coral); box-shadow:0 0 0 2px rgba(203,57,71,.23),0 6px 18px rgba(40,36,33,.15); }
.gallery-overview-tile:hover img { transform:scale(1.025); }
@media(max-width:680px) { .gallery-overview-layout { grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(0,42dvh) minmax(0,1fr); gap:.7rem; } .gallery-overview-tile img { max-height:200px; } }
@media(max-width:460px) { .gallery-overview { width:100vw; max-height:100dvh; height:100dvh; border-radius:0; } .gallery-overview-head { padding:.8rem 1rem; } .gallery-overview-layout { padding:.8rem; } .gallery-overview-grid { column-gap:.5rem; } .gallery-overview-tile { margin-bottom:.5rem; } .gallery-main-cue { left:.55rem; bottom:.55rem; padding:.5rem .65rem; font-size:.7rem; } }
.gallery-image-enter { animation:gallery-enter .32s ease both; }
@keyframes gallery-enter { from { opacity:.45; transform:scale(1.015); } to { opacity:1; transform:scale(1); } }
.gallery-preview-card { position:absolute; z-index:4; right:0; bottom:3.2rem; width:43%; height:47%; overflow:hidden; padding:0; border:7px solid #fff; border-radius:18px 30px 18px 24px; background:#eadac5; box-shadow:0 18px 38px rgba(64,46,29,.15); cursor:pointer; transform:rotate(2.2deg); transition:transform .18s ease,box-shadow .18s ease; }
.gallery-preview-card:hover,.gallery-preview-card:focus-visible { transform:rotate(1deg) translateY(-3px); box-shadow:0 22px 44px rgba(64,46,29,.2); }
.gallery-preview-card img { width:100%; height:100%; object-fit:cover; }
.gallery-arrow { position:absolute; z-index:7; top:46%; width:2.45rem; height:2.45rem; display:grid; place-items:center; border:1px solid rgba(40,36,33,.26); border-radius:50%; background:rgba(255,253,248,.82); color:rgba(40,36,33,.82); box-shadow:0 5px 16px rgba(40,36,33,.10); backdrop-filter:blur(6px); opacity:.78; cursor:pointer; transition:opacity .17s ease,transform .17s ease,background .17s ease; }
.gallery-arrow:hover,.gallery-arrow:focus-visible { background:rgba(255,253,248,.98); opacity:1; transform:translateY(-1px); }
.gallery-prev { left:-.85rem; }
.gallery-next { right:17.5%; }
.gallery-thumbs { display:flex; gap:.55rem; overflow-x:auto; padding:.35rem .2rem .7rem; scrollbar-width:thin; }
.gallery-thumb { flex:0 0 70px; height:52px; overflow:hidden; padding:0; border:2px solid transparent; border-radius:9px 13px 9px 11px; background:#fff; opacity:.68; cursor:pointer; transform:rotate(-.4deg); transition:opacity .16s ease,transform .16s ease,border-color .16s ease; }
.gallery-thumb:nth-child(even) { transform:rotate(.5deg); }
.gallery-thumb img { width:100%; height:100%; object-fit:cover; }
.gallery-thumb:hover,.gallery-thumb:focus-visible { opacity:1; }
.gallery-thumb.active { border-color:var(--coral); opacity:1; transform:translateY(-2px); }
.story-mark { position:absolute; z-index:6; right:6%; top:1rem; display:grid; place-items:center; width:108px; height:84px; padding:.7rem; border:2px solid var(--ink); border-radius:50%; background:var(--sun); color:var(--ink); font-size:.68rem; font-weight:950; letter-spacing:.08em; line-height:1.15; text-align:center; transform:rotate(7deg); box-shadow:4px 5px 0 rgba(40,36,33,.13); }
.story-copy p:not(.eyebrow) { max-width:57ch; color:var(--ink-soft); font-size:1.04rem; }
.story-bullets { display:grid; gap:.75rem; margin:1.7rem 0 2rem; padding:0; list-style:none; }
.story-bullets li { position:relative; padding-left:1.75rem; font-weight:720; }
.story-bullets li::before { content:"✦"; position:absolute; left:0; color:var(--coral); }

.location-section { position: relative; overflow: hidden; border-block: 2px solid var(--ink); background: var(--mint); }
.location-section::after { content: ""; position: absolute; right: -6rem; bottom: -7rem; width: 24rem; height: 24rem; border: 3px dashed rgba(40,112,106,.26); border-radius: 50%; }
.location-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(390px, .95fr) minmax(0, 1.05fr); gap: clamp(2.8rem, 5vw, 5rem); align-items: center; }
.location-card {
  position: relative;
  overflow: hidden;
  min-width: 0;
  padding: 0;
  border: 2px solid var(--ink);
  border-radius: 22px 36px 22px 30px;
  background: #f7fff9;
  box-shadow: 7px 8px 0 rgba(40,36,33,.12);
  transform: rotate(-.7deg);
}
.location-map-area { position: relative; min-height: 270px; overflow: hidden; border-bottom: 1.5px dashed rgba(40,112,106,.28); background: linear-gradient(145deg, rgba(255,255,255,.62), rgba(228,247,237,.42)); }
.location-card-body { padding: 1.55rem 1.7rem 1.7rem; }
.location-address-block { display: flex; flex-direction: column; align-items: flex-start; }
.location-card strong { font-size: 1.65rem; }
.location-card span { color: #385e59; }
.location-card a { width: fit-content; margin-top: .85rem; color: var(--teal); font-weight: 850; }
.location-label { margin-bottom: .65rem; font-size: .75rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.location-pattern { position: absolute; inset: 1.4rem; color: rgba(40,112,106,.15); }
.location-pattern span { display: block; color: inherit; font-family: "Arial Rounded MT Bold", "Trebuchet MS", sans-serif; font-size: clamp(3.6rem, 7vw, 6.4rem); font-weight: 900; line-height: .9; letter-spacing: -.05em; transform: rotate(-4deg); }
.location-pattern i { position: absolute; left: 12%; top: 56%; width: 67%; height: 85px; border-top: 4px dashed rgba(40,112,106,.28); border-radius: 50%; transform: rotate(10deg); }
.location-pattern i::before, .location-pattern i::after { content: ""; position: absolute; width: 15px; height: 15px; border: 3px solid var(--teal); border-radius: 50%; background: #f7fff9; }
.location-pattern i::before { left: -5px; top: -9px; }
.location-pattern i::after { right: -5px; top: 11px; }
.location-copy { min-width: 0; }
.walk-list { margin: 1.8rem 0 0; }
.walk-row { display: flex; justify-content: space-between; gap: 1rem; padding: .85rem 0; border-bottom: 1px dashed rgba(30,83,75,.35); }
.walk-row strong { color:var(--teal); }
.location-section a.btn-ink,.location-section a.btn-ink:visited,.location-section a.btn-ink span { color:#fff !important; -webkit-text-fill-color:#fff; }

.group-grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(2.8rem, 6vw, 5.5rem); align-items: start; }
.group-copy { position: sticky; top: 7rem; }
.group-image { overflow: hidden; height: 245px; margin-top: 1.8rem; border: 6px solid #fff; border-radius: 26px 18px 28px 18px; box-shadow: var(--shadow-soft); transform: rotate(-1deg); }
.group-image img { width: 100%; height: 100%; object-fit: cover; }
.group-hint { display: flex; align-items: center; gap: .85rem; padding: 1rem; margin-top: 1rem; border: 2px solid var(--ink); border-radius: 14px 22px 14px 18px; background: var(--sun-soft); font-weight: 750; box-shadow: 4px 5px 0 rgba(40,36,33,.1); }
.group-hint span { flex: 0 0 auto; width: 2.2rem; height: 2.2rem; display: grid; place-items: center; border-radius: 50%; background: var(--coral); color: #fff; font-weight: 900; }
.group-form { padding: clamp(1.35rem, 3vw, 2rem); border: 2px solid var(--ink); border-radius: 22px 34px 22px 28px; background: var(--paper); box-shadow: 7px 8px 0 rgba(40,36,33,.11); }
.group-form > .h3 { margin-bottom: 1.4rem; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.form-grid label { display: grid; gap: .42rem; color: var(--ink-soft); font-size: .82rem; font-weight: 800; }
.form-grid .full { grid-column: 1 / -1; }
.form-grid input, .form-grid textarea { width: 100%; border: 1px solid #cdbca9; border-radius: 13px; padding: .82rem .9rem; background: #fff; color: var(--ink); outline: none; }
.form-grid input:focus, .form-grid textarea:focus { border-color: var(--coral); box-shadow: 0 0 0 3px rgba(201,63,73,.13); }
.group-form .btn { margin-top: 1.1rem; }
.form-status { min-height: 1.35rem; margin: .65rem 0 0; color: var(--teal); font-weight: 750; }

.booking-section { position: relative; overflow: hidden; background: var(--sun-soft); }
.booking-section::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(-45deg, rgba(203,57,71,.035) 0 12px, transparent 12px 24px); }
.booking-shell { position:relative; display:block; padding:clamp(1.6rem,4vw,3.2rem); border:2px solid var(--ink); border-radius:28px 40px 28px 34px; background:rgba(255,253,248,.9); box-shadow:8px 9px 0 rgba(40,36,33,.12); }
.booking-intro { display:block; }
.booking-intro .h2 { max-width:18ch; }
.booking-intro .lead { max-width:68ch; }
.booking-trust { display:flex; flex-wrap:wrap; gap:.55rem 1.35rem; margin:1.45rem 0 0; padding:1rem 0 0; border-top:1px dashed rgba(40,36,33,.24); color:var(--teal); font-size:.9rem; font-weight:800; }
.booking-trust span { white-space:nowrap; }
.booking-widget { min-width:0; margin-top:1.45rem; }
.widget-fallback { padding: 1rem; border-radius: 12px; background: var(--sand); }

.faq-grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(2.8rem, 6vw, 5.5rem); align-items: start; }
.faq-list { border-top: 2px solid var(--ink); }
details { border-bottom: 1px dashed var(--line); }
summary { position: relative; cursor: pointer; list-style: none; padding: 1.25rem 3rem 1.25rem 0; font-weight: 820; }
summary::-webkit-details-marker { display: none; }
summary::after { content: "+"; position: absolute; right: .2rem; top: 50%; transform: translateY(-50%) rotate(-4deg); width: 2rem; height: 2rem; display: grid; place-items: center; border: 2px solid var(--ink); border-radius: 50%; background: var(--sun); color: var(--ink); font-size: 1.3rem; box-shadow: 2px 3px 0 rgba(40,36,33,.1); }
details[open] summary::after { content: "−"; }
details p { margin: -.25rem 0 1.35rem; max-width: 64ch; color: var(--ink-soft); }

.section-contact { background: var(--sand); }
.contact-grid { display: grid; grid-template-columns: 1.12fr .88fr; gap: 1.2rem; }
.contact-card { min-height: 330px; display: flex; flex-direction: column; justify-content: space-between; padding: 1.7rem; border: 2px solid var(--ink); border-radius: 22px 32px 22px 28px; background: var(--paper); box-shadow: 5px 6px 0 rgba(40,36,33,.1); }
.contact-card.accent { background: var(--coral); color: #fff; }
.contact-card.accent .eyebrow { color: #fff0c7; }
.contact-card.accent p { color: rgba(255,255,255,.84); }
.contact-card p { color: var(--ink-soft); }
.contact-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.contact-actions > a:not(.btn), .contact-card > a { font-weight: 820; }

/* Mobile direct-booking action: appears only when neither the hero CTA nor the booking section is visible. */
.mobile-booking-bar {
  display: none;
}

.site-footer { padding: 3.5rem 0 2rem; background: #25211f; color: #fff; }
.footer-grid { display: grid; grid-template-columns: 1.25fr .75fr .75fr; gap: 2.5rem; }
.footer-name { max-width: 12ch; font-family: "Arial Rounded MT Bold", "Trebuchet MS", sans-serif; font-size: clamp(1.8rem, 3vw, 2.65rem); font-weight: 900; line-height: .95; letter-spacing: -.035em; text-transform: uppercase; }
.footer-brand p { max-width: 38ch; color: rgba(255,255,255,.66); }
.footer-col h3 { margin: 0 0 .8rem; color: #ffd189; font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; }
.footer-col a { display: block; width: fit-content; margin: .45rem 0; color: rgba(255,255,255,.72); text-decoration: none; }
.footer-col a:hover { color: #fff; }
.footer-stamp { width: fit-content; margin-top: 2rem; padding: .55rem .75rem; border: 1px dashed rgba(255,255,255,.42); border-radius: 8px; color: rgba(255,255,255,.58); font-size: .68rem; font-weight: 850; letter-spacing: .14em; transform: rotate(-1deg); }
.footer-bottom { display: flex; justify-content: space-between; gap: 1rem; margin-top: 2.5rem; padding-top: 1.3rem; border-top: 1px solid rgba(255,255,255,.13); color: rgba(255,255,255,.5); font-size: .8rem; }

.reveal { opacity: 0; transform: translateY(14px); transition: opacity .55s ease, transform .55s ease; }
.reveal.visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .btn, .room-card, .room-photo img { transition: none; }
}

@media (min-width: 861px) {
  /* v1.5.3: sichtbare Logo- und Bildoberkante werden gemeinsam ausgerichtet. */
  .hero { padding-top: clamp(1.75rem, 2.65vw, 2.85rem); }
  .hero-grid { align-items: start; }
  .hero-copy { position: relative; top: -1.15rem; }
  .hero-brand-lockup { margin-bottom: .78rem; }
  .hero-visual { top: 0; }
  .hero-image { inset: 0 0 0 2.5rem; }
  .hero-place-tag { top: .4rem; }
}
@media (min-width: 1051px) {
  .hero-visual { min-height: 630px; }
}

@media (max-width: 1050px) {
  .nav-links { gap: .75rem; }
  .nav-links > a:not(.btn) { font-size: .85rem; }
  .fact-list { grid-template-columns: repeat(3, 1fr); }
  .hero-grid { grid-template-columns: 1fr .9fr; gap: 2.7rem; }
  .feature-grid { grid-template-columns:repeat(3,1fr); }
  .feature-grid::before { display:none; }
}

@media (max-width: 1120px) and (min-width: 861px) {
  .nav-wrap { gap: .72rem; }
  .brand-skyline-lockup { flex-basis: 308px; min-width: 252px; gap: .56rem; }
  .brand-mark { flex-basis: 2.54rem; width: 2.54rem; height: 2.54rem; }
  .brand-mark img { width: 2.12rem; height: 2.12rem; }
  .brand-wordmark { width: 160px; }
  .brand-lower { width: min(100%, 276px); gap: .41rem; }
  .brand-tagline { font-size: .42rem; letter-spacing: .15em; }
  .brand-skyline img { max-height: 21px; }
  .nav-links { gap: .72rem; }
  .nav-links > a:not(.btn) { font-size: .85rem; }
  .nav-links .btn-small { padding-inline: .8rem; }
}

@media (max-width: 860px) {
  .container { width: min(calc(100% - 2rem), var(--max)); }
  .menu-toggle { display: block; order: 3; }
  .lang-switch { order: 2; }
  .nav-links { position: fixed; inset: 5.5rem 0 auto; display: none; flex-direction: column; align-items: stretch; gap: 0; max-height: calc(100dvh - 5.5rem); overflow-y: auto; overscroll-behavior: contain; padding: 1rem; border-bottom: 2px solid var(--ink); background: var(--cream); box-shadow: 0 18px 30px rgba(0,0,0,.1); }
  .menu-open .nav-links { display: flex; }
  .nav-links .nav-message-link { display: block; }
  .nav-links > a { padding: .9rem .6rem; }
  .nav-links > a:not(.btn)::after { display: none; }
  .nav-links .btn { margin-top: .6rem; }

  .hero { padding-top: 1.2rem; padding-bottom: 4rem; background-color: #fff0d7; background-size: 30px 30px; }
  .hero::before { width: 15.5rem; right: -8rem; top: 5.4rem; border-color: rgba(203,57,71,.12); box-shadow: 0 0 0 2.1rem rgba(203,57,71,.02), 0 0 0 4.8rem rgba(244,173,63,.02); }
  .hero::after { bottom: -34px; height: 68px; }
  .hero-classic-clouds { top:.65rem; left:auto; right:-.5rem; width:14.5rem; opacity:.38; transform:rotate(4deg); }
  .hero-classic-birds { top:8.8rem; left:auto; right:1.25rem; bottom:auto; width:5.6rem; opacity:.46; transform:rotate(6deg); }
  .hero-grid { grid-template-columns: 1fr; grid-template-areas: "copy" "visual" "actions"; row-gap: 1.05rem; }
  .hero-copy { display: grid; align-items: start; max-width: 35rem; padding-top: .1rem; }
  .hero-brand-lockup { display: none; }
  .hero .display { max-width: 8.8ch; font-size: clamp(2.55rem, 8.4vw, 4rem); line-height: .95; letter-spacing: -.055em; }
  [data-hero-classic] .hero-classic-title { max-width:100%; font-family:"Avenir Next","Trebuchet MS",ui-sans-serif,system-ui,sans-serif; font-size:clamp(1.9rem,5.9vw,2.9rem); font-weight:650; line-height:.95; letter-spacing:-.045em; white-space:normal; text-wrap:nowrap; }
  [data-hero-classic] .hero-classic-title-line { display:block; white-space:nowrap; }
  [data-hero-classic] .hero-classic-mobile-pictograms { display:block; width:min(22rem,82vw); margin:.12rem 0 .78rem; filter:drop-shadow(0 5px 8px rgba(67,44,25,.08)); }
  [data-hero-classic] .hero-copy .lead { margin-top:.58rem; }
  .hero-copy .lead { max-width: 31ch; margin-top: .95rem; color: #625850; font-size: clamp(1rem, 2.35vw, 1.09rem); line-height: 1.54; }
  .hero-visual { min-height: clamp(310px, 54vw, 430px); margin-top: .2rem; }
  .hero-image { inset: 0 .15rem; border: 5px solid #fff; border-radius: 24px; box-shadow: 0 20px 40px rgba(67,44,25,.14); transform: none; }
  .hero-image::after { background: linear-gradient(to top, rgba(28,20,14,.23), transparent 55%); }
  .hero-mini-image { right: -.1rem; bottom: -.35rem; width: 34%; height: 32%; border-width: 4px; border-radius: 14px 20px 14px 18px; box-shadow: 0 13px 28px rgba(64,46,29,.17); transform: rotate(-2deg); }
  .hero-mini-image::before { display: none; }
  .hero-place-tag { right: .55rem; top: .55rem; min-width: 112px; padding: .52rem .65rem; border-width: 1.5px; border-radius: 11px; box-shadow: 0 7px 18px rgba(40,36,33,.12); transform: rotate(1.4deg); }
  .hero-place-tag span { font-size: .58rem; }
  .hero-place-tag strong { font-size: .97rem; }
  .hero-card { left: .65rem; right: 5.2rem; bottom: .62rem; padding: .72rem .8rem; border: 1px solid rgba(40,36,33,.25); border-radius: 13px; background: rgba(255,253,248,.97); box-shadow: 0 9px 20px rgba(40,36,33,.10); transform: none; }
  .hero-card strong { font-size: .92rem; line-height: 1.2; }
  .hero-card span { margin-top: .14rem; font-size: .74rem; line-height: 1.28; }
  .hero-actions { width: min(100%, 31rem); display: grid; grid-template-columns: 1fr; grid-template-areas: none; gap: .82rem; align-items: start; justify-self: start; margin-top: .15rem; }
  .hero-booking-cluster,
  .hero .hero-actions > .btn-soft { grid-area: auto; grid-column: 1 / -1; }
  .hero-booking-cluster { display: block; width: 100%; overflow: hidden; border: 1px solid rgba(203,57,71,.18); border-radius: 21px; background: var(--paper); box-shadow: 0 10px 20px rgba(67,44,25,.055); }
  .hero-booking-cluster .btn-primary { grid-area: auto; }
  .hero .hero-actions .btn { width: 100%; min-height: 3.5rem; justify-content: space-between; border-radius: 16px; padding: .82rem 1rem .82rem 1.05rem; box-shadow: 0 8px 18px rgba(67,44,25,.09); }
  .hero .hero-booking-cluster .btn-primary { width: 100%; min-height: 3.86rem; margin: 0; border: 0; border-radius: 20px 20px 0 0; padding: .84rem 1rem .84rem 1.08rem; background: var(--coral); box-shadow: none; }
  .hero .hero-actions > .btn-soft.hero-room-button { width: min(100%, 20rem); min-width: 0; min-height: unset; justify-self: stretch; padding: 0 3.95rem 0 4.35rem; background: url('/assets/images/hero/room-button-frame.png') center / 100% 100% no-repeat; border: 0; box-shadow: none; filter: drop-shadow(0 5px 12px rgba(67,44,25,.08)); }
  .hero-room-label { font-size: .98rem; }
  .hero-note-inline { width: 100%; max-width: 100%; margin: 0; padding: .82rem 1rem .9rem; border-top: 1px solid rgba(203,57,71,.16); color: #615750; font-size: .84rem; line-height: 1.34; }
  .hero-note-inline::before { display: none; content: none; }
  .hero-note-inline .spark { font-size: 1.05rem; color: var(--coral); }
  .hero.builder-layout-centered .hero-copy { justify-items: center; }
  .hero.builder-layout-centered .display, .hero.builder-layout-centered .lead { max-width: 100%; }
  .hero.builder-layout-centered .hero-actions { width: min(100%, 25rem); justify-self: center; }
  .hero.builder-layout-centered .hero-booking-cluster { width: 100%; }
  .hero.builder-layout-centered .hero-note-inline { justify-content: center; margin-left: auto; margin-right: auto; }
  .hero.builder-layout-image-left .hero-visual { margin-bottom: 0; margin-top: .2rem; }

  .story-grid, .location-grid, .group-grid, .faq-grid { grid-template-columns:1fr; }
  .booking-trust { margin-top:1.2rem; }
  .group-copy { position: static; }
  .gallery-stage { min-height:520px; }
  .section-head { display: grid; align-items: start; }
  .section-head .lead { margin-top: 0; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  .section { padding: 4rem 0; }
  .nav-wrap { min-height: 4.75rem; gap: .72rem; transition: min-height .22s ease; }
  .site-header.is-scrolled .nav-wrap { min-height: 4.35rem; }
  .brand-skyline-lockup { flex-basis: 205px; min-width: 172px; gap: .4rem; padding: .12rem 0; }
  .brand-mark { flex-basis: 2.14rem; width: 2.14rem; height: 2.14rem; border-radius: 7px; }
  .brand-mark img { width: 1.8rem; height: 1.8rem; }
  .brand-wordmark { width: 124px; }
  .brand-lower { width: 165px; gap: .30rem; }
  .brand-tagline { font-size: .31rem; letter-spacing: .12em; }
  .brand-skyline { min-width: 54px; }
  .brand-skyline::before { flex-basis: 9px; margin-right: .2rem; }
  .brand-skyline img { max-height: 14.5px; }
  .lang-switch { padding: .13rem; }
  .lang-switch a { min-width: 2rem; padding: .28rem .4rem; font-size: .71rem; }
  .menu-toggle { width: 2.75rem; height: 2.75rem; background: var(--paper); }
  .nav-links { inset: 4.75rem 0 auto; max-height: calc(100dvh - 4.75rem); }
  .site-header.is-scrolled .nav-links { top: 4.35rem; max-height: calc(100dvh - 4.35rem); }
  .site-header.is-scrolled + .preview-banner { top: 4.35rem; }

  .hero { padding-top: 1.05rem; padding-bottom: 3.85rem; }
  .hero::before { width: 15rem; right: -8.2rem; top: 5.8rem; }
  .hero-grid { row-gap: .95rem; }
  .hero .display { font-size: clamp(2.45rem, 11.4vw, 3.55rem); }
  [data-hero-classic] .hero-classic-title { font-size:clamp(1.78rem,6.4vw,2.55rem); line-height:.94; }
  [data-hero-classic] .hero-classic-mobile-pictograms { width:min(20.5rem,88vw); margin:.08rem 0 .68rem; }
  [data-hero-classic] .hero-copy .lead { margin-top:.5rem; }
  .hero-copy .lead { max-width: 30ch; margin-top: .88rem; font-size: clamp(.98rem, 4.4vw, 1.08rem); line-height: 1.52; }
  .hero-visual { min-height: 298px; }
  .hero-card { left: .65rem; right: 5rem; bottom: .58rem; padding: .68rem .76rem; }
  .hero-card strong { font-size: .9rem; line-height: 1.2; }
  .hero-card span { margin-top: .12rem; font-size: .72rem; line-height: 1.28; }

  .fact-list { grid-template-columns: repeat(2, 1fr); }
  .fact { min-height: 7rem; }
  .room-grid, .feature-grid, .form-grid, .contact-grid { grid-template-columns: 1fr; }
  .room-photo img { height: 250px; }
  .gallery-stage { min-height:420px; }
  .gallery-main-frame { inset:0 15% 3rem 0; border-width:5px; }
  .gallery-preview-card { width:42%; height:43%; bottom:2.8rem; border-width:5px; }
  .gallery-next { right:12%; }
  .gallery-arrow { width:2.3rem; height:2.3rem; }
  .gallery-prev { left:-.35rem; }
  .story-mark { right:2%; width:92px; height:72px; font-size:.58rem; }
  .gallery-thumb { flex-basis:61px; height:47px; }
  .group-image { height: 210px; }
  .booking-shell { padding: 1.2rem; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-brand { grid-column: auto; }
  .footer-bottom { display: grid; }
}

@media (max-width: 760px) {
  body.has-mobile-booking-cta {
    padding-bottom: calc(5.2rem + env(safe-area-inset-bottom));
  }
  .mobile-booking-bar {
    position: fixed;
    z-index: 1200;
    right: 0;
    bottom: 0;
    left: 0;
    display: block;
    padding: .52rem .72rem calc(.52rem + env(safe-area-inset-bottom));
    border-top: 1px solid rgba(73,43,25,.16);
    background: var(--cream);
    box-shadow: 0 -10px 30px rgba(40,36,33,.12);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(110%);
    transition: transform .24s ease, opacity .2s ease, visibility 0s linear .24s;
  }
  .mobile-booking-bar.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
    transition-delay: 0s;
  }
  body.menu-open .mobile-booking-bar {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(110%);
  }
  .mobile-booking-bar a {
    width: min(100%, 34rem);
    min-height: 3.65rem;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: .65rem;
    margin-inline: auto;
    padding: .65rem .9rem .65rem 1rem;
    border: 2px solid var(--coral-dark);
    border-radius: 16px;
    background: var(--coral);
    color: #fff;
    text-decoration: none;
    box-shadow: 3px 4px 0 rgba(40,36,33,.13);
  }
  .mobile-booking-kicker {
    padding-right: .7rem;
    border-right: 1px solid rgba(255,255,255,.34);
    font-size: .61rem;
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: .11em;
    text-transform: uppercase;
    white-space: nowrap;
  }
  .mobile-booking-bar strong {
    min-width: 0;
    font-size: .98rem;
    line-height: 1.15;
    text-align: center;
  }
  .mobile-booking-arrow {
    width: 2rem;
    height: 2rem;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(255,255,255,.17);
    font-size: 1.12rem;
    font-weight: 900;
  }
}

@media (max-width: 390px) {
  .mobile-booking-kicker { display: none; }
  .mobile-booking-bar a { grid-template-columns: 1fr auto; }
  .mobile-booking-bar strong { text-align: left; padding-left: .15rem; }
  .brand-skyline-lockup { flex-basis: 184px; min-width: 158px; }
  .brand-wordmark { width: 114px; }
  .brand-lower { width: 151px; }
  .hero .display { font-size: clamp(2.55rem, 12vw, 3.4rem); }
  [data-hero-classic] .hero-classic-title { font-size:clamp(1.64rem,6.8vw,1.95rem); line-height:.94; letter-spacing:-.045em; }
  [data-hero-classic] .hero-classic-mobile-pictograms { width:min(18.7rem,90vw); margin:.06rem 0 .62rem; }
  .hero-booking-cluster { border-radius: 18px; }
  .hero .hero-booking-cluster .btn-primary { border-radius: 17px 17px 0 0; }
  .hero-note-inline { padding: .75rem .92rem .84rem; }
  .hero-visual { min-height: 305px; }
  .hero-card { right: 4.3rem; }
}

@media (prefers-reduced-motion: reduce) {
  .mobile-booking-bar { transition: none; }
}


/* Editor preview should stay visually stable while text is being typed. */
.editor-preview .reveal,
.editor-preview .reveal.visible,
.editor-preview .hero-copy.visible > *,
.editor-preview .hero-actions.visible,
.editor-preview .hero-visual.visible .hero-image,
.editor-preview .hero-visual.visible .hero-mini-image,
.editor-preview .hero-visual.visible .hero-place-tag,
.editor-preview .hero-visual.visible .hero-card {
  opacity: 1 !important;
  transform: none !important;
  translate: none !important;
  animation: none !important;
  transition: none !important;
}

/* Advanced, controlled page-builder styles (v0.7) */
.design-width-standard { --max: 1220px; }
.design-width-wide { --max: 1360px; }
.design-no-motion .reveal { opacity:1; transform:none; transition:none; }
.design-no-motion .btn,
.design-no-motion .room-card,
.design-no-motion .room-photo img { transition:none; }
.design-no-motion .room-image-enter,
.design-no-motion .gallery-image-enter,
.design-no-motion .form-submit-spinner { animation:none; }
.design-no-motion .mobile-booking-bar { transition:none; }

.builder-width-narrow > .container { width:min(calc(100% - 2.5rem), 960px); }
.builder-width-normal > .container { width:min(calc(100% - 2.5rem), var(--max)); }
.builder-width-wide > .container { width:min(calc(100% - 2.5rem), 1380px); }
.section.builder-space-compact { padding:clamp(2.8rem,4.5vw,4.2rem) 0; }
.section.builder-space-generous { padding:clamp(6.2rem,9vw,9rem) 0; }
.hero.builder-space-compact { padding-top:clamp(2.5rem,4vw,4rem); padding-bottom:clamp(3.5rem,5vw,5rem); }
.hero.builder-space-generous { padding-top:clamp(5.5rem,8vw,8rem); padding-bottom:clamp(6.5rem,9vw,9rem); }
.custom-notice.builder-space-compact { padding:1.25rem 0; }
.custom-notice.builder-space-normal { padding:2.25rem 0; }
.custom-notice.builder-space-generous { padding:3.5rem 0; }

.builder-bg-paper { background:var(--paper) !important; }
.builder-bg-cream { background:var(--cream) !important; }
.builder-bg-sand { background:var(--sand) !important; }
.builder-bg-mint { background:#dcebe4 !important; }
.builder-bg-sun { background:var(--sun-soft) !important; }
.builder-bg-coral { background:var(--coral) !important; color:#fff; }
.builder-bg-dark { background:#25211f !important; color:#fff; }
.builder-bg-coral .lead,.builder-bg-coral p:not(.eyebrow),.builder-bg-dark .lead,.builder-bg-dark p:not(.eyebrow) { color:rgba(255,255,255,.82); }
.builder-bg-coral .eyebrow,.builder-bg-dark .eyebrow { color:#fff1c8; }
.builder-bg-coral .eyebrow::before,.builder-bg-dark .eyebrow::before { background:#ffd17d; }
.builder-bg-dark .btn-soft { border-color:#fff; background:transparent; color:#fff; }
.builder-bg-coral .btn-soft { border-color:#fff; background:#fff; color:var(--ink); }

.design-corners-straight .room-card,
.design-corners-straight .feature-card,
.design-corners-straight .booking-shell,
.design-corners-straight .group-form,
.design-corners-straight .contact-card,
.design-corners-straight .custom-content-card,
.design-corners-straight .custom-image,
.design-corners-straight .custom-cta-card,
.design-corners-straight .custom-notice-card,
.design-corners-straight .custom-quote-card { border-radius:8px !important; }
.design-corners-round .room-card,
.design-corners-round .feature-card,
.design-corners-round .booking-shell,
.design-corners-round .group-form,
.design-corners-round .contact-card,
.design-corners-round .custom-content-card,
.design-corners-round .custom-image,
.design-corners-round .custom-cta-card,
.design-corners-round .custom-notice-card,
.design-corners-round .custom-quote-card { border-radius:36px !important; }

.hero.builder-layout-image-left .hero-grid { grid-template-columns: minmax(390px, .95fr) minmax(0, 1fr); grid-template-areas: "visual copy" "visual actions"; }
.hero.builder-layout-centered .hero-grid { grid-template-columns:1fr; grid-template-areas: "copy" "visual" "actions"; text-align:center; }
.hero.builder-layout-centered .hero-copy { max-width:850px; margin-inline:auto; }
.hero.builder-layout-centered .display,
.hero.builder-layout-centered .lead { margin-inline:auto; }
.hero.builder-layout-centered .hero-actions { justify-content:center; justify-self:center; }
.hero.builder-layout-centered .hero-brand-lockup { margin-inline:auto; }
.hero.builder-layout-centered .hero-note { justify-content:center; }
.hero.builder-layout-centered .hero-visual { width:min(100%,900px); min-height:560px; margin-inline:auto; }

.builder-layout-grid-3 .room-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.builder-layout-list .room-grid { grid-template-columns:1fr; }
.builder-layout-list .room-card { display:grid; grid-template-columns:minmax(240px,.7fr) 1fr; }
.builder-layout-list .room-photo img { height:100%; min-height:220px; }
.builder-layout-list .room-copy { align-self:center; }
.builder-layout-compact .feature-grid { grid-template-columns:repeat(5,minmax(0,1fr)); }
.builder-layout-compact .feature-card { padding:1.1rem; }
.builder-layout-compact .feature-pictogram img { height:58px; }
.builder-layout-image-right .story-visual { order:2; }
.builder-layout-image-right .story-copy { order:1; }
.builder-layout-card-right .location-card { order:2; }
.builder-layout-card-right .location-grid > div:last-child { order:1; }
.builder-layout-form-left .group-form { order:1; }
.builder-layout-form-left .group-copy { order:2; }
.builder-layout-compact.booking-section .booking-shell { max-width:1000px; }
.builder-layout-stacked .faq-grid,
.builder-layout-stacked .contact-grid { grid-template-columns:1fr; }
.builder-layout-stacked .faq-grid > div:first-child { max-width:760px; }

.custom-text-image-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.5rem,6vw,5.5rem); align-items:center; }
.custom-copy .btn { margin-top:1.5rem; }
.custom-image { overflow:hidden; min-height:380px; border:6px solid #fff; border-radius:28px 18px 34px 20px; box-shadow:var(--shadow); transform:rotate(.7deg); }
.custom-image img { width:100%; height:100%; min-height:380px; object-fit:cover; }
.custom-text-image.builder-layout-image-left .custom-copy { order:2; }
.custom-text-image.builder-layout-image-left .custom-image { order:1; }
.custom-text-image.builder-layout-image-top .custom-text-image-grid { grid-template-columns:1fr; }
.custom-text-image.builder-layout-image-top .custom-image { order:-1; max-height:560px; }

.custom-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; }
.custom-cards.builder-layout-grid-2 .custom-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.custom-cards.builder-layout-grid-4 .custom-card-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.custom-content-card { overflow:hidden; border:2px solid var(--ink); border-radius:22px 30px 22px 26px; background:var(--paper); box-shadow:4px 5px 0 rgba(40,36,33,.1); }
.custom-content-card:nth-child(2n) { transform:rotate(.35deg); }
.custom-content-card img { width:100%; height:220px; object-fit:cover; }
.custom-content-card > div { padding:1.25rem; }
.custom-content-card p { margin:.7rem 0 0; color:var(--ink-soft); }
.custom-section-action { margin-top:1.5rem; }

.custom-gallery { width:min(100%,1050px); margin-inline:auto; }
.custom-gallery-strip { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(240px,1fr); gap:1rem; overflow-x:auto; padding-bottom:.6rem; scroll-snap-type:x mandatory; }
.custom-gallery-strip img { width:100%; height:330px; object-fit:cover; border:5px solid #fff; border-radius:22px; box-shadow:var(--shadow-soft); scroll-snap-align:start; }

.custom-quote-card { width:min(100%,940px); margin:0 auto; padding:clamp(2rem,5vw,4.5rem); border:2px solid var(--ink); border-radius:26px 38px 26px 32px; background:rgba(255,253,248,.92); box-shadow:7px 8px 0 rgba(40,36,33,.11); text-align:center; }
.custom-quote-card blockquote { margin:.3rem auto 1.2rem; max-width:21ch; font-family:"Arial Rounded MT Bold","Trebuchet MS",sans-serif; font-size:clamp(2rem,4.2vw,4.3rem); font-weight:900; line-height:1.08; letter-spacing:-.035em; }
.custom-quote-card figcaption { margin-top:1.2rem; color:var(--coral-dark); font-weight:850; }
.custom-quote.builder-layout-left .custom-quote-card { margin-left:0; text-align:left; }
.custom-quote.builder-layout-left .custom-quote-card blockquote { margin-left:0; }

.custom-cta-card { display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:clamp(1.8rem,4vw,3.5rem); border:2px solid var(--ink); border-radius:26px 38px 26px 32px; background:var(--paper); box-shadow:7px 8px 0 rgba(40,36,33,.11); }
.custom-cta-card .lead { margin-bottom:0; }
.custom-cta.builder-layout-centered .custom-cta-card { display:grid; justify-items:center; text-align:center; }
.custom-cta.builder-layout-centered .h2,.custom-cta.builder-layout-centered .lead { margin-inline:auto; }

.custom-notice-card { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding:1.2rem 1.4rem; border:2px solid var(--ink); border-radius:18px 25px 18px 22px; background:rgba(255,253,248,.76); box-shadow:4px 5px 0 rgba(40,36,33,.09); }
.custom-notice-card h2 { margin:0; }
.custom-notice-card p { margin:.35rem 0 0; }
.custom-notice.builder-layout-wide .custom-notice-card { padding:1.8rem 2rem; }

@media(max-width:1050px){
  .builder-layout-grid-3 .room-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .custom-cards.builder-layout-grid-4 .custom-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:860px){
  .hero.builder-layout-image-left .hero-copy,.hero.builder-layout-image-left .hero-visual,
  .builder-layout-image-right .story-visual,.builder-layout-image-right .story-copy,
  .builder-layout-card-right .location-card,.builder-layout-card-right .location-grid > div:last-child,
  .builder-layout-form-left .group-form,.builder-layout-form-left .group-copy { order:initial; }
  .custom-text-image-grid { grid-template-columns:1fr; }
  .custom-text-image.builder-layout-image-left .custom-copy,.custom-text-image.builder-layout-image-left .custom-image { order:initial; }
  .custom-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .custom-cta-card { align-items:flex-start; flex-direction:column; }
}
@media(max-width:620px){
  .builder-width-narrow > .container,.builder-width-normal > .container,.builder-width-wide > .container { width:min(calc(100% - 2rem), var(--max)); }
  .builder-layout-grid-3 .room-grid,.builder-layout-list .room-grid { grid-template-columns:1fr; }
  .builder-layout-list .room-card { display:block; }
  .custom-card-grid,.custom-cards.builder-layout-grid-2 .custom-card-grid,.custom-cards.builder-layout-grid-4 .custom-card-grid { grid-template-columns:1fr; }
  .custom-image,.custom-image img { min-height:270px; }
  .custom-notice-card { align-items:flex-start; flex-direction:column; }
  .custom-gallery-strip { grid-auto-columns:82%; }
  .custom-gallery-strip img { height:260px; }
}

/* Keep light cards readable when a section uses a strong background. */
.builder-bg-coral .room-card,
.builder-bg-coral .feature-card,
.builder-bg-coral .group-form,
.builder-bg-coral .booking-shell,
.builder-bg-coral .contact-card:not(.accent),
.builder-bg-coral .custom-content-card,
.builder-bg-coral .custom-quote-card,
.builder-bg-coral .custom-cta-card,
.builder-bg-coral .custom-notice-card,
.builder-bg-dark .room-card,
.builder-bg-dark .feature-card,
.builder-bg-dark .group-form,
.builder-bg-dark .booking-shell,
.builder-bg-dark .contact-card,
.builder-bg-dark .custom-content-card,
.builder-bg-dark .custom-quote-card,
.builder-bg-dark .custom-cta-card,
.builder-bg-dark .custom-notice-card { color:var(--ink); }
.builder-bg-coral .room-card p,
.builder-bg-coral .feature-card p,
.builder-bg-coral .group-form p,
.builder-bg-coral .booking-shell p,
.builder-bg-coral .contact-card:not(.accent) p,
.builder-bg-coral .custom-content-card p,
.builder-bg-coral .custom-quote-card p,
.builder-bg-coral .custom-cta-card p,
.builder-bg-dark .room-card p,
.builder-bg-dark .feature-card p,
.builder-bg-dark .group-form p,
.builder-bg-dark .booking-shell p,
.builder-bg-dark .contact-card p,
.builder-bg-dark .custom-content-card p,
.builder-bg-dark .custom-quote-card p,
.builder-bg-dark .custom-cta-card p { color:var(--ink-soft); }

/* Journey planner integrated into the map card (v0.7.2) */
.journey-planner {
  margin: 1.35rem -1.7rem -1.7rem;
  padding: 1.35rem 1.7rem 1.55rem;
  border-top: 1.5px dashed rgba(40, 112, 106, .32);
  background: rgba(224, 244, 234, .58);
}
.journey-planner-head { display: flex; align-items: flex-start; gap: .72rem; }
.journey-planner-head .h3 { font-size: 1.08rem; }
.journey-planner-head p { margin: .22rem 0 0; color: #385e59; font-size: .86rem; line-height: 1.42; }
.journey-icon {
  flex: 0 0 auto;
  width: 1.9rem;
  height: 1.9rem;
  display: grid;
  place-items: center;
  border: 1.5px solid rgba(40,36,33,.72);
  border-radius: 50%;
  background: var(--sun);
  color: var(--ink);
  font-size: .82rem;
  font-weight: 950;
  transform: rotate(-4deg);
}
.journey-quick { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; margin-top: .9rem; }
.journey-choice {
  min-height: 2.85rem;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: .5rem;
  padding: .62rem .7rem;
  border: 1.25px solid rgba(40, 36, 33, .64);
  border-radius: 12px 16px 12px 14px;
  background: rgba(255,253,248,.9);
  color: var(--ink);
  font-size: .82rem;
  font-weight: 850;
  line-height: 1.2;
  text-align: left;
  cursor: pointer;
  box-shadow: 1px 2px 0 rgba(40, 36, 33, .06);
  transition: transform .16s ease, background .16s ease, box-shadow .16s ease;
}
.journey-choice:nth-child(2) { border-radius: 16px 12px 15px 12px; }
.journey-choice:hover, .journey-choice:focus-visible { background: #fff; transform: translateY(-1px); box-shadow: 2px 3px 0 rgba(40, 36, 33, .08); }
.journey-choice-icon { width: 1.3rem; display: inline-grid; place-items: center; font-size: 1rem; }
.journey-custom { margin-top: .9rem; }
.journey-custom > label { display: block; margin-bottom: .36rem; color: #385e59; font-size: .7rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.journey-input-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .5rem; }
.journey-input-row input {
  min-width: 0;
  width: 100%;
  border: 1.25px solid rgba(40, 36, 33, .38);
  border-radius: 11px;
  padding: .68rem .75rem;
  background: rgba(255,255,255,.94);
  color: var(--ink);
  outline: none;
  font-size: .86rem;
}
.journey-input-row input:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(40, 112, 106, .14); }
.journey-input-row button {
  border: 1.5px solid var(--ink);
  border-radius: 999px;
  padding: .64rem .85rem;
  background: var(--ink);
  color: #fff;
  font-size: .78rem;
  font-weight: 900;
  cursor: pointer;
  white-space: nowrap;
}
.journey-input-row button span { margin-left: .25rem; }

@media (max-width: 620px) {
  .location-card-body { padding: 1.35rem; }
  .journey-planner { margin: 1.2rem -1.35rem -1.35rem; padding: 1.2rem 1.35rem 1.35rem; }
  .journey-quick { grid-template-columns: 1fr; }
  .journey-input-row { grid-template-columns: 1fr; }
  .journey-input-row button { min-height: 2.85rem; }
}

/* v1 component presets and formatted copy */
.rich-copy > :first-child,.story-rich > :first-child,.faq-rich > :first-child{margin-top:0}
.rich-copy > :last-child,.story-rich > :last-child,.faq-rich > :last-child{margin-bottom:0}
.rich-copy p,.story-rich p,.faq-rich p{color:inherit;line-height:inherit}.rich-copy ul,.story-rich ul,.faq-rich ul{padding-left:1.25rem}
.preset-hero-calm{background:var(--paper)}
.preset-hero-calm::before{opacity:.18}.preset-hero-calm .hero-visual{transform:none}.preset-hero-calm .hero-secondary{transform:none}
.preset-rooms-clean .room-card{border-radius:14px;box-shadow:none;border:1px solid rgba(49,42,38,.16);transform:none!important}.preset-rooms-clean .room-image-counter{background:var(--paper)}
.preset-features-simple .feature-card{background:var(--paper);box-shadow:none;border:1px solid rgba(49,42,38,.14);transform:none!important}.preset-features-simple .feature-pictogram{background:transparent}
.preset-story-postcard .gallery-main-frame{transform:rotate(-1deg);box-shadow:12px 14px 0 rgba(203,57,69,.12)}
.preset-location-map{background:#bcd9cd}
.preset-groups-inquiry{background:var(--cream)}
.preset-booking-sun{background:var(--sun-soft)}
.preset-contact-cards{background:var(--cream)}

/* v1.1 · flexible, controlled section design system */
.custom-section{position:relative;isolation:isolate}
.custom-section>.container{position:relative;z-index:1}
.custom-section.builder-align-center{text-align:center}
.custom-section.builder-align-center .eyebrow,.custom-section.builder-align-center .custom-section-action{justify-content:center;text-align:center}
.custom-section.builder-align-center .custom-section-action{display:flex}
.custom-section.builder-heading-small .h2{font-size:clamp(1.65rem,2.7vw,2.65rem)}
.custom-section.builder-heading-large .h2{font-size:clamp(2.8rem,5.7vw,5.9rem);max-width:15ch}
.custom-section.builder-align-center.builder-heading-large .h2{margin-inline:auto}
.custom-section.builder-text-narrow .rich-copy,.custom-section.builder-text-narrow .lead{max-width:48ch}
.custom-section.builder-text-normal .rich-copy,.custom-section.builder-text-normal .lead{max-width:64ch}
.custom-section.builder-text-wide .rich-copy,.custom-section.builder-text-wide .lead{max-width:82ch}
.custom-section.builder-align-center .rich-copy,.custom-section.builder-align-center .lead{margin-inline:auto}

/* Intro composition shared by cards, galleries and stats */
.custom-section.builder-intro-stacked .section-head{grid-template-columns:1fr;gap:1rem}
.custom-section.builder-intro-stacked .section-head .lead{max-width:68ch}
.custom-section.builder-intro-centered .section-head{grid-template-columns:1fr;text-align:center;justify-items:center;gap:1rem}
.custom-section.builder-intro-centered .section-head .h2,.custom-section.builder-intro-centered .section-head .lead{margin-inline:auto}

/* Section-level surfaces */
.custom-text.builder-surface-card .custom-text-shell,
.custom-text-image.builder-surface-card .custom-text-image-grid,
.custom-cards.builder-surface-card>.container,
.custom-gallery-section.builder-surface-card>.container,
.custom-stats.builder-surface-card>.container{background:rgba(255,253,248,.94);border:1px solid rgba(49,42,38,.12);padding:clamp(1.5rem,4vw,3.2rem);box-shadow:var(--shadow-soft)}
.custom-text.builder-surface-outline .custom-text-shell,
.custom-text-image.builder-surface-outline .custom-text-image-grid,
.custom-cards.builder-surface-outline>.container,
.custom-gallery-section.builder-surface-outline>.container,
.custom-stats.builder-surface-outline>.container{border:2px solid rgba(49,42,38,.66);padding:clamp(1.4rem,3.5vw,2.8rem);background:transparent}
.custom-quote.builder-surface-open .custom-quote-card,
.custom-cta.builder-surface-open .custom-cta-card,
.custom-notice.builder-surface-open .custom-notice-card{background:transparent;border-color:transparent;box-shadow:none;padding-inline:0}
.custom-quote.builder-surface-outline .custom-quote-card,
.custom-cta.builder-surface-outline .custom-cta-card,
.custom-notice.builder-surface-outline .custom-notice-card{background:transparent;box-shadow:none}

/* Per-section corners */
.custom-section.builder-corners-square .custom-text-shell,
.custom-section.builder-corners-square .custom-text-image-grid,
.custom-section.builder-corners-square .custom-image,
.custom-section.builder-corners-square .custom-content-card,
.custom-section.builder-corners-square .custom-quote-card,
.custom-section.builder-corners-square .custom-cta-card,
.custom-section.builder-corners-square .custom-notice-card,
.custom-section.builder-corners-square .custom-stat,
.custom-section.builder-corners-square .image-banner-card,
.custom-section.builder-corners-square>.container{border-radius:0!important}
.custom-section.builder-corners-soft .custom-text-shell,
.custom-section.builder-corners-soft .custom-text-image-grid,
.custom-section.builder-corners-soft .custom-image,
.custom-section.builder-corners-soft .custom-content-card,
.custom-section.builder-corners-soft .custom-quote-card,
.custom-section.builder-corners-soft .custom-cta-card,
.custom-section.builder-corners-soft .custom-notice-card,
.custom-section.builder-corners-soft .custom-stat,
.custom-section.builder-corners-soft .image-banner-card,
.custom-section.builder-corners-soft>.container{border-radius:20px!important}
.custom-section.builder-corners-round .custom-text-shell,
.custom-section.builder-corners-round .custom-text-image-grid,
.custom-section.builder-corners-round .custom-image,
.custom-section.builder-corners-round .custom-content-card,
.custom-section.builder-corners-round .custom-quote-card,
.custom-section.builder-corners-round .custom-cta-card,
.custom-section.builder-corners-round .custom-notice-card,
.custom-section.builder-corners-round .custom-stat,
.custom-section.builder-corners-round .image-banner-card,
.custom-section.builder-corners-round>.container{border-radius:38px!important}

/* Per-section shadow strength */
.custom-section.builder-shadow-none .custom-text-shell,
.custom-section.builder-shadow-none .custom-text-image-grid,
.custom-section.builder-shadow-none .custom-image,
.custom-section.builder-shadow-none .custom-content-card,
.custom-section.builder-shadow-none .custom-quote-card,
.custom-section.builder-shadow-none .custom-cta-card,
.custom-section.builder-shadow-none .custom-notice-card,
.custom-section.builder-shadow-none .custom-stat,
.custom-section.builder-shadow-none .image-banner-card{box-shadow:none!important;transform:none!important}
.custom-section.builder-shadow-soft .custom-text-shell,
.custom-section.builder-shadow-soft .custom-text-image-grid,
.custom-section.builder-shadow-soft .custom-image,
.custom-section.builder-shadow-soft .custom-content-card,
.custom-section.builder-shadow-soft .custom-quote-card,
.custom-section.builder-shadow-soft .custom-cta-card,
.custom-section.builder-shadow-soft .custom-notice-card,
.custom-section.builder-shadow-soft .custom-stat,
.custom-section.builder-shadow-soft .image-banner-card{box-shadow:0 16px 34px rgba(47,35,29,.12)}
.custom-section.builder-shadow-offset .custom-text-shell,
.custom-section.builder-shadow-offset .custom-text-image-grid,
.custom-section.builder-shadow-offset .custom-image,
.custom-section.builder-shadow-offset .custom-content-card,
.custom-section.builder-shadow-offset .custom-quote-card,
.custom-section.builder-shadow-offset .custom-cta-card,
.custom-section.builder-shadow-offset .custom-notice-card,
.custom-section.builder-shadow-offset .custom-stat,
.custom-section.builder-shadow-offset .image-banner-card{box-shadow:8px 9px 0 rgba(45,37,33,.13)}

/* Optional travel-inspired decoration, deliberately subtle */
.custom-section.builder-decor-stripe::before{content:"";position:absolute;z-index:0;left:0;right:0;top:0;height:12px;background:repeating-linear-gradient(135deg,rgba(244,173,56,.42) 0 9px,rgba(255,255,255,.18) 9px 18px)}
.custom-section.builder-decor-dots::before{content:"";position:absolute;z-index:0;inset:0;pointer-events:none;opacity:.18;background-image:radial-gradient(currentColor 1px,transparent 1px);background-size:18px 18px;mask-image:linear-gradient(90deg,#000,transparent 55%)}
.custom-section.builder-decor-stamp>.container::after{content:"HAMBURG · ST. PAULI";position:absolute;z-index:-1;right:1rem;top:-1.5rem;border:2px solid currentColor;border-radius:999px;padding:.55rem .85rem;font-size:.62rem;font-weight:900;letter-spacing:.12em;opacity:.11;transform:rotate(7deg);pointer-events:none}

/* Button variations */
.btn-text{display:inline-flex;align-items:center;gap:.45rem;padding:.35rem 0;border:0;background:transparent;color:var(--coral-dark);font-weight:900;text-decoration:none;border-radius:0;border-bottom:2px solid currentColor}
.custom-section.builder-button-text .btn{padding:.35rem 0!important;border:0!important;border-radius:0!important;background:transparent!important;color:var(--coral-dark)!important;box-shadow:none!important;border-bottom:2px solid currentColor!important}
.custom-section.builder-button-primary .btn{background:var(--coral)!important;color:#fff!important;border-color:var(--ink)!important}
.custom-section.builder-button-soft .btn{background:var(--paper)!important;color:var(--ink)!important}
.builder-bg-coral.custom-section.builder-button-primary .btn,.builder-bg-dark.custom-section.builder-button-primary .btn{background:#fff!important;color:var(--ink)!important}

/* Free text component */
.custom-text-shell{width:min(100%,900px)}
.custom-text.builder-align-center .custom-text-shell{margin-inline:auto}
.custom-text.builder-layout-prose-narrow .custom-text-shell{width:min(100%,760px)}
.custom-text.builder-layout-prose-wide .custom-text-shell{width:min(100%,1050px)}
.custom-text.builder-layout-two-columns .custom-text-shell{width:min(100%,1100px)}
.custom-text.builder-layout-two-columns .rich-copy{columns:2;column-gap:clamp(2rem,5vw,5rem);max-width:none}
.custom-text .btn{margin-top:1.4rem}

/* Text and image composition */
.custom-text-image.builder-split-text-wide .custom-text-image-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr)}
.custom-text-image.builder-split-image-wide .custom-text-image-grid{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr)}
.custom-text-image.builder-valign-top .custom-text-image-grid{align-items:start}
.custom-text-image.builder-layout-image-top .custom-text-image-grid{gap:2rem}
.custom-text-image.builder-layout-image-top .custom-copy{width:min(100%,850px)}
.custom-text-image.builder-align-center.builder-layout-image-top .custom-copy{margin-inline:auto}
.custom-image{min-height:0;aspect-ratio:4/3}
.custom-image img{display:block;min-height:0;height:100%;object-fit:cover}
.custom-section.builder-media-wide .custom-image{aspect-ratio:16/7}
.custom-section.builder-media-landscape .custom-image{aspect-ratio:4/3}
.custom-section.builder-media-square .custom-image{aspect-ratio:1}
.custom-section.builder-media-portrait .custom-image{aspect-ratio:4/5}
.custom-section.builder-media-natural .custom-image{aspect-ratio:auto;min-height:0}
.custom-section.builder-media-natural .custom-image img{height:auto;min-height:0}
.custom-section.builder-media-style-clean .custom-image{border:0;border-radius:0;box-shadow:none;transform:none}
.custom-section.builder-media-style-framed .custom-image{border:6px solid #fff;transform:none}
.custom-section.builder-media-style-postcard .custom-image{border:8px solid #fff;transform:rotate(-1.1deg)}

/* Cards */
.custom-cards.builder-layout-featured-first .custom-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.custom-cards.builder-layout-featured-first .custom-content-card:first-child{grid-column:span 2;grid-row:span 2}
.custom-cards.builder-layout-featured-first .custom-content-card:first-child img{height:100%;min-height:310px}
.custom-cards.builder-gap-compact .custom-card-grid,.custom-gallery-section.builder-gap-compact .custom-gallery-grid,.custom-stats.builder-gap-compact .custom-stats-grid{gap:.65rem}
.custom-cards.builder-gap-generous .custom-card-grid,.custom-gallery-section.builder-gap-generous .custom-gallery-grid,.custom-stats.builder-gap-generous .custom-stats-grid{gap:2rem}
.custom-content-card{height:100%;display:flex;flex-direction:column}
.custom-content-card-body{display:flex;flex-direction:column;flex:1;padding:1.25rem}
.custom-content-card .card-link{display:inline-flex;gap:.35rem;margin-top:auto;padding-top:1rem;color:var(--coral-dark);font-weight:900;text-decoration:none}
.custom-cards.builder-card-align-center .custom-content-card-body{text-align:center;align-items:center}
.custom-cards.builder-card-flat .custom-content-card{border:0;background:rgba(255,253,248,.68);box-shadow:none;transform:none}
.custom-cards.builder-card-outlined .custom-content-card{border:2px solid var(--ink);box-shadow:none;transform:none}
.custom-cards.builder-card-elevated .custom-content-card{border:0;box-shadow:0 16px 34px rgba(47,35,29,.14);transform:none}
.custom-cards.builder-card-postcard .custom-content-card:nth-child(odd){transform:rotate(-.55deg)}
.custom-cards.builder-card-postcard .custom-content-card:nth-child(even){transform:rotate(.55deg)}
.custom-cards.builder-card-overlay .custom-content-card.has-image{position:relative;min-height:360px;border:0;background:#222;color:#fff;overflow:hidden}
.custom-cards.builder-card-overlay .custom-content-card.has-image>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.custom-cards.builder-card-overlay .custom-content-card.has-image::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 20%,rgba(18,16,15,.86) 100%)}
.custom-cards.builder-card-overlay .custom-content-card.has-image .custom-content-card-body{position:relative;z-index:1;justify-content:flex-end;min-height:360px}
.custom-cards.builder-card-overlay .custom-content-card.has-image p,.custom-cards.builder-card-overlay .custom-content-card.has-image .card-link{color:rgba(255,255,255,.88)}
.custom-cards.builder-media-wide .custom-content-card>img{height:auto;aspect-ratio:16/7;object-fit:cover}
.custom-cards.builder-media-landscape .custom-content-card>img{height:auto;aspect-ratio:4/3;object-fit:cover}
.custom-cards.builder-media-square .custom-content-card>img{height:auto;aspect-ratio:1;object-fit:cover}
.custom-cards.builder-media-portrait .custom-content-card>img{height:auto;aspect-ratio:4/5;object-fit:cover}

/* Gallery variations */
.custom-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.15rem}
.custom-gallery-section.builder-layout-grid-2 .custom-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.custom-gallery-grid figure{margin:0;overflow:hidden;background:#eee;border-radius:20px}
.custom-gallery-grid img{display:block;width:100%;height:100%;aspect-ratio:4/3;object-fit:cover}
.custom-gallery-section.builder-media-wide .custom-gallery-grid img,.custom-gallery-section.builder-media-wide .custom-gallery-strip img{aspect-ratio:16/7;height:auto}
.custom-gallery-section.builder-media-landscape .custom-gallery-grid img,.custom-gallery-section.builder-media-landscape .custom-gallery-strip img{aspect-ratio:4/3;height:auto}
.custom-gallery-section.builder-media-square .custom-gallery-grid img,.custom-gallery-section.builder-media-square .custom-gallery-strip img{aspect-ratio:1;height:auto}
.custom-gallery-section.builder-media-portrait .custom-gallery-grid img,.custom-gallery-section.builder-media-portrait .custom-gallery-strip img{aspect-ratio:4/5;height:auto}
.custom-gallery-section.builder-media-natural .custom-gallery-grid img,.custom-gallery-section.builder-media-natural .custom-gallery-strip img{aspect-ratio:auto;height:auto}
.custom-gallery-section.builder-media-style-clean .custom-gallery-grid figure,.custom-gallery-section.builder-media-style-clean .custom-gallery-strip img{border:0;border-radius:0;box-shadow:none;transform:none}
.custom-gallery-section.builder-media-style-framed .custom-gallery-grid figure,.custom-gallery-section.builder-media-style-framed .custom-gallery-strip img{border:5px solid #fff;box-shadow:var(--shadow-soft)}
.custom-gallery-section.builder-media-style-postcard .custom-gallery-grid figure,.custom-gallery-section.builder-media-style-postcard .custom-gallery-strip img{border:7px solid #fff;box-shadow:6px 7px 0 rgba(45,37,33,.12)}
.custom-gallery-section.builder-media-style-postcard .custom-gallery-grid figure:nth-child(odd){transform:rotate(-.65deg)}
.custom-gallery-section.builder-media-style-postcard .custom-gallery-grid figure:nth-child(even){transform:rotate(.65deg)}

/* Quotes */
.custom-quote.builder-quote-minimal .custom-quote-card{background:transparent;border:0;box-shadow:none;padding-inline:0}
.custom-quote.builder-quote-accent .custom-quote-card{position:relative}
.custom-quote.builder-quote-accent .custom-quote-card::before{content:"“";position:absolute;left:.35em;top:-.3em;font-size:9rem;line-height:1;color:var(--sun);opacity:.7}
.custom-quote.builder-heading-small blockquote{font-size:clamp(1.7rem,3vw,3rem)}
.custom-quote.builder-heading-large blockquote{font-size:clamp(2.6rem,5vw,5.2rem)}

/* CTA and notice */
.custom-cta.builder-layout-banner .custom-cta-card{padding:1.25rem 1.5rem}
.custom-cta.builder-layout-banner .h2{font-size:clamp(1.6rem,2.6vw,2.6rem)}
.custom-notice.builder-layout-stacked .custom-notice-card{align-items:flex-start;flex-direction:column}
.custom-notice.builder-layout-stacked .custom-notice-card>div{width:100%}

/* Stats */
.custom-stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
.custom-stats.builder-layout-grid-2 .custom-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.custom-stats.builder-layout-grid-4 .custom-stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.custom-stat{padding:1.5rem;border:1.5px solid rgba(49,42,38,.18);border-radius:22px;background:rgba(255,253,248,.9)}
.custom-stat strong{display:block;font-size:clamp(2.3rem,4.2vw,4.4rem);line-height:1;color:var(--coral-dark);letter-spacing:-.04em}
.custom-stat h3{margin:.75rem 0 .35rem;font-size:1rem}.custom-stat p{margin:0;color:var(--ink-soft)}
.custom-stats.builder-stat-minimal .custom-stat{padding:1rem 0;background:transparent;border:0;border-radius:0;box-shadow:none}
.custom-stats.builder-stat-badges .custom-stats-grid{justify-items:center}
.custom-stats.builder-stat-badges .custom-stat{display:grid;place-items:center;text-align:center;aspect-ratio:1;border-radius:50%;width:min(100%,250px);padding:1.2rem;background:var(--sun-soft);border:2px solid var(--ink)}
.custom-stats.builder-stat-badges .custom-stat:nth-child(3n+2){background:#dcebe4}.custom-stats.builder-stat-badges .custom-stat:nth-child(3n){background:#f2d7d9}

/* Event */
.event-date{display:inline-flex;margin-bottom:1rem;padding:.55rem .8rem;border:1.5px solid currentColor;border-radius:999px;color:var(--coral-dark);font-size:.76rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}

/* Image banner */
.image-banner-card{position:relative;overflow:hidden;min-height:480px;border-radius:28px;background:#333;color:#fff}
.image-banner-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.image-banner-card::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,18,17,.78),rgba(20,18,17,.16) 70%)}
.image-banner-overlay{position:relative;z-index:1;display:flex;align-items:center;min-height:inherit;padding:clamp(2rem,6vw,5.5rem)}
.image-banner-overlay>div{width:min(100%,620px)}
.image-banner-overlay .lead{color:rgba(255,255,255,.88)}
.image-banner-overlay .eyebrow{color:#ffe6af}.image-banner-overlay .eyebrow::before{background:#ffe6af}
.image-banner-overlay .btn{margin-top:1.25rem}
.custom-image-banner.builder-layout-overlay-center .image-banner-overlay{justify-content:center;text-align:center}.custom-image-banner.builder-layout-overlay-center .image-banner-overlay .h2,.custom-image-banner.builder-layout-overlay-center .image-banner-overlay .lead{margin-inline:auto}
.custom-image-banner.builder-layout-overlay-right .image-banner-overlay{justify-content:flex-end}
.custom-image-banner.builder-overlay-light .image-banner-card::after{background:linear-gradient(90deg,rgba(255,250,240,.94),rgba(255,250,240,.55) 72%)}
.custom-image-banner.builder-overlay-light .image-banner-overlay{color:var(--ink)}.custom-image-banner.builder-overlay-light .image-banner-overlay .lead{color:var(--ink-soft)}.custom-image-banner.builder-overlay-light .image-banner-overlay .eyebrow{color:var(--coral-dark)}
.custom-image-banner.builder-overlay-minimal .image-banner-card::after{background:linear-gradient(90deg,rgba(20,18,17,.64),transparent 78%)}
.custom-image-banner.builder-banner-compact .image-banner-card{min-height:340px}.custom-image-banner.builder-banner-tall .image-banner-card{min-height:650px}

@media(max-width:860px){
  .custom-text.builder-layout-two-columns .rich-copy{columns:1}
  .custom-cards.builder-layout-featured-first .custom-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .custom-cards.builder-layout-featured-first .custom-content-card:first-child{grid-column:span 2;grid-row:auto}
  .custom-stats.builder-layout-grid-4 .custom-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .custom-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .image-banner-card,.custom-image-banner.builder-banner-tall .image-banner-card{min-height:500px}
}
@media(max-width:620px){
  .custom-section.builder-heading-large .h2{font-size:clamp(2.25rem,11vw,3.9rem)}
  .custom-text-image.builder-split-text-wide .custom-text-image-grid,.custom-text-image.builder-split-image-wide .custom-text-image-grid{grid-template-columns:1fr}
  .custom-cards.builder-layout-featured-first .custom-card-grid,.custom-gallery-grid,.custom-gallery-section.builder-layout-grid-2 .custom-gallery-grid,.custom-stats-grid,.custom-stats.builder-layout-grid-2 .custom-stats-grid,.custom-stats.builder-layout-grid-4 .custom-stats-grid{grid-template-columns:1fr}
  .custom-cards.builder-layout-featured-first .custom-content-card:first-child{grid-column:auto}
  .custom-stats.builder-stat-badges .custom-stat{width:min(82vw,260px)}
  .image-banner-card,.custom-image-banner.builder-banner-compact .image-banner-card,.custom-image-banner.builder-banner-tall .image-banner-card{min-height:440px}
  .image-banner-overlay{align-items:flex-end;padding:1.65rem}
  .custom-section.builder-decor-stamp>.container::after{right:.4rem;top:-1rem;font-size:.52rem}
}

/* v1.4.0 — dedicated, reference-accurate "Auf einen Blick" component */
.fact-showcase {
  position: relative;
  z-index: 2;
  padding: .45rem 0;
  background: var(--paper);
  color: #252321;
}
.fact-showcase-inner {
  position: relative;
  width: min(calc(100% - 1rem), 1340px);
  min-height: 380px;
  margin-inline: auto;
  overflow: hidden;
  border: 1px solid rgba(116, 96, 72, .09);
  border-radius: 18px;
  padding: 32px 28px 14px 44px;
  background:
    radial-gradient(circle at 17% 12%, rgba(255,255,255,.72), transparent 28%),
    linear-gradient(180deg, #fef8ef 0%, #fdf6eb 100%);
  box-shadow: 0 8px 24px rgba(74, 59, 43, .035);
}
.fact-showcase-intro {
  position: relative;
  z-index: 5;
  width: 270px;
}
.fact-showcase-intro .eyebrow {
  display: block;
  margin: 0 0 12px;
  color: #c83b40;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: .085em;
}
.fact-showcase-intro .eyebrow::before { display: none; }
.fact-showcase-intro h2 {
  position: relative;
  width: max-content;
  max-width: 330px;
  margin: 0 0 20px;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 52px;
  font-weight: 800;
  line-height: 1.02;
  letter-spacing: -.035em;
  white-space: pre-line;
  text-wrap: nowrap;
}
.fact-showcase-intro h2::after {
  content: "";
  display: block;
  width: 52px;
  height: 5px;
  margin-top: 9px;
  border-radius: 60% 40% 55% 45%;
  background: #d63b45;
  clip-path: polygon(0 30%, 13% 8%, 70% 0, 100% 28%, 92% 77%, 19% 100%, 0 70%);
  transform: rotate(-2.5deg);
}
.fact-showcase-intro > p:last-child {
  max-width: 272px;
  margin: 0;
  color: #5f5a55;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.62;
}
.fact-skyline {
  position: absolute;
  z-index: 1;
  top: 18px;
  right: 12px;
  left: 385px;
  height: 173px;
  background: url('/assets/images/hamburg-skyline-reference.png') right bottom / contain no-repeat;
  opacity: .72;
  pointer-events: none;
}
.fact-water {
  position: absolute;
  z-index: 0;
  inset: 184px 0 0;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(190,216,205,.035), rgba(190,216,205,.12)),
    repeating-linear-gradient(176deg, transparent 0 20px, rgba(145,186,174,.065) 21px 22px, transparent 23px 39px),
    repeating-linear-gradient(184deg, transparent 0 31px, rgba(145,186,174,.05) 32px 33px, transparent 34px 56px);
  pointer-events: none;
}
.fact-water::after {
  content: "";
  position: absolute;
  inset: 32px -3% 0;
  opacity: .24;
  background:
    repeating-linear-gradient(178deg, transparent 0 26px, rgba(144,184,173,.18) 27px 28px, transparent 29px 50px);
  transform: skewX(-8deg);
}
.fact-showcase .fact-list {
  position: absolute;
  z-index: 4;
  right: 28px;
  bottom: 17px;
  left: 255px;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
  padding: 0;
}
.fact-showcase .fact {
  position: relative;
  min-width: 0;
  height: 176px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  padding: 20px 10px 20px;
  border: 1px solid #e4ddd2;
  border-radius: 14px;
  background: rgba(255,253,248,.985);
  box-shadow: 0 4px 0 rgba(52,44,37,.055), 0 8px 18px rgba(73,58,43,.065);
  color: #201f1d;
  text-align: center;
  transform: none !important;
}
.fact-showcase .fact:nth-child(n) { background: rgba(255,253,248,.985); }
.fact-showcase .fact::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 20px;
  width: 18px;
  height: 2px;
  border-radius: 999px;
  background: #e14343;
  transform: translateX(-50%);
}
.fact-showcase .fact:nth-child(2)::after,
.fact-showcase .fact:nth-child(4)::after { background: #71a790; }
.fact-showcase .fact:nth-child(5)::after { background: #eeae27; }
.fact-showcase .fact-icon {
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  flex: 0 0 64px;
  border-radius: 50%;
  background: #ffe0a2;
}
.fact-showcase .fact:nth-child(2) .fact-icon,
.fact-showcase .fact:nth-child(4) .fact-icon { background: #e2ece2; }
.fact-showcase .fact:nth-child(3) .fact-icon,
.fact-showcase .fact:nth-child(6) .fact-icon { background: #fae0d1; }
.fact-showcase .fact-icon svg {
  width: 38px;
  height: 38px;
  fill: none;
  stroke: #171816;
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.fact-showcase .fact span {
  display: block;
  width: 100%;
  max-width: none;
  margin: 0 auto;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 14px;
  font-weight: 750;
  line-height: 1.27;
  text-wrap: wrap;
  hyphens: none;
}

/* Variants B and C intentionally remain unavailable until their dedicated renderers are complete. */
.fact-showcase--route,
.fact-showcase--postcards { }

@media (max-width: 1199px) {
  .fact-showcase-inner {
    min-height: 650px;
    padding: 32px 28px 20px;
  }
  .fact-showcase-intro { width: 330px; }
  .fact-showcase-intro h2 { max-width: 330px; }
  .fact-skyline { left: 330px; right: 18px; }
  .fact-showcase .fact-list {
    right: 28px;
    bottom: 20px;
    left: 28px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
  }
  .fact-showcase .fact { height: 172px; }
  .fact-water { inset: 184px 0 0; }
}

@media (max-width: 899px) {
  .fact-showcase { padding: .35rem 0; }
  .fact-showcase-inner {
    min-height: 0;
    padding: 30px 22px 22px;
  }
  .fact-showcase-intro { width: auto; max-width: 560px; }
  .fact-showcase-intro h2 {
    max-width: none;
    font-size: clamp(40px, 7vw, 50px);
    text-wrap: balance;
  }
  .fact-showcase-intro > p:last-child { max-width: 440px; }
  .fact-skyline {
    position: relative;
    top: auto;
    right: auto;
    left: auto;
    width: 100%;
    height: 166px;
    margin-top: -8px;
    background-position: center bottom;
  }
  .fact-water { inset: 290px 0 0; }
  .fact-showcase .fact-list {
    position: relative;
    inset: auto;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: -2px;
  }
  .fact-showcase .fact { height: 164px; }
}

@media (max-width: 599px) {
  .fact-showcase-inner {
    width: min(calc(100% - .75rem), 1340px);
    border-radius: 16px;
    padding: 26px 16px 18px;
  }
  .fact-showcase-intro .eyebrow { font-size: 12px; }
  .fact-showcase-intro h2 {
    width: auto;
    font-size: clamp(36px, 11vw, 46px);
    white-space: normal;
  }
  .fact-showcase-intro > p:last-child { font-size: 15px; }
  .fact-skyline { height: 132px; margin-top: 2px; opacity: .72; }
  .fact-water { inset: 260px 0 0; }
  .fact-showcase .fact-list { gap: 10px; }
  .fact-showcase .fact {
    height: 158px;
    gap: 9px;
    padding: 16px 8px 18px;
  }
  .fact-showcase .fact-icon { width: 56px; height: 56px; flex-basis: 56px; }
  .fact-showcase .fact-icon svg { width: 33px; height: 33px; }
  .fact-showcase .fact span { font-size: 13px; }
  .fact-showcase .fact::after { bottom: 15px; }
}

@media (max-width: 419px) {
  .fact-showcase .fact-list { grid-template-columns: 1fr; }
  .fact-showcase .fact {
    height: auto;
    min-height: 94px;
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    padding: 14px 38px 14px 14px;
    text-align: left;
  }
  .fact-showcase .fact span { max-width: none; margin: 0; text-align: left; }
  .fact-showcase .fact span br { display:none; }
  .fact-showcase .fact::after { left: auto; right: 15px; bottom: 50%; transform: translateY(50%) rotate(90deg); }
}

@media (max-width: 410px) {
  .nav-wrap { gap: .52rem; }
  .brand-skyline-lockup { flex-basis: 190px; min-width: 170px; gap: .36rem; }
  .brand-mark { flex-basis: 2.05rem; width: 2.05rem; height: 2.05rem; }
  .brand-mark img { width: 1.72rem; height: 1.72rem; }
  .brand-wordmark { width: 114px; }
  .brand-lower { width: 154px; gap: .21rem; }
  .brand-tagline { font-size: .295rem; letter-spacing: .1em; }
  .brand-skyline img { height: auto; max-height: 14px; }
  .lang-switch a { min-width: 2rem; padding-inline: .38rem; }
  .menu-toggle { width: 2.55rem; height: 2.55rem; }
}

/* Server-side contact and group forms (v1.6) */
.server-form { position: relative; }
.server-form [hidden] { display: none !important; }
.form-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; opacity: 0 !important; pointer-events: none !important; }
.form-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.form-heading .h3 { margin: 0; }
.form-heading p { margin: 0; color: var(--ink-soft); font-size: .76rem; font-weight: 700; }
.form-grid label > span { display: block; }
.form-grid input,
.form-grid textarea,
.form-grid select { min-height: 48px; font: inherit; }
.form-grid textarea { resize: vertical; min-height: 128px; }
.form-grid [aria-invalid="true"] { border-color: #a62532; box-shadow: 0 0 0 3px rgba(166,37,50,.13); }
.field-error { min-height: 1rem; display: block; color: #962432; font-size: .74rem; font-weight: 760; line-height: 1.25; }
.form-privacy { max-width: 62ch; margin: 1rem 0 0; color: var(--ink-soft); font-size: .78rem; line-height: 1.5; }
.form-privacy a { color: inherit; font-weight: 820; text-decoration-thickness: 1px; text-underline-offset: .18em; }
.form-turnstile { margin: 1rem 0 .35rem; }
.form-submit { min-width: 13.5rem; justify-content: center; }
.form-submit:disabled { cursor: wait; opacity: .72; transform: none; }
.form-status.is-error { color: #962432; }
.form-status.is-success { color: var(--teal); }
.form-result { min-height: 290px; display: grid; align-content: center; justify-items: start; gap: .7rem; padding: clamp(.5rem, 2vw, 1.25rem); }
.form-result-icon { width: 3.25rem; height: 3.25rem; display: grid; place-items: center; border-radius: 50%; background: #dcebe4; color: #1e6458; font-size: 1.45rem; font-weight: 900; }
.form-result .h3 { margin: .3rem 0 0; }
.form-result p { margin: 0; color: var(--ink-soft); }
.form-reference { padding: .45rem .7rem; border-radius: 999px; background: rgba(40,36,33,.07); font-size: .78rem; font-weight: 800; letter-spacing: .02em; }
.server-form.is-submitting::after { content: ''; position: absolute; inset: 0; border-radius: inherit; background: rgba(255,255,255,.18); pointer-events: none; }

.contact-grid { align-items: stretch; }
.contact-card:nth-child(2) { transform: none; }
.contact-info { position: relative; min-height: 100%; overflow: hidden; isolation: isolate; }
.contact-info-intro { position: relative; z-index: 2; }
.contact-info-intro > p:last-child { max-width: 52ch; }
.contact-info-layout { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,.78fr) minmax(250px,1.22fr); gap: clamp(1rem,2vw,1.55rem); align-items: end; flex: 1; min-height: 0; margin-top: 1.45rem; }
.contact-info-layout.no-photo { grid-template-columns: minmax(0,1fr); }
.contact-info-block { display: grid; align-self: end; gap: 1.05rem; margin-top: 0; }
.contact-info-block > div { display: grid; gap: .28rem; }
.contact-info-block p { margin: .08rem 0 0; line-height: 1.48; }
.contact-label { color: rgba(255,255,255,.72); font-size: .72rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.contact-info-block strong { display: block; color: #fff; font-size: 1.03rem; line-height: 1.45; }
.contact-info .contact-actions { display: grid; align-items: stretch; gap: .62rem; }
.contact-info .contact-actions .btn { width: 100%; min-width: 0; padding-inline: .9rem; }
.contact-info .contact-actions > span { color: #fff; font-size: .91rem; font-weight: 820; line-height: 1.35; overflow-wrap: anywhere; }
.contact-phone-icon { width: 1.15rem; height: 1.15rem; flex: 0 0 auto; fill: currentColor; }
.contact-hostel-photo { position: relative; isolation: isolate; align-self: stretch; min-height: clamp(355px,36vw,525px); margin: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.16); border-radius: clamp(48px,5vw,78px) 30px 36px 30px; background: #b82f3e; box-shadow: 0 14px 28px rgba(91,18,29,.16); }
.contact-hostel-photo img { position: relative; z-index: 0; width: 100%; height: 100%; object-fit: cover; object-position: center center; }
.contact-hostel-photo::after { content: ""; position: absolute; z-index: 1; inset: 0; pointer-events: none; background: linear-gradient(180deg,rgba(203,57,71,.08) 0%,rgba(203,57,71,.11) 56%,rgba(159,35,48,.14) 100%); }
.contact-form { min-height: 100%; justify-content: flex-start; background: var(--paper); }
.contact-form#message { scroll-margin-top: 6rem; }
.contact-form-grid { grid-template-columns: 1fr 1fr; }
.contact-form .form-submit { margin-top: 1.1rem; }

.builder-bg-dark .form-heading p,
.builder-bg-dark .form-privacy,
.builder-bg-coral .form-heading p,
.builder-bg-coral .form-privacy { color: rgba(255,255,255,.8); }
.builder-bg-dark .field-error,
.builder-bg-coral .field-error { color: #ffe0e3; }

@media (max-width: 980px) {
  .contact-info-layout { grid-template-columns: 1fr; align-items: stretch; }
  .contact-hostel-photo { min-height: 290px; max-height: 390px; order: -1; border-radius: 44px 24px 30px 24px; }
  .contact-hostel-photo img { object-position: center 46%; }
}

@media (max-width: 760px) {
  .contact-info-layout { margin-top: 1.2rem; }
  .contact-hostel-photo { min-height: 320px; max-height: none; aspect-ratio: 4 / 5; }
  .contact-info .contact-actions .btn { min-height: 3.2rem; }
  .form-heading { display: grid; gap: .35rem; }
  .contact-form-grid { grid-template-columns: 1fr; }
  .form-submit { width: 100%; }
  .form-result { min-height: 240px; }
}

@media (max-width: 420px) {
  .contact-hostel-photo { min-height: 285px; border-radius: 34px 20px 26px 20px; }
}

/* v1.6.1: production form feedback and mobile form usability */
.form-error-summary{margin:.85rem 0 1rem;padding:.8rem .95rem;border:1px solid rgba(150,36,50,.28);border-left:4px solid #962432;border-radius:10px;background:#fff4f4;color:#7c202c;font-size:.86rem;font-weight:780;line-height:1.45}
.form-error-summary:focus{outline:3px solid rgba(150,36,50,.2);outline-offset:2px}
.server-form input[aria-invalid="true"],.server-form textarea[aria-invalid="true"],.server-form select[aria-invalid="true"]{border-color:#a42d3a!important;box-shadow:0 0 0 3px rgba(164,45,58,.11)!important;background:#fffafa}
.form-submit{position:relative;overflow:hidden}
.form-submit-spinner{display:none;width:1rem;height:1rem;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:form-spin .7s linear infinite}
.server-form.is-submitting .form-submit-spinner{display:inline-block}
.server-form.is-submitting .form-submit-arrow{display:none}
@keyframes form-spin{to{transform:rotate(360deg)}}
.form-booking-note{display:flex;align-items:flex-start;gap:.55rem;margin:.9rem 0 0;padding:.72rem .8rem;border-radius:11px;background:rgba(230,166,43,.12);color:#6d5220;font-size:.8rem;line-height:1.45}
.form-booking-note>span{flex:0 0 auto;width:1.25rem;height:1.25rem;display:grid;place-items:center;border-radius:50%;background:#e5a42d;color:#fff;font-size:.72rem;font-weight:900;margin-top:.05rem}
.form-result-note{margin-top:.3rem!important;padding:.7rem .8rem;border-radius:10px;background:rgba(230,166,43,.12);color:#6d5220!important;font-size:.82rem;line-height:1.45}
.form-status[tabindex="-1"]:focus{outline:2px solid rgba(150,36,50,.2);outline-offset:3px;border-radius:5px}
.builder-bg-dark .form-error-summary,.builder-bg-coral .form-error-summary{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.35);color:#fff}
.builder-bg-dark .form-booking-note,.builder-bg-coral .form-booking-note{background:rgba(255,255,255,.14);color:#fff}
@media(max-width:760px){
  .server-form input,.server-form textarea,.server-form select{font-size:16px}
  .server-form.group-form,.server-form.contact-form{padding:1.15rem}
  .server-form .form-heading{margin-bottom:.8rem}
  .server-form .form-grid{gap:.75rem}
  .server-form .form-grid label{gap:.24rem}
  .server-form .form-grid input,.server-form .form-grid select{min-height:48px;padding:.57rem .8rem}
  .server-form .form-grid textarea{height:112px;min-height:112px;padding:.65rem .8rem}
  .server-form .field-error:empty,.server-form .form-status:empty{display:none}
  .server-form .form-privacy{margin-top:.8rem}
  .server-form .form-submit,.server-form.group-form .btn{margin-top:.8rem}
  .form-error-summary{font-size:.82rem}
  .form-submit{min-height:48px}
}
@media(min-width:375px) and (max-width:760px){
  .server-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .server-form .form-grid > label:not(.mobile-half){grid-column:1 / -1}
  .server-form .form-grid > .mobile-half{min-width:0}
  .server-form .form-grid input[type="date"]{min-width:0;padding-inline:.5rem}
}
@media(prefers-reduced-motion:reduce){.room-image-enter,.gallery-image-enter,.form-submit-spinner{animation:none}.mobile-booking-bar,.gallery-overview-tile img{transition:none}}

/* v1.6.1: local privacy supplement */
.legal-page{background:var(--paper)}
.legal-main{padding:clamp(3.5rem,7vw,6.5rem) 0 clamp(5rem,9vw,8rem)}
.legal-shell{width:min(100%,900px);margin-inline:auto}
.legal-back{display:inline-flex;align-items:center;gap:.45rem;margin-bottom:2rem;color:var(--coral-dark);font-weight:850;text-decoration:none}
.legal-title{font-size:clamp(2.5rem,6vw,4.9rem);line-height:1.02;letter-spacing:-.045em;margin:.35rem 0 1rem}
.legal-lead{font-size:clamp(1.05rem,2vw,1.3rem);line-height:1.65;color:var(--ink-soft);max-width:68ch}
.legal-note{margin:2rem 0;padding:1rem 1.15rem;border-radius:14px;background:#fff7e4;border:1px solid #ead7a7;color:#6e5724;line-height:1.55}
.legal-content{margin-top:2.5rem;display:grid;gap:1.9rem}
.legal-content section{padding-top:1.8rem;border-top:1px solid rgba(48,40,35,.14)}
.legal-content h2{font-size:clamp(1.35rem,3vw,1.8rem);margin:0 0 .7rem}
.legal-content p,.legal-content li{color:var(--ink-soft);line-height:1.7}
.legal-content ul{padding-left:1.25rem}
.legal-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin-top:1rem}
.legal-meta>div{padding:1rem;border-radius:13px;background:#fff;border:1px solid rgba(48,40,35,.1)}
.legal-meta span{display:block;font-size:.73rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin-bottom:.3rem}
@media(max-width:650px){.legal-meta{grid-template-columns:1fr}.legal-main{padding-top:2.5rem}}

/* v1.6.4: local legal notice, privacy policy and terms */
.legal-nav{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 2.1rem;padding:.38rem;border:1px solid rgba(48,40,35,.12);border-radius:999px;background:rgba(255,255,255,.62);width:max-content;max-width:100%}
.legal-nav a{display:inline-flex;align-items:center;justify-content:center;min-height:2.45rem;padding:.55rem .9rem;border-radius:999px;color:var(--ink-soft);font-size:.82rem;font-weight:850;text-decoration:none}
.legal-nav a[aria-current="page"]{background:var(--coral);color:#fff}
.legal-updated{margin:.85rem 0 0;color:var(--ink-soft);font-size:.84rem;font-weight:750}
.legal-content address{font-style:normal}
.legal-content a{color:var(--coral-dark);font-weight:780;text-underline-offset:.18em;overflow-wrap:anywhere}
.legal-content h2{scroll-margin-top:7rem}
.legal-content ul{display:grid;gap:.45rem}
.legal-contact-card{margin-top:1rem;padding:1.1rem 1.2rem;border:1px solid rgba(48,40,35,.12);border-radius:14px;background:#fff;line-height:1.65;color:var(--ink-soft)}
.legal-contact-card strong{color:var(--ink)}
.legal-checklist{margin-top:.4rem;padding:1.45rem!important;border:1px solid #ead7a7!important;border-radius:15px;background:#fff9ea}
.legal-checklist h2{color:#6e5724}
.legal-checklist p,.legal-checklist li{color:#6e5724}
.legal-small{font-size:.82rem}
.legal-footer{padding-top:1rem}
.legal-footer-links{gap:1rem;flex-wrap:wrap}
.legal-footer-links a{color:inherit;font-weight:750;text-underline-offset:.17em}
@media(max-width:650px){.legal-nav{width:100%;border-radius:16px}.legal-nav a{flex:1 1 auto}.legal-footer-links{align-items:flex-start}}

/* ============================================================
   v1.9 hero — St. Pauli collage
   The large visual assets are derived from the approved design
   reference. Copy remains real HTML/editor content.
   ============================================================ */
.hero-v19 {
  position: relative;
  overflow: clip;
  background:linear-gradient(135deg,#fbefd9 0%,#f8ead2 58%,#f9ecd6 100%);
  border-bottom: 1px solid rgba(67,44,25,.08);
}
.hero-v19::after {
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:30px;
  z-index:8;
  background:linear-gradient(176deg,transparent 0 38%,#fffaf0 40% 100%);
  pointer-events:none;
}
.hero-v19-stage {
  position:relative;
  min-height:clamp(690px,56vw,820px);
  padding-top:clamp(1.2rem,2vw,2rem);
  padding-bottom:clamp(6.8rem,8.5vw,8.4rem);
}
.hero-v19-copy {
  position:relative;
  z-index:6;
  width:min(42%,34rem);
  padding-top:clamp(8.4rem,12vw,10.8rem);
}
.hero-v19-title {
  margin:0;
  max-width:8.3ch;
  white-space:pre-line;
  color:#171615;
  font-family:Impact,"Arial Black","Arial Narrow Bold",sans-serif;
  font-size:clamp(3.8rem,5.9vw,5.35rem);
  font-weight:900;
  line-height:.86;
  letter-spacing:-.045em;
  text-transform:none;
  text-wrap:balance;
  filter:contrast(1.02);
}
.hero-v19-stamp {
  display:inline-flex;
  max-width:100%;
  margin-top:1.15rem;
  padding:.34rem .72rem .28rem;
  border:3px solid rgba(203,57,71,.82);
  border-radius:4px 8px 4px 6px;
  color:var(--coral);
  background:rgba(255,247,232,.58);
  box-shadow:inset 0 0 0 1px rgba(203,57,71,.18);
  transform:rotate(-1deg);
  font-family:Impact,"Arial Black",sans-serif;
  font-size:clamp(1.24rem,2vw,1.9rem);
  line-height:1;
  letter-spacing:.025em;
}
.hero-v19-stamp span { display:block; transform:rotate(.4deg); }
.hero-v19-lead {
  max-width:32ch;
  margin:1.35rem 0 0;
  color:#37312d;
  font-size:clamp(1rem,1.25vw,1.1rem);
  font-weight:650;
  line-height:1.38;
}
.hero-v19-actions {
  display:flex;
  flex-wrap:wrap;
  gap:.72rem;
  margin-top:1.3rem;
}
.hero-v19-btn {
  display:inline-flex;
  min-height:3.55rem;
  align-items:center;
  gap:.58rem;
  padding:.78rem .8rem .78rem 1rem;
  border:2px solid #292522;
  border-radius:15px;
  color:#1d1a18;
  background:#fffaf0;
  box-shadow:0 7px 16px rgba(67,44,25,.10);
  text-decoration:none;
  font-weight:900;
  line-height:1;
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
}
.hero-v19-btn-primary {
  min-width:14.8rem;
  border-color:var(--coral);
  color:#fff;
  background:linear-gradient(135deg,#d94654,#bd303f);
}
.hero-v19-btn-secondary { min-width:12rem; }
.hero-v19-btn-arrow {
  display:grid;
  width:2rem;
  height:2rem;
  margin-left:auto;
  place-items:center;
  border-radius:999px;
  border:1px solid currentColor;
  background:rgba(255,255,255,.24);
  font-size:1.15rem;
}
.hero-v19-btn-secondary .hero-v19-btn-arrow { background:#fffdf8; }
.hero-v19-spark { color:#fff; font-size:1.05rem; }
.hero-v19-btn:hover,.hero-v19-btn:focus-visible {
  transform:translateY(-2px);
  box-shadow:0 12px 24px rgba(67,44,25,.14);
}
.hero-v19-btn:focus-visible { outline:3px solid rgba(40,36,33,.25); outline-offset:3px; }


.hero-v19-art {
  position:absolute;
  z-index:3;
  top:.35rem;
  right:-4.6rem;
  width:min(72%,56rem);
  aspect-ratio:858/820;
  pointer-events:none;
}
.hero-v19-building {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}

.hero-v19-decor { position:absolute; z-index:4; pointer-events:none; }
.hero-v19-welcome-stickers { top:2.1rem; left:-.45rem; width:min(21vw,17rem); }
.hero-v19-clouds { top:2rem; left:20.5%; width:min(27vw,21.5rem); opacity:.88; }
.hero-v19-birds { top:49%; left:34.5%; width:min(10vw,8.5rem); }
.hero-v19-skyline { display:none !important; }



.hero-v19.builder-layout-image-left .hero-v19-copy { margin-left:auto; }
.hero-v19.builder-layout-image-left .hero-v19-art { right:auto; left:-5.2rem; transform:scaleX(-1); }
.hero-v19.builder-layout-image-left .hero-v19-art > * { transform:scaleX(-1); }
.hero-v19.builder-layout-centered .hero-v19-copy { width:min(100%,43rem); margin-inline:auto; padding-top:8rem; text-align:center; }
.hero-v19.builder-layout-centered .hero-v19-title { max-width:100%; }
.hero-v19.builder-layout-centered .hero-v19-lead { margin-inline:auto; }
.hero-v19.builder-layout-centered .hero-v19-actions { justify-content:center; }
.hero-v19.builder-layout-centered .hero-v19-art { opacity:.27; right:50%; translate:50% 0; width:min(78%,55rem); }

@media (prefers-reduced-motion:no-preference) {
  body:not(.design-no-motion) .hero-v19-copy.visible { animation:v19-copy-in .72s cubic-bezier(.18,.74,.22,1) both; }
  body:not(.design-no-motion) .hero-v19-art.visible { animation:v19-art-in .88s .08s cubic-bezier(.18,.74,.22,1) both; }

}
@keyframes v19-copy-in { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
@keyframes v19-art-in { from { opacity:0; transform:translateX(34px) scale(.975); } to { opacity:1; transform:none; } }


.editor-preview .hero-v19-copy.visible,
.editor-preview .hero-v19-art.visible { animation:none !important; opacity:1 !important; transform:none; translate:none; scale:1; rotate:0deg; }

@media (max-width:1180px) {
  .hero-v19-stage { min-height:680px; }
  .hero-v19-copy { width:44%; padding-top:8.8rem; }
  .hero-v19-art { width:min(71%,49rem); right:-7rem; }
  .hero-v19-title { font-size:clamp(3.7rem,7vw,5.3rem); }
  .hero-v19-welcome-stickers { width:14.5rem; }
  .hero-v19-clouds { left:18%; width:19rem; }

}

@media (max-width:860px) {
  .hero-v19 { overflow:hidden; }
  .hero-v19-stage {
    display:grid;
    grid-template-columns:1fr;
    min-height:0;
    padding-top:1.1rem;
    padding-bottom:2.4rem;
  }
  .hero-v19-copy {
    width:100%;
    padding-top:5.4rem;
    z-index:7;
  }
  .hero-v19-welcome-stickers { top:.1rem; left:0; width:min(48vw,14rem); }
  .hero-v19-title { max-width:7.7ch; font-size:clamp(3.1rem,11vw,5rem); line-height:.88; }
  .hero-v19-stamp { margin-top:.9rem; font-size:clamp(1.05rem,4.2vw,1.45rem); }
  .hero-v19-lead { max-width:29ch; margin-top:1rem; font-size:1rem; }
  .hero-v19-actions { display:grid; grid-template-columns:1fr; width:min(100%,24rem); }
  .hero-v19-btn { width:100%; min-width:0; }
  .hero-v19-art {
    position:relative;
    top:auto;
    right:auto;
    grid-row:2;
    width:min(112%,40rem);
    margin:-1.2rem -6% 0 auto;
  }
  .hero-v19-clouds { top:1.2rem; left:38%; width:13rem; opacity:.7; }
  .hero-v19-birds { top:42%; left:auto; right:5%; width:5rem; }

  .hero-v19.builder-layout-image-left .hero-v19-copy { margin-left:0; }
  .hero-v19.builder-layout-image-left .hero-v19-art { left:auto; transform:none; }
  .hero-v19.builder-layout-image-left .hero-v19-art > * { transform:none; }
  .hero-v19.builder-layout-centered .hero-v19-copy { padding-top:5.4rem; }
  .hero-v19.builder-layout-centered .hero-v19-art { opacity:1; right:auto; translate:none; width:min(118%,42rem); }
}

@media (max-width:520px) {
  .hero-v19-stage { width:min(calc(100% - 1.5rem),var(--max)); padding-bottom:2.4rem; }
  .hero-v19-copy { padding-top:4.65rem; }
  .hero-v19-welcome-stickers { width:11rem; }
  .hero-v19-clouds { width:9.5rem; left:45%; top:.8rem; }
  .hero-v19-title { font-size:clamp(2.8rem,14vw,4rem); }
  .hero-v19-stamp { border-width:2px; padding:.28rem .55rem .22rem; }
  .hero-v19-art { width:122%; margin:-.2rem -12% 0 auto; }


}




/* v1.10.0: editor-compatible route-poster hero based on the supplied reference artwork. */
.hero-route {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 13% 38%, rgba(234,210,174,.20) 0 18%, transparent 18.4%),
    radial-gradient(circle at 72% 48%, rgba(191,145,111,.15) 0 1px, transparent 1.4px) 0 0 / 13px 13px,
    linear-gradient(180deg,#fff9ed 0%,#fff5e3 100%);
}
.hero-route-stage {
  position: relative;
  z-index: 1;
  overflow: visible;
  min-height: 800px;
  padding-top: 1.9rem;
  padding-bottom: 1.5rem;
}
.hero-route-stage::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:1.35rem;
  background:linear-gradient(to bottom, rgba(255,247,234,0) 0%, #fff8ec 82%, #fff8ec 100%);
  z-index:6;
  pointer-events:none;
}
.hero-route-copy {
  position: relative;
  z-index: 6;
  width: min(42%,34rem);
  padding-top: 4.7rem;
}
.hero-route-brand { width:min(100%,21.5rem); margin-bottom:3.05rem; }
.hero-route-brand img { width:100%; height:auto; }
.hero-route-title {
  margin:0;
  max-width:8ch;
  color:#171615;
  font-family:Impact,"Arial Black","Arial Narrow Bold",sans-serif;
  font-size:clamp(4rem,6.2vw,5.8rem);
  font-weight:900;
  line-height:.87;
  letter-spacing:-.045em;
  text-transform:uppercase;
  text-wrap:balance;
}
.hero-route-stamp {
  margin-top:1.25rem;
  max-width:15ch;
  color:var(--coral);
  font-family:Impact,"Arial Black","Arial Narrow Bold",sans-serif;
  font-size:clamp(1.65rem,2.6vw,2.25rem);
  line-height:.95;
  letter-spacing:-.025em;
}
.hero-route-lead { display:flex; align-items:center; gap:.55rem; margin:1.2rem 0 0; color:#3f3935; font-weight:700; }
.hero-route-lead > span { color:var(--coral); font-size:.9rem; }
.hero-route-actions { display:flex; flex-wrap:nowrap; gap:1rem; width:min(32rem,100%); margin-top:3rem; }
.hero-route-btn {
  display:inline-flex; align-items:center; justify-content:space-between; gap:1rem;
  flex:1 1 0; min-width:0; min-height:5rem; padding:.9rem 1rem .9rem 1.45rem;
  border:2px solid rgba(40,36,33,.24); border-radius:1.05rem;
  background:#fffdf8; color:var(--ink); text-decoration:none; font-size:1.02rem; font-weight:900; line-height:1.15;
  box-shadow:0 11px 20px rgba(64,44,28,.10);
  transition:transform .18s ease,box-shadow .18s ease;
}
.hero-route-btn-primary { background:linear-gradient(135deg,#d8434f,#ca3443); border-color:transparent; color:#fff; }
.hero-route-btn:hover,.hero-route-btn:focus-visible { transform:translateY(-2px); box-shadow:0 16px 25px rgba(64,44,28,.14); }
.hero-route-btn:focus-visible { outline:3px solid rgba(40,36,33,.22); outline-offset:3px; }
.hero-route-btn-arrow { display:grid; place-items:center; width:2.45rem; height:2.45rem; flex:0 0 2.45rem; border-radius:50%; background:rgba(255,255,255,.46); font-size:1.7rem; line-height:1; }
.hero-route-btn-secondary .hero-route-btn-arrow { border:1px solid rgba(40,36,33,.28); background:#fff; }
.hero-route-journey { position:absolute; z-index:4; left:-2.5rem; right:31%; top:13.35rem; height:30rem; pointer-events:none; }
.hero-route-path-svg { position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.hero-route-path-base,.hero-route-path-trace { fill:none; stroke:var(--coral); stroke-width:7; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:12 15; }
.hero-route-arrow-marker-head { fill:var(--coral); stroke:none; }
.hero-route-path-base { opacity:.92; }
.hero-route-path-trace { opacity:.98; clip-path:inset(0 100% 0 0); }
.hero-route-has-path-animation .hero-route-path-base { opacity:0; }
.hero-route-has-path-animation .hero-route-path-trace { clip-path:inset(0 100% 0 0); } 
.hero-route-sticker { position:absolute; display:block; }
.hero-route-sticker img { display:block; width:100%; height:auto; }

.hero-route-sticker-bed { left:7%; top:68%; width:7.2rem; }
.hero-route-sticker-food { left:31%; top:61%; width:7rem; }
.hero-route-sticker-traveller { left:47%; top:46%; width:6.8rem; }
.hero-route-sticker-anchor { left:59%; top:27%; width:7.1rem; }
.hero-route-sticker-skull { left:72%; top:8%; width:7.1rem; }
.hero-route-sticker { opacity:1; transform-origin:center; }
.hero-route-has-icon-hover .hero-route-sticker { pointer-events:auto; transition:transform .18s ease,filter .18s ease; }
.hero-route-has-icon-hover .hero-route-sticker:hover { transform:translateY(-4px) rotate(-2deg) scale(1.035); filter:drop-shadow(0 12px 14px rgba(40,36,33,.12)); }
.hero-route-art { position:absolute; z-index:3; right:-1rem; bottom:1rem; width:min(42%,34rem); pointer-events:none; }
.hero-route-art img { width:100%; height:auto; }
.hero-route-benefits-wrap { position:relative; z-index:7; margin-top:0; background:#fffdf9; border-top:1px solid rgba(40,36,33,.06); }
.hero-route-benefits-wrap::before { content:""; position:absolute; left:0; right:0; top:-14px; height:14px; background:linear-gradient(to bottom, rgba(255,253,249,0) 0%, rgba(255,253,249,.98) 100%); }
.hero-route-benefits { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.05rem; padding:1.55rem 0 1.8rem; }
.hero-route-benefit { display:flex; align-items:flex-start; gap:1rem; min-width:0; padding:.2rem 0; }
.hero-route-benefit + .hero-route-benefit { border-left:1px solid rgba(40,36,33,.10); padding-left:1.15rem; }
.hero-route-benefit-icon { width:4rem; height:4rem; flex:0 0 4rem; display:grid; place-items:center; border-radius:999px; background:rgba(203,57,71,.05); box-shadow:inset 0 0 0 1px rgba(203,57,71,.08); }
.hero-route-benefit-icon img { width:auto; height:auto; max-width:3.1rem; max-height:3.1rem; object-fit:contain; image-rendering:auto; }
.hero-route-benefit-copy { min-width:0; display:grid; gap:.12rem; }
.hero-route-benefit-copy strong { font-size:1.04rem; line-height:1.14; }
.hero-route-benefit-copy span { color:#514a45; font-size:.97rem; line-height:1.32; }
@media (max-width:1180px) {
  .hero-route-stage { min-height:750px; }
  .hero-route-copy { width:min(45%,31rem); padding-top:4.25rem; }
  .hero-route-title { font-size:clamp(3.6rem,6.8vw,5rem); }
  .hero-route-journey { right:25%; top:13.2rem; height:28rem; }
  .hero-route-art { width:min(42%,32rem); right:-1rem; }
  .hero-route-benefits { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:1rem; }
  .hero-route-benefit:nth-child(3) { border-left:0; padding-left:0; }
}
@media (max-width:820px) {
  .hero-route-stage { min-height:0; padding-top:1rem; padding-bottom:0; }
  .hero-route-copy { width:min(100%,35rem); padding-top:3.8rem; }
  .hero-route-brand { width:17rem; margin-bottom:2rem; }
  .hero-route-title { font-size:clamp(3rem,12vw,4.8rem); max-width:7.5ch; }
  .hero-route-actions { display:grid; grid-template-columns:1fr; width:min(100%,26rem); margin-top:2.2rem; }
  .hero-route-btn { width:100%; min-width:0; min-height:4.5rem; }
  .hero-route-journey { position:relative; inset:auto; height:18rem; margin:1rem -1rem 0; }
  .hero-route-art { position:relative; right:auto; bottom:auto; width:min(100%,30rem); margin:-.2rem -2rem 0 auto; }
  .hero-route-benefits-wrap { margin-top:0; }
  .hero-route-benefits { grid-template-columns:1fr; gap:.2rem; }
  .hero-route-benefit + .hero-route-benefit { border-left:0; padding-left:0; border-top:1px solid rgba(40,36,33,.08); padding-top:1rem; }
  .hero-route-sticker-bed { width:5.8rem; }
  .hero-route-sticker-food { width:5.7rem; }
  .hero-route-sticker-traveller { width:5.5rem; }
  .hero-route-sticker-anchor { width:5.7rem; }
  .hero-route-sticker-skull { width:5.7rem; }
}
@media (max-width:480px) {
  .hero-route-copy { padding-top:3.4rem; }
  .hero-route-brand { width:14.5rem; }
  .hero-route-title { font-size:clamp(2.75rem,14vw,3.85rem); }
  .hero-route-stamp { font-size:1.5rem; }
  .hero-route-lead { font-size:.92rem; }
  .hero-route-journey { height:15rem; margin-inline:-1.3rem; }
  .hero-route-sticker-bed { left:4%; top:70%; width:5rem; }
  .hero-route-sticker-food { left:27%; top:62%; width:5rem; }
  .hero-route-sticker-traveller { left:43%; top:46%; width:4.8rem; }
  .hero-route-sticker-anchor { left:57%; top:27%; width:4.9rem; }
  .hero-route-sticker-skull { left:71%; top:9%; width:4.9rem; }
}
@media (prefers-reduced-motion:reduce) {
  .hero-route-path-base { opacity:.92!important; }
  .hero-route-path-trace { clip-path:inset(0 0 0 0)!important; animation:none!important; marker-end:url(#hero-route-arrow-marker)!important; }
  .hero-route-sticker,.hero-route-btn { animation:none!important; transition:none!important; }
}

/* v1.11.1 — Klassisch 2.0: St. Pauli signage + modern collage system. */
body.theme-classic2 {
  --c2-ink:#25211f;
  --c2-muted:#655d56;
  --c2-paper:#fffaf0;
  --c2-coral:#c93b49;
  --c2-teal:#2f746d;
  --c2-line:rgba(62,50,42,.14);
  background:#fff8eb;
}
body.theme-classic2 .site-header {
  border-bottom-color:rgba(49,38,31,.09);
  background:rgba(255,250,240,.96);
  backdrop-filter:blur(12px);
}
body.theme-classic2 .h2,
body.theme-classic2 .h3 {
  font-family:"Avenir Next","Trebuchet MS",ui-sans-serif,system-ui,sans-serif;
  letter-spacing:-.03em;
}
body.theme-classic2 .h2 { font-weight:650; line-height:1.03; }
body.theme-classic2 .h3 { font-weight:720; }
body.theme-classic2 .eyebrow {
  color:var(--c2-coral);
  font-weight:800;
  letter-spacing:.085em;
}
body.theme-classic2 .eyebrow::before { height:3px; background:var(--c2-coral); }
body.theme-classic2 .btn:not(.menu-toggle) {
  border-radius:10px 22px 10px 22px;
  box-shadow:none;
  transition:transform .18s ease,background .18s ease,border-color .18s ease;
}
body.theme-classic2 .btn:hover,
body.theme-classic2 .btn:focus-visible { transform:translateY(-2px); box-shadow:none; }

.hero-classic2 {
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 82% 12%,rgba(201,59,73,.07),transparent 26rem),
    linear-gradient(180deg,#fffaf1 0%,#fff6e7 100%);
  color:var(--c2-ink);
}
.hero-classic2::after {
  content:"";
  position:absolute;
  left:-4%; right:-4%; bottom:-18px;
  height:34px;
  z-index:8;
  background:var(--c2-paper);
  clip-path:polygon(0 36%,5% 48%,11% 27%,17% 55%,24% 32%,31% 57%,38% 35%,45% 56%,53% 29%,60% 51%,68% 31%,75% 54%,82% 33%,89% 58%,95% 37%,100% 49%,100% 100%,0 100%);
}
.classic2-decor { position:absolute; z-index:1; pointer-events:none; user-select:none; mix-blend-mode:multiply; }
.classic2-clouds { width:min(22vw,19rem); left:45%; right:auto; top:5.2rem; opacity:.40; transform:rotate(2deg); }
.classic2-birds { width:min(6.5vw,5.25rem); left:40%; right:auto; top:14rem; opacity:.60; transform:rotate(4deg); }
.classic2-grid {
  position:relative;
  z-index:2;
  min-height:690px;
  display:grid;
  grid-template-columns:minmax(0,.88fr) minmax(420px,1.12fr);
  gap:clamp(2.5rem,5vw,5.8rem);
  align-items:center;
  padding-top:clamp(3.8rem,6vw,6rem);
  padding-bottom:clamp(4.5rem,7vw,7rem);
}
.classic2-copy { min-width:0; align-self:center; }
.classic2-pictograms { width:min(28rem,86%); margin:0 0 2rem; }
.classic2-pictograms img { width:100%; height:auto; }
.classic2-title {
  margin:0;
  max-width:10.5ch;
  font-family:"Avenir Next","Trebuchet MS",ui-sans-serif,system-ui,sans-serif;
  font-size:clamp(3.25rem,5.1vw,5.35rem);
  font-weight:650;
  line-height:.94;
  letter-spacing:-.058em;
  text-wrap:balance;
}
.classic2-title-line { display:block; }
.classic2-title-line-2 { margin-top:.08em; color:var(--c2-coral); }
.classic2-lead {
  max-width:34rem;
  margin:1.45rem 0 0;
  color:var(--c2-muted);
  font-size:clamp(1.02rem,1.35vw,1.16rem);
  line-height:1.58;
}
.classic2-actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:2rem; }
.classic2-btn {
  min-height:3.6rem;
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:1.35rem;
  padding:.82rem 1rem .82rem 1.2rem;
  border:1.5px solid var(--c2-ink);
  border-radius:8px 20px 8px 20px;
  font-weight:820;
  line-height:1;
  text-decoration:none;
  transition:transform .18s ease,background .18s ease,color .18s ease;
}
.classic2-btn:hover,.classic2-btn:focus-visible { transform:translateY(-2px); }
.classic2-btn-primary { min-width:15rem; border-color:var(--c2-coral); background:var(--c2-coral); color:#fff; }
.classic2-btn-secondary { min-width:12.5rem; background:rgba(255,255,255,.66); }
.classic2-btn > span:last-child { font-size:1.3rem; line-height:1; }
.classic2-note { display:flex; align-items:center; gap:.55rem; margin:.95rem 0 0; color:#6e625b; font-size:.82rem; font-weight:700; }
.classic2-note > span { color:var(--c2-coral); }
.classic2-visual { position:relative; min-height:545px; }
.classic2-main-frame,
.classic2-mini-frame {
  position:absolute;
  margin:0;
  overflow:hidden;
  background:#fff;
  filter:drop-shadow(0 22px 32px rgba(66,45,31,.13));
}
.classic2-main-frame {
  inset:0 3.3rem 1.8rem 0;
  padding:6px;
  clip-path:polygon(0 0,calc(100% - 30px) 0,100% 30px,100% 100%,22px 100%,0 calc(100% - 22px));
}
.classic2-main-frame img {
  width:100%; height:100%; object-fit:cover;
  clip-path:polygon(0 0,calc(100% - 25px) 0,100% 25px,100% 100%,18px 100%,0 calc(100% - 18px));
}
.classic2-main-frame::after {
  content:"";
  position:absolute;
  right:0; top:0;
  width:30px; height:30px;
  background:var(--c2-coral);
  clip-path:polygon(0 0,100% 100%,100% 0);
}
.classic2-mini-frame {
  z-index:4;
  right:0;
  bottom:0;
  width:38%; height:37%;
  padding:5px;
  clip-path:polygon(14px 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) 100%,0 100%,0 14px);
}
.classic2-mini-frame img { width:100%; height:100%; object-fit:cover; clip-path:inherit; }
.classic2-place-tag {
  position:absolute;
  z-index:5;
  right:1.8rem; top:1.6rem;
  min-width:9rem;
  padding:.65rem .85rem .7rem;
  background:var(--c2-teal);
  color:#fff;
  border-radius:6px 18px 6px 18px;
  box-shadow:0 10px 24px rgba(29,67,63,.18);
  text-transform:uppercase;
}
.classic2-place-tag span { display:block; font-size:.62rem; font-weight:800; letter-spacing:.16em; }
.classic2-place-tag strong { display:block; margin-top:.08rem; font-size:1.18rem; line-height:1; }
.classic2-photo-label {
  position:absolute;
  z-index:5;
  left:1.35rem; bottom:3rem;
  display:grid; gap:.08rem;
  max-width:17rem;
  padding:.72rem .9rem;
  background:rgba(255,250,240,.94);
  border-left:4px solid var(--c2-coral);
  backdrop-filter:blur(8px);
}
.classic2-photo-label strong { font-size:.96rem; line-height:1.16; }
.classic2-photo-label span { color:#655c55; font-size:.76rem; }
.classic2-facts-shell { position:relative; z-index:6; background:var(--c2-paper); border-top:1px solid var(--c2-line); }
.classic2-facts {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  padding:1.7rem 0 2rem;
}
.classic2-fact { display:flex; gap:.9rem; align-items:flex-start; min-width:0; padding:1rem 1.4rem; border-right:1px solid var(--c2-line); }
.classic2-fact:nth-child(3n) { border-right:0; }
.classic2-fact:nth-child(n+4) { border-top:1px solid var(--c2-line); }
.classic2-fact-icon {
  flex:0 0 2.65rem; width:2.65rem; height:2.65rem;
  display:grid; place-items:center;
  color:var(--c2-coral);
  background:rgba(201,59,73,.06);
  clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,9px 100%,0 calc(100% - 9px));
}
.classic2-fact-icon svg { width:1.65rem; height:1.65rem; fill:none; stroke:currentColor; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }
.classic2-fact > div:last-child { display:grid; gap:.18rem; min-width:0; }
.classic2-fact strong { font-size:.93rem; line-height:1.15; }
.classic2-fact span { color:#695f58; font-size:.81rem; line-height:1.32; }

/* Klassisch 2.0 global frame language: less rounded, more architectural/cut-corner. */
body.theme-classic2.classic2-frame-cut .room-card,
body.theme-classic2.classic2-frame-cut .feature-card,
body.theme-classic2.classic2-frame-cut .location-card,
body.theme-classic2.classic2-frame-cut .booking-shell,
body.theme-classic2.classic2-frame-cut .contact-card {
  border-radius:7px 24px 7px 24px;
  box-shadow:none;
  transform:none;
  border-color:rgba(52,43,38,.13);
}
body.theme-classic2.classic2-frame-cut .room-card:hover,
body.theme-classic2.classic2-frame-cut .feature-card:hover { transform:translateY(-3px); box-shadow:0 16px 30px rgba(54,40,31,.08); }
body.theme-classic2.classic2-frame-cut .room-photo,
body.theme-classic2.classic2-frame-cut .gallery-main-frame,
body.theme-classic2.classic2-frame-cut .gallery-preview-card,
body.theme-classic2.classic2-frame-cut .group-image,
body.theme-classic2.classic2-frame-cut .contact-hostel-photo,
body.theme-classic2.classic2-frame-cut .custom-image,
body.theme-classic2.classic2-frame-cut .image-banner-card {
  border-radius:0;
  border:0;
  transform:none;
  clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,14px 100%,0 calc(100% - 14px));
  filter:drop-shadow(0 14px 22px rgba(55,39,29,.10));
}
body.theme-classic2.classic2-frame-cut .gallery-preview-card { filter:drop-shadow(0 11px 18px rgba(55,39,29,.12)); }
body.theme-classic2.classic2-frame-cut .gallery-main-frame,
body.theme-classic2.classic2-frame-cut .gallery-preview-card,
body.theme-classic2.classic2-frame-cut .group-image,
body.theme-classic2.classic2-frame-cut .custom-image { background:#fff; padding:5px; }
body.theme-classic2.classic2-frame-cut .gallery-main-frame img,
body.theme-classic2.classic2-frame-cut .gallery-preview-card img,
body.theme-classic2.classic2-frame-cut .group-image img,
body.theme-classic2.classic2-frame-cut .custom-image img { clip-path:inherit; }
body.theme-classic2.classic2-frame-cut .story-mark { border-radius:7px 18px 7px 18px; transform:none; box-shadow:none; }
body.theme-classic2.classic2-frame-cut .location-section { border-block:1px solid rgba(47,116,109,.18); }
body.theme-classic2.classic2-frame-cut .location-section::after { border-style:solid; opacity:.35; }
body.theme-classic2.classic2-frame-clean .room-card,
body.theme-classic2.classic2-frame-clean .feature-card,
body.theme-classic2.classic2-frame-clean .booking-shell,
body.theme-classic2.classic2-frame-clean .contact-card { border-radius:10px; box-shadow:none; transform:none; }
body.theme-classic2.classic2-frame-clean .gallery-main-frame,
body.theme-classic2.classic2-frame-clean .gallery-preview-card,
body.theme-classic2.classic2-frame-clean .group-image,
body.theme-classic2.classic2-frame-clean .contact-hostel-photo,
body.theme-classic2.classic2-frame-clean .custom-image { border-radius:10px; transform:none; box-shadow:none; }

@media (max-width:1000px) {
  .classic2-clouds { width:15rem; left:43%; right:auto; top:5.1rem; opacity:.34; }
  .classic2-birds { width:4.7rem; left:40%; right:auto; top:13.2rem; opacity:.52; }
  .classic2-grid { min-height:620px; grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr); gap:2rem; }
  .classic2-title { font-size:clamp(3rem,5.6vw,4.35rem); }
  .classic2-pictograms { width:min(24rem,92%); margin-bottom:1.55rem; }
  .classic2-visual { min-height:480px; }
  .classic2-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .classic2-fact:nth-child(3n) { border-right:1px solid var(--c2-line); }
  .classic2-fact:nth-child(2n) { border-right:0; }
  .classic2-fact:nth-child(n+3) { border-top:1px solid var(--c2-line); }
}
@media (max-width:760px) {
  .hero-classic2 { overflow:hidden; }
  .classic2-clouds { width:14.5rem; left:auto; right:-1.5rem; top:10rem; opacity:.30; }
  .classic2-birds { width:5.3rem; left:auto; right:1.2rem; top:20.5rem; opacity:.50; }
  .classic2-grid { display:grid; grid-template-columns:1fr; min-height:0; gap:1.7rem; padding-top:2rem; padding-bottom:3.8rem; }
  .classic2-copy { display:grid; }
  .classic2-pictograms { order:0; width:min(23rem,96%); margin:0 0 1.25rem; }
  .classic2-title { order:1; max-width:100%; font-size:clamp(2.35rem,7.3vw,3.55rem); line-height:.96; letter-spacing:-.05em; }
  .classic2-lead { order:2; max-width:34ch; margin-top:1rem; font-size:1rem; line-height:1.5; }
  .classic2-actions { order:3; display:grid; grid-template-columns:1fr 1fr; width:100%; margin-top:1.4rem; }
  .classic2-btn { min-width:0; width:100%; }
  .classic2-note { order:4; margin-top:.75rem; }
  .classic2-visual { min-height:390px; margin-top:.3rem; }
  .classic2-main-frame { inset:0 2.4rem 1.7rem 0; }
  .classic2-mini-frame { width:36%; height:34%; }
  .classic2-place-tag { right:.8rem; top:.9rem; min-width:7.6rem; }
  .classic2-photo-label { left:.8rem; bottom:2.35rem; max-width:15rem; }
  .classic2-facts { grid-template-columns:1fr 1fr; padding-top:1rem; }
  .classic2-fact { padding:.9rem .8rem; }
}
@media (max-width:520px) {
  .classic2-clouds { width:13rem; right:-2rem; top:9.5rem; opacity:.28; }
  .classic2-birds { width:4.8rem; right:.7rem; top:19.3rem; opacity:.48; }
  .classic2-grid { padding-top:1.45rem; gap:1.25rem; }
  .classic2-pictograms { width:min(21.5rem,100%); margin-bottom:1rem; }
  .classic2-title { font-size:clamp(2.05rem,9vw,2.85rem); line-height:.97; }
  .classic2-lead { font-size:.96rem; }
  .classic2-actions { grid-template-columns:1fr; gap:.65rem; }
  .classic2-btn { min-height:3.35rem; }
  .classic2-visual { min-height:330px; }
  .classic2-main-frame { inset:0 1.4rem 1.5rem 0; padding:4px; }
  .classic2-mini-frame { width:38%; height:32%; padding:4px; }
  .classic2-place-tag { right:.2rem; top:.65rem; padding:.5rem .65rem; min-width:6.8rem; }
  .classic2-place-tag strong { font-size:1rem; }
  .classic2-photo-label { left:.55rem; bottom:1.9rem; max-width:13.5rem; padding:.55rem .65rem; }
  .classic2-photo-label strong { font-size:.83rem; }
  .classic2-photo-label span { font-size:.68rem; }
  .classic2-facts { grid-template-columns:1fr; }
  .classic2-fact { border-right:0!important; border-top:1px solid var(--c2-line); }
  .classic2-fact:first-child { border-top:0; }
}
