/* ==========================================================================
   Pauschalen by fair-web.at – Frontend Styles v1.1.0
   Design-Referenz: alpenland-lech.com
   ========================================================================== */

/* ── Custom Properties ────────────────────────────────────────────────────── */
:root {
  --pfwat-primary:      #7a6020;
  --pfwat-secondary:    #5a4510;
  --pfwat-badge-bg:     #7a6020;
  --pfwat-badge-text:   #ffffff;
  --pfwat-text:         #1a1a1a;
  --pfwat-text-light:   #666666;
  --pfwat-border:       #d4b87a;
  --pfwat-bg-light:     #faf8f4;
  --pfwat-radius:       0px;
  --pfwat-shadow:       0 2px 16px rgba(0,0,0,.07);
  --pfwat-shadow-hover: 0 6px 28px rgba(0,0,0,.13);
  --pfwat-transition:   0.22s ease;
  --pfwat-container:    1140px;
  --pfwat-gap:          1.5rem;
  --pfwat-font-serif:   Georgia, 'Times New Roman', serif;
}

/* ── Reset / Base ─────────────────────────────────────────────────────────── */
.pfwat-single-page *,
.pfwat-archive-page *,
.pfwat-liste *,
.pfwat-detail * {
  box-sizing: border-box;
}

/* ── Container ────────────────────────────────────────────────────────────── */
.pfwat-container {
  max-width: var(--pfwat-container);
  margin-inline: auto;
  padding-inline: 1.5rem;
}

/* ── Grid ─────────────────────────────────────────────────────────────────── */
.pfwat-grid { display: grid; gap: var(--pfwat-gap); }
.pfwat-grid--1 { grid-template-columns: 1fr; }
.pfwat-grid--2 { grid-template-columns: repeat(2, 1fr); }
.pfwat-grid--3 { grid-template-columns: repeat(3, 1fr); }
.pfwat-grid--4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 1024px) {
  .pfwat-grid--3,
  .pfwat-grid--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .pfwat-grid--2,
  .pfwat-grid--3,
  .pfwat-grid--4 { grid-template-columns: 1fr; }
}

/* ==========================================================================
   KARTE (Listenseite)
   ========================================================================== */

.pfwat-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid #e8e0d0;
  overflow: hidden;
  transition: box-shadow var(--pfwat-transition), transform var(--pfwat-transition);
}
.pfwat-card:hover {
  box-shadow: var(--pfwat-shadow-hover);
  transform: translateY(-2px);
}
.pfwat-card--featured {
  outline: 2px solid var(--pfwat-primary);
}

/* Bild */
.pfwat-card__image-link { display: block; overflow: hidden; }
.pfwat-card__image { aspect-ratio: 16/10; overflow: hidden; position: relative; }
.pfwat-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.45s ease;
  display: block;
}
.pfwat-card:hover .pfwat-card__image img { transform: scale(1.05); }

/* Kein Bild → Platzhalter */
.pfwat-card__image-placeholder {
  aspect-ratio: 16/10;
  background: linear-gradient(135deg, #e8e0d0 0%, #d4c9b0 100%);
  display: flex;
  align-items: center;
  justify-content: center;
}
.pfwat-card__image-placeholder svg {
  width: 48px;
  height: 48px;
  opacity: 0.35;
  color: var(--pfwat-primary);
}

/* Meta-Leiste */
.pfwat-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  padding: .85rem 1.1rem .3rem;
}

/* Body */
.pfwat-card__body { flex: 1; padding: .3rem 1.1rem .6rem; }

.pfwat-card__title {
  font-family: var(--pfwat-font-serif);
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0 0 .3rem;
  line-height: 1.3;
  color: var(--pfwat-primary);
}
.pfwat-card__title a {
  color: inherit;
  text-decoration: none;
}
.pfwat-card__title a:hover { color: var(--pfwat-secondary); }

.pfwat-card__untertitel {
  font-size: .8rem;
  color: var(--pfwat-text-light);
  margin: 0 0 .5rem;
  text-transform: uppercase;
  letter-spacing: .07em;
  font-weight: 500;
}
.pfwat-card__excerpt { font-size: .9rem; color: var(--pfwat-text-light); }
.pfwat-card__excerpt p { margin: 0; }

/* Footer */
.pfwat-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .75rem;
  padding: .75rem 1.1rem 1.1rem;
  border-top: 1px solid #ede6d8;
  margin-top: auto;
}

/* ==========================================================================
   PREIS
   ========================================================================== */

.pfwat-card__preis,
.pfwat-booking-box__preis-display {
  display: flex;
  align-items: baseline;
  gap: .3rem;
  flex-wrap: wrap;
}
.pfwat-preis-label {
  font-size: .8rem;
  color: var(--pfwat-text-light);
  font-weight: 400;
}
.pfwat-preis-value {
  font-family: var(--pfwat-font-serif);
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--pfwat-primary);
}
.pfwat-preis-hinweis {
  font-size: .8rem;
  color: var(--pfwat-text-light);
  display: block;
  margin-top: .2rem;
  font-style: italic;
}

