@import url("assets/theme-colors.css");
@import url("assets/theme-ui.css");

:root{
  --pkg-bg:var(--lp-stage-black);
  --pkg-surface:rgba(194,160,112,.045);
  --pkg-surface-strong:rgba(194,160,112,.075);
  --pkg-surface-soft:var(--lp-shell-tint-subtle);
  --pkg-line:var(--lp-detail-line);
  --pkg-line-strong:var(--lp-detail-line-strong);
  --pkg-text:var(--lp-detail-text);
  --pkg-text-soft:var(--lp-detail-text-soft);
  --pkg-text-dim:var(--lp-detail-text-dim);
  --pkg-accent:var(--lp-detail-accent);
  --pkg-accent-soft:var(--lp-detail-accent-soft);
  --pkg-cta:var(--lp-cta);
  --pkg-cta-hover:var(--lp-cta-hover);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  background:var(--pkg-bg);
  color:var(--pkg-text);
  font-family:var(--lp-font-body);
}
a{color:inherit}
button{font:inherit;color:inherit}

.catalog-page{
  width:min(var(--lp-wrap),calc(100% - var(--lp-gutter)));
  margin:0 auto;
  padding:36px 0 64px;
}
.catalog-header{margin-bottom:28px;padding:20px 0 4px}
.catalog-header h1{margin:0 0 8px;font-size:clamp(1.65rem,4vw,2.35rem);line-height:1;letter-spacing:.02em;text-transform:uppercase}
.catalog-header p{max-width:62ch;color:var(--pkg-text-soft);font-size:.88rem;line-height:1.45}
.catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;align-items:start}
.catalog-group{margin-bottom:42px}
.catalog-group-title{margin:0 0 16px;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--pkg-text-dim)}
.catalog-group-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;align-items:start}
.catalog-grid .pkg{position:relative;display:flex;flex-direction:column;min-height:420px;padding:22px;border:1px solid var(--pkg-line);border-radius:18px;background:linear-gradient(160deg,rgba(194,160,112,.1),rgba(10,8,7,.92));overflow:hidden}
.catalog-grid .pkg::before{content:"";position:absolute;inset:0 0 auto;height:190px;background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.7)),var(--pkg-card-image,linear-gradient(145deg,#39291e,#0c0907));background-size:cover;background-position:center;opacity:.9}
.catalog-grid .pkg > *{position:relative}
.catalog-grid .pkg h3{margin:64px 0 8px;font-size:1.2rem;line-height:1.1;text-transform:uppercase}
.catalog-grid .pkg .meta{min-height:3.1em;color:var(--pkg-text-soft);font-size:.82rem;line-height:1.45}
.catalog-grid .pkg .inclui{padding-left:18px;color:var(--pkg-text-soft);font-size:.86rem;line-height:1.5}
.catalog-grid .pkg .totals{margin-top:auto;padding-top:16px;border-top:1px solid var(--pkg-line);display:grid;gap:6px}
.catalog-grid .pkg .total-value{font-size:1.2rem;font-weight:700}
.catalog-grid .pkg .btn-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.catalog-grid .pkg .btn-outline,.catalog-grid .pkg .whats-btn{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:9px 13px;border:1px solid var(--pkg-line-strong);border-radius:999px;text-decoration:none;font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.catalog-grid .pkg .whats-btn{background:var(--pkg-cta);border-color:var(--pkg-cta);color:#fff}
.catalog-grid .pkg .btn-date{display:none}
.catalog-grid .pkg .addons{display:none}
.catalog-card{cursor:pointer;transition:transform .2s ease,border-color .2s ease}
.catalog-card:hover,.catalog-card:focus-visible{transform:translateY(-3px);border-color:var(--pkg-accent)}
.catalog-card-content{margin-top:auto;display:grid;gap:10px}
.catalog-card .meta{min-height:0 !important;margin:0;color:var(--pkg-text-soft);font-size:.9rem !important}
.catalog-card-price{font-size:1.15rem;color:var(--pkg-text)}
.catalog-card--editorial{position:relative;display:block !important;min-height:0 !important;padding:0 !important;background:#050403 !important;border-radius:0 !important;overflow:hidden}
.catalog-card--editorial::before{display:none !important}
.catalog-card-figure{margin:0;width:100%;aspect-ratio:4 / 5;background:#000;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:0}
.catalog-card-figure::after{content:"";position:absolute;inset:25% 0 0;background:linear-gradient(180deg,rgba(5,4,3,0),rgba(5,4,3,.88) 76%,rgba(5,4,3,.98));pointer-events:none}
.catalog-card-image{width:100%;height:100%;object-fit:contain;object-position:center;display:block}
.catalog-card-image-placeholder{width:100%;height:100%;background:#050403}
.catalog-card-caption{position:absolute;z-index:2;inset:auto 0 0;padding:70px 18px 20px;background:transparent;color:#fff}
.catalog-grid .pkg .catalog-card-caption{position:absolute;inset:auto 0 0;background:transparent}
.catalog-card-caption h3{margin:0 0 8px !important;font-size:clamp(1.05rem,2.8vw,1.35rem) !important;line-height:1.05 !important;letter-spacing:.02em;text-transform:uppercase}
.catalog-card-line{margin:0 0 8px;max-width:28ch;color:rgba(255,255,255,.72);font-size:.76rem;line-height:1.3}
.catalog-card-caption .catalog-card-price{margin:0 0 10px;color:rgba(255,255,255,.92);font-weight:700;font-size:.86rem}
.catalog-card-more{display:inline-flex;width:max-content;padding:6px 10px;border:1px solid rgba(255,255,255,.62);border-radius:999px;font-size:.58rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.catalog-modal{width:min(560px,calc(100% - 24px));max-height:88vh;padding:0;border:0;border-radius:8px;background:transparent;color:var(--pkg-text)}
.catalog-modal::backdrop{background:rgba(0,0,0,.82);backdrop-filter:blur(4px)}
.catalog-modal-panel{position:relative;max-height:88vh;overflow:auto;padding:24px;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:#080706;box-shadow:0 18px 54px rgba(0,0,0,.42)}
.catalog-modal-panel h2{margin:0 0 10px;max-width:18ch;font-size:1.35rem;line-height:1.05;letter-spacing:.02em;text-transform:uppercase}
.catalog-modal-panel h3{margin:20px 0 8px;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}
.catalog-modal-meta{margin:0 0 12px;color:var(--pkg-text-dim);font-size:.76rem;line-height:1.4}
.catalog-modal-intro,.catalog-modal-panel li{color:var(--pkg-text-soft);font-size:.86rem;line-height:1.5}
.catalog-modal-panel li{font-size:.82rem;line-height:1.45}
.catalog-modal-price{margin:20px 0 4px;font-size:1.15rem;font-weight:700}
.catalog-modal-signal{margin:0;color:var(--pkg-text-dim);font-size:.76rem}
.catalog-modal-delivery{margin:16px 0 0;padding:12px;border-left:2px solid var(--pkg-accent);background:rgba(255,255,255,.035);color:var(--pkg-text-soft);font-size:.78rem;line-height:1.45}
.catalog-modal-close{position:absolute;top:12px;right:12px;width:30px;height:30px;border:1px solid var(--pkg-line);border-radius:50%;background:transparent;color:var(--pkg-text);font-size:1.2rem;line-height:1;cursor:pointer}
.catalog-modal-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.catalog-modal-actions .hero-cta{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 13px;border-radius:999px;text-decoration:none;font-size:.62rem}

@media (max-width:720px){
  .catalog-page{width:min(100% - 28px,520px);padding-top:18px}
  .catalog-grid{grid-template-columns:1fr;gap:22px}
  .catalog-group-grid{grid-template-columns:1fr;gap:22px}
  .catalog-grid .pkg{min-height:360px}
  .catalog-card{max-width:420px;margin-inline:auto}
  .catalog-modal-panel{padding:20px 16px}
  .catalog-modal-actions{display:grid}
}

.step-btn,
.hero-cta,
.section-link,
.related-footer a,
.package-breadcrumbs a{
  transition:border-color .2s ease, background-color .2s ease, color .2s ease, transform .2s ease;
}

.step-btn:focus-visible,
.hero-cta:focus-visible,
.section-link:focus-visible,
.related-footer a:focus-visible,
.package-breadcrumbs a:focus-visible{
  outline:var(--lp-focus-ring);
  outline-offset:3px;
}

.package-page-shell{
  width:min(var(--lp-wrap),calc(100% - var(--lp-gutter)));
  margin:0 auto;
  padding:36px 0 52px;
}

.package-hero{
  padding:36px;
  border:1px solid var(--pkg-line);
  border-radius:var(--lp-radius-xl);
  background:
    radial-gradient(circle at top left, rgba(194,160,112,.18), transparent 18rem),
    radial-gradient(circle at 92% 12%, rgba(185,63,69,.12), transparent 16rem),
    linear-gradient(135deg,var(--pkg-surface-strong),var(--pkg-surface-soft));
  box-shadow:var(--lp-shadow-shell);
}

.package-breadcrumbs{
  display:flex;
  gap:var(--lp-space-2);
  flex-wrap:wrap;
  margin-bottom:14px;
  font-size:var(--lp-type-button);
  font-weight:var(--lp-weight-semibold);
  line-height:var(--lp-lh-title);
  letter-spacing:var(--lp-ls-button);
  text-transform:uppercase;
  color:var(--pkg-text-dim);
}

.package-kicker{
  margin:0 0 8px;
  font-size:var(--lp-type-label);
  font-weight:var(--lp-weight-bold);
  line-height:var(--lp-lh-title);
  letter-spacing:var(--lp-ls-caps);
  text-transform:uppercase;
  color:var(--pkg-accent-soft);
}

.package-hero h1{
  margin:0;
  max-width:13ch;
  font-family:var(--lp-font-body);
  font-size:1.625rem;
  line-height:1;
  font-weight:var(--lp-weight-semibold);
  letter-spacing:0;
  text-transform:uppercase;
  text-wrap:balance;
}

.package-meta,
.package-intro{
  max-width:54ch;
  color:var(--pkg-text-soft);
}

.package-meta{
  margin:14px 0 4px;
  font-size:var(--lp-type-body-xs);
  font-weight:var(--lp-weight-semibold);
  line-height:1.45;
  letter-spacing:var(--lp-ls-caps);
  text-transform:uppercase;
}

.package-intro{
  margin:4px 0 0;
  font-size:.96rem;
  line-height:1.56;
}

.hero-cta-row{
  display:flex;
  gap:var(--lp-space-2);
  flex-wrap:wrap;
  margin-top:22px;
}

.pricing-cta-row{
  margin-top:var(--lp-space-1);
  padding-top:12px;
  border-top:1px solid rgba(227,207,172,.14);
}

.hero-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:0 16px;
  border:1px solid var(--pkg-line-strong);
  border-radius:var(--lp-radius-pill);
  text-decoration:none;
  font-size:var(--lp-type-button);
  font-weight:var(--lp-weight-bold);
  line-height:var(--lp-lh-title);
  letter-spacing:var(--lp-ls-button);
  text-transform:uppercase;
  background:rgba(194,160,112,.05);
}

.hero-cta.primary{
  background:var(--pkg-cta);
  border-color:var(--pkg-cta);
  color:var(--lp-white);
}

.hero-cta:hover{
  transform:translateY(-1px);
  border-color:rgba(227,207,172,.38);
}

.hero-cta.primary:hover{
  background:var(--pkg-cta-hover);
  border-color:var(--pkg-cta-hover);
}

.package-grid{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(300px, .42fr);
  grid-template-areas:
    "included pricing"
    "conditions pricing"
    "rules pricing"
    "related related";
  align-items:start;
  gap:22px;
  margin-top:22px;
}

.package-panel--included{
  grid-area:included;
}

.package-panel--conditions{
  grid-area:conditions;
}

.package-panel--rules{
  grid-area:rules;
}

.package-panel{
  padding:28px;
  border:1px solid var(--pkg-line);
  border-radius:var(--lp-radius-lg);
  background:var(--pkg-surface);
  box-shadow:var(--lp-shadow-panel);
}

.package-panel h2{
  margin:0 0 12px;
  font-family:var(--lp-font-body);
  font-size:1.1875rem;
  font-weight:var(--lp-weight-semibold);
  line-height:1.1;
  letter-spacing:0;
  text-transform:uppercase;
  text-wrap:balance;
}

.package-panel--related .section-head h2{
  font-size:1.25rem;
  margin:0;
}

.package-panel-full{
  grid-area:related;
}

.package-list{
  margin:0;
  padding-left:var(--lp-space-4);
  line-height:1.58;
  color:var(--pkg-text-soft);
}

.package-copy p{
  margin:0 0 10px;
  line-height:1.58;
  color:var(--pkg-text-soft);
}

.pricing-panel{
  grid-area:pricing;
  display:flex;
  flex-direction:column;
  gap:14px;
}

.pricing-label,
.related-label{
  margin:0;
  font-size:var(--lp-type-label);
  font-weight:var(--lp-weight-bold);
  line-height:var(--lp-lh-title);
  letter-spacing:var(--lp-ls-caps);
  text-transform:uppercase;
  color:var(--pkg-accent-soft);
}

.pricing-main{
  display:flex;
  flex-direction:column;
  gap:4px;
}

.price-old{
  color:var(--pkg-text-dim);
  text-decoration:line-through;
  text-decoration-color:rgba(227,207,172,.7);
  font-size:.92rem;
  font-weight:var(--lp-weight-semibold);
  line-height:var(--lp-lh-title);
}

.price-total{
  font-family:var(--lp-font-body);
  font-size:2rem;
  line-height:1.04;
  font-weight:var(--lp-weight-bold);
  color:var(--pkg-accent-soft);
}

.pricing-signal,
.pricing-pay{
  color:var(--pkg-text-soft);
  line-height:1.56;
}

.addons-title{
  margin:0 0 8px;
  font-size:var(--lp-type-label);
  font-weight:var(--lp-weight-bold);
  line-height:var(--lp-lh-title);
  letter-spacing:var(--lp-ls-caps);
  text-transform:uppercase;
  color:var(--pkg-text-dim);
}

.addon-stepper{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:12px 0;
  border-top:1px solid rgba(227,207,172,.12);
  color:var(--pkg-text-soft);
}

.addon-description{
  display:block;
  margin-top:4px;
  max-width:42ch;
  font-size:.82em;
  line-height:1.35;
  color:var(--pkg-text-dim);
}

.stepper-controls{
  display:flex;
  align-items:center;
  gap:var(--lp-space-2);
}

.step-btn{
  width:44px;
  height:44px;
  border:1px solid var(--pkg-line-strong);
  border-radius:50%;
  background:var(--lp-shell-tint-strong);
  color:inherit;
  cursor:pointer;
}

.step-btn:hover{
  background:rgba(194,160,112,.12);
  border-color:rgba(227,207,172,.38);
}

.pricing-summary,
.related-footer,
.section-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:var(--lp-space-3);
}

.pricing-summary{
  margin-top:var(--lp-space-1);
  padding-top:12px;
  border-top:1px solid rgba(227,207,172,.14);
}

.related-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--lp-space-4);
}

.related-card{
  padding:var(--lp-space-5);
  border:1px solid rgba(227,207,172,.14);
  border-radius:var(--lp-radius-md);
  background:var(--lp-shell-tint-subtle);
}

.related-card h3{
  margin:var(--lp-space-2) 0 var(--lp-space-1);
  font-family:var(--lp-font-body);
  font-size:1.0625rem;
  font-weight:var(--lp-weight-medium);
  line-height:1.08;
}

.related-card p{
  margin:0;
  color:var(--pkg-text-soft);
  line-height:var(--lp-lh-body-relaxed);
}

.related-footer{
  margin-top:var(--lp-space-4);
}

.related-footer a,
.section-link{
  font-size:var(--lp-type-button);
  font-weight:var(--lp-weight-bold);
  line-height:var(--lp-lh-title);
  letter-spacing:var(--lp-ls-button);
  text-transform:uppercase;
  text-decoration:none;
}

.related-footer a:hover,
.section-link:hover{
  color:var(--pkg-accent-soft);
}

@media (max-width:1024px){
  .package-grid{
    grid-template-columns:1fr;
    grid-template-areas:
      "included"
      "pricing"
      "conditions"
      "rules"
      "related";
  }

  .pricing-panel{
    position:static;
  }

  .related-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:760px){
  .package-grid,
  .related-grid{
    grid-template-columns:1fr;
  }

  .package-page-shell{
    width:min(100% - var(--lp-gutter), var(--lp-wrap));
    padding-top:var(--lp-space-4);
    padding-bottom:var(--lp-space-7);
  }

  .package-hero,
  .package-panel{
    padding:var(--lp-space-5);
  }

  .package-hero h1{
    max-width:11ch;
    font-size:1.25rem;
  }

  .package-intro{
    font-size:var(--lp-type-body);
  }

  .pricing-summary,
  .related-footer,
  .section-head,
  .addon-stepper{
    flex-direction:column;
    align-items:flex-start;
  }

  .hero-cta-row,
  .hero-cta,
  .pricing-cta-row{
    width:100%;
  }
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,
  *::before,
  *::after{
    transition:none !important;
  }
}
