/* =====================================================================
   Aceite de Calabaza — Landing page styles
   Brand: KraftES · uses tokens from colors_and_type.css
   ===================================================================== */

/* -----------------------------------------------------------------
   ACCENT TOKEN — driven by Tweaks panel
   ----------------------------------------------------------------- */
:root {
  --accent-pl:        var(--color-sage);
  --accent-pl-deep:   var(--color-sage-deep);
  --accent-pl-soft:   var(--color-sage-soft);
  --accent-pl-on:     var(--color-cream);
}
body[data-accent="gold"] {
  --accent-pl:        var(--color-gold);
  --accent-pl-deep:   var(--color-gold-deep);
  --accent-pl-soft:   var(--color-gold-soft);
  --accent-pl-on:     var(--color-brown);
}
body[data-accent="lavender"] {
  --accent-pl:        var(--color-lavender);
  --accent-pl-deep:   var(--color-lavender-deep);
  --accent-pl-soft:   var(--color-lavender-soft);
  --accent-pl-on:     var(--color-cream);
}

/* -----------------------------------------------------------------
   BASE
   ----------------------------------------------------------------- */
html { scroll-behavior: smooth; }
body {
  background: var(--bg-page);
  color: var(--fg-primary);
  margin: 0;
}
body.tweaks-hide-pairings #pairings,
body.tweaks-hide-faq #faq { display: none; }

main { display: block; }
img { display: block; max-width: 100%; }
ul { padding: 0; margin: 0; list-style: none; }

/* Smooth fade-in on load */
@keyframes pl-fade-up {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: none; }
}

/* -----------------------------------------------------------------
   TOPBAR (shipping line, sits above the header, scrolls away)
   ----------------------------------------------------------------- */
.pl-topbar {
  background: var(--color-sage-deep);
  color: var(--color-cream-warm);
  padding: 10px 16px;
  text-align: center;
  position: relative;
}
.pl-topbar::after {
  /* hairline gold seam under the bar */
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--color-gold) 30%, var(--color-gold) 70%, transparent);
  opacity: 0.5;
}
.pl-topbar__inner {
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0.04em;
  color: var(--color-cream-warm);
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  line-height: 1.3;
}
.pl-topbar__inner em {
  font-family: var(--font-serif-italic);
  font-style: italic;
  font-weight: 500;
  color: var(--color-gold-soft);
  font-size: 14px;
  letter-spacing: 0.01em;
}
.pl-topbar__sep {
  color: var(--color-gold);
  margin: 0 2px;
}
.pl-topbar__dot {
  width: 4px;
  height: 4px;
  background: var(--color-gold);
  border-radius: 50%;
  display: inline-block;
}
@media (max-width: 520px) {
  .pl-topbar { padding: 8px 12px; }
  .pl-topbar__inner { font-size: 12px; gap: 8px; }
  .pl-topbar__inner em { font-size: 13px; }
}

/* -----------------------------------------------------------------
   HEADER
   ----------------------------------------------------------------- */
.pl-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(253, 250, 244, 0.92);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--color-line);
}
.pl-header__inner {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 14px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}
.pl-header__logo img { height: 42px; }
.pl-header__actions {
  display: flex;
  align-items: center;
  gap: 16px;
}
.pl-nav {
  display: flex;
  gap: 28px;
}
.pl-nav a {
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--color-brown);
  background: none;
  padding: 6px 2px;
}
.pl-nav a:hover { background-size: 100% 1px; }

.pl-header__cta {
  font-size: 13px;
  padding: 9px 18px;
}

/* -----------------------------------------------------------------
   LANGUAGE SWITCHER
   ----------------------------------------------------------------- */
.pl-lang {
  position: relative;
}
.pl-lang__trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 10px 7px 9px;
  background: transparent;
  border: 1px solid transparent;
  border-radius: var(--radius-md);
  color: var(--color-brown);
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  transition:
    background-color var(--motion-base) var(--ease-soft),
    border-color var(--motion-base) var(--ease-soft),
    color var(--motion-base) var(--ease-soft);
}
.pl-lang__trigger:hover {
  background: var(--color-cream-warm);
  border-color: var(--color-gold-soft);
}
.pl-lang__trigger:focus-visible {
  outline: none;
  background: var(--color-cream-warm);
  border-color: var(--color-gold);
  box-shadow: 0 0 0 3px var(--color-gold-soft);
}
.pl-lang__trigger[aria-expanded="true"] {
  background: var(--color-cream-warm);
  border-color: var(--color-gold-soft);
}
.pl-lang__globe {
  width: 14px;
  height: 14px;
  color: var(--color-gold-deep);
  flex-shrink: 0;
}
.pl-lang__code {
  letter-spacing: 0.1em;
}
.pl-lang__chev {
  width: 9px;
  height: 6px;
  color: var(--color-brown-soft);
  flex-shrink: 0;
  transition: transform var(--motion-base) var(--ease-soft);
}
.pl-lang__trigger[aria-expanded="true"] .pl-lang__chev {
  transform: rotate(180deg);
}

/* Menu */
.pl-lang__menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 220px;
  margin: 0;
  padding: 8px;
  list-style: none;
  background: var(--color-cream);
  border: 1px solid var(--color-gold-soft);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lift);
  z-index: 60;
  animation: pl-lang-in 220ms var(--ease-soft);
}
.pl-lang__menu[hidden] { display: none; }
@keyframes pl-lang-in {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: none; }
}
.pl-lang__menu li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 9px 12px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  position: relative;
  transition: background-color var(--motion-fast) var(--ease-soft);
}
.pl-lang__menu li:hover {
  background: var(--color-cream-warm);
}
.pl-lang__menu li[aria-selected="true"] {
  background: var(--color-cream-warm);
}
.pl-lang__menu li[aria-selected="true"]::before {
  /* small gold dot for the active language */
  content: '';
  position: absolute;
  left: 4px;
  top: 50%;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--color-gold);
  transform: translateY(-50%);
}
.pl-lang__menu li[aria-selected="true"] {
  padding-left: 18px;
}
.pl-lang__menu li[data-status="soon"] {
  /* keep clickable, just visually softer */
  color: var(--color-brown-soft);
}
.pl-lang__menu li[data-status="soon"]::after {
  content: 'Pronto';
  position: absolute;
  right: 36px;
  font-family: var(--font-serif-italic);
  font-style: italic;
  font-weight: 400;
  font-size: 11px;
  letter-spacing: 0;
  text-transform: none;
  color: var(--color-gold-deep);
  opacity: 0;
  transition: opacity var(--motion-base) var(--ease-soft);
}
.pl-lang__menu li[data-status="soon"]:hover::after {
  opacity: 1;
}
.pl-lang__name {
  font-family: var(--font-serif-display);
  font-size: 16px;
  font-weight: 500;
  color: var(--color-brown);
  line-height: 1.2;
}
.pl-lang__menu li[data-status="soon"] .pl-lang__name {
  color: var(--color-brown-soft);
}
.pl-lang__iso {
  font-family: var(--font-sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-brown-faint);
  background: var(--color-parchment);
  padding: 2px 7px;
  border-radius: var(--radius-pill);
}
/* Native Arabic glyph needs a tiny bump */
.pl-lang__menu li[lang="ar"] .pl-lang__name {
  font-family: var(--font-serif-display), 'Noto Naskh Arabic', serif;
  font-size: 18px;
  direction: rtl;
}