/* ==========================================================================
   META-ITEMS
   ========================================================================== */

.pfwat-meta-item {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  font-size: .78rem;
  color: var(--pfwat-text-light);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.pfwat-meta-item svg {
  width: 13px;
  height: 13px;
  flex-shrink: 0;
}
.pfwat-meta-preis {
  color: var(--pfwat-primary);
  font-weight: 700;
  font-size: .95rem;
  text-transform: none;
}

/* ==========================================================================
   BADGE
   ========================================================================== */

.pfwat-badge {
  position: absolute;
  top: .75rem;
  left: .75rem;
  background: var(--pfwat-badge-bg);
  color: var(--pfwat-badge-text);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: .3rem .7rem;
  z-index: 2;
  line-height: 1.4;
}

/* ==========================================================================
   BUTTONS
   ========================================================================== */

.pfwat-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  padding: .6rem 1.4rem;
  font-size: .78rem;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: background var(--pfwat-transition), color var(--pfwat-transition), border-color var(--pfwat-transition);
  white-space: nowrap;
  border: 1px solid transparent;
  line-height: 1.4;
  letter-spacing: .1em;
  text-transform: uppercase;
  border-radius: 0;
}
.pfwat-btn--primary {
  background: var(--pfwat-primary);
  color: #fff;
  border-color: var(--pfwat-primary);
}
.pfwat-btn--primary:hover {
  background: var(--pfwat-secondary);
  border-color: var(--pfwat-secondary);
  color: #fff;
}
.pfwat-btn--outline {
  background: transparent;
  color: var(--pfwat-primary);
  border-color: var(--pfwat-primary);
}
.pfwat-btn--outline:hover {
  background: var(--pfwat-primary);
  color: #fff;
}
.pfwat-btn--large {
  padding: .75rem 2rem;
  font-size: .82rem;
}
.pfwat-btn--full { width: 100%; justify-content: center; }

.pfwat-card__actions { display: flex; gap: .5rem; flex-wrap: wrap; }

/* ==========================================================================
   ARCHIV-SEITE
   ========================================================================== */

.pfwat-archive-page { padding-block: 2rem 4rem; }

.pfwat-archive-header {
  text-align: center;
  padding-block: 3rem;
  background: var(--pfwat-bg-light);
  margin-bottom: 2.5rem;
  border-bottom: 1px solid #e8e0d0;
}
.pfwat-archive-title {
  font-family: var(--pfwat-font-serif);
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  color: var(--pfwat-primary);
  margin: 0 0 .5rem;
}
.pfwat-archive-description {
  color: var(--pfwat-text-light);
  max-width: 640px;
  margin-inline: auto;
  font-size: .95rem;
}

/* Filter */
.pfwat-filter-nav {
  background: #fff;
  border-bottom: 1px solid #e8e0d0;
  padding-block: .75rem;
  margin-bottom: 2rem;
  position: sticky;
  top: 0;
  z-index: 10;
}
.pfwat-filter-nav .pfwat-container {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}
.pfwat-filter-btn {
  padding: .35rem .9rem;
  font-size: .75rem;
  font-weight: 600;
  text-decoration: none;
  color: var(--pfwat-text-light);
  border: 1px solid #d4c9b0;
  letter-spacing: .07em;
  text-transform: uppercase;
  transition: all var(--pfwat-transition);
}
.pfwat-filter-btn:hover,
.pfwat-filter-btn--active {
  background: var(--pfwat-primary);
  color: #fff;
  border-color: var(--pfwat-primary);
}

/* Keine Ergebnisse */
.pfwat-no-results {
  text-align: center;
  color: var(--pfwat-text-light);
  padding: 3rem;
  font-style: italic;
}

/* Pagination */
.pfwat-archive-page .pagination,
.pfwat-archive-page .nav-links {
  display: flex;
  justify-content: center;
  gap: .5rem;
  margin-top: 3rem;
  flex-wrap: wrap;
}
.pfwat-archive-page .page-numbers {
  padding: .4rem .9rem;
  border: 1px solid #d4c9b0;
  text-decoration: none;
  color: var(--pfwat-text);
  font-size: .8rem;
  letter-spacing: .05em;
}
.pfwat-archive-page .page-numbers.current,
.pfwat-archive-page .page-numbers:hover {
  background: var(--pfwat-primary);
  color: #fff;
  border-color: var(--pfwat-primary);
}

/* ==========================================================================
   DETAIL-SEITE  (single-pauschale.php + Shortcode)
   ========================================================================== */

.pfwat-single-page,
.pfwat-detail { padding-bottom: 4rem; }

