/**
 * ARALIYA · Weekend Journey Krakow — Winter-Design
 * Single-Event-Template (.ary-ev) + Katalog-Shortcode (.ary-wj)
 *
 * Baut auf den Plattform-Tokens auf (--ary-cream/--ary-gold/--ary-dark/--ary-font-serif)
 * und ergänzt einen winterlichen Tannengrün-Akzent (--ary-fir). Keine externen Assets.
 *
 * @since 2.0.0-alpha.416
 */

.ary-wj, .ary-ev {
  --ary-fir: #0d372d;
  --ary-fir-deep: #08251e;
  --ary-brass: var(--ary-gold, #c9a84c);
  --ary-snow: #f4f6f3;
  --ary-ink: rgba(42, 32, 24, .82);
  --ary-ink-soft: rgba(42, 32, 24, .6);
  font-family: inherit;
}

/* ───────────────────────────── Katalog-Hero ───────────────────────────── */
.ary-wj-hero {
  background: linear-gradient(160deg, var(--ary-fir) 0%, var(--ary-fir-deep) 100%);
  color: #fff;
  padding: 96px 0 84px;
  text-align: center;
}
.ary-wj-eyebrow {
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--ary-brass);
  margin: 0 0 18px;
}
.ary-wj-title {
  font-family: var(--ary-font-serif, 'Cormorant Garamond', serif);
  font-weight: 300;
  font-size: clamp(34px, 5vw, 64px);
  line-height: 1.08;
  margin: 0 auto 22px;
  max-width: 16ch;
  color: #fff;
}
.ary-wj-lead {
  font-size: 16px;
  line-height: 1.75;
  color: rgba(255, 255, 255, .74);
  max-width: 60ch;
  margin: 0 auto;
}
.ary-wj-hero-rule {
  width: 64px;
  height: 1px;
  background: var(--ary-brass);
  margin: 30px auto 0;
  opacity: .8;
}

/* ───────────────────────────── Katalog-Body ───────────────────────────── */
.ary-wj-catalog {
  background: var(--ary-cream, #f5f0e8);
  padding: 80px 0;
}
.ary-wj-group { margin-bottom: 64px; }
.ary-wj-group:last-child { margin-bottom: 0; }
.ary-wj-group-head {
  display: flex;
  align-items: baseline;
  gap: 16px;
  border-bottom: 1px solid rgba(13, 55, 45, .16);
  padding-bottom: 14px;
  margin-bottom: 32px;
}
.ary-wj-group-label {
  font-family: var(--ary-font-serif, 'Cormorant Garamond', serif);
  font-size: clamp(22px, 2.6vw, 32px);
  font-weight: 400;
  color: var(--ary-fir);
  margin: 0;
}
.ary-wj-group-count {
  font-size: 12px;
  letter-spacing: .06em;
  color: var(--ary-ink-soft);
}

/* Kartenraster */
.ary-wj-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 28px;
}
.ary-wj-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid rgba(13, 55, 45, .1);
  overflow: hidden;
  transition: transform .25s ease, box-shadow .25s ease;
}
.ary-wj-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px -24px rgba(13, 55, 45, .5);
}
.ary-wj-card-media {
  position: relative;
  aspect-ratio: 16 / 10;
  background: var(--ary-fir-deep) center/cover no-repeat;
}
.ary-wj-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  background: rgba(13, 55, 45, .9);
  color: #fff;
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 6px 12px;
}
.ary-wj-nights {
  position: absolute;
  bottom: 14px;
  right: 14px;
  background: var(--ary-brass);
  color: var(--ary-fir-deep);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .04em;
  padding: 6px 12px;
}
.ary-wj-card-body {
  padding: 24px 24px 26px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.ary-wj-card-dates {
  font-size: 12px;
  letter-spacing: .06em;
  color: var(--ary-brass);
  margin: 0 0 8px;
}
.ary-wj-card-title {
  font-family: var(--ary-font-serif, 'Cormorant Garamond', serif);
  font-size: 22px;
  font-weight: 400;
  line-height: 1.2;
  color: var(--ary-ink);
  margin: 0 0 12px;
}
.ary-wj-card-teaser {
  font-size: 14px;
  line-height: 1.7;
  color: var(--ary-ink-soft);
  margin: 0 0 20px;
}
.ary-wj-card-foot {
  margin-top: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.ary-wj-card-price {
  font-size: 13px;
  color: var(--ary-ink);
}
.ary-wj-card-link {
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ary-fir);
  text-decoration: none;
  border-bottom: 1px solid var(--ary-brass);
  padding-bottom: 2px;
  white-space: nowrap;
}
.ary-wj-card-link:hover { color: var(--ary-brass); }

/* ─────────────────────────── Experience-Säulen ─────────────────────────── */
.ary-wj-experience {
  background: var(--ary-fir);
  color: #fff;
  padding: 84px 0;
}
.ary-wj-exp-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 40px;
}
.ary-wj-exp-item { text-align: left; }
.ary-wj-exp-num {
  font-family: var(--ary-font-serif, 'Cormorant Garamond', serif);
  font-size: 14px;
  color: var(--ary-brass);
  margin: 0 0 12px;
}
.ary-wj-exp-title {
  font-family: var(--ary-font-serif, 'Cormorant Garamond', serif);
  font-size: 24px;
  font-weight: 400;
  margin: 0 0 10px;
  color: #fff;
}
.ary-wj-exp-text {
  font-size: 14px;
  line-height: 1.7;
  color: rgba(255, 255, 255, .66);
  margin: 0;
}