/* "Próximamente" notice that appears below the trigger after clicking
   a soon-to-be language. Positioned absolutely so it doesn't shift layout. */
.pl-lang__soon {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  margin: 0;
  padding: 10px 14px;
  background: var(--color-sage-deep);
  color: var(--color-cream);
  border-radius: var(--radius-md);
  font-family: var(--font-sans);
  font-size: 12px;
  line-height: 1.4;
  white-space: nowrap;
  box-shadow: var(--shadow-lift);
  z-index: 60;
  animation: pl-lang-in 220ms var(--ease-soft);
}
.pl-lang__soon em {
  font-family: var(--font-serif-italic);
  font-style: italic;
  font-weight: 400;
  color: var(--color-gold-soft);
  margin-right: 6px;
}
.pl-lang__soon[hidden] { display: none; }

/* -----------------------------------------------------------------
   SHARED — buttons override + section frame
   ----------------------------------------------------------------- */
.btn-accent {
  background: var(--accent-pl);
  color: var(--accent-pl-on);
  box-shadow: var(--shadow-soft);
  border: 0;
  border-radius: var(--radius-md);
  padding: 14px 28px;
  font-family: var(--font-sans);
  font-size: 15px;
  font-weight: 500;
  cursor: pointer;
  transition:
    background-color var(--motion-base) var(--ease-soft),
    transform var(--motion-fast) var(--ease-soft),
    box-shadow var(--motion-base) var(--ease-soft);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.btn-accent:hover {
  background: var(--accent-pl-deep);
  box-shadow: var(--shadow-lift);
}
.btn-accent:active { transform: scale(0.98); }
.btn-accent.btn-lg { padding: 18px 36px; font-size: 16px; }

.btn-outline-brown {
  background: transparent;
  color: var(--color-brown);
  box-shadow: inset 0 0 0 1.5px var(--color-brown);
  border: 0;
  border-radius: var(--radius-md);
  padding: 14px 24px;
  font-family: var(--font-sans);
  font-size: 15px;
  font-weight: 500;
  cursor: pointer;
  transition:
    background-color var(--motion-base) var(--ease-soft),
    transform var(--motion-fast) var(--ease-soft);
}
.btn-outline-brown:hover { background: rgba(44, 26, 14, 0.06); }
.btn-outline-brown:active { transform: scale(0.98); }

.pl-section {
  padding: 120px 32px;
}
.pl-section__inner {
  max-width: var(--content-max);
  margin: 0 auto;
}
.pl-section__head {
  text-align: center;
  margin-bottom: 64px;
}
.pl-eyebrow {
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--color-gold-deep);
  display: block;
  margin-bottom: 14px;
}
.pl-h2 {
  font-family: var(--font-serif-display);
  font-size: 56px;
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -0.005em;
  color: var(--fg-primary);
  margin: 0 0 16px;
  text-wrap: balance;
}
.pl-flourish {
  font-family: var(--font-serif-italic);
  font-style: italic;
  font-weight: 400;
  font-size: 22px;
  line-height: 1.3;
  color: var(--accent-pl-deep);
  display: block;
}
.pl-flourish--dashed::before { content: "— "; }
.pl-flourish--dashed::after  { content: " —"; }

/* Ornate divider (gold rule with diamond) — reused */
.pl-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin: 32px auto;
  max-width: 200px;
}
.pl-divider::before,
.pl-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--color-gold);
}
.pl-divider__diamond {
  width: 7px; height: 7px;
  background: var(--color-gold);
  transform: rotate(45deg);
  flex-shrink: 0;
}

/* -----------------------------------------------------------------
   HERO
   ----------------------------------------------------------------- */
.pl-hero {
  position: relative;
  background: var(--color-cream);
  padding: 80px 32px 120px;
  overflow: hidden;
}
.pl-hero::before {
  /* warm wash behind hero, like golden hour */
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 80% 20%, rgba(200, 169, 110, 0.15), transparent 55%),
    radial-gradient(ellipse at 10% 90%, rgba(107, 122, 75, 0.10), transparent 50%);
  pointer-events: none;
}
.pl-hero__inner {
  position: relative;
  max-width: var(--content-max);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 80px;
  align-items: center;
}
.pl-hero__copy {
  animation: pl-fade-up 600ms var(--ease-soft) both;
}
.pl-hero__copy .pl-eyebrow { margin-bottom: 22px; }
.pl-hero h1 {
  font-family: var(--font-serif-display);
  font-size: 88px;
  font-weight: 500;
  line-height: 0.98;
  letter-spacing: -0.01em;
  color: var(--fg-primary);
  margin: 0 0 8px;
  text-wrap: balance;
}
.pl-hero h1 em {
  display: block;
  font-family: var(--font-serif-italic);
  font-style: italic;
  font-weight: 400;
  font-size: 64px;
  line-height: 1.05;
  color: var(--accent-pl-deep);
  margin-top: 6px;
}
.pl-hero__lede {
  font-family: var(--font-sans);
  font-size: 19px;
  line-height: 1.55;
  color: var(--color-brown-soft);
  max-width: 500px;
  margin: 28px 0 36px;
}
.pl-hero__cta-row {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 32px;
}
.pl-hero__process {
  font-family: var(--font-sans);
  font-size: 13px;
  letter-spacing: 0.04em;
  color: var(--color-brown-soft);
  display: flex;
  flex-wrap: wrap;
  gap: 6px 0;
}
.pl-hero__process span + span::before {
  content: '·';
  color: var(--color-gold-deep);
  margin: 0 12px;
  font-weight: 600;
}

