:root{
  --bg: #ffffff;

  /* Base más cálida (menos clínico) */
  --paper: #f6f4ef;

  --ink: #121212;
  --muted: rgba(18,18,18,.68);
  --muted2: rgba(18,18,18,.52);
  --line: rgba(18,18,18,.10);

  /* Dorado suave elegante */
  --gold: #c8a95c;
  --gold2: rgba(200,169,92,.25);

  /* Acento secundario (profesional, profundo) */
  --accent: #1f3a37;
  --accent2: rgba(31,58,55,.14);

  /* Animaciones ricas */
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --shadow: 0 20px 60px rgba(0,0,0,.08);
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  background: var(--bg);
  color: var(--ink);
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  line-height: 1.55;
  overflow-x:hidden;
}

a{ color:inherit; text-decoration:none; }
img{ max-width:100%; height:auto; display:block; }

.container{
  width: min(1120px, 92vw);
  margin-inline:auto;
}

/* ---------- NAV ---------- */
.nav{
  position: sticky;
  top:0;
  z-index: 50;
  background: rgba(246,244,239,.78);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--line);
}

.nav__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 18px;
  padding: 14px 4vw;
}

.brand{
  display:flex;
  align-items:center;
  gap: 12px;
  min-width: 220px;
}

.brand__logo{
  width: 40px;
  height: 40px;
  object-fit: contain;
  filter: drop-shadow(0 8px 16px rgba(0,0,0,.08));
}

.brand__name{
  font-weight: 700;
  letter-spacing: .2px;
}
.brand__tag{
  font-size: 12px;
  color: var(--muted2);
  margin-top: -2px;
}

.nav__links{
  display:flex;
  gap: 18px;
  align-items:center;
}
.nav__links a{
  font-size: 13px;
  color: var(--muted);
  position: relative;
  padding: 6px 4px;
  transition: color .25s var(--ease);
}
.nav__links a:hover{ color: var(--ink); }
.nav__links a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:0%;
  height:1px;
  background: linear-gradient(90deg, var(--gold), rgba(200,169,92,.0));
  transition: width .35s var(--ease);
}
.nav__links a:hover::after{ width:100%; }

.nav__cta{
  display:flex;
  align-items:center;
  gap: 12px;
}

.nav__burger{
  display:none;
  width: 42px;
  height: 42px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(255,255,255,.6);
  cursor:pointer;
  transition: transform .2s var(--ease), background .2s var(--ease);
}
.nav__burger:hover{ transform: translateY(-1px); background: rgba(255,255,255,.9); }
.nav__burger span{
  display:block;
  width: 18px;
  height: 2px;
  background: var(--ink);
  margin: 4px auto;
  border-radius: 99px;
  opacity: .9;
}

.nav__mobile{
  display:none;
  padding: 14px 4vw 18px;
  border-bottom: 1px solid var(--line);
  background: rgba(246,244,239,.92);
}
.nav__mobile a{
  display:block;
  padding: 10px 6px;
  color: var(--muted);
}
.nav__mobile a:hover{ color: var(--ink); }

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 10px;
  padding: 12px 16px;
  border-radius: 14px;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: .3px;
  transition: transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease), border-color .25s var(--ease), color .25s var(--ease);
  user-select:none;
}