/* ───────────────────────────── Single-Event ───────────────────────────── */
.ary-ev-main { padding-top: 72px; }
.ary-ev-hero {
  position: relative;
  background: linear-gradient(160deg, var(--ary-fir) 0%, var(--ary-fir-deep) 100%);
  color: #fff;
  padding: 88px 0 76px;
}
.ary-ev-hero.has-image::before {
  content: "";
  position: absolute; inset: 0;
  background: var(--ary-ev-hero-img) center/cover no-repeat;
  opacity: .32;
}
.ary-ev-hero > .ary-container { position: relative; z-index: 1; }
.ary-ev-back {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11px; letter-spacing: .12em; text-transform: uppercase;
  color: rgba(255, 255, 255, .5); text-decoration: none; margin-bottom: 36px;
}
.ary-ev-eyebrow {
  font-size: 11px; letter-spacing: .2em; text-transform: uppercase;
  color: var(--ary-brass); margin: 0 0 14px;
}
.ary-ev-title {
  font-family: var(--ary-font-serif, 'Cormorant Garamond', serif);
  font-size: clamp(32px, 5vw, 60px); font-weight: 300; line-height: 1.08;
  color: #fff; margin: 0 0 22px; max-width: 20ch;
}
.ary-ev-meta {
  display: flex; flex-wrap: wrap; gap: 14px 28px; align-items: center;
  font-size: 13px; letter-spacing: .04em;
}
.ary-ev-meta .pill {
  display: inline-flex; align-items: center; gap: 8px;
  color: rgba(255, 255, 255, .78);
}
.ary-ev-meta .pill b { color: #fff; font-weight: 600; }
.ary-ev-meta .price { color: var(--ary-brass); }

.ary-ev-body { background: var(--ary-cream, #f5f0e8); padding: 80px 0; }
.ary-ev-lead {
  font-family: var(--ary-font-serif, 'Cormorant Garamond', serif);
  font-size: clamp(20px, 2.4vw, 30px); font-weight: 300; line-height: 1.4;
  color: var(--ary-fir); max-width: 30ch; margin: 0 0 40px;
}
.ary-ev-content {
  font-size: 15px; line-height: 1.9; color: var(--ary-ink-soft); max-width: 68ch;
}
.ary-ev-cta {
  background: var(--ary-cream, #f5f0e8); text-align: center; padding: 88px 0;
  border-top: 1px solid rgba(13, 55, 45, .1);
}
.ary-ev-cta-eyebrow {
  font-size: 11px; letter-spacing: .2em; text-transform: uppercase;
  color: var(--ary-brass); margin: 0 0 18px;
}
.ary-ev-cta-title {
  font-family: var(--ary-font-serif, 'Cormorant Garamond', serif);
  font-size: clamp(26px, 3.4vw, 46px); font-weight: 300; line-height: 1.15;
  color: var(--ary-fir); margin: 0 0 30px;
}

/* Winterlicher Button-Akzent (nur innerhalb der Weekend-Journey-Bereiche) */
.ary-wj .ary-btn-fir, .ary-ev .ary-btn-fir {
  display: inline-block; background: var(--ary-fir); color: #fff;
  font-size: 13px; letter-spacing: .08em; padding: 16px 44px;
  text-decoration: none; border: 1.5px solid var(--ary-fir);
  transition: background .2s ease, color .2s ease;
}
.ary-wj .ary-btn-fir:hover, .ary-ev .ary-btn-fir:hover {
  background: transparent; color: var(--ary-fir);
}

/* ─────────────────────────── Booking Composer ─────────────────────────── */
.ary-ev-composer {
  background: var(--ary-cream-light, #faf7f2);
  padding: 72px 0;
  border-top: 1px solid rgba(13, 55, 45, .1);
}
.ary-wj-composer-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: 40px;
  align-items: start;
}

/* ── Paket-Kacheln (Preisstufen) ──────────────────────────────────────── */
.ary-wj-packages {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-bottom: 32px;
}
@media (max-width: 860px) { .ary-wj-packages { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 460px) { .ary-wj-packages { grid-template-columns: 1fr; } }
.ary-wj-tile {
  display: flex; flex-direction: column; gap: 6px; text-align: left;
  padding: 22px 20px; min-height: 150px; cursor: pointer;
  background: #fff; border: 1.5px solid rgba(13,55,45,.16);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  font: inherit; color: var(--ary-ink);
}
.ary-wj-tile:hover { transform: translateY(-3px); box-shadow: 0 16px 34px -22px rgba(13,55,45,.5); }
.ary-wj-tile.is-active { border-color: var(--ary-fir); box-shadow: 0 0 0 2px var(--ary-fir) inset; }
.ary-wj-tile-tier {
  font-family: var(--ary-font-serif, 'Cormorant Garamond', serif);
  font-size: 20px; color: var(--ary-fir); line-height: 1.1;
}
.ary-wj-tile-price { font-size: 22px; font-weight: 700; color: var(--ary-brass); letter-spacing: .01em; }
.ary-wj-tile-tag { font-size: 12px; line-height: 1.5; color: var(--ary-ink-soft); }
.ary-wj-tile-count { margin-top: auto; font-size: 11px; letter-spacing: .04em; color: var(--ary-ink-soft); }
.ary-wj-tile-custom {
  color: #fff; border-color: var(--ary-brass);
  background: linear-gradient(rgba(13,55,45,.55), rgba(8,37,30,.75)); background-size: cover; background-position: center;
  justify-content: flex-end;
}
.ary-wj-tile-custom .ary-wj-tile-tier { color: #fff; }
.ary-wj-tile-custom .ary-wj-tile-tag { color: rgba(255,255,255,.8); }
.ary-wj-tile-custom.is-active { box-shadow: 0 0 0 2px var(--ary-brass) inset; }
.ary-wj-composer-form { display: flex; flex-direction: column; gap: 20px; }
.ary-wj-field { display: flex; flex-direction: column; gap: 8px; }
.ary-wj-field > span {
  font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--ary-fir);
}
.ary-wj-field select,
.ary-wj-field input[type="number"] {
  width: 100%; padding: 12px 14px; font-size: 14px;
  border: 1px solid rgba(13, 55, 45, .25); background: #fff; color: var(--ary-ink);
  border-radius: 0;
}
.ary-wj-basics { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 520px) { .ary-wj-basics { grid-template-columns: 1fr; } }

/* Kategorie-Boxen (details/summary) */
.ary-wj-categories { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 640px) { .ary-wj-categories { grid-template-columns: 1fr; } }
/* Medical & Physio (Assistent) und Wellness stehen gestapelt über volle Breite;
   die übrigen Kategorien bleiben auf großem Schirm zweispaltig. */
.ary-wj-categories > .ary-wj-cat[data-cat="medical-physio"],
.ary-wj-categories > .ary-wj-cat[data-cat="wellness"] { grid-column: 1 / -1; }
.ary-wj-cat { border: 1px solid rgba(13,55,45,.18); background: #fff; }
.ary-wj-cat[open] { border-color: var(--ary-fir); }
.ary-wj-cat-head {
  list-style: none; cursor: pointer; display: flex; align-items: center;
  justify-content: space-between; gap: 8px; padding: 12px 14px;
  font-size: 13px; font-weight: 600; color: var(--ary-fir); user-select: none;
}
.ary-wj-cat-head::-webkit-details-marker { display: none; }
.ary-wj-cat-title { letter-spacing: .02em; }
.ary-wj-cat-count { font-size: 11px; color: var(--ary-brass); font-weight: 700; min-width: 22px; text-align: right; }
.ary-wj-cat-body { padding: 4px 14px 14px; display: flex; flex-direction: column; gap: 8px; }
.ary-wj-mod { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; color: var(--ary-ink); cursor: pointer; }
.ary-wj-mod input { width: 17px; height: 17px; margin-top: 2px; accent-color: var(--ary-fir); flex: none; }
.ary-wj-mod-txt { display: flex; flex-direction: column; gap: 1px; }
.ary-wj-mod-name { line-height: 1.3; }
.ary-wj-mod-price { font-size: 11px; color: var(--ary-ink-soft); }
.ary-wj-mod-prog {
  display: inline-block; margin-left: 6px; padding: 1px 7px; border-radius: 10px;
  font-size: 9.5px; letter-spacing: .06em; text-transform: uppercase;
  background: var(--ary-fir); color: #fff; vertical-align: middle;
}
.ary-wj-mod-program .ary-wj-mod-name { font-weight: 600; }

/* [alpha.453/454] ARALIYA-Plattform-Piktogramme — aufgeklapptes Karten-Raster */
.ary-wj-cat-picto .ary-wj-mmods {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px;
  padding: 14px; margin-top: 10px; border-radius: 16px;
  background: linear-gradient(180deg, rgba(201,168,76,.06), rgba(13,55,45,.02));
  border: 1px solid rgba(13,55,45,.08);
}
.ary-wj-cat-picto .ary-wj-mmods[hidden] { display: none; }
.ary-wj-mod-picto {
  position: relative; align-items: flex-start; gap: 10px; padding: 12px; border-radius: 12px;
  background: #fff; border: 1px solid rgba(13,55,45,.12);
  transition: border-color .16s, box-shadow .16s, transform .16s;
}
.ary-wj-mod-picto:hover { transform: translateY(-2px); box-shadow: 0 14px 30px -22px rgba(13,55,45,.55); border-color: rgba(13,55,45,.22); }
.ary-wj-mod-picto.is-selected { border-color: var(--ary-brass); box-shadow: 0 0 0 2px var(--ary-brass) inset; }
/* Checkbox dezent oben rechts */
.ary-wj-mod-picto input { position: absolute; top: 10px; right: 10px; margin: 0; }
.ary-wj-mod-ic {
  width: 40px; height: 40px; flex: none; display: flex; align-items: center; justify-content: center;
  font-size: 21px; border-radius: 12px; background: var(--ary-snow, #f5f1e8);
}
.ary-wj-mod-picto.is-selected .ary-wj-mod-ic { background: rgba(201,168,76,.2); }
.ary-wj-mod-picto .ary-wj-mod-txt { gap: 3px; padding-right: 18px; }
.ary-wj-mod-name { line-height: 1.3; }
.ary-wj-mod-picto .ary-wj-mod-name { font-weight: 600; color: var(--ary-fir); }
.ary-wj-mod-desc {
  font-size: 11.5px; color: var(--ary-ink-soft); line-height: 1.35;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.ary-wj-mod-picto .ary-wj-mod-price { font-size: 12px; color: var(--ary-brass); font-weight: 700; margin-top: 2px; }

/* Eröffnungs-Box (geschlossen): Piktogramme horizontal über die volle Breite,
   „N Artikel" + „Anzeigen" als Fußzeile darunter (statt schmaler Icon-Spalte). */
.ary-wj-cat-picto .ary-wj-pctoggle {
  display: grid; grid-template-columns: 1fr auto; grid-template-areas: "chips chips" "txt cta";
  gap: 12px; align-items: center; padding: 16px;
}
.ary-wj-cat-picto .ary-wj-pcchips { grid-area: chips; gap: 8px; }
.ary-wj-cat-picto .ary-wj-pcchip { width: 38px; height: 38px; font-size: 19px; border-radius: 10px; }
.ary-wj-cat-picto .ary-wj-pctoggle-txt { grid-area: txt; }
.ary-wj-cat-picto .ary-wj-pctoggle-cta { grid-area: cta; margin-left: 0; }

/* Suite Secrets */
.ary-wj-suite { margin-top: 4px; }
.ary-wj-suite-box { border-color: var(--ary-brass); }
.ary-wj-suite-box .ary-wj-cat-head { color: var(--ary-brass); }
.ary-wj-suite-intro { font-size: 12.5px; line-height: 1.6; color: var(--ary-ink-soft); margin: 0 0 6px; }
.ary-wj-suite-svc { font-size: 12px; color: var(--ary-fir); font-weight: 600; margin: 0 0 10px; }
.ary-wj-suite-lbl { display: block; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--ary-fir); margin: 8px 0 6px; }
.ary-wj-suite-place { margin-bottom: 6px; }
.ary-wj-suite-place-opt { display: inline-flex; align-items: center; gap: 6px; margin: 0 14px 6px 0; font-size: 13px; color: var(--ary-ink); }
.ary-wj-suite-place-opt input { accent-color: var(--ary-brass); }
.ary-wj-suite-gifts { max-height: 220px; overflow-y: auto; border: 1px solid rgba(13,55,45,.12); padding: 10px 12px; display: flex; flex-direction: column; gap: 8px; }

/* ── Geschenkboxen (S/M/L) ──────────────────────────────────────────────── */
.ary-wj-boxes {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px;
  align-items: end; margin: 6px 0 4px;
}
@media (max-width: 460px) { .ary-wj-boxes { grid-template-columns: 1fr; align-items: stretch; } }
.ary-wj-box {
  display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center;
  cursor: pointer; font: inherit; color: var(--ary-ink);
  background: #fff; border: 1.5px solid rgba(13,55,45,.16);
  padding: 16px 12px; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.ary-wj-box:hover { transform: translateY(-3px); box-shadow: 0 14px 30px -22px rgba(13,55,45,.5); }
.ary-wj-box.is-active { border-color: var(--ary-brass); box-shadow: 0 0 0 2px var(--ary-brass) inset; }
/* Größenstaffelung: die Box wächst optisch mit ihrer Stufe. */
.ary-wj-box-icon { line-height: 1; }
.ary-wj-box--small  .ary-wj-box-icon { font-size: 26px; }
.ary-wj-box--medium .ary-wj-box-icon { font-size: 38px; }
.ary-wj-box--large  .ary-wj-box-icon { font-size: 52px; }
.ary-wj-box--small  { padding-top: 26px; }
.ary-wj-box-size {
  font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--ary-brass); font-weight: 700;
}
.ary-wj-box-name {
  font-family: var(--ary-font-serif, 'Cormorant Garamond', serif);
  font-size: 16px; line-height: 1.15; color: var(--ary-fir);
}
.ary-wj-box-price { font-size: 12px; font-weight: 700; color: var(--ary-ink); }

/* Konfigurations-Bereich unter den Boxen */
.ary-wj-box-config { margin-top: 12px; padding-top: 12px; border-top: 1px dashed rgba(13,55,45,.18); }
.ary-wj-box-config[hidden] { display: none; }
.ary-wj-box-total {
  display: flex; justify-content: space-between; align-items: baseline;
  margin: 10px 0 2px; font-size: 12px; letter-spacing: .04em; color: var(--ary-fir);
}
.ary-wj-box-total b { font-size: 16px; color: var(--ary-brass); }

/* Eigenschaftskarte */
.ary-wj-card { display: flex; flex-direction: column; gap: 10px; margin-bottom: 6px; }
.ary-wj-card-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 520px) { .ary-wj-card-row { grid-template-columns: 1fr; } }
.ary-wj-card .ary-wj-field input,
.ary-wj-card .ary-wj-field textarea,
.ary-wj-card .ary-wj-field select {
  width: 100%; padding: 10px 12px; font: inherit; font-size: 13px;
  border: 1px solid rgba(13, 55, 45, .25); background: #fff; color: var(--ary-ink); border-radius: 0;
}
.ary-wj-card .ary-wj-field textarea { resize: vertical; }
.ary-wj-card-styles { margin: 8px 0 2px; }
.ary-wj-card-style-opt { display: inline-flex; align-items: center; gap: 6px; margin: 0 14px 6px 0; font-size: 13px; color: var(--ary-ink); }
.ary-wj-card-style-opt input { accent-color: var(--ary-brass); }
.ary-wj-box-clear {
  margin-top: 12px; align-self: flex-start; background: none; border: none; cursor: pointer;
  font: inherit; font-size: 12px; color: var(--ary-ink-soft); text-decoration: underline; padding: 0;
}
.ary-wj-box-clear:hover { color: var(--ary-fir); }
.ary-wj-quote-card { font-size: 12px; line-height: 1.5; color: rgba(255, 255, 255, .82); margin: 6px 0 2px; font-style: italic; }

.ary-wj-composer-form .ary-btn-fir { align-self: flex-start; margin-top: 4px; cursor: pointer; }
.ary-wj-composer-form .ary-btn-fir[disabled] { opacity: .5; cursor: default; }

.ary-wj-quote {
  background: var(--ary-fir); color: #fff; padding: 32px 30px; align-self: stretch;
}
.ary-wj-quote-hint { font-size: 14px; color: rgba(255, 255, 255, .7); margin: 0; }
.ary-wj-quote-eyebrow {
  font-size: 11px; letter-spacing: .18em; text-transform: uppercase;
  color: var(--ary-brass); margin: 0 0 18px;
}
.ary-wj-quote-lines { display: flex; flex-direction: column; gap: 10px; margin-bottom: 18px; }
.ary-wj-quote-line { display: flex; justify-content: space-between; gap: 16px; font-size: 14px; color: rgba(255, 255, 255, .82); }
.ary-wj-quote-total {
  display: flex; justify-content: space-between; align-items: baseline;
  border-top: 1px solid rgba(255, 255, 255, .2); padding-top: 16px; margin-top: 4px;
}
.ary-wj-quote-total span { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: rgba(255, 255, 255, .7); }
.ary-wj-quote-total b {
  font-family: var(--ary-font-serif, 'Cormorant Garamond', serif);
  font-size: 28px; font-weight: 400; color: #fff;
}
.ary-wj-quote-suite { margin: 6px 0 2px; }
.ary-wj-quote-suite-h { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--ary-brass); }
.ary-wj-quote-exp { font-size: 12px; color: var(--ary-brass); margin: 12px 0 0; }
.ary-wj-quote-note { font-size: 11px; color: rgba(255, 255, 255, .5); margin: 14px 0 0; line-height: 1.5; }
.ary-wj-hold-btn { width: 100%; margin-top: 16px; cursor: pointer; }
.ary-wj-hold-btn[disabled] { opacity: .5; cursor: default; }
.ary-wj-hold-msg { font-size: 12px; color: var(--ary-brass); margin-top: 10px; }

/* ══════════════════════════════════════════════════════════════════════════
   WINTER-ADDITIONSSTREIFEN (aktiv via .is-tape, sobald die erste Position da ist)
   Der grüne Kasten wird zum nostalgischen Rechenmaschinen-Papierstreifen:
   dunkler „Maschinen"-Hintergrund, Messing-Display mit grüner LED-Anzeige,
   Papierrolle mit Perforationsrändern, Additions-Optik — plus Canvas-Schnee.
   ══════════════════════════════════════════════════════════════════════════ */
.ary-wj-quote.is-tape {
  position: relative;
  overflow: hidden;
  padding: 22px 18px 26px;
  background:
    radial-gradient(120% 60% at 50% -10%, rgba(198,166,106,.16), transparent 60%),
    radial-gradient(90% 70% at 12% 30%, rgba(255,210,150,.10), transparent 55%),
    linear-gradient(180deg, #14261d 0%, #0d1c15 55%, #0a1712 100%);
}
/* Messing-Display mit grüner LCD-Anzeige (Gesamtsumme) */
.ary-wj-tape-display {
  position: relative; z-index: 2;
  width: fit-content; max-width: 100%; margin: 0 auto 0;
  display: flex; flex-direction: column; align-items: center; gap: 5px;
  padding: 8px 12px 10px;
  border-radius: 7px;
  background: linear-gradient(180deg, #d9b968 0%, #a9812f 45%, #6f5216 100%);
  box-shadow: 0 3px 10px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,244,210,.6), inset 0 -2px 4px rgba(0,0,0,.4);
  border: 1px solid rgba(60,42,12,.7);
}
.ary-wj-tape-display-label {
  font-size: 9px; letter-spacing: .28em; text-transform: uppercase;
  color: #3a2a0c; font-weight: 700; text-shadow: 0 1px 0 rgba(255,240,200,.4);
}
.ary-wj-tape-led {
  font-family: 'Courier New', ui-monospace, monospace;
  font-size: 20px; font-weight: 700; letter-spacing: 2px;
  color: #b6f5b0; padding: 5px 14px; border-radius: 3px;
  background: linear-gradient(180deg, #1d3a22, #10261a);
  box-shadow: inset 0 0 8px rgba(0,0,0,.7), inset 0 1px 0 rgba(140,255,150,.15);
  text-shadow: 0 0 6px rgba(120,255,130,.75), 0 0 2px rgba(180,255,180,.9);
  border: 1px solid rgba(0,0,0,.5);
}
/* Papierrolle */
.ary-wj-tape {
  position: relative; z-index: 1;
  margin: -4px auto 0; width: min(300px, 86%);
  padding: 20px 30px 26px;
  color: #3a2c14;
  background-color: #efe4c9;
  background-image:
    radial-gradient(circle 2.1px at 12px 0, rgba(70,52,20,.55) 96%, transparent 100%),
    radial-gradient(circle 2.1px at calc(100% - 12px) 0, rgba(70,52,20,.55) 96%, transparent 100%),
    linear-gradient(180deg, rgba(120,90,40,.10), rgba(120,90,40,0) 12%),
    linear-gradient(90deg, transparent 49.6%, rgba(120,90,40,.14) 49.8%, rgba(120,90,40,.14) 50.2%, transparent 50.4%);
  background-repeat: repeat-y, repeat-y, no-repeat, no-repeat;
  background-size: 100% 16px, 100% 16px, 100% 100%, 100% 100%;
  box-shadow: 0 10px 26px rgba(0,0,0,.4), inset 0 0 42px rgba(150,115,55,.20);
}
.ary-wj-tape::before,
.ary-wj-tape::after {
  content: ""; position: absolute; left: 0; right: 0; height: 7px;
  background:
    repeating-linear-gradient(135deg, #efe4c9 0 7px, transparent 7px 8px),
    repeating-linear-gradient(45deg, #efe4c9 0 7px, transparent 7px 8px);
  background-size: 10px 7px;
}
.ary-wj-tape::before { top: -6px; }
.ary-wj-tape::after  { bottom: -6px; transform: scaleY(-1); }
.ary-wj-tape-inner { position: relative; }
/* Additions-Optik: dunkle Tinte, Monospace-Zahlen, „+“ ab der 2. Position */
.ary-wj-quote.is-tape .ary-wj-quote-eyebrow { display: none; }
.ary-wj-quote.is-tape .ary-wj-quote-lines { gap: 7px; margin-bottom: 12px; }
.ary-wj-quote.is-tape .ary-wj-quote-line {
  color: #3a2c14; font-size: 13px;
  font-family: 'Courier New', ui-monospace, monospace;
}
.ary-wj-quote.is-tape .ary-wj-quote-line span:last-child { font-variant-numeric: tabular-nums; white-space: nowrap; }
.ary-wj-quote.is-tape .ary-wj-quote-line:not(:first-child) span:last-child::before {
  content: "+ "; color: #7a5c2a;
}
.ary-wj-quote.is-tape .ary-wj-quote-suite-h { color: #6b4f1e; }
.ary-wj-quote.is-tape .ary-wj-quote-card { color: #5a4522; }
.ary-wj-quote.is-tape .ary-wj-quote-total {
  border-top: 2px dashed #8a6a2f; padding-top: 12px;
  position: relative;
}
.ary-wj-quote.is-tape .ary-wj-quote-total span { color: #6b5326; }
.ary-wj-quote.is-tape .ary-wj-quote-total b {
  font-family: 'Courier New', ui-monospace, monospace;
  font-size: 22px; font-weight: 700; color: #2a1f0d;
}
.ary-wj-quote.is-tape .ary-wj-quote-total::after {
  content: "\2217"; position: absolute; right: -2px; bottom: -16px;
  color: #6b5326; font-size: 16px;
}
.ary-wj-quote.is-tape .ary-wj-quote-exp { color: #7a5c2a; }
.ary-wj-quote.is-tape .ary-wj-quote-note { color: #6a5326; opacity: .85; }
.ary-wj-quote.is-tape .ary-wj-hold-btn { margin-top: 22px; }
.ary-wj-quote.is-tape .ary-wj-hold-msg { color: #7a5c2a; }
/* Schnee-Layer über allem, aber klick-durchlässig */
.ary-wj-snow { position: absolute; inset: 0; z-index: 5; pointer-events: none; }
/* [alpha.516] Eröffnungs-Reveal: Zettel „aus dem Schnee ausgebuddelt" (Pop). */
.ary-wj-quote.is-tape.tape-burst .ary-wj-tape-display,
.ary-wj-quote.is-tape.tape-burst .ary-wj-tape { animation: aryTapeReveal .7s cubic-bezier(.18,.9,.24,1) both; }
.ary-wj-quote.is-tape.tape-burst .ary-wj-tape { animation-delay: .06s; }
@keyframes aryTapeReveal { 0% { opacity: 0; transform: translateY(36px) scale(.9); } 60% { opacity: 1; } 100% { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .ary-wj-quote.is-tape.tape-burst .ary-wj-tape-display,
  .ary-wj-quote.is-tape.tape-burst .ary-wj-tape { animation: none; }
}
.ary-wj-hold-timer { font-size: 15px; font-weight: 600; color: var(--ary-brass); margin: 14px 0 0; }
.ary-wj-hold-expired { color: #e5b7b0; }
.ary-wj-hold-release {
  margin-top: 14px; background: transparent; border: 1px solid rgba(255,255,255,.4);
  color: rgba(255,255,255,.85); font-size: 12px; padding: 9px 18px; cursor: pointer;
}
.ary-wj-hold-release:hover { border-color: #fff; color: #fff; }

/* ── Phase 3B: Buchungsformular ─────────────────────────────────────────── */
.ary-wj-bookform { display: flex; flex-direction: column; gap: 14px; margin-top: 16px; }
.ary-wj-bookform .ary-wj-field > span { color: rgba(255,255,255,.8); }
.ary-wj-bookform input[type="text"],
.ary-wj-bookform input[type="email"] {
  width: 100%; padding: 11px 13px; font-size: 14px; border: 1px solid rgba(255,255,255,.3);
  background: rgba(255,255,255,.06); color: #fff; border-radius: 0;
}
.ary-wj-bookform input::placeholder { color: rgba(255,255,255,.4); }
.ary-wj-consent { display: flex; gap: 10px; align-items: flex-start; font-size: 12.5px; color: rgba(255,255,255,.78); line-height: 1.5; cursor: pointer; }
.ary-wj-consent input { margin-top: 2px; accent-color: var(--ary-brass); flex: none; }
.ary-wj-turnstile { margin: 2px 0; }
/* Honeypot: für Menschen unsichtbar, aber im DOM/Tab-Flow vorhanden für Bots. */
.ary-wj-hp { position: absolute !important; left: -9999px !important; top: auto; width: 1px; height: 1px; overflow: hidden; }
.ary-wj-book-number { font-size: 14px; color: #fff; margin: 4px 0 10px; }
.ary-wj-book-number b { color: var(--ary-brass); letter-spacing: .04em; }

@media (max-width: 768px) {
  .ary-wj-hero, .ary-ev-hero { padding: 68px 0 56px; }
  .ary-wj-catalog, .ary-ev-body, .ary-wj-experience, .ary-ev-composer { padding: 56px 0; }
  .ary-wj-group { margin-bottom: 48px; }
  .ary-wj-composer-grid { grid-template-columns: 1fr; gap: 28px; }
}

/* ─────────────────────────────────────────────────────────────────────────
   Geführter Zimmer-Finder (alpha.436) — Wohngefühl → Reisedetails → Zimmer
   ───────────────────────────────────────────────────────────────────────── */
.ary-wj-finder { display: flex; flex-direction: column; gap: 30px; }
.ary-wj-finder-head h3 {
  font-family: var(--ary-font-serif, 'Cormorant Garamond', serif);
  font-size: 26px; color: var(--ary-fir); margin: 0 0 4px; font-weight: 600;
}
.ary-wj-finder-head p { margin: 0; color: var(--ary-ink-soft); font-size: 15px; }

.ary-wj-step { display: flex; flex-direction: column; gap: 16px; }
.ary-wj-step-head { display: flex; align-items: baseline; gap: 14px; }
.ary-wj-step-no {
  font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--ary-brass); font-weight: 700;
}
.ary-wj-step-title {
  font-family: var(--ary-font-serif, 'Cormorant Garamond', serif);
  font-size: 19px; color: var(--ary-ink);
}

/* Schritt 1 — Wohngefühl-Karten */
.ary-wj-types { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.ary-wj-type {
  position: relative; display: flex; flex-direction: column; text-align: left;
  padding: 0; border: 1px solid rgba(13,55,45,.14); border-radius: 14px;
  background: #fff; cursor: pointer; overflow: hidden;
  transition: border-color .18s, box-shadow .18s, transform .18s;
}
.ary-wj-type:hover { transform: translateY(-2px); box-shadow: 0 16px 34px -24px rgba(13,55,45,.5); }
.ary-wj-type.is-active { border-color: var(--ary-fir); box-shadow: 0 0 0 2px var(--ary-fir) inset; }
.ary-wj-type-img {
  display: block; width: 100%; aspect-ratio: 16 / 7; min-height: 120px;
  background: var(--ary-fir-deep) center/cover no-repeat;
}
.ary-wj-type-body { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px 16px; }
.ary-wj-type-name {
  font-family: var(--ary-font-serif, 'Cormorant Garamond', serif);
  font-size: 17px; color: var(--ary-fir); letter-spacing: .06em; text-transform: uppercase;
}
.ary-wj-type-desc { font-size: 13.5px; color: var(--ary-ink-soft); line-height: 1.4; }
.ary-wj-type-check {
  position: absolute; top: 12px; right: 12px; width: 28px; height: 28px; border-radius: 50%;
  background: var(--ary-brass); color: var(--ary-fir-deep); font-size: 15px; font-weight: 700;
  display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 8px rgba(0,0,0,.2);
}

/* Schritt 2 — Reisedetails */
.ary-wj-details { display: flex; flex-wrap: wrap; gap: 22px 34px; align-items: flex-start; }
.ary-wj-dgroup { display: flex; flex-direction: column; gap: 8px; }
.ary-wj-dlabel {
  font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ary-ink-soft);
}
.ary-wj-toggle { display: inline-flex; gap: 8px; flex-wrap: wrap; }
.ary-wj-pill {
  min-width: 52px; padding: 9px 16px; border: 1px solid rgba(13,55,45,.2); border-radius: 999px;
  background: #fff; color: var(--ary-ink); font-size: 14px; font-weight: 600; cursor: pointer;
  transition: background .16s, color .16s, border-color .16s;
}
.ary-wj-pill:hover { border-color: var(--ary-fir); }
.ary-wj-pill.is-active { background: var(--ary-fir); border-color: var(--ary-fir); color: #fff; }
.ary-wj-needs {
  display: flex; flex-direction: column; gap: 8px; margin-top: 4px;
  padding: 14px 16px; background: var(--ary-snow); border: 1px solid rgba(13,55,45,.1); border-radius: 12px;
}
.ary-wj-needs-q { margin: 0 0 4px; font-size: 13px; color: var(--ary-ink); }
.ary-wj-need { display: flex; align-items: center; gap: 9px; font-size: 14px; color: var(--ary-ink); cursor: pointer; }
.ary-wj-need input { accent-color: var(--ary-fir); width: 16px; height: 16px; }

/* Passende Zimmer */
.ary-wj-results { display: flex; flex-direction: column; gap: 16px; border-top: 1px solid rgba(13,55,45,.12); padding-top: 24px; }
.ary-wj-results-head {
  font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--ary-ink-soft); font-weight: 700;
}
.ary-wj-noresult { margin: 0; color: var(--ary-ink-soft); font-size: 14.5px; }
.ary-wj-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.ary-wj-rcard {
  display: flex; flex-direction: column; border: 1px solid rgba(13,55,45,.14); border-radius: 14px;
  background: #fff; overflow: hidden; transition: border-color .18s, box-shadow .18s, transform .18s;
}
.ary-wj-rcard:hover { transform: translateY(-2px); box-shadow: 0 16px 34px -24px rgba(13,55,45,.5); }
.ary-wj-rcard.is-selected { border-color: var(--ary-fir); box-shadow: 0 0 0 2px var(--ary-fir) inset; }
.ary-wj-rcard-media {
  position: relative; width: 100%; aspect-ratio: 3 / 2; min-height: 120px;
  background: var(--ary-fir-deep) center/cover no-repeat;
}
.ary-wj-badge {
  position: absolute; top: 10px; left: 10px; padding: 4px 10px; border-radius: 999px;
  background: var(--ary-brass); color: var(--ary-fir-deep); font-size: 10px; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase;
}
.ary-wj-badge-soldout { left: auto; right: 10px; background: rgba(42,32,24,.78); color: #fff; }
.ary-wj-rcard-body { display: flex; flex-direction: column; gap: 8px; padding: 14px 16px 16px; flex: 1; }
.ary-wj-rcard-name {
  font-family: var(--ary-font-serif, 'Cormorant Garamond', serif);
  font-size: 19px; color: var(--ary-fir); margin: 0; font-weight: 600;
}
.ary-wj-rcard-teaser { margin: 0; font-size: 13.5px; color: var(--ary-ink-soft); line-height: 1.45; }
.ary-wj-rtags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 2px; }
.ary-wj-rtag {
  font-size: 11px; color: var(--ary-ink); background: var(--ary-snow);
  border: 1px solid rgba(13,55,45,.1); border-radius: 6px; padding: 3px 8px; letter-spacing: .01em;
}
.ary-wj-pick {
  margin-top: auto; align-self: flex-start; padding: 8px 0; background: none; border: 0;
  color: var(--ary-fir); font-size: 14px; font-weight: 600; letter-spacing: .02em; cursor: pointer;
  border-bottom: 1px solid var(--ary-brass);
}
.ary-wj-pick:hover { color: var(--ary-brass); }
.ary-wj-pick.is-selected { color: var(--ary-brass); border-bottom-color: transparent; cursor: default; }

@media (max-width: 860px) { .ary-wj-cards { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) {
  .ary-wj-types { grid-template-columns: 1fr; }
  .ary-wj-cards { grid-template-columns: 1fr; }
  .ary-wj-details { gap: 18px 24px; }
}

/* ─────────────────────────────────────────────────────────────────────────
   Medical & Physio — geführter Assistent (alpha.437)
   ───────────────────────────────────────────────────────────────────────── */
.ary-wj-medbody { display: flex; flex-direction: column; gap: 26px; padding-top: 6px; }
.ary-wj-med-sec { display: flex; flex-direction: column; gap: 14px; }
.ary-wj-med-h {
  font-family: var(--ary-font-serif, 'Cormorant Garamond', serif);
  font-size: 20px; color: var(--ary-fir); margin: 0; font-weight: 600;
  padding-bottom: 6px; border-bottom: 2px solid var(--ary-brass); align-self: flex-start;
}
.ary-wj-med-note { margin: 2px 0 0; font-size: 12.5px; color: var(--ary-ink-soft); line-height: 1.45; }

/* Behandlungsrichtung */
.ary-wj-dirs { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ary-wj-dir {
  display: flex; flex-direction: column; gap: 6px; text-align: center; align-items: center;
  padding: 22px 18px; border: 1px solid rgba(13,55,45,.16); border-radius: 14px; background: #fff;
  cursor: pointer; transition: border-color .18s, box-shadow .18s, transform .18s;
}
.ary-wj-dir:hover { transform: translateY(-2px); box-shadow: 0 16px 34px -24px rgba(13,55,45,.5); }
.ary-wj-dir.is-active { border-color: var(--ary-fir); box-shadow: 0 0 0 2px var(--ary-fir) inset; }
.ary-wj-dir-name {
  font-family: var(--ary-font-serif, 'Cormorant Garamond', serif);
  font-size: 17px; color: var(--ary-fir); letter-spacing: .04em; text-transform: uppercase;
}
.ary-wj-dir-sub { font-size: 13.5px; color: var(--ary-ink); }
.ary-wj-dir-tags { font-size: 12px; color: var(--ary-ink-soft); margin-top: 4px; }
.ary-wj-dir-unsure {
  display: block; width: 100%; padding: 12px 16px; border: 1px solid rgba(13,55,45,.16);
  border-radius: 12px; background: var(--ary-snow); color: var(--ary-fir); font-size: 14px;
  font-weight: 600; cursor: pointer; transition: border-color .18s, background .18s;
}
.ary-wj-dir-unsure:hover { border-color: var(--ary-brass); }
.ary-wj-dir-unsure.is-active { border-color: var(--ary-brass); box-shadow: 0 0 0 2px var(--ary-brass) inset; }

/* Medizinische Freigabe (Vorschau) */
.ary-wj-freigabe { display: flex; flex-wrap: wrap; gap: 10px; }
.ary-wj-fchip {
  display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px;
  border: 1px solid rgba(13,55,45,.14); border-radius: 999px; background: #fff;
  font-size: 13px; color: var(--ary-ink);
}
.ary-wj-fchip small { color: var(--ary-ink-soft); font-size: 11px; }
.ary-wj-fdot { width: 8px; height: 8px; border-radius: 50%; background: var(--ary-ink-soft); }
.ary-wj-fchip.is-info .ary-wj-fdot { background: var(--ary-brass); }

/* Goldene Empfehlung (sanft pulsierend) */
.ary-wj-reco {
  display: flex; align-items: center; gap: 14px; padding: 16px 18px; border-radius: 14px;
  background: linear-gradient(135deg, rgba(201,168,76,.16), rgba(201,168,76,.06));
  border: 1px solid rgba(201,168,76,.5); animation: aryRecoPulse 2.8s ease-in-out infinite;
}
@keyframes aryRecoPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(201,168,76,.0); }
  50%      { box-shadow: 0 0 0 6px rgba(201,168,76,.14); }
}
@media (prefers-reduced-motion: reduce) { .ary-wj-reco { animation: none; } }
.ary-wj-reco-ic { font-size: 20px; color: var(--ary-brass); }
.ary-wj-reco-txt { display: flex; flex-direction: column; gap: 2px; flex: 1; }
.ary-wj-reco-txt b { color: var(--ary-fir); font-size: 14px; }
.ary-wj-reco-txt small { color: var(--ary-ink-soft); font-size: 12px; }
.ary-wj-reco-add {
  padding: 9px 18px; border: 0; border-radius: 999px; background: var(--ary-brass);
  color: var(--ary-fir-deep); font-size: 13px; font-weight: 700; cursor: pointer; white-space: nowrap;
}
.ary-wj-reco-add:hover { filter: brightness(1.05); }

/* Anwendungs-/Check-Zeilen */
.ary-wj-mmods { display: flex; flex-direction: column; }
/* [alpha.451] hidden-Attribut muss den display:flex-Regelsatz schlagen (Klassen-
   selektor > UA-[hidden]) — sonst bleibt die eingeklappte Liste sichtbar. */
.ary-wj-mmods[hidden] { display: none; }
.ary-wj-mmod {
  display: flex; align-items: flex-start; gap: 12px; padding: 12px 4px;
  border-top: 1px solid rgba(13,55,45,.1); cursor: pointer;
}
.ary-wj-mmod:first-child { border-top: 0; }
.ary-wj-mmod > input { width: 20px; height: 20px; accent-color: var(--ary-fir); flex: none; margin-top: 1px; }
.ary-wj-mmod-ic { font-size: 20px; width: 26px; text-align: center; flex: none; line-height: 1.35; }
.ary-wj-mmod-txt { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.ary-wj-mmod-name { font-size: 15.5px; color: var(--ary-ink); }
.ary-wj-mmod-sub { font-size: 12.5px; color: var(--ary-ink-soft); }
.ary-wj-mmod-desc { display: block; font-size: 12.5px; color: var(--ary-ink-soft); line-height: 1.45; margin-top: 6px; max-width: 56ch; }
.ary-wj-mmod-right { display: flex; align-items: center; gap: 10px; margin-left: auto; flex: none; }
.ary-wj-mmod-info {
  border: 0; background: none; color: var(--ary-brass); font-size: 16px; line-height: 1;
  cursor: pointer; padding: 3px 5px; border-radius: 6px;
}
.ary-wj-mmod-info:hover { background: var(--ary-snow); }
.ary-wj-mmod-info.is-open { color: var(--ary-fir); }
.ary-wj-mmod-price { font-size: 14px; color: var(--ary-ink); white-space: nowrap; font-variant-numeric: tabular-nums; }
.ary-wj-pcbadge {
  align-self: flex-start; margin-top: 3px; font-size: 10px; font-weight: 700; letter-spacing: .06em;
  text-transform: uppercase; padding: 2px 8px; border-radius: 6px;
}
.ary-wj-pcbadge.is-necessary { background: rgba(13,55,45,.1); color: var(--ary-fir); }
.ary-wj-pcbadge.is-update    { background: rgba(201,168,76,.18); color: #8a6a1e; }
.ary-wj-pcbadge.is-recommended { background: var(--ary-snow); color: var(--ary-ink-soft); }

/* Pre-Checks: kompakte Piktogramm-Box (öffnet die volle Liste) */
.ary-wj-pctoggle {
  display: flex; align-items: center; gap: 14px; width: 100%; text-align: left;
  padding: 14px 16px; border: 1px solid rgba(13,55,45,.16); border-radius: 12px;
  background: #fff; cursor: pointer; transition: border-color .16s, box-shadow .16s;
}
.ary-wj-pctoggle:hover { border-color: var(--ary-fir); }
.ary-wj-pctoggle.is-open { border-color: var(--ary-fir); box-shadow: 0 0 0 2px var(--ary-fir) inset; }
.ary-wj-pcchips { display: flex; flex-wrap: wrap; gap: 6px; }
.ary-wj-pcchip {
  width: 30px; height: 30px; border-radius: 8px; background: var(--ary-snow);
  display: inline-flex; align-items: center; justify-content: center; font-size: 16px;
}
.ary-wj-pctoggle-txt { font-size: 14px; color: var(--ary-ink); font-weight: 600; }
.ary-wj-pctoggle-cta { margin-left: auto; font-size: 13px; color: var(--ary-brass); font-weight: 700; white-space: nowrap; }

/* Persönliche Zuordnung */
.ary-wj-seg { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 10px; }
.ary-wj-seg-label { font-size: 13px; color: var(--ary-ink-soft); min-width: 130px; }
.ary-wj-seg-opts { display: inline-flex; gap: 6px; flex-wrap: wrap; }
.ary-wj-gselect {
  padding: 9px 14px; border: 1px solid rgba(13,55,45,.2); border-radius: 10px; background: #fff;
  color: var(--ary-ink); font-size: 14px; min-width: 220px;
}

@media (max-width: 560px) {
  .ary-wj-dirs { grid-template-columns: 1fr; }
  .ary-wj-seg-label { min-width: 0; }
}

/* ─────────────────────────────────────────────────────────────────────────
   Secret Wishes — Überraschungs-Erlebnis (alpha.439)
   ───────────────────────────────────────────────────────────────────────── */
.ary-wj-swbody { display: flex; flex-direction: column; gap: 28px; padding-top: 6px; }
.ary-wj-suite-intro { margin: 0; color: var(--ary-ink-soft); font-size: 14.5px; line-height: 1.5; max-width: 74ch; }
.ary-wj-sw-sec { display: flex; flex-direction: column; gap: 14px; }
.ary-wj-sw-step { display: flex; align-items: center; gap: 12px; }
.ary-wj-sw-no {
  width: 26px; height: 26px; border-radius: 50%; background: var(--ary-fir); color: #fff;
  font-size: 13px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex: none;
}
.ary-wj-sw-h { font-family: var(--ary-font-serif, 'Cormorant Garamond', serif); font-size: 20px; color: var(--ary-fir); font-weight: 600; }
.ary-wj-sw-q { margin: 0; font-size: 15px; color: var(--ary-ink); }

/* Anlass-Kacheln (mit Foto + Icon-Fallback) */
.ary-wj-occs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.ary-wj-occ {
  display: flex; flex-direction: column; align-items: stretch; gap: 8px; padding: 8px 8px 12px;
  border: 1px solid rgba(13,55,45,.14); border-radius: 14px; background: #fff; cursor: pointer;
  transition: border-color .16s, box-shadow .16s, transform .16s; position: relative;
}
.ary-wj-occ:hover { transform: translateY(-2px); box-shadow: 0 14px 30px -22px rgba(13,55,45,.5); }
.ary-wj-occ.is-active { border-color: var(--ary-brass); box-shadow: 0 0 0 2px var(--ary-brass) inset; }
.ary-wj-occ-ph {
  display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: 4 / 3;
  border-radius: 10px; background: var(--ary-snow, #f5f1e8) center/cover no-repeat;
}
.ary-wj-occ-ph--icon { background: linear-gradient(135deg, rgba(201,168,76,.12), rgba(13,55,45,.06)); }
.ary-wj-occ.is-active .ary-wj-occ-ph::after {
  content: '✓'; position: absolute; top: 14px; right: 14px; width: 24px; height: 24px; border-radius: 50%;
  background: var(--ary-brass); color: var(--ary-fir-deep); font-size: 14px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
}
.ary-wj-occ-ic { font-size: 26px; line-height: 1; }
.ary-wj-occ-l { font-size: 12px; color: var(--ary-ink); text-align: center; line-height: 1.25; padding: 0 2px; }

/* saisonaler Highlight */
.ary-wj-sw-season {
  display: flex; align-items: center; gap: 14px; padding: 14px 18px; border-radius: 14px;
  background: linear-gradient(135deg, rgba(201,168,76,.16), rgba(201,168,76,.05));
  border: 1px solid rgba(201,168,76,.5); animation: aryRecoPulse 2.8s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) { .ary-wj-sw-season { animation: none; } }
.ary-wj-sw-season-ic { font-size: 22px; }
.ary-wj-sw-season-txt { display: flex; flex-direction: column; gap: 2px; flex: 1; }
.ary-wj-sw-season-txt b { color: var(--ary-brass); font-size: 13px; letter-spacing: .04em; }
.ary-wj-sw-season-txt small { color: var(--ary-ink); font-size: 14px; }
.ary-wj-sw-season-btn {
  padding: 9px 18px; border: 0; border-radius: 999px; background: var(--ary-brass);
  color: var(--ary-fir-deep); font-size: 13px; font-weight: 700; cursor: pointer; white-space: nowrap;
}
.ary-wj-sw-season-btn:hover { filter: brightness(1.05); }

/* Gestaltung — Stile (mit Foto + Icon-Fallback) */
.ary-wj-sw-styles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.ary-wj-sw-style {
  display: flex; flex-direction: column; align-items: stretch; gap: 10px; padding: 8px 8px 14px;
  border: 1px solid rgba(13,55,45,.14); border-radius: 14px; background: #fff; cursor: pointer;
  transition: border-color .16s, box-shadow .16s, transform .16s;
}
.ary-wj-sw-style:hover { transform: translateY(-2px); box-shadow: 0 14px 30px -22px rgba(13,55,45,.5); }
.ary-wj-sw-style.is-active { border-color: var(--ary-brass); box-shadow: 0 0 0 2px var(--ary-brass) inset; }
.ary-wj-sw-style-ph {
  display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: 16 / 9;
  border-radius: 10px; background: var(--ary-snow, #f5f1e8) center/cover no-repeat;
}
.ary-wj-sw-style-ph--icon { background: linear-gradient(135deg, rgba(201,168,76,.12), rgba(13,55,45,.06)); }
.ary-wj-sw-style-ic { font-size: 26px; color: var(--ary-brass); }
.ary-wj-sw-style-l { font-size: 14px; color: var(--ary-fir); font-weight: 600; text-align: center; }

.ary-wj-sw-card { display: flex; flex-direction: column; gap: 12px; }
.ary-wj-sw-card .ary-wj-card-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ary-wj-sw-card .ary-wj-field { display: flex; flex-direction: column; gap: 6px; }
.ary-wj-sw-card .ary-wj-field > span { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--ary-ink-soft); }
.ary-wj-sw-card input, .ary-wj-sw-card textarea {
  padding: 10px 12px; border: 1px solid rgba(13,55,45,.2); border-radius: 10px; background: #fff;
  color: var(--ary-ink); font-size: 14px; font-family: inherit; width: 100%; resize: vertical;
}
.ary-wj-sw-count { align-self: flex-end; font-size: 11px; color: var(--ary-ink-soft); }

/* Fundort — Zimmerbild (mit Pins) links, Liste rechts */
.ary-wj-sw-place-wrap { display: grid; grid-template-columns: 1.35fr 1fr; gap: 18px; align-items: start; }
.ary-wj-sw-place-wrap--nolvis { grid-template-columns: 1fr; }
.ary-wj-sw-room {
  position: relative; width: 100%; aspect-ratio: 3 / 2; min-height: 220px; border-radius: 16px;
  background: var(--ary-fir-deep) center/cover no-repeat; overflow: hidden;
}
.ary-wj-sw-room-cap {
  position: absolute; left: 16px; bottom: 14px; padding: 7px 14px; border-radius: 999px;
  background: rgba(201,168,76,.92); color: var(--ary-fir-deep); font-size: 13px; font-weight: 700;
  max-width: 70%;
}
/* Nummerierte Gold-Pins auf dem Bild */
.ary-wj-sw-pin {
  position: absolute; transform: translate(-50%, -50%); width: 30px; height: 30px; border-radius: 50%;
  border: 2px solid #fff; background: rgba(201,168,76,.95); color: var(--ary-fir-deep);
  font-size: 13px; font-weight: 700; cursor: pointer; display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 12px -2px rgba(8,37,30,.55); transition: transform .14s, box-shadow .14s; z-index: 2;
}
.ary-wj-sw-pin:hover { transform: translate(-50%, -50%) scale(1.12); }
.ary-wj-sw-pin.is-active {
  background: var(--ary-fir); color: #fff; transform: translate(-50%, -50%) scale(1.22);
  box-shadow: 0 0 0 4px rgba(201,168,76,.55), 0 6px 16px -3px rgba(8,37,30,.6);
}
.ary-wj-sw-places { display: grid; grid-template-columns: 1fr; gap: 8px; }
.ary-wj-sw-place-wrap--nolvis .ary-wj-sw-places { grid-template-columns: 1fr 1fr; }
.ary-wj-sw-place {
  display: flex; align-items: center; gap: 12px; padding: 11px 14px; text-align: left;
  border: 1px solid rgba(13,55,45,.16); border-radius: 10px; background: #fff; cursor: pointer;
  font-size: 14px; color: var(--ary-ink); transition: border-color .16s, background .16s;
}
.ary-wj-sw-place:hover { border-color: var(--ary-fir); }
.ary-wj-sw-place.is-active { border-color: var(--ary-fir); box-shadow: 0 0 0 2px var(--ary-fir) inset; }
.ary-wj-sw-place-no {
  width: 24px; height: 24px; border-radius: 50%; background: var(--ary-snow); color: var(--ary-fir);
  font-size: 12px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex: none;
}
.ary-wj-sw-place.is-active .ary-wj-sw-place-no { background: var(--ary-brass); color: var(--ary-fir-deep); }
.ary-wj-sw-place-custom { grid-column: 1 / -1; border-style: dashed; }
.ary-wj-sw-custom-inp {
  padding: 10px 12px; border: 1px solid rgba(13,55,45,.2); border-radius: 10px; background: #fff;
  color: var(--ary-ink); font-size: 14px; width: 100%;
}

/* Aktion */
.ary-wj-sw-actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; padding-top: 4px; border-top: 1px solid rgba(13,55,45,.1); }
.ary-wj-sw-fee { font-size: 13px; color: var(--ary-ink-soft); margin-right: auto; }
.ary-wj-sw-clear { border: 0; background: none; color: var(--ary-ink-soft); font-size: 13px; text-decoration: underline; cursor: pointer; }
.ary-wj-sw-clear:hover { color: var(--ary-ink); }
.ary-wj-sw-take { cursor: pointer; }
.ary-wj-sw-take.is-active { background: var(--ary-brass); color: var(--ary-fir-deep); }

/* Serifentitel-Hero + Full-Width */
.ary-wj-swbody--wide { gap: 30px; }
.ary-wj-sw-hero {
  margin: 0; text-align: center; font-family: var(--ary-font-serif, 'Cormorant Garamond', serif);
  font-size: clamp(26px, 3.4vw, 40px); font-weight: 600; color: var(--ary-fir); line-height: 1.1;
}
.ary-wj-swbody--wide .ary-wj-suite-intro { max-width: 78ch; margin: 0 auto; text-align: center; }

/* „Eigenes Geschenk anzeigen" — Upload + Live-Vorschau */
.ary-wj-sw-gift {
  display: flex; align-items: center; gap: 16px; padding: 14px 18px; border-radius: 14px;
  border: 1px dashed rgba(13,55,45,.28); background: rgba(255,255,255,.6);
}
.ary-wj-sw-gift-thumb {
  width: 56px; height: 56px; border-radius: 12px; flex: none; display: flex; align-items: center; justify-content: center;
  font-size: 24px; background: var(--ary-snow, #f5f1e8) center/cover no-repeat; color: var(--ary-brass);
}
.ary-wj-sw-gift-thumb.has-img { color: transparent; }
.ary-wj-sw-gift-txt { display: flex; flex-direction: column; gap: 2px; flex: 1; }
.ary-wj-sw-gift-txt b { font-size: 14px; color: var(--ary-fir); }
.ary-wj-sw-gift-txt small { font-size: 12.5px; color: var(--ary-ink-soft); }
.ary-wj-sw-gift-btn {
  padding: 9px 16px; border: 1px solid var(--ary-brass); border-radius: 999px; background: #fff;
  color: var(--ary-fir); font-size: 13px; font-weight: 600; cursor: pointer; white-space: nowrap;
}
.ary-wj-sw-gift-btn:hover { background: var(--ary-brass); color: var(--ary-fir-deep); }

@media (max-width: 900px) {
  .ary-wj-sw-place-wrap { grid-template-columns: 1fr; }
  .ary-wj-sw-places { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .ary-wj-occs { grid-template-columns: repeat(2, 1fr); }
  .ary-wj-sw-styles { grid-template-columns: 1fr; }
  .ary-wj-sw-places, .ary-wj-sw-place-wrap--nolvis .ary-wj-sw-places { grid-template-columns: 1fr; }
  .ary-wj-sw-card .ary-wj-card-row { grid-template-columns: 1fr; }
  .ary-wj-sw-gift { flex-wrap: wrap; }
}