/* Hero product visual */
.pl-hero__visual {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 5;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: pl-fade-up 800ms 100ms var(--ease-soft) both;
}
.pl-hero__visual .pl-hero__bottle {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-deep);
  display: block;
}
.pl-hero__seal {
  position: absolute;
  bottom: -28px;
  left: -28px;
  width: 168px;
  height: 168px;
  border-radius: 50%;
  background: var(--color-label);
  box-shadow: var(--shadow-lift);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 18px;
  border: 1px solid var(--color-gold-soft);
  transform: rotate(-6deg);
}
.pl-hero__seal::before,
.pl-hero__seal::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  border: 1px solid var(--color-gold);
  pointer-events: none;
}
.pl-hero__seal::before { inset: 8px; opacity: 0.6; }
.pl-hero__seal::after  { inset: 14px; opacity: 0.35; border-style: dashed; }
.pl-hero__seal-eyebrow {
  font-family: var(--font-sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-gold-deep);
  margin-bottom: 4px;
}
.pl-hero__seal-line {
  font-family: var(--font-serif-italic);
  font-style: italic;
  font-size: 16px;
  line-height: 1.2;
  color: var(--color-sage-deep);
  text-wrap: balance;
}

/* -----------------------------------------------------------------
   PROCESS (3 steps)
   ----------------------------------------------------------------- */
.pl-process {
  background: var(--color-cream-warm);
  position: relative;
}
.pl-process__steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 48px;
  margin-top: 24px;
  position: relative;
}
.pl-process__steps::before {
  /* dotted connector line behind cards */
  content: '';
  position: absolute;
  top: 64px;
  left: 12%;
  right: 12%;
  border-top: 1px dashed var(--color-gold);
  opacity: 0.5;
  z-index: 0;
}
.pl-process__step {
  position: relative;
  z-index: 1;
  text-align: center;
  padding: 0 12px;
}
.pl-process__num {
  width: 128px;
  height: 128px;
  border-radius: 50%;
  background: var(--color-cream);
  margin: 0 auto 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-serif-display);
  font-style: italic;
  font-size: 42px;
  color: var(--accent-pl-deep);
  box-shadow:
    inset 0 0 0 1px var(--color-gold-soft),
    var(--shadow-soft);
  position: relative;
}
.pl-process__num::after {
  content: '';
  position: absolute;
  inset: 8px;
  border: 1px solid var(--color-gold);
  border-radius: 50%;
  opacity: 0.4;
}
.pl-process__step h3 {
  font-family: var(--font-serif-display);
  font-size: 28px;
  font-weight: 500;
  margin: 0 0 12px;
  color: var(--fg-primary);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.pl-process__step p {
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-brown-soft);
  max-width: 320px;
  margin: 0 auto;
}

/* -----------------------------------------------------------------
   FORMATS
   ----------------------------------------------------------------- */
.pl-formats {
  background: var(--color-cream);
}
.pl-formats__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
}
.pl-format {
  background: var(--color-label);
  border-radius: var(--radius-lg);
  padding: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: var(--shadow-soft);
  transition:
    box-shadow var(--motion-base) var(--ease-soft),
    transform var(--motion-base) var(--ease-soft);
  position: relative;
}
.pl-format:hover { box-shadow: var(--shadow-lift); transform: translateY(-2px); }
.pl-format__visual {
  aspect-ratio: 4 / 3;
  background: var(--color-cream-warm);
  position: relative;
  border-bottom: 1px solid var(--color-gold-soft);
}
.pl-format__visual .pl-format__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.pl-format__body {
  padding: 36px 36px 32px;
  text-align: center;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.pl-format__name {
  font-family: var(--font-serif-display);
  font-size: 38px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin: 0 0 4px;
  color: var(--fg-primary);
}
.pl-format__sub {
  font-family: var(--font-serif-italic);
  font-style: italic;
  font-size: 18px;
  color: var(--accent-pl-deep);
  margin-bottom: 18px;
}
.pl-format__desc {
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-brown-soft);
  margin: 0 auto 24px;
  max-width: 360px;
}
.pl-format__divider {
  width: 60px;
  height: 1px;
  background: var(--color-gold);
  margin: 0 auto 24px;
}
.pl-format__price-note {
  font-family: var(--font-serif-italic);
  font-style: italic;
  font-size: 14px;
  color: var(--color-brown-soft);
  margin-bottom: 22px;
}
.pl-format__cta {
  align-self: center;
}

/* -----------------------------------------------------------------
   ORIGIN — ornate framed editorial
   ----------------------------------------------------------------- */
.pl-origin {
  background: var(--color-cream);
  position: relative;
}
.pl-origin__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.pl-origin__photo {
  position: relative;
  margin: 0;
  aspect-ratio: 4 / 5;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-deep);
  background: var(--color-cream-warm);
}
.pl-origin__photo::after {
  /* thin gold inner frame, as the brand's labels do */
  content: '';
  position: absolute;
  inset: 12px;
  border: 1px solid rgba(200, 169, 110, 0.5);
  border-radius: calc(var(--radius-lg) - 8px);
  pointer-events: none;
}
.pl-origin__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.pl-origin__text h2 {
  font-family: var(--font-serif-display);
  font-size: 56px;
  font-weight: 500;
  line-height: 1.05;
  margin: 12px 0 24px;
  color: var(--fg-primary);
  text-wrap: balance;
}
.pl-origin__text h2 em {
  font-family: var(--font-serif-italic);
  font-weight: 400;
  color: var(--accent-pl-deep);
  display: block;
}
.pl-origin__text p {
  font-family: var(--font-sans);
  font-size: 17px;
  line-height: 1.7;
  color: var(--color-brown-soft);
  margin: 0 0 18px;
  max-width: 480px;
}
.pl-origin__text p:last-child { margin-bottom: 0; }
.pl-origin__quote {
  font-family: var(--font-serif-italic);
  font-style: italic;
  font-size: 22px;
  line-height: 1.4;
  color: var(--fg-primary);
  border-left: 2px solid var(--color-gold);
  padding-left: 20px;
  margin-top: 32px;
  max-width: 460px;
}

/* -----------------------------------------------------------------
   MATERIA PRIMA — real photo of seed selection
   ----------------------------------------------------------------- */