.btn--primary{
  background: linear-gradient(135deg, #121212, #1b1b1b);
  color: #fff;
  box-shadow: 0 18px 40px rgba(0,0,0,.18);
}
.btn--primary:hover{
  transform: translateY(-2px);
  background: linear-gradient(135deg, var(--accent), #16302d);
  box-shadow: 0 24px 60px rgba(0,0,0,.22);
}

.btn--ghost{
  background: rgba(255,255,255,.62);
  border: 1px solid var(--line);
  color: var(--ink);
}
.btn--ghost:hover{
  transform: translateY(-2px);
  border-color: rgba(18,18,18,.18);
  box-shadow: 0 18px 40px rgba(0,0,0,.08);
}

.btn--full{ width:100%; }

/* ---------- LINKS ---------- */
.link{
  display:inline-flex;
  align-items:center;
  gap: 8px;
  font-weight: 600;
  color: var(--ink);
}
.link--underline{
  width: fit-content;
  position: relative;
  padding-bottom: 2px;
}
.link--underline::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:0%;
  height:1px;
  background: linear-gradient(90deg, var(--gold), rgba(200,169,92,0));
  transition: width .35s var(--ease);
}
.link--underline:hover::after{ width:100%; }

.link--arrow::after{
  content:"→";
  margin-left: 6px;
  transform: translateX(0);
  transition: transform .25s var(--ease);
  color: var(--gold);
}
.link--arrow:hover::after{ transform: translateX(4px); }

/* ---------- HERO ---------- */
.hero{
  position:relative;
  min-height: calc(100vh - 70px);
  display:flex;
  align-items:center;
  padding: 68px 0 0;
}

.hero__bg{
  position:absolute;
  inset:0;
  background:
    radial-gradient(900px 520px at 18% 10%, rgba(200,169,92,.22), transparent 62%),
    radial-gradient(900px 520px at 82% 28%, rgba(31,58,55,.10), transparent 62%),
    linear-gradient(180deg, var(--paper), #ffffff 62%);
  z-index:-2;
}

.hero__noise{
  position:absolute;
  inset:0;
  opacity:.06;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E");
  mix-blend-mode:multiply;
  z-index:-1;
}

.hero__waves{
  position:absolute;
  left:0; right:0; bottom:-2px;
  height: 220px;
  overflow:hidden;
  z-index:-1;
}
.hero__waves svg{
  width:100%;
  height:100%;
}
.hero__waves path{
  fill: rgba(31,58,55,.08);
}
.hero__waves--2{
  position:absolute;
  left:0; right:0; bottom:-18px;
  height: 240px;
}
.hero__waves--2 path{
  fill: rgba(200,169,92,.16);
}

.hero__inner{
  display:grid;
  grid-template-columns: 1.25fr .75fr;
  gap: 34px;
  padding: 0 0 74px;
}

.kicker{
  display:inline-flex;
  align-items:center;
  gap: 10px;
  font-size: 12px;
  letter-spacing: .9px;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 14px;
}
.kicker::before{
  content:"";
  width: 34px;
  height: 1px;
  background: var(--gold);
  opacity: .95;
}

.hero__title{
  font-size: clamp(34px, 4.4vw, 58px);
  letter-spacing: -1.3px;
  line-height: 1.05;
  font-weight: 800;
  margin-bottom: 16px;
}

.hero__subtitle{
  color: var(--muted);
  font-size: 16px;
  max-width: 62ch;
  margin-bottom: 22px;
}

.hero__actions{
  display:flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 18px;
}

.hero__meta{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
}
.meta-pill{
  font-size: 12px;
  color: rgba(18,18,18,.70);
  border: 1px solid rgba(200,169,92,.28);
  background: rgba(200,169,92,.08);
  padding: 8px 10px;
  border-radius: 999px;
  transition: transform .25s var(--ease), border-color .25s var(--ease), background .25s var(--ease);
}
.meta-pill:hover{
  transform: translateY(-1px);
  border-color: rgba(200,169,92,.45);
  background: rgba(31,58,55,.06);
}

/* hero card */
.hero__card .card{
  background: rgba(255,255,255,.74);
  border: 1px solid rgba(18,18,18,.10);
  border-radius: 22px;
  padding: 18px;
  box-shadow: 0 22px 70px rgba(0,0,0,.10);
  position: relative;
  overflow:hidden;
}
.hero__card .card::before{
  content:"";
  position:absolute;
  inset:-80px -120px auto auto;
  width: 240px;
  height: 240px;
  background:
    radial-gradient(circle at 30% 30%, rgba(200,169,92,.28), transparent 60%),
    radial-gradient(circle at 70% 70%, rgba(31,58,55,.12), transparent 60%);
  transform: rotate(15deg);
}
.card__top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap: 12px;
  margin-bottom: 10px;
}
.card__badge{
  font-size: 11px;
  color: var(--ink);
  background: rgba(200,169,92,.18);
  border: 1px solid rgba(200,169,92,.35);
  padding: 6px 10px;
  border-radius: 999px;
}
.card__title{
  font-weight: 800;
  letter-spacing: -.3px;
}
.card__text{
  color: var(--muted);
  font-size: 13px;
  margin-bottom: 12px;
}
.card__list{
  display:grid;
  gap: 8px;
  margin-bottom: 14px;
}
.card__item{
  display:flex;
  gap: 10px;
  align-items:flex-start;
  color: var(--muted);
  font-size: 13px;
}
.dot{
  width: 8px; height: 8px;
  border-radius: 999px;
  background: var(--gold);
  margin-top: 6px;
  flex: 0 0 auto;
}

/* ---------- MANIFEST ---------- */
.manifest{
  padding: 78px 0;
  background:
    radial-gradient(900px 420px at 80% 10%, rgba(31,58,55,.06), transparent 62%),
    #fff;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.manifest__inner{
  max-width: 980px;
}
.manifest__title{
  font-size: clamp(26px, 3.2vw, 42px);
  letter-spacing: -1px;
  line-height: 1.12;
  margin-bottom: 12px;
}
.manifest__text{
  color: var(--muted);
  font-size: 15.5px;
  max-width: 75ch;
}

/* ---------- SECTIONS ---------- */
.section{
  padding: 86px 0;
}
.section--alt{
  background:
    radial-gradient(900px 500px at 20% 20%, rgba(200,169,92,.14), transparent 65%),
    linear-gradient(180deg, var(--paper), #fff);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.section__head{
  margin-bottom: 26px;
  max-width: 900px;
}
.section__title{
  font-size: clamp(22px, 2.6vw, 34px);
  letter-spacing: -.6px;
  margin-bottom: 8px;
  font-weight: 800;
}
.section__subtitle{
  color: var(--muted);
  font-size: 15px;
}

/* ---------- SPLIT ---------- */
.split{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  align-items:stretch;
}
.split__panel{
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(18,18,18,.10);
  border-radius: 22px;
  padding: 22px;
  box-shadow: 0 20px 60px rgba(0,0,0,.07);
  transition: transform .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease), background .35s var(--ease);
  position: relative;
  overflow:hidden;
}
.split__panel::after{
  content:"";
  position:absolute;
  inset:auto -80px -80px auto;
  width: 240px;
  height: 240px;
  background:
    radial-gradient(circle at 30% 30%, rgba(200,169,92,.18), transparent 60%),
    radial-gradient(circle at 70% 70%, rgba(31,58,55,.12), transparent 60%);
  transform: rotate(-10deg);
}
.split__panel:hover{
  transform: translateY(-3px);
  border-color: rgba(18,18,18,.18);
  box-shadow: 0 26px 70px rgba(0,0,0,.10);
  background: linear-gradient(135deg, rgba(255,255,255,.92), rgba(200,169,92,.06));
}
.split__kicker{
  font-size: 12px;
  letter-spacing: .9px;
  text-transform: uppercase;
  color: var(--muted2);
  margin-bottom: 8px;
}
.split__title{
  font-size: 20px;
  letter-spacing: -.4px;
  margin-bottom: 8px;
  font-weight: 800;
}
.split__text{
  color: var(--muted);
  font-size: 14px;
  margin-bottom: 12px;
}
.bullets{
  list-style:none;
  display:grid;
  gap: 8px;
  margin: 12px 0 12px;
  padding:0;
}
.bullets li{
  color: var(--muted);
  font-size: 14px;
  display:flex;
  gap: 10px;
  align-items:flex-start;
}
.bullets li::before{
  content:"";
  width: 6px; height: 6px;
  border-radius: 999px;
  background: var(--gold);
  margin-top: 8px;
  flex: 0 0 auto;
}

/* ---------- GRIDS ---------- */
.grid-3, .grid-2{
  display:grid;
  gap: 14px;
}
.grid-3{ grid-template-columns: repeat(3, 1fr); }
.grid-2{ grid-template-columns: repeat(2, 1fr); }

.tile{
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(18,18,18,.10);
  border-radius: 20px;
  padding: 18px;
  transition: transform .3s var(--ease), border-color .3s var(--ease), background .3s var(--ease);
}
.tile:hover{
  transform: translateY(-2px);
  border-color: rgba(18,18,18,.18);
  background: linear-gradient(135deg, rgba(255,255,255,.92), rgba(31,58,55,.05));
}
.tile__title{
  font-weight: 800;
  letter-spacing: -.2px;
  margin-bottom: 6px;
}
.tile__text{
  color: var(--muted);
  font-size: 14px;
}

.callout{
  margin-top: 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding: 16px 18px;
  border-radius: 20px;
  border: 1px solid rgba(200,169,92,.38);
  background:
    linear-gradient(135deg, rgba(200,169,92,.16), rgba(31,58,55,.06));
}
.callout__text{
  color: rgba(18,18,18,.78);
  font-size: 14px;
  font-weight: 600;
}

/* ---------- TALLERES ---------- */
.card2{
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(18,18,18,.10);
  border-radius: 20px;
  padding: 18px;
  transition: transform .35s var(--ease), border-color .35s var(--ease), background .35s var(--ease);
}
.card2:hover{
  transform: translateY(-2px);
  border-color: rgba(18,18,18,.18);
  background: linear-gradient(135deg, rgba(255,255,255,.92), rgba(200,169,92,.06));
}
.card2__title{
  font-weight: 800;
  letter-spacing: -.25px;
  margin-bottom: 8px;
}
.card2__text{
  color: var(--muted);
  font-size: 14px;
}
.card2--link{
  display: block;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}
.card2__arrow{
  color: var(--gold);
  font-weight: 400;
  margin-left: 4px;
  display: inline-block;
  transition: transform .25s var(--ease);
}
.card2--link:hover .card2__arrow{
  transform: translateX(4px);
}
.cta-mini{
  margin-top: 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding: 18px;
  border-radius: 22px;
  border: 1px solid rgba(18,18,18,.10);
  background: rgba(255,255,255,.78);
}
.cta-mini__title{ font-weight: 860; letter-spacing: -.2px; }
.cta-mini__text{ color: var(--muted); font-size: 14px; }

/* ---------- PRODUCTS ---------- */
.product{
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(18,18,18,.10);
  border-radius: 20px;
  padding: 18px;
  box-shadow: 0 18px 50px rgba(0,0,0,.06);
  transition: transform .35s var(--ease), border-color .35s var(--ease), background .35s var(--ease);
}
.product:hover{
  transform: translateY(-2px);
  border-color: rgba(18,18,18,.18);
  background: linear-gradient(135deg, rgba(255,255,255,.92), rgba(31,58,55,.05));
}
.product__top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap: 12px;
  margin-bottom: 10px;
}
.product__name{
  font-weight: 900;
  letter-spacing: -.25px;
}
.product__price{
  color: var(--muted2);
  font-weight: 800;
}
.product__desc{
  color: var(--muted);
  font-size: 14px;
  margin-bottom: 12px;
}

