/* Languages with Liam — Qué Ofrecemos page */
html{ scroll-behavior:smooth; }
.lo{ background:var(--color-paper); color:var(--color-ink); }
/* prose links only — never the buttons (they set their own colour) */
.lo-hero__lead a, .lo-offer__desc a, .lo-note a, .lo-incl a{ color:var(--color-coral); font-weight:600; }

.lo-center{ max-width:760px; margin:0 auto; text-align:center; padding:0 var(--container-pad); }
.lo-eyebrow{ display:inline-block; font-family:var(--font-lesson-overline,"Cinzel",Georgia,serif); text-transform:uppercase; letter-spacing:.18em; font-size:.74rem; font-weight:700; color:var(--color-ember,#FC780C); margin-bottom:14px; }

/* hero */
.lo-hero{ text-align:center; padding:clamp(44px,8vw,92px) var(--container-pad) clamp(20px,4vw,36px); }
.lo-hero__title,.lo-hero__lead,.lo-hero__jump{ max-width:780px; margin-left:auto; margin-right:auto; }
.lo-hero__title{ font-family:var(--font-display); font-weight:600; color:var(--color-deep); font-size:clamp(2rem,5.2vw,3.3rem); line-height:1.08; margin:0 auto 16px; letter-spacing:-.01em; }
.lo-hero__title em{ font-style:italic; color:var(--color-coral); }
.lo-hero__lead{ font-size:1.1rem; color:var(--color-ink-soft); margin:0 auto 22px; max-width:640px; }
.lo-hero__jump{ display:flex; flex-wrap:wrap; gap:8px; justify-content:center; }
.lo-hero__jump a{ font-size:.85rem; font-weight:600; color:var(--color-deep); background:var(--color-paper); border:1px solid var(--color-line); border-radius:var(--radius-pill); padding:7px 16px; text-decoration:none; }
.lo-hero__jump a:hover{ border-color:var(--color-coral); color:var(--color-coral); }

/* offer section */
.lo-offer{ padding:clamp(36px,6vw,60px) 0; border-top:1px solid var(--color-line); }
.lo-offer--alt{ background:var(--color-paper-warm); }
.lo-offer__inner{ max-width:1100px; margin:0 auto; padding:0 var(--container-pad); }
.lo-offer__head{ display:grid; grid-template-columns:auto 1fr auto; gap:18px 22px; align-items:start; }
.lo-offer__n{ font-family:var(--font-display); font-size:1.7rem; color:var(--color-line); font-weight:700; line-height:1; }
.lo-offer__kicker{ font-family:var(--font-lesson-overline,Georgia,serif); text-transform:uppercase; letter-spacing:.14em; font-size:.72rem; font-weight:700; color:var(--color-ember,#FC780C); }
.lo-offer__title{ font-family:var(--font-display); font-weight:600; color:var(--color-deep); font-size:clamp(1.5rem,3vw,2rem); margin:4px 0 10px; }
.lo-offer__desc{ color:var(--color-ink-soft); margin:0; max-width:660px; line-height:1.6; }
.lo-offer__price{ text-align:right; white-space:nowrap; }
.lo-offer__from{ display:block; font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--color-ink-soft); }
.lo-offer__amt{ font-family:var(--font-display); font-weight:600; font-size:2.4rem; color:var(--color-coral); line-height:1.05; }
.lo-offer__per{ font-size:.95rem; color:var(--color-ink-soft); font-style:italic; }

/* plan grid */
.lo-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:18px; margin:24px 0 18px; }
.lo-plan{ background:var(--color-paper); border:1px solid var(--color-line); border-radius:var(--radius-lg); padding:22px 24px; box-shadow:var(--shadow-1); }
.lo-plan--summer{ border-color:rgba(252,120,12,.35); }
.lo-plan__tag{ font-family:var(--font-lesson-overline,Georgia,serif); text-transform:uppercase; letter-spacing:.12em; font-size:.66rem; font-weight:700; color:var(--color-deep); margin-bottom:8px; }
.lo-table{ width:100%; border-collapse:collapse; }
.lo-table td{ padding:9px 0; border-bottom:1px solid var(--color-line); color:var(--color-ink); font-size:.96rem; }
.lo-table tr:last-child td{ border-bottom:none; }
.lo-table td.num{ text-align:right; font-weight:600; color:var(--color-deep); white-space:nowrap; }
.lo-table td.num small{ font-weight:400; color:var(--color-ink-soft); font-size:.8em; }
.lo-note{ font-size:.84rem; color:var(--color-ink-soft); margin:10px 0 0; line-height:1.5; }
.lo-note a{ font-weight:600; }

/* includes line */
.lo-incl{ background:var(--color-mist,#E8EFE9); border-radius:var(--radius-md); padding:14px 18px; font-size:.95rem; color:var(--color-ink); margin:6px 0 18px; line-height:1.55; }
.lo-incl span{ font-weight:700; color:var(--color-deep); }

/* CTAs */
.lo-cta{ display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.lo-cta--center{ justify-content:center; }
.lo-btn{ display:inline-flex; align-items:center; gap:8px; font-family:var(--font-body); font-weight:600; font-size:1rem; line-height:1; padding:13px 24px; border-radius:var(--radius-pill); border:none; cursor:pointer; text-decoration:none; background-image:none; transition:background .2s, transform .2s, border-color .2s, color .2s; }
.lo-btn:hover{ transform:translateY(-1px); }
.lo-btn--coral{ background:var(--color-coral); color:#fff; }
.lo-btn--coral:hover{ background:var(--color-coral-dark); color:#fff; }
.lo-btn--deep{ background:var(--color-deep); color:#fff; }
.lo-btn--deep:hover{ background:#2c2c60; color:#fff; }
.lo-btn--ghost{ background:transparent; color:var(--color-deep); border:1px solid var(--color-line); }
.lo-btn--ghost:hover{ border-color:var(--color-coral); color:var(--color-coral); transform:none; }
.lo-soon{ font-size:.84rem; color:var(--color-ink-soft); font-style:italic; }

/* WhatsApp */
.lo-wa{ display:inline-flex; align-items:center; gap:9px; background:#25D366; color:#fff!important; padding:13px 22px; border-radius:var(--radius-pill); font-weight:600; font-size:1rem; line-height:1; text-decoration:none; background-image:none; box-shadow:var(--shadow-1); transition:background .2s, transform .2s; }
.lo-wa:hover{ background:#1FB855; color:#fff!important; transform:translateY(-1px); }
.lo-wa svg{ width:20px; height:20px; flex:none; }
.lo-wa--big{ padding:15px 28px; font-size:1.05rem; }

/* comparison */
.lo-compare{ padding:clamp(40px,7vw,80px) 0; border-top:1px solid var(--color-line); }
.lo-compare__title{ font-family:var(--font-display); font-weight:600; color:var(--color-deep); font-size:clamp(1.6rem,3.5vw,2.3rem); margin:6px 0 0; }
.lo-compare__scroll{ overflow-x:auto; max-width:1100px; margin:28px auto 0; padding:0 var(--container-pad); -webkit-overflow-scrolling:touch; }
.lo-compare__table{ width:100%; min-width:640px; border-collapse:collapse; background:var(--color-paper); border:1px solid var(--color-line); border-radius:var(--radius-lg); overflow:hidden; }
.lo-compare__table th, .lo-compare__table td{ padding:14px 16px; text-align:center; border-bottom:1px solid var(--color-line); }
.lo-compare__table thead th{ background:var(--color-deep); color:#fff; font-family:var(--font-body); font-weight:600; font-size:.92rem; }
.lo-compare__table thead th small{ display:block; font-weight:400; opacity:.78; font-size:.72rem; letter-spacing:.02em; }
.lo-compare__table th.feat, .lo-compare__table td.feat{ text-align:left; font-weight:500; color:var(--color-ink); min-width:210px; }
.lo-compare__table td.y{ color:var(--color-moss,#3F6F4A); font-weight:700; font-size:1.05rem; }
.lo-compare__table td.n{ color:var(--color-line); }
.lo-compare__table tbody tr:nth-child(even) td{ background:var(--color-paper-warm); }
.lo-compare__price td{ font-family:var(--font-display); font-weight:600; color:var(--color-deep); border-bottom:none; }
.lo-compare__price td small{ font-weight:400; color:var(--color-ink-soft); }

/* final */
.lo-final{ background:linear-gradient(180deg,var(--color-paper-warm),var(--color-mist,#E8EFE9)); padding:clamp(48px,8vw,90px) 0; border-top:1px solid var(--color-line); }
.lo-final__title{ font-family:var(--font-display); font-weight:600; color:var(--color-deep); font-size:clamp(1.7rem,4vw,2.6rem); margin:0 0 12px; }
.lo-final__lead{ color:var(--color-ink-soft); max-width:560px; margin:0 auto 26px; font-size:1.05rem; }

@media(max-width:680px){
	.lo-offer__head{ grid-template-columns:auto 1fr; }
	.lo-offer__price{ grid-column:2; text-align:left; margin-top:6px; }
	.lo-offer__n{ font-size:1.2rem; }
	.lo-offer__amt{ font-size:2rem; }
}

/* ===== Animated hero scenery (sky · sun · petals · ridges) ===== */
.lo-hero{ position:relative; overflow:hidden; background:linear-gradient(180deg,#F5C8B0 0%,#FBDFC8 42%,var(--color-paper) 100%); padding-bottom:clamp(70px,11vw,150px); }
.lo-hero > *{ position:relative; z-index:2; }
.lo-hero__scenery{ position:absolute; inset:0; z-index:1; pointer-events:none; overflow:hidden; }
.lo-sun{ position:absolute; top:10%; right:9%; width:118px; height:118px; }
.lo-sun span{ position:absolute; inset:0; margin:auto; border-radius:50%; }
.lo-sun .r1{ width:118px; height:118px; background:radial-gradient(circle,rgba(252,192,0,.18),transparent 70%); animation:lo-breathe 6s ease-in-out infinite; }
.lo-sun .r2{ width:84px; height:84px; background:radial-gradient(circle,rgba(255,214,59,.30),transparent 70%); animation:lo-breathe 6s ease-in-out infinite .4s; }
.lo-sun .core{ width:58px; height:58px; background:radial-gradient(circle at 40% 35%,#FFE08A,#FCC000); box-shadow:0 0 40px rgba(252,192,0,.45); animation:lo-breathe 5s ease-in-out infinite; }
@keyframes lo-breathe{ 0%,100%{ transform:scale(1); opacity:.92; } 50%{ transform:scale(1.06); opacity:1; } }
.lo-ridges{ position:absolute; left:0; right:0; bottom:-1px; width:100%; height:clamp(90px,14vw,180px); }
.lo-petal{ position:absolute; top:-30px; border-radius:50% 0 50% 50%; opacity:0; transform:rotate(45deg); animation:lo-fall var(--pd,16s) linear var(--pdelay,0s) infinite; }
@keyframes lo-fall{ 0%{ transform:translate(0,-30px) rotate(45deg); opacity:0; } 12%{ opacity:.8; } 100%{ transform:translate(var(--pdrift,0),440px) rotate(420deg); opacity:0; } }

/* ===== Reveal on scroll ===== */
.lo-reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1); }
.lo-reveal.is-in{ opacity:1; transform:none; }

/* ===== Hover life ===== */
.lo-plan{ transition:transform .3s var(--ease-out,ease), box-shadow .3s var(--ease-out,ease), border-color .3s; }
.lo-plan:hover{ transform:translateY(-4px); box-shadow:var(--shadow-2); border-color:rgba(252,60,48,.25); }
.lo-offer__amt{ display:inline-block; transition:transform .3s; }
.lo-offer:hover .lo-offer__amt{ transform:translateY(-2px) scale(1.03); }

/* comparison ✓ pop-in when the table reveals */
.lo-compare.is-in .lo-compare__table td.y{ animation:lo-pop .45s var(--ease-bounce,cubic-bezier(.34,1.56,.64,1)) backwards; }
.lo-compare.is-in tbody tr:nth-child(1) td.y{ animation-delay:.05s; }
.lo-compare.is-in tbody tr:nth-child(2) td.y{ animation-delay:.12s; }
.lo-compare.is-in tbody tr:nth-child(3) td.y{ animation-delay:.19s; }
.lo-compare.is-in tbody tr:nth-child(4) td.y{ animation-delay:.26s; }
.lo-compare.is-in tbody tr:nth-child(5) td.y{ animation-delay:.33s; }
.lo-compare.is-in tbody tr:nth-child(6) td.y{ animation-delay:.40s; }
.lo-compare.is-in tbody tr:nth-child(7) td.y{ animation-delay:.47s; }
@keyframes lo-pop{ 0%{ transform:scale(0); opacity:0; } 100%{ transform:scale(1); opacity:1; } }

/* button arrow nudge */
.lo-btn .lo-arr{ transition:transform .25s var(--ease-out,ease); }
.lo-btn:hover .lo-arr{ transform:translateX(3px); }

@media(prefers-reduced-motion:reduce){
	.lo-sun span,.lo-petal{ animation:none!important; }
	.lo-reveal{ opacity:1; transform:none; transition:none; }
	.lo-compare.is-in .lo-compare__table td.y{ animation:none; }
}

/* ===== El Campo (CLIL) — featured, private-only ===== */
.lo-field{ position:relative; margin:4px 0 18px; padding:22px 24px 22px 28px; background:linear-gradient(180deg,#FFF6EE,var(--color-paper)); border:1px solid rgba(252,120,12,.28); border-radius:var(--radius-lg); box-shadow:var(--shadow-1); overflow:hidden; }
.lo-field::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:linear-gradient(180deg,var(--color-coral),var(--color-ember,#FC780C)); }
.lo-field__tag{ display:inline-block; font-family:var(--font-lesson-overline,Georgia,serif); text-transform:uppercase; letter-spacing:.12em; font-size:.64rem; font-weight:700; color:#fff; background:var(--color-ember,#FC780C); border-radius:var(--radius-pill); padding:4px 12px; }
.lo-field__title{ font-family:var(--font-display); font-weight:600; color:var(--color-deep); font-size:1.25rem; margin:12px 0 6px; }
.lo-field__desc{ color:var(--color-ink-soft); margin:0 0 14px; max-width:680px; line-height:1.6; }
.lo-field__steps{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:10px; }
.lo-field__steps span{ display:flex; align-items:flex-start; gap:9px; font-size:.9rem; color:var(--color-ink); background:var(--color-paper); border:1px solid var(--color-line); border-radius:var(--radius-md); padding:10px 13px; line-height:1.35; }
.lo-field__steps b{ flex:none; width:22px; height:22px; border-radius:50%; background:var(--color-coral); color:#fff; font-size:.76rem; display:flex; align-items:center; justify-content:center; font-weight:700; margin-top:1px; }
.lo-compare.is-in tbody tr:nth-child(8) td.y{ animation-delay:.54s; }

/* ===== Mobile: comparison table fits without horizontal scroll ===== */
@media(max-width:600px){
	.lo-compare__scroll{ overflow-x:visible; padding:0 12px; }
	.lo-compare__table{ min-width:0; width:100%; table-layout:fixed; }
	.lo-compare__table th, .lo-compare__table td{ padding:9px 4px; font-size:.72rem; }
	.lo-compare__table th.feat, .lo-compare__table td.feat{ min-width:0; width:42%; font-size:.74rem; line-height:1.25; }
	.lo-compare__table thead th{ font-size:.66rem; line-height:1.15; }
	.lo-compare__table thead th small{ display:none; }   /* hide "self-study" subtitle on mobile */
	.lo-compare__table td.y{ font-size:.92rem; }
	.lo-compare__price td{ font-size:.78rem; }
	.lo-compare__price td small{ display:none; }
}