.pl-source {
  background: var(--color-cream);
}
.pl-source__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.pl-source__text .pl-eyebrow { margin-bottom: 16px; }
.pl-source__text h2 {
  font-family: var(--font-serif-display);
  font-size: 56px;
  font-weight: 500;
  line-height: 1.05;
  margin: 0 0 24px;
  color: var(--fg-primary);
  text-wrap: balance;
}
.pl-source__text h2 em {
  display: block;
  font-family: var(--font-serif-italic);
  font-style: italic;
  font-weight: 400;
  color: var(--accent-pl-deep);
}
.pl-source__text p {
  font-family: var(--font-sans);
  font-size: 17px;
  line-height: 1.7;
  color: var(--color-brown-soft);
  margin: 0 0 18px;
  max-width: 480px;
}
.pl-source__process {
  margin-top: 28px !important;
  font-size: 13px !important;
  letter-spacing: 0.04em;
  color: var(--color-brown-soft);
  display: flex;
  flex-wrap: wrap;
}
.pl-source__process span + span::before {
  content: '·';
  color: var(--color-gold-deep);
  margin: 0 12px;
  font-weight: 600;
}
.pl-source__photo {
  margin: 0;
  aspect-ratio: 4 / 5;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-deep);
  background: var(--color-cream-warm);
  position: relative;
}
.pl-source__photo::after {
  content: '';
  position: absolute;
  inset: 12px;
  border: 1px solid rgba(200, 169, 110, 0.4);
  border-radius: calc(var(--radius-lg) - 8px);
  pointer-events: none;
}
.pl-source__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* -----------------------------------------------------------------
   EN EL OBRADOR — real photo of the press
   ----------------------------------------------------------------- */
.pl-press {
  background: var(--color-cream-warm);
  position: relative;
}
.pl-press::before {
  /* subtle warm wash behind the press card */
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 80% 30%, rgba(200, 169, 110, 0.16), transparent 55%),
    radial-gradient(ellipse at 10% 90%, rgba(107, 122, 75, 0.08), transparent 50%);
  pointer-events: none;
}
.pl-press__inner {
  position: relative;
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  gap: 72px;
  align-items: center;
}
.pl-press__photo {
  margin: 0;
  aspect-ratio: 4 / 5;
  border-radius: var(--radius-lg);
  background: var(--color-cream);
  box-shadow: var(--shadow-lift);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 28px;
  overflow: hidden;
}
.pl-press__photo::before {
  /* paper-grain wash */
  content: '';
  position: absolute;
  inset: 0;
  background-image: url('assets/texture-paper.svg');
  background-size: 240px;
  opacity: 0.18;
  pointer-events: none;
}
.pl-press__photo::after {
  /* gold hairline inner frame, like the brand's labels */
  content: '';
  position: absolute;
  inset: 14px;
  border: 1px solid rgba(200, 169, 110, 0.5);
  border-radius: calc(var(--radius-lg) - 10px);
  pointer-events: none;
}
.pl-press__photo img {
  position: relative;
  z-index: 1;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
  filter: drop-shadow(0 12px 24px rgba(44, 26, 14, 0.18));
}
.pl-press__text h2 {
  font-family: var(--font-serif-display);
  font-size: 60px;
  font-weight: 500;
  line-height: 1.05;
  margin: 16px 0 24px;
  color: var(--fg-primary);
  text-wrap: balance;
}
.pl-press__text h2 em {
  display: block;
  font-family: var(--font-serif-italic);
  font-style: italic;
  font-weight: 400;
  color: var(--accent-pl-deep);
}
.pl-press__text p {
  font-family: var(--font-sans);
  font-size: 17px;
  line-height: 1.7;
  color: var(--color-brown-soft);
  margin: 0 0 18px;
  max-width: 500px;
}
.pl-press__quote {
  font-family: var(--font-serif-italic);
  font-style: italic;
  font-size: 22px;
  line-height: 1.45;
  color: var(--fg-primary);
  border-left: 2px solid var(--color-gold);
  padding-left: 20px;
  margin: 32px 0 0;
  max-width: 500px;
  text-wrap: balance;
}

@media (max-width: 960px) {
  .pl-source__inner,
  .pl-press__inner { grid-template-columns: 1fr; gap: 48px; }
  .pl-source__text h2,
  .pl-press__text h2 { font-size: 40px; }
  .pl-source__photo,
  .pl-press__photo { max-width: 460px; margin: 0 auto; }
}

/* -----------------------------------------------------------------
   BENEFICIOS
   ----------------------------------------------------------------- */
.pl-benefits {
  background: var(--color-cream-warm);
  position: relative;
}
.pl-benefits__inner {
  max-width: 780px;
  margin: 0 auto;
  text-align: center;
}
.pl-benefits__lede {
  font-family: var(--font-serif-italic);
  font-style: italic;
  font-weight: 400;
  font-size: 26px;
  line-height: 1.5;
  color: var(--fg-primary);
  margin: 0 0 28px;
  text-wrap: balance;
}
.pl-benefits__chips {
  list-style: none;
  padding: 0;
  margin: 0 auto 44px;
  max-width: 720px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
}
.pl-benefits__chips li {
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--color-sage-deep);
  padding: 8px 16px;
  background: var(--color-cream);
  border: 1px solid var(--color-gold-soft);
  border-radius: var(--radius-pill);
  white-space: nowrap;
}
.pl-benefits__intro {
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-kraft-deep);
  margin: 0 0 24px;
}
.pl-benefits__list {
  list-style: none;
  padding: 0;
  margin: 0 0 48px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  text-align: left;
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
}
.pl-benefits__list li {
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: 16px;
  align-items: baseline;
  font-family: var(--font-sans);
  font-size: 18px;
  line-height: 1.55;
  color: var(--fg-primary);
  padding: 14px 18px;
  background: var(--color-cream);
  border-radius: var(--radius-md);
  border-left: 2px solid transparent;
  transition: border-color var(--motion-base) var(--ease-soft),
              background-color var(--motion-base) var(--ease-soft);
}
.pl-benefits__list li:hover {
  border-left-color: var(--color-gold);
  background: var(--color-cream);
}
.pl-benefits__mark {
  width: 8px;
  height: 8px;
  background: var(--color-gold);
  border-radius: 50%;
  display: inline-block;
  position: relative;
  top: 2px;
  justify-self: center;
  box-shadow: 0 0 0 4px rgba(200, 169, 110, 0.18);
}
.pl-benefits__quote {
  margin: 0 auto;
  padding: 36px 48px;
  max-width: 640px;
  background: var(--color-cream);
  border: 1px solid var(--color-gold-soft);
  border-radius: var(--radius-lg);
  position: relative;
  box-shadow: var(--shadow-soft);
}
.pl-benefits__quote::before,
.pl-benefits__quote::after {
  /* small ornate corner dots, KraftES label style */
  content: '';
  position: absolute;
  width: 6px;
  height: 6px;
  background: var(--color-gold);
  transform: rotate(45deg);
}
.pl-benefits__quote::before { top: 14px; left: 14px; }
.pl-benefits__quote::after  { bottom: 14px; right: 14px; }
.pl-benefits__quote p {
  font-family: var(--font-serif-display);
  font-style: italic;
  font-weight: 500;
  font-size: 24px;
  line-height: 1.4;
  color: var(--color-sage-deep);
  margin: 0;
  text-wrap: balance;
}