.note{
  margin-top: 14px;
  color: var(--muted2);
  font-size: 13px;
}

/* ---------- STEPS ---------- */
.steps{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.step{
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(18,18,18,.10);
  border-radius: 20px;
  padding: 16px;
  transition: transform .35s var(--ease), border-color .35s var(--ease), background .35s var(--ease);
}
.step:hover{
  transform: translateY(-2px);
  border-color: rgba(18,18,18,.18);
  background: linear-gradient(135deg, rgba(255,255,255,.92), rgba(200,169,92,.06));
}
.step__num{
  font-size: 12px;
  letter-spacing: .9px;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 900;
  margin-bottom: 10px;
}
.step__title{
  font-weight: 900;
  letter-spacing: -.2px;
  margin-bottom: 6px;
}
.step__text{
  color: var(--muted);
  font-size: 14px;
}

/* ---------- QUOTES ---------- */
.quote{
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(18,18,18,.10);
  border-radius: 20px;
  padding: 18px;
}
.quote p{
  color: rgba(18,18,18,.78);
  font-size: 14px;
  margin-bottom: 10px;
}
.quote footer{
  color: var(--muted2);
  font-size: 13px;
  font-weight: 700;
}

/* ---------- CONTACT ---------- */
.contact-grid{
  display:grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 14px;
  align-items:start;
}
.contact-card{
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(18,18,18,.10);
  border-radius: 22px;
  padding: 18px;
  box-shadow: 0 18px 60px rgba(0,0,0,.07);
}
.contact-card__title{
  font-weight: 900;
  letter-spacing: -.2px;
  margin-bottom: 10px;
}
.contact-pill{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding: 12px 12px;
  border-radius: 16px;
  border: 1px solid rgba(18,18,18,.10);
  background: rgba(255,255,255,.62);
  margin-top: 10px;
}
.contact-pill__label{ color: var(--muted2); font-size: 12px; font-weight: 800; }
.contact-pill__value{ color: var(--ink); font-size: 13px; font-weight: 850; }

.contact-actions{
  display:grid;
  gap: 10px;
  margin-top: 14px;
}

/* Consent card */
.consent-card {
  padding: 32px;
}
.consent-card__kicker {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 10px;
}
.consent-card__title {
  font-size: 22px;
  font-weight: 900;
  letter-spacing: -.4px;
  margin-bottom: 10px;
}
.consent-card__text {
  font-size: 14px;
  color: rgba(18,18,18,.65);
  line-height: 1.65;
  margin-bottom: 18px;
}
.consent-card__list {
  list-style: none;
  padding: 0;
  margin: 0 0 22px;
  display: grid;
  gap: 7px;
}
.consent-card__list li {
  font-size: 13px;
  font-weight: 600;
  color: rgba(18,18,18,.70);
}
.consent-card__note {
  font-size: 11px;
  color: rgba(18,18,18,.38);
  text-align: center;
  margin-top: 10px;
}

/* Form */
.form-embed{
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(18,18,18,.10);
  border-radius: 22px;
  overflow:hidden;
  box-shadow: 0 18px 60px rgba(0,0,0,.07);
}
.form-embed iframe{
  width: 100% !important;
  height: 980px;
  border: 0;
  display:block;
}

/* final cta */
.final-cta{
  margin-top: 22px;
  padding: 22px;
  border-radius: 22px;
  background:
    radial-gradient(900px 420px at 20% 20%, rgba(200,169,92,.18), transparent 62%),
    linear-gradient(135deg, rgba(31,58,55,.10), rgba(0,0,0,.06));
  border: 1px solid rgba(18,18,18,.10);
}
.final-cta h2{
  font-size: clamp(18px, 2vw, 24px);
  letter-spacing: -.4px;
  margin-bottom: 6px;
}
.final-cta p{
  color: var(--muted);
  margin-bottom: 12px;
  font-size: 14px;
}

/* ---------- FLOATING WHATSAPP ---------- */
.wa-float{
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 80;
  display:flex;
  align-items:center;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(31,58,55,.96), rgba(18,18,18,.92));
  color: #fff;
  box-shadow: 0 22px 70px rgba(0,0,0,.22);
  border: 1px solid rgba(255,255,255,.10);
  transition: transform .25s var(--ease), box-shadow .25s var(--ease);
}
.wa-float:hover{
  transform: translateY(-2px);
  box-shadow: 0 28px 90px rgba(0,0,0,.28);
}
.wa-float__icon{
  width: 34px;
  height: 34px;
  display:grid;
  place-items:center;
  border-radius: 999px;
  background: rgba(200,169,92,.22);
  color: #fff;
  font-weight: 900;
}
.wa-float__text{
  font-weight: 800;
  letter-spacing: .2px;
  font-size: 13px;
}