/* ── Sticky Bar ────────────────────────────────────────────────────────────── */
.pfwat-sticky-bar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 200;
  background: #fff;
  border-bottom: 2px solid var(--pfwat-border);
  transform: translateY(-100%);
  transition: transform .3s ease;
}
.pfwat-sticky-bar.is-visible { transform: translateY(0); }
.pfwat-sticky-bar__inner {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  padding-block: .6rem;
  flex-wrap: wrap;
}
.pfwat-sticky-bar__title {
  font-family: var(--pfwat-font-serif);
  font-weight: 700;
  font-size: .95rem;
  color: var(--pfwat-primary);
}
.pfwat-sticky-bar__meta {
  display: flex;
  gap: .75rem;
  font-size: .8rem;
  color: var(--pfwat-text-light);
  flex-wrap: wrap;
}
.pfwat-sticky-bar__meta strong { color: var(--pfwat-primary); }
.pfwat-sticky-bar__actions { display: flex; gap: .5rem; margin-left: auto; }

/* ── Detail Header (zentriert, wie Referenz) ──────────────────────────────── */
.pfwat-detail__header-wrap {
  text-align: center;
  padding: 2.5rem 1.5rem 1.5rem;
  max-width: var(--pfwat-container);
  margin-inline: auto;
}
.pfwat-detail__eyebrow {
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--pfwat-text-light);
  margin-bottom: .5rem;
}
.pfwat-detail__title {
  font-family: var(--pfwat-font-serif);
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  font-weight: 700;
  color: var(--pfwat-primary);
  margin: 0 0 .6rem;
  line-height: 1.2;
}
.pfwat-detail__untertitel {
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--pfwat-text-light);
  margin: 0;
}
.pfwat-detail__badge-wrap { margin-bottom: .75rem; }
.pfwat-detail__badge-wrap .pfwat-badge {
  position: static;
  display: inline-block;
}

/* ── Hero-Bild (vollbreit, unter Titel) ───────────────────────────────────── */
.pfwat-detail__hero-image {
  width: 100%;
  max-width: var(--pfwat-container);
  margin: 0 auto 2.5rem;
  padding-inline: 1.5rem;
}
.pfwat-detail__hero-image img {
  width: 100%;
  height: auto;
  max-height: 520px;
  object-fit: cover;
  display: block;
}
.pfwat-detail__hero-image--placeholder {
  width: 100%;
  max-width: var(--pfwat-container);
  margin: 0 auto 2.5rem;
  padding-inline: 1.5rem;
}
.pfwat-detail__hero-image--placeholder .pfwat-img-placeholder {
  width: 100%;
  height: 320px;
  background: linear-gradient(135deg, #ede6d8 0%, #d4c9b0 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: .75rem;
  color: var(--pfwat-primary);
  opacity: .6;
}
.pfwat-detail__hero-image--placeholder svg {
  width: 56px;
  height: 56px;
}
.pfwat-detail__hero-image--placeholder span {
  font-size: .8rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-weight: 600;
}

/* ── Galerie ──────────────────────────────────────────────────────────────── */
.pfwat-gallery {
  display: grid;
  grid-template-columns: 1fr;
  gap: .4rem;
  max-width: var(--pfwat-container);
  margin: 0 auto 2.5rem;
  padding-inline: 1.5rem;
}
.pfwat-gallery--multi {
  grid-template-columns: 2fr 1fr;
  grid-template-rows: auto auto;
}
.pfwat-gallery__item { overflow: hidden; }
.pfwat-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
  cursor: zoom-in;
}
.pfwat-gallery__item:hover img { transform: scale(1.03); }
.pfwat-gallery__item:first-child { aspect-ratio: 16/8; }
.pfwat-gallery--multi .pfwat-gallery__item:first-child {
  grid-row: 1 / 3;
  aspect-ratio: auto;
  min-height: 300px;
}
.pfwat-gallery--multi .pfwat-gallery__item:not(:first-child) { aspect-ratio: 4/3; }

@media (max-width: 640px) {
  .pfwat-gallery--multi { grid-template-columns: 1fr; grid-template-rows: auto; }
  .pfwat-gallery--multi .pfwat-gallery__item:first-child { grid-row: auto; aspect-ratio: 16/9; }
}