@media (max-width: 960px) {
  .pl-benefits__lede { font-size: 21px; }
  .pl-benefits__list li { font-size: 16px; padding: 12px 14px; }
  .pl-benefits__quote { padding: 28px 24px; }
  .pl-benefits__quote p { font-size: 20px; }
}

/* -----------------------------------------------------------------
   PAIRINGS
   ----------------------------------------------------------------- */
.pl-pairings {
  background: var(--color-sage-deep);
  color: var(--color-cream);
  position: relative;
}
.pl-pairings::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url('assets/texture-paper.svg');
  background-size: 280px;
  opacity: 0.08;
  pointer-events: none;
}
.pl-pairings .pl-eyebrow { color: var(--color-gold); }
.pl-pairings .pl-h2 { color: var(--color-cream); }
.pl-pairings .pl-flourish { color: var(--color-gold-soft); }
.pl-pairings__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  position: relative;
}
.pl-pairing {
  background: rgba(253, 250, 244, 0.06);
  border: 1px solid rgba(232, 221, 192, 0.18);
  border-radius: var(--radius-lg);
  padding: 32px 24px;
  text-align: center;
  transition:
    background-color var(--motion-base) var(--ease-soft),
    transform var(--motion-base) var(--ease-soft);
}
.pl-pairing:hover {
  background: rgba(253, 250, 244, 0.11);
  transform: translateY(-2px);
}
.pl-pairing__num {
  font-family: var(--font-serif-italic);
  font-style: italic;
  font-size: 14px;
  letter-spacing: 0.08em;
  color: var(--color-gold);
  margin-bottom: 14px;
}
.pl-pairing h3 {
  font-family: var(--font-serif-display);
  font-size: 24px;
  font-weight: 500;
  margin: 0 0 10px;
  color: var(--color-cream);
  line-height: 1.2;
  text-wrap: balance;
}
.pl-pairing p {
  font-family: var(--font-sans);
  font-size: 14px;
  line-height: 1.55;
  color: var(--color-gold-soft);
  margin: 0;
}

/* -----------------------------------------------------------------
   FAQ
   ----------------------------------------------------------------- */
.pl-faq { background: var(--color-cream); }
.pl-faq__list {
  max-width: 800px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.pl-faq details {
  border-bottom: 1px solid var(--color-line);
  padding: 24px 0;
}
.pl-faq details:first-child { border-top: 1px solid var(--color-line); }
.pl-faq summary {
  font-family: var(--font-serif-display);
  font-size: 24px;
  font-weight: 500;
  color: var(--fg-primary);
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  line-height: 1.3;
}
.pl-faq summary::-webkit-details-marker { display: none; }
.pl-faq summary::after {
  content: '+';
  font-family: var(--font-serif-display);
  font-size: 28px;
  color: var(--accent-pl-deep);
  font-weight: 400;
  line-height: 1;
  transition: transform var(--motion-base) var(--ease-soft);
  flex-shrink: 0;
}
.pl-faq details[open] summary::after { transform: rotate(45deg); }
.pl-faq__answer {
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.7;
  color: var(--color-brown-soft);
  padding: 16px 60px 0 0;
  max-width: 680px;
}

/* -----------------------------------------------------------------
   ENCARGO (form)
   ----------------------------------------------------------------- */
.pl-encargo {
  background: var(--color-kraft);
  background-image: url('assets/texture-kraft.svg');
  background-size: 320px;
  position: relative;
  color: var(--color-brown);
}
.pl-encargo .pl-eyebrow { color: var(--color-kraft-deep); }
.pl-encargo .pl-h2 { color: var(--color-brown); }
.pl-encargo .pl-flourish { color: var(--color-sage-deep); }

.pl-encargo__inner {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 64px;
  align-items: start;
}
.pl-encargo__pitch {
  position: sticky;
  top: 100px;
}
.pl-encargo__pitch p {
  font-family: var(--font-sans);
  font-size: 17px;
  line-height: 1.6;
  color: var(--color-brown);
  margin: 24px 0 18px;
  max-width: 420px;
}
.pl-encargo__reassure {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: 24px;
}
.pl-encargo__reassure li {
  font-family: var(--font-sans);
  font-size: 14px;
  color: var(--color-brown);
  line-height: 1.5;
  padding-left: 22px;
  position: relative;
}
.pl-encargo__reassure li::before {
  content: '·';
  position: absolute;
  left: 0;
  top: -4px;
  color: var(--color-sage-deep);
  font-size: 28px;
  line-height: 1;
}

.pl-encargo__form-wrap {
  background: var(--color-cream);
  border-radius: var(--radius-lg);
  padding: 48px;
  box-shadow: var(--shadow-deep);
  position: relative;
}
.pl-encargo__form-wrap::before {
  /* small gold corner ornament reference */
  content: '';
  position: absolute;
  top: 16px;
  right: 16px;
  width: 32px;
  height: 32px;
  background-image:
    linear-gradient(90deg, transparent calc(50% - 0.5px), var(--color-gold) calc(50% - 0.5px), var(--color-gold) calc(50% + 0.5px), transparent calc(50% + 0.5px)),
    linear-gradient(0deg, transparent calc(50% - 0.5px), var(--color-gold) calc(50% - 0.5px), var(--color-gold) calc(50% + 0.5px), transparent calc(50% + 0.5px));
  opacity: 0.4;
  border-radius: 50%;
  border: 1px solid var(--color-gold);
}

.pl-form__legend {
  font-family: var(--font-serif-display);
  font-size: 28px;
  font-weight: 500;
  color: var(--fg-primary);
  margin: 0 0 6px;
}
.pl-form__legend-sub {
  font-family: var(--font-serif-italic);
  font-style: italic;
  font-size: 16px;
  color: var(--color-brown-soft);
  margin-bottom: 28px;
}
.pl-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-bottom: 18px;
}
.pl-form__field { display: block; margin-bottom: 18px; }
.pl-form__field label,
.pl-form__row label {
  display: block;
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-kraft-deep);
  margin-bottom: 8px;
}
.pl-form__field label .req,
.pl-form__row label .req {
  color: var(--color-sage-deep);
  margin-left: 2px;
}
.pl-form__input,
.pl-form__textarea,
.pl-form__select {
  width: 100%;
  padding: 14px 16px;
  background: var(--color-cream);
  color: var(--fg-primary);
  font-family: var(--font-sans);
  font-size: 15px;
  border: 1px solid var(--color-line);
  border-radius: var(--radius-md);
  transition:
    border-color var(--motion-base) var(--ease-soft),
    box-shadow var(--motion-base) var(--ease-soft);
  box-sizing: border-box;
}
.pl-form__input::placeholder,
.pl-form__textarea::placeholder {
  color: var(--color-brown-faint);
  font-style: italic;
}
.pl-form__input:focus,
.pl-form__textarea:focus,
.pl-form__select:focus {
  outline: none;
  border-color: var(--accent-pl);
  box-shadow: 0 0 0 3px var(--accent-pl-soft);
}
.pl-form__textarea {
  min-height: 110px;
  resize: vertical;
  font-family: var(--font-sans);
}