/* ---------- FOOTER ---------- */
.footer{
  background: linear-gradient(180deg, #0f0f0f, #0a0a0a);
  color: rgba(255,255,255,.88);
  margin-top: 30px;
}
.footer__inner{
  display:grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 14px;
  padding: 34px 0;
}
.footer__col a{
  display:block;
  color: rgba(255,255,255,.75);
  padding: 4px 0;
  font-size: 13px;
}
.footer__col a:hover{ color: #fff; }
.footer__title{
  font-weight: 900;
  letter-spacing: .2px;
  margin-bottom: 4px;
}
.footer__muted{
  color: rgba(255,255,255,.65);
  font-size: 13px;
}
.footer__bottom{
  border-top: 1px solid rgba(255,255,255,.10);
  padding: 14px 0;
}
.footer__bottom-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  color: rgba(255,255,255,.70);
  font-size: 13px;
}
.footer__credit strong{ color: #fff; }

/* ---------- REVEAL ANIMATIONS (ricas, B) ---------- */
.reveal{
  opacity: 0;
  transform: translateY(26px);
  transition: opacity .95s var(--ease), transform .95s var(--ease);
  will-change: transform, opacity;
}
.reveal.is-visible{
  opacity: 1;
  transform: translateY(0);
}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 980px){
  .nav__links{ display:none; }
  .nav__burger{ display:inline-flex; align-items:center; justify-content:center; }
  .nav__mobile.is-open{ display:block; }

  .hero__inner{
    grid-template-columns: 1fr;
    gap: 16px;
    padding-bottom: 64px;
  }
  .hero__card{ order: 2; }
  .hero__content{ order: 1; }

  .grid-3{ grid-template-columns: 1fr; }
  .grid-2{ grid-template-columns: 1fr; }

  .split{ grid-template-columns: 1fr; }

  .callout{
    flex-direction: column;
    align-items: flex-start;
  }
  .callout .btn{ width: 100%; }

  .steps{ grid-template-columns: 1fr; }
  .contact-grid{ grid-template-columns: 1fr; }

  .footer__inner{ grid-template-columns: 1fr; }
  .footer__bottom-inner{ flex-direction:column; align-items:flex-start; }
}

@media (max-width: 520px){
  .brand__text{ display:none; }
  .hero{ padding-top: 54px; }
  .hero__actions{ flex-direction:column; align-items:stretch; }
  .btn{ width:100%; }
  .form-embed iframe{ height: 1120px; }
}
/* ---------- SOBRE MARÍA ---------- */

.sobre-grid{
  display:grid;
  grid-template-columns: auto 1.2fr .8fr;
  gap: 24px;
  align-items:stretch;
}

.sobre-foto{
  width: 200px;
  flex-shrink: 0;
}

.sobre-img{
  width: 200px;
  height: 260px;
  object-fit: cover;
  object-position: top center;
  border-radius: 22px;
  box-shadow: var(--shadow);
  border: 1px solid var(--line);
}

.sobre-text p{
  color: var(--muted);
  margin-bottom: 14px;
  font-size: 15px;
}

.sobre-highlights{
  margin-top: 18px;
  display:grid;
  gap: 8px;
  font-weight: 600;
  color: var(--accent);
}

.sobre-card{
  background: rgba(255,255,255,.85);
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 22px;
  box-shadow: var(--shadow);
  transition: transform .35s var(--ease);
}

.sobre-card:hover{
  transform: translateY(-4px);
}

.sobre-badge{
  font-weight: 800;
  margin-bottom: 14px;
  color: var(--gold);
  letter-spacing: .3px;
}

.sobre-card ul{
  list-style:none;
  display:grid;
  gap: 10px;
}

.sobre-card li{
  font-size: 14px;
  color: var(--muted);
}

@media (max-width: 980px){
  .sobre-grid{
    grid-template-columns: 1fr;
  }
  .sobre-foto{
    width: 100%;
  }
  .sobre-img{
    width: 100%;
    height: 260px;
  }
}
/* ---------- PAGO SINPE ---------- */

.pago-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.pago-card{
  background: rgba(255,255,255,.85);
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 24px;
  box-shadow: var(--shadow);
}

.pago-label{
  font-size: 12px;
  color: var(--muted2);
  margin-top: 14px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .8px;
}

.pago-number{
  font-size: 18px;
  font-weight: 900;
  margin-top: 4px;
  color: var(--accent);
}

.pago-small{
  font-size: 14px;
  color: var(--muted);
  margin-top: 4px;
}

.pago-instrucciones{
  background: rgba(255,255,255,.75);
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 24px;
  box-shadow: var(--shadow);
}

.pago-instrucciones h3{
  margin-bottom: 12px;
}

.pago-instrucciones ol{
  padding-left: 18px;
  margin-bottom: 16px;
  color: var(--muted);
}

@media (max-width: 980px){
  .pago-grid{
    grid-template-columns: 1fr;
  }
}

/* ---------- TESTIMONIALS ---------- */
.testi-wrap{
  overflow-x: auto;
  margin: 32px -16px 0;
  padding: 4px 16px 20px;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.testi-wrap::-webkit-scrollbar{ display:none; }
.testi-row{
  display: flex;
  gap: 14px;
}
.testi-card{
  background: #fff;
  border: 1px solid rgba(18,18,18,.08);
  border-radius: 20px;
  padding: 26px 22px 20px;
  display: flex;
  flex-direction: column;
  min-width: 272px;
  max-width: 272px;
  scroll-snap-align: start;
  box-shadow: 0 4px 22px rgba(0,0,0,.04);
  transition: box-shadow .22s, transform .22s;
}
.testi-card:hover{
  box-shadow: 0 14px 44px rgba(0,0,0,.09);
  transform: translateY(-2px);
}
.testi-mark{
  font-size: 60px;
  line-height: .62;
  color: var(--gold);
  font-family: Georgia, serif;
  margin-bottom: 14px;
  opacity: .45;
  display: block;
}
.testi-text{
  font-size: 14px;
  line-height: 1.78;
  color: rgba(18,18,18,.78);
  flex: 1;
  font-style: italic;
}
.testi-footer{
  margin-top: 18px;
  border-top: 1px solid rgba(18,18,18,.06);
  padding-top: 13px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.testi-name{
  font-size: 13px;
  font-weight: 800;
  color: var(--dark);
}
.testi-badge{
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .8px;
  text-transform: uppercase;
  color: var(--gold);
}
@media (min-width: 768px){
  .testi-wrap{
    overflow-x: visible;
    margin: 32px 0 0;
    padding: 4px 0 0;
  }
  .testi-row{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
  }
  .testi-card{
    min-width: 0;
    max-width: none;
  }
}