/* ── Content-Layout (2 Spalten: Text + Preis-Box) ─────────────────────────── */
.pfwat-detail__body {
  max-width: var(--pfwat-container);
  margin-inline: auto;
  padding-inline: 1.5rem;
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 3rem;
  align-items: start;
}
@media (max-width: 900px) {
  .pfwat-detail__body {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .pfwat-detail__sidebar { order: -1; }
}

/* ── Hauptinhalt ──────────────────────────────────────────────────────────── */
.pfwat-detail__description {
  font-size: .95rem;
  line-height: 1.75;
  color: var(--pfwat-text);
  margin-bottom: 2rem;
}
.pfwat-detail__description ul {
  padding-left: 1.2rem;
  margin: .75rem 0;
}
.pfwat-detail__description li { margin-bottom: .4rem; }
.pfwat-detail__description a { color: var(--pfwat-primary); }

/* ── Leistungen ───────────────────────────────────────────────────────────── */
.pfwat-detail__leistungen { margin-top: 1.75rem; }

.pfwat-leistungen-title {
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--pfwat-primary);
  margin: 0 0 1rem;
  padding-bottom: .6rem;
  border-bottom: 1px solid var(--pfwat-border);
}
.pfwat-leistungen-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.pfwat-leistungen-list li {
  display: flex;
  align-items: flex-start;
  gap: .65rem;
  font-size: .9rem;
  line-height: 1.6;
  padding: .35rem 0;
  border-bottom: 1px solid #f0e8d8;
  color: var(--pfwat-text);
}
.pfwat-leistungen-list li:last-child { border-bottom: none; }
.pfwat-leistungen-list li::before {
  content: "";
  display: inline-block;
  width: 16px;
  height: 16px;
  min-width: 16px;
  margin-top: .15rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237a6020' stroke-width='2.5'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
}

/* ── CTA-Buttons (unter Leistungen) ──────────────────────────────────────── */
.pfwat-detail__cta {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 2rem;
  padding-top: 1.75rem;
  border-top: 1px solid #e8e0d0;
}

/* ── Preis-Box (Sidebar, floating) ───────────────────────────────────────── */
.pfwat-booking-box {
  border: 1px solid var(--pfwat-border);
  background: #fff;
  padding: 1.5rem;
  position: sticky;
  top: 5rem;
}
.pfwat-booking-box__preis-display {
  flex-direction: column;
  align-items: flex-start;
  gap: .1rem;
  padding-bottom: 1.25rem;
  margin-bottom: 1.25rem;
  border-bottom: 1px solid #e8e0d0;
}
.pfwat-booking-box__preis-display .pfwat-preis-value {
  font-size: 1.9rem;
  line-height: 1.1;
}
.pfwat-booking-box__preis-display .pfwat-preis-label {
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.pfwat-booking-box__details {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .45rem .75rem;
  font-size: .85rem;
  margin: 0 0 1.25rem;
}
.pfwat-booking-box__details dt {
  color: var(--pfwat-text-light);
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .07em;
  font-weight: 600;
}
.pfwat-booking-box__details dd {
  margin: 0;
  font-weight: 500;
  color: var(--pfwat-text);
}

.pfwat-booking-box__actions {
  display: flex;
  flex-direction: column;
  gap: .5rem;
}

/* ── Info-Tabelle ─────────────────────────────────────────────────────────── */
.pfwat-detail__info-table {
  margin-top: 2rem;
  border: 1px solid #e8e0d0;
}
.pfwat-detail__info-table table { width: 100%; border-collapse: collapse; }
.pfwat-detail__info-table th,
.pfwat-detail__info-table td {
  padding: .6rem .9rem;
  text-align: left;
  font-size: .875rem;
  border-bottom: 1px solid #f0e8d8;
}
.pfwat-detail__info-table tr:last-child th,
.pfwat-detail__info-table tr:last-child td { border-bottom: none; }
.pfwat-detail__info-table th {
  width: 40%;
  background: var(--pfwat-bg-light);
  font-weight: 600;
  color: var(--pfwat-text-light);
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .07em;
}

/* ==========================================================================
   LIGHTBOX
   ========================================================================== */

#pfwat-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity .25s;
}
#pfwat-lightbox.is-open { opacity: 1; }
.pfwat-lb__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.9);
}
.pfwat-lb__content {
  position: relative;
  z-index: 1;
  max-width: 90vw;
  max-height: 90vh;
  display: flex;
  align-items: center;
  gap: 1rem;
}
.pfwat-lb__img {
  max-width: 80vw;
  max-height: 85vh;
  object-fit: contain;
  display: block;
}
.pfwat-lb__close {
  position: absolute;
  top: -2.5rem;
  right: 0;
  background: none;
  border: none;
  color: #fff;
  font-size: 2rem;
  cursor: pointer;
  line-height: 1;
}
.pfwat-lb__prev,
.pfwat-lb__next {
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.25);
  color: #fff;
  font-size: 2rem;
  cursor: pointer;
  padding: .3rem .7rem;
  line-height: 1;
  transition: background .2s;
  flex-shrink: 0;
}
.pfwat-lb__prev:hover,
.pfwat-lb__next:hover { background: rgba(255,255,255,.25); }
.pfwat-lb__counter {
  position: absolute;
  bottom: -2rem;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255,255,255,.6);
  font-size: .8rem;
  white-space: nowrap;
}