.pl-form__radio-group {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.pl-form__radio {
  position: relative;
  display: block;
  cursor: pointer;
}
.pl-form__radio input {
  position: absolute;
  opacity: 0;
  width: 0; height: 0;
  pointer-events: none;
}
.pl-form__radio-tile {
  padding: 14px 16px;
  text-align: center;
  background: var(--color-cream);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-md);
  font-family: var(--font-sans);
  font-size: 14px;
  color: var(--color-brown);
  transition:
    border-color var(--motion-base) var(--ease-soft),
    background-color var(--motion-base) var(--ease-soft);
}
.pl-form__radio:hover .pl-form__radio-tile { background: var(--color-cream-warm); }
.pl-form__radio input:checked + .pl-form__radio-tile {
  border-color: var(--accent-pl);
  background: var(--accent-pl-soft);
  color: var(--accent-pl-deep);
  font-weight: 500;
}
.pl-form__radio input:focus-visible + .pl-form__radio-tile {
  box-shadow: 0 0 0 3px var(--accent-pl-soft);
}

.pl-form__check {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-family: var(--font-sans);
  font-size: 13px;
  line-height: 1.5;
  color: var(--color-brown-soft);
  margin: 8px 0 24px;
  cursor: pointer;
}
.pl-form__check input {
  margin-top: 2px;
  width: 18px; height: 18px;
  accent-color: var(--accent-pl-deep);
  flex-shrink: 0;
}

.pl-form__submit {
  width: 100%;
  padding: 18px 28px;
  font-size: 16px;
  font-weight: 500;
}

.pl-form__meta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 18px;
  font-family: var(--font-serif-italic);
  font-style: italic;
  font-size: 14px;
  color: var(--color-brown-soft);
}

/* Zoho integration note (visible in dev, hidden in prod via class) */
.pl-zoho-note {
  display: block;
  margin-top: 24px;
  padding: 12px 16px;
  background: var(--color-parchment);
  border: 1px dashed var(--color-gold);
  border-radius: var(--radius-sm);
  font-family: var(--font-mono);
  font-size: 11px;
  line-height: 1.5;
  color: var(--color-brown-soft);
}

/* Inline legend for fieldsets — matches form label visual */
.pl-form__legend-inline {
  display: block;
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-kraft-deep);
  margin-bottom: 8px;
  padding: 0;
}

/* Form section groups — "Tus datos", "Tu pedido", "Dirección de envío" */
.pl-form__group {
  border: 0;
  padding: 0;
  margin: 0 0 28px;
  min-width: 0; /* fieldset doesn't shrink-fit otherwise */
}
.pl-form__group-title {
  display: block;
  width: 100%;
  font-family: var(--font-serif-display);
  font-size: 20px;
  font-weight: 500;
  letter-spacing: 0.01em;
  color: var(--fg-primary);
  margin-bottom: 16px;
  padding: 0 0 10px;
  border-bottom: 1px solid var(--color-line);
}
.pl-form__group .pl-form__field:last-child,
.pl-form__group .pl-form__row:last-child {
  margin-bottom: 0;
}

/* Helper text under inputs — the email transactional-use note */
.pl-form__help {
  font-family: var(--font-sans);
  font-size: 12.5px;
  line-height: 1.55;
  color: var(--color-brown-soft);
  margin: 8px 0 0;
  font-style: italic;
}

/* Address row 1 — Calle (wide) + Número (narrow) */
.pl-form__row--calle {
  grid-template-columns: 2fr 1fr;
}

/* Small inline hint next to labels — "(opcional)", "(número de botellas)" */
.pl-form__hint {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  color: var(--color-brown-soft);
  opacity: 0.85;
  margin-left: 4px;
  transition: color var(--motion-base) var(--ease-soft);
}
.pl-form__hint--accent {
  color: var(--accent-pl-deep);
  font-style: italic;
  opacity: 1;
}

/* Consents block — RGPD (required) + marketing opt-in (optional) */
.pl-form__consents {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 16px 18px;
  margin: 8px 0 24px;
  background: var(--color-cream-warm);
  border-radius: var(--radius-md);
  border: 1px solid var(--color-line);
}
.pl-form__consents .pl-form__check { margin: 0; }
.pl-form__check-req {
  display: inline;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--accent-pl-deep);
  margin-left: 4px;
}
.pl-form__check-opt {
  display: inline;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-brown-faint);
  margin-left: 4px;
}
.pl-form__link {
  color: var(--color-brown);
  text-decoration: underline;
  text-decoration-color: var(--color-gold);
  text-underline-offset: 2px;
}

/* Admin-only note inside the form — explains the Zoho hook to the page owner */
.pl-admin-note {
  position: relative;
  margin: 0 0 22px;
  padding: 14px 16px 14px 18px;
  background: var(--color-parchment);
  border-left: 3px solid var(--color-gold);
  border-radius: var(--radius-sm);
  font-family: var(--font-sans);
  font-size: 12.5px;
  line-height: 1.55;
  color: var(--color-brown-soft);
}
.pl-admin-note strong { color: var(--color-brown); font-weight: 600; }
.pl-admin-note code {
  font-family: var(--font-mono);
  font-size: 11.5px;
  background: rgba(200, 169, 110, 0.18);
  padding: 1px 5px;
  border-radius: 3px;
}
.pl-admin-note__tag {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-gold-deep);
  margin-right: 8px;
  padding: 2px 7px;
  background: var(--color-cream);
  border: 1px solid var(--color-gold);
  border-radius: var(--radius-pill);
  vertical-align: 1px;
}

/* -----------------------------------------------------------------
   COOKIE CONSENT BANNER
   ----------------------------------------------------------------- */
.pl-cookie {
  position: fixed;
  left: 16px;
  right: 16px;
  bottom: 16px;
  z-index: 80;
  background: var(--color-cream);
  border: 1px solid var(--color-gold-soft);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-deep);
  padding: 18px 20px;
  opacity: 0;
  transform: translateY(12px);
  transition:
    opacity var(--motion-base) var(--ease-soft),
    transform var(--motion-base) var(--ease-soft);
  max-width: 720px;
  margin: 0 auto;
}
.pl-cookie[data-visible="1"] {
  opacity: 1;
  transform: none;
}
.pl-cookie[hidden] { display: none; }
.pl-cookie__inner {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 20px;
  align-items: center;
}
.pl-cookie__copy {
  min-width: 0;
}
.pl-cookie__title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-serif-display);
  font-size: 17px;
  font-weight: 500;
  color: var(--fg-primary);
  margin: 0 0 6px;
}
.pl-cookie__icon {
  display: inline-block;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 30% 30%, var(--color-gold) 2px, transparent 2.5px),
    radial-gradient(circle at 65% 60%, var(--color-gold) 1.5px, transparent 2px),
    radial-gradient(circle at 40% 75%, var(--color-gold) 1px, transparent 1.5px),
    var(--color-kraft-soft);
  border: 1px solid var(--color-kraft-deep);
}
.pl-cookie__desc {
  font-family: var(--font-sans);
  font-size: 13px;
  line-height: 1.5;
  color: var(--color-brown-soft);
  margin: 0;
}
.pl-cookie__desc a {
  color: var(--color-brown);
  text-decoration: underline;
  text-decoration-color: var(--color-gold);
}
.pl-cookie__actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  flex-shrink: 0;
}
.pl-cookie__btn {
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 500;
  padding: 10px 16px;
  border-radius: var(--radius-md);
  border: 0;
  cursor: pointer;
  transition:
    background-color var(--motion-base) var(--ease-soft),
    color var(--motion-base) var(--ease-soft),
    transform var(--motion-fast) var(--ease-soft);
}
.pl-cookie__btn--accept {
  background: var(--accent-pl);
  color: var(--accent-pl-on);
  box-shadow: var(--shadow-soft);
}
.pl-cookie__btn--accept:hover { background: var(--accent-pl-deep); }
.pl-cookie__btn--ghost {
  background: transparent;
  color: var(--color-brown);
  box-shadow: inset 0 0 0 1px var(--color-line);
}
.pl-cookie__btn--ghost:hover {
  background: var(--color-cream-warm);
  box-shadow: inset 0 0 0 1px var(--color-gold-soft);
}
.pl-cookie__btn:active { transform: scale(0.97); }

@media (max-width: 720px) {
  .pl-cookie__inner { grid-template-columns: 1fr; }
  .pl-cookie__actions { justify-content: stretch; }
  .pl-cookie__btn { flex: 1; min-width: 100px; }
}

/* Accessibility — visually hide, still announce to screen readers */
.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* -----------------------------------------------------------------
   FOOTER
   ----------------------------------------------------------------- */
.pl-footer {
  background: var(--color-brown);
  color: var(--color-cream-warm);
  padding: 64px 32px 32px;
}
.pl-footer__inner {
  max-width: var(--content-max);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1fr;
  gap: 48px;
  margin-bottom: 32px;
}
.pl-footer img { height: 52px; filter: brightness(0) invert(0.95); margin-bottom: 14px; }
.pl-footer__about {
  font-family: var(--font-sans);
  font-size: 14px;
  line-height: 1.6;
  color: var(--color-cream-warm);
  opacity: 0.75;
  max-width: 320px;
  margin-bottom: 22px;
}

/* Social media — outlined glyphs, no fill, KraftES restraint */
.pl-social {
  display: flex;
  gap: 10px;
  align-items: center;
}
.pl-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  color: var(--color-cream-warm);
  background: transparent;
  border: 1px solid rgba(232, 221, 192, 0.22);
  transition:
    color var(--motion-base) var(--ease-soft),
    border-color var(--motion-base) var(--ease-soft),
    background-color var(--motion-base) var(--ease-soft),
    transform var(--motion-fast) var(--ease-soft);
}
.pl-social a:hover {
  color: var(--color-brown);
  background: var(--color-gold);
  border-color: var(--color-gold);
  transform: translateY(-1px);
}
.pl-social svg {
  width: 16px;
  height: 16px;
}

.pl-footer__col h4 {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-gold);
  margin: 0 0 16px;
}
.pl-footer__col ul { display: flex; flex-direction: column; gap: 10px; }
.pl-footer__col li {
  font-family: var(--font-sans);
  font-size: 14px;
  color: var(--color-cream-warm);
  opacity: 0.85;
}
.pl-footer__col a { color: inherit; }
/* Discrete legal company info line — sits between the columns and the © */
.pl-footer__legal {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 16px 0;
  border-top: 1px solid rgba(232, 221, 192, 0.12);
  border-bottom: 1px solid rgba(232, 221, 192, 0.12);
  margin-bottom: 16px;
}
.pl-footer__legal p {
  font-family: var(--font-sans);
  font-size: 11.5px;
  line-height: 1.6;
  color: var(--color-cream-warm);
  opacity: 0.55;
  margin: 0;
  letter-spacing: 0.02em;
}
.pl-footer__legal strong {
  color: var(--color-cream-warm);
  opacity: 0.85;
  font-weight: 600;
}

.pl-footer__bottom {
  max-width: var(--content-max);
  margin: 0 auto;
  padding-top: 8px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--font-sans);
  font-size: 12px;
  color: var(--color-cream-warm);
  opacity: 0.55;
  gap: 16px;
  flex-wrap: wrap;
}
.pl-footer__bottom a {
  color: var(--color-cream-warm);
  text-decoration: underline;
  text-decoration-color: rgba(232, 221, 192, 0.3);
  text-underline-offset: 2px;
}
.pl-footer__bottom a:hover {
  text-decoration-color: var(--color-gold);
  opacity: 1;
}

/* -----------------------------------------------------------------
   RESPONSIVE
   ----------------------------------------------------------------- */
@media (max-width: 960px) {
  .pl-section { padding: 80px 24px; }
  .pl-section__head { margin-bottom: 48px; }
  .pl-h2 { font-size: 40px; }
  .pl-flourish { font-size: 18px; }

  .pl-hero { padding: 40px 24px 64px; }
  .pl-hero__inner { grid-template-columns: 1fr; gap: 48px; }
  .pl-hero h1 { font-size: 56px; }
  .pl-hero h1 em { font-size: 40px; }
  .pl-hero__lede { font-size: 17px; }
  .pl-hero__visual { width: 100%; aspect-ratio: 4 / 5; max-width: 480px; margin: 0 auto; }
  .pl-hero__seal { width: 128px; height: 128px; left: 0; bottom: -16px; }
  .pl-hero__seal-line { font-size: 13px; }

  .pl-process__steps { grid-template-columns: 1fr; gap: 56px; }
  .pl-process__steps::before { display: none; }

  .pl-formats__grid { grid-template-columns: 1fr; }
  .pl-origin__inner { grid-template-columns: 1fr; gap: 56px; }
  .pl-origin__text h2 { font-size: 40px; }
  .pl-origin__photo { aspect-ratio: 4 / 5; max-width: 460px; margin: 0 auto; }

  .pl-pairings__grid { grid-template-columns: repeat(2, 1fr); }
  .pl-encargo__inner { grid-template-columns: 1fr; gap: 40px; }
  .pl-encargo__pitch { position: static; }
  .pl-encargo__form-wrap { padding: 32px 24px; }
  .pl-form__row { grid-template-columns: 1fr; }
  .pl-form__radio-group { grid-template-columns: 1fr; }

  .pl-footer__inner { grid-template-columns: 1fr; gap: 32px; }

  .pl-nav { display: none; }
  .pl-header__inner { gap: 12px; padding: 12px 20px; }
  .pl-header__actions { gap: 8px; }
  .pl-lang__trigger { padding: 6px 8px; gap: 4px; }
  .pl-lang__globe { width: 12px; height: 12px; }
  .pl-lang__menu { min-width: 200px; }
}

@media (max-width: 520px) {
  .pl-hero h1 { font-size: 44px; }
  .pl-hero h1 em { font-size: 32px; }
  .pl-h2 { font-size: 32px; }
  .pl-format__name { font-size: 28px; }
  .pl-pairings__grid { grid-template-columns: 1fr; }
  .pl-faq summary { font-size: 19px; }
}


/* =============================================================
   VERCEL FOOTER VISIBILITY FIX — KraftES
   Makes footer/legal/social links fully visible on deployed static site.
   ============================================================= */
.pl-footer {
  position: relative;
  z-index: 5;
  background: #2f241c !important;
  color: #fff5dc !important;
  padding-bottom: 44px !important;
  overflow: visible !important;
}
.pl-footer__inner,
.pl-footer__legal,
.pl-footer__bottom {
  position: relative;
  z-index: 6;
}
.pl-footer__about,
.pl-footer__col li,
.pl-footer__legal p,
.pl-footer__bottom {
  opacity: 1 !important;
  color: #fff5dc !important;
}
.pl-footer__col a,
.pl-footer__bottom a,
.pl-footer__legal a {
  color: #fff5dc !important;
  opacity: 1 !important;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: rgba(255, 245, 220, 0.65) !important;
}
.pl-footer__col a:hover,
.pl-footer__bottom a:hover,
.pl-footer__legal a:hover {
  color: #d8b46a !important;
  text-decoration-color: #d8b46a !important;
}
.pl-social {
  flex-wrap: wrap;
  gap: 12px !important;
  margin-top: 14px;
  padding: 0;
  list-style: none;
}
.pl-social a {
  width: auto !important;
  min-width: 44px;
  height: 44px !important;
  padding: 0 12px !important;
  border-radius: 999px !important;
  color: #fff5dc !important;
  border: 1px solid rgba(255, 245, 220, 0.55) !important;
  background: rgba(255, 245, 220, 0.08) !important;
  opacity: 1 !important;
  text-decoration: none !important;
}
.pl-social svg {
  width: 18px !important;
  height: 18px !important;
  flex: 0 0 auto;
}
.pl-social__label {
  display: inline-block;
  margin-left: 8px;
  font-family: var(--font-sans, Arial, sans-serif);
  font-size: 13px;
  line-height: 1;
  color: currentColor;
}
.pl-footer img {
  opacity: 1 !important;
  filter: brightness(0) invert(1) !important;
}
@media (max-width: 960px) {
  .pl-footer {
    padding: 52px 22px 36px !important;
  }
  .pl-footer__inner {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
  }
  .pl-footer__bottom {
    align-items: flex-start !important;
  }
}


/* KraftES footer final fix: remove empty logo placeholder and use text badge */
.pl-footer__brand-badge {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 128px !important;
  min-height: 44px !important;
  margin: 0 0 16px !important;
  padding: 10px 18px !important;
  border: 1px solid rgba(242,198,109,.75) !important;
  border-radius: 999px !important;
  background: rgba(255,248,230,.08) !important;
  color: #f2c66d !important;
  font-family: Georgia, 'Times New Roman', serif !important;
  font-size: 24px !important;
  font-weight: 700 !important;
  letter-spacing: .06em !important;
  line-height: 1 !important;
}
.pl-footer__inner > div:first-child > img { display: none !important; }

/* -----------------------------------------------------------------
   PAIRINGS — recipe photos on top of each card
   (if the photo file is missing, the slot hides itself via onerror)
   ----------------------------------------------------------------- */
.pl-pairing__media {
  margin: -32px -24px 20px;   /* edge-to-edge over the card padding */
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  overflow: hidden;
}
.pl-pairing__media img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

/* -----------------------------------------------------------------
   ADDRESS MAP — Leaflet picker inside "Dirección de envío"
   ----------------------------------------------------------------- */
.pl-map-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 500;
  color: var(--color-sage-deep);
  background: transparent;
  border: 1px solid var(--color-line);
  border-radius: 999px;
  padding: 10px 18px;
  cursor: pointer;
  transition: background-color var(--motion-base) var(--ease-soft);
}
.pl-map-toggle:hover { background: rgba(63, 74, 42, 0.06); }
.pl-map-panel { margin-top: 14px; }
.pl-map-search {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
}
.pl-map-search .pl-form__input { flex: 1 1 200px; }
.pl-map-btn {
  font-family: var(--font-sans);
  font-size: 14px;
  color: var(--color-cream-warm);
  background: var(--color-sage-deep);
  border: none;
  border-radius: 999px;
  padding: 10px 18px;
  cursor: pointer;
}
.pl-map-btn--geo {
  background: transparent;
  color: var(--color-sage-deep);
  border: 1px solid var(--color-line);
}
.pl-map-canvas {
  height: 320px;
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-line);
  position: relative;
  z-index: 0; /* isolates Leaflet panes below the sticky header */
}
.pl-map-status {
  font-family: var(--font-sans);
  font-size: 13px;
  line-height: 1.5;
  color: var(--color-brown-soft);
  margin: 8px 0 0;
}
.pl-map-pin {
  width: 22px;
  height: 22px;
  background: var(--accent-pl);         /* same green as "Solicitar mi encargo" */
  border: 3px solid var(--color-cream); /* page background colour */
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35);
}
@media (max-width: 520px) {
  .pl-map-canvas { height: 260px; }
}

/* Attribution — compact, page-toned, semi-transparent */
.pl-map-canvas .leaflet-control-attribution {
  font-family: var(--font-sans);
  font-size: 9px;
  line-height: 1.4;
  color: var(--color-brown-soft);
  background: rgba(253, 250, 244, 0.65);
  padding: 1px 7px;
  border-radius: 8px 0 0 0;
}
.pl-map-canvas .leaflet-control-attribution a {
  color: inherit;
  text-decoration: none;
}
