/* =====================================================================
   FLY WITH THEO — site stylesheet
   Palette: #BFD1D7 · #D6E3E8 · #1C272B · warm cream
   Fonts:  Fraunces (serif headings) · Work Sans (body)
   ===================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,400;1,9..144,500&family=Work+Sans:wght@400;500;600;700&display=swap');

:root{
  --blue:#BFD1D7;
  --blue-2:#D6E3E8;
  --charcoal:#1C272B;
  --cream:#FBF7EF;
  --cream-2:#F4EFE4;
  --white:#FFFFFF;

  --ink:#1C272B;
  --ink-soft:#5C686D;
  --accent:#5E7D8A;        /* steel blue — buttons & icons */
  --accent-dark:#4B6874;
  --accent-soft:#E7EEF1;
  --line:#E7E3D8;
  --line-soft:#EFEBE1;
  --warm:#C7A98B;          /* subtle warm tone for Español accents */
  --red:#B4463C;

  --shadow-sm:0 6px 18px rgba(28,39,43,0.06);
  --shadow-md:0 16px 40px rgba(28,39,43,0.10);
  --radius:16px;
  --radius-lg:22px;
  --maxw:1180px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'Work Sans',sans-serif;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4{
  font-family:'Fraunces',serif;
  font-weight:500;
  margin:0;
  letter-spacing:-0.01em;
  color:var(--ink);
}
p{margin:0 0 1em;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
ul{margin:0;padding:0;list-style:none;}

.container{max-width:var(--maxw);margin:0 auto;padding:0 32px;}

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  padding:13px 26px;
  border-radius:999px;
  font-family:'Work Sans',sans-serif;
  font-size:0.95rem;
  font-weight:600;
  cursor:pointer;
  border:1.5px solid transparent;
  transition:transform .15s ease, background .18s, color .18s, box-shadow .18s;
  white-space:nowrap;
}
.btn-primary{background:var(--accent);color:var(--white);box-shadow:0 8px 20px rgba(94,125,138,0.28);}
.btn-primary:hover{background:var(--accent-dark);transform:translateY(-2px);box-shadow:0 12px 26px rgba(94,125,138,0.34);}
.btn-ghost{background:transparent;border-color:var(--accent);color:var(--accent);}
.btn-ghost:hover{background:var(--accent);color:var(--white);transform:translateY(-2px);}
.btn-light{background:var(--white);color:var(--ink);border-color:var(--line);}
.btn-light:hover{border-color:var(--accent);color:var(--accent);}
.btn-whatsapp{background:#25D366;color:#fff;box-shadow:0 8px 20px rgba(37,211,102,0.28);}
.btn-whatsapp:hover{background:#1EBE5A;transform:translateY(-2px);}
.btn svg{width:18px;height:18px;flex-shrink:0;}

/* ---------- NAV ---------- */
.site-nav{
  position:sticky;
  top:0;
  z-index:60;
  background:rgba(251,247,239,0.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.nav-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  max-width:var(--maxw);
  margin:0 auto;
  padding:14px 32px;
}
.brand{display:flex;flex-direction:column;line-height:1.05;}
.brand .brand-name{
  font-family:'Fraunces',serif;
  font-size:1.12rem;
  font-weight:600;
  letter-spacing:0.14em;
  color:var(--charcoal);
}
.brand .brand-slogan{
  font-family:'Fraunces',serif;
  font-style:italic;
  font-size:0.78rem;
  color:var(--accent);
  letter-spacing:0.01em;
}
.nav-links{display:flex;align-items:center;gap:22px;}
.nav-links a{
  font-size:0.9rem;
  font-weight:500;
  color:var(--ink-soft);
  padding-bottom:4px;
  border-bottom:2px solid transparent;
  transition:color .15s, border-color .15s;
}
.nav-links a:hover{color:var(--ink);}
.nav-links a.active{color:var(--charcoal);border-color:var(--accent);}
.menu-toggle{display:none;background:none;border:none;font-size:1.5rem;line-height:1;color:var(--charcoal);cursor:pointer;padding:4px;}

/* language switcher */
.lang-switch{display:flex;align-items:center;gap:6px;padding-left:6px;margin-left:2px;border-left:1px solid var(--line);}
.lang-flag{display:inline-flex;border-bottom:none !important;padding:0 !important;}
.lang-flag img{width:24px;height:24px;border-radius:50%;display:block;opacity:0.45;filter:grayscale(0.4);transition:opacity .15s, filter .15s, transform .15s;box-shadow:0 0 0 1px rgba(28,39,43,0.12);}
.lang-flag:hover img{opacity:0.85;transform:translateY(-1px);}
.lang-flag.active img{opacity:1;filter:none;box-shadow:0 0 0 2px var(--accent);}

/* ---------- HERO ---------- */
.hero{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(900px 420px at 92% -8%, var(--blue-2) 0%, rgba(214,227,232,0) 60%),
    linear-gradient(180deg, var(--blue-2) 0%, var(--cream) 78%);
}
.hero-inner{
  max-width:var(--maxw);
  margin:0 auto;
  padding:52px 32px 24px;
  display:grid;
  grid-template-columns:1.05fr 0.95fr;
  gap:48px;
  align-items:center;
  position:relative;
  z-index:2;
}
.hero-text{max-width:560px;}
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:0.78rem;
  font-weight:600;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:16px;
}
.eyebrow::before{content:'';width:22px;height:1.5px;background:var(--accent);}
.hero-text h1{
  font-size:3.1rem;
  line-height:1.06;
  margin-bottom:8px;
}
.hero-text .brand-lockup{margin-bottom:18px;}
.hero-text .brand-lockup .name{font-size:2.9rem;line-height:1.02;display:block;letter-spacing:0.02em;}
.hero-text .brand-lockup .slogan{
  font-family:'Fraunces',serif;font-style:italic;font-size:1.5rem;color:var(--accent);display:block;margin-top:4px;
}
.hero-text .rule{width:54px;height:3px;border-radius:2px;background:var(--accent);margin:18px 0;}
.hero-text .kicker{font-family:'Fraunces',serif;font-size:1.5rem;line-height:1.25;margin-bottom:14px;color:var(--charcoal);}
.hero-text p.lead{font-size:1.08rem;color:var(--ink-soft);margin-bottom:26px;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;}

/* Hero image placeholder — bleeds toward the right edge */
.hero-image{position:relative;}
.img-ph{
  position:relative;
  border-radius:var(--radius-lg);
  background:linear-gradient(160deg,#CBD9DE 0%, #AFC4CA 100%);
  border:1px solid rgba(255,255,255,0.6);
  box-shadow:var(--shadow-md);
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#3f5860;
  min-height:220px;
}
.img-ph::after{
  content:attr(data-label);
  font-family:'Work Sans',sans-serif;
  font-size:0.82rem;
  font-weight:600;
  letter-spacing:0.04em;
  color:rgba(28,39,43,0.45);
  text-align:center;
  padding:0 20px;
}
/* Real photo fills the frame; label shows only if the image is missing */
.img-ph .photo-fill{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:1;
}
.hero-image .img-ph{aspect-ratio:5/6;max-width:440px;margin-left:auto;}
.hero-image .img-ph .photo-fill{object-position:center 20%;}

/* Bleed variant — photo fades softly into the background (no card frame) */
.img-ph.bleed{
  background:none;
  border:none;
  box-shadow:none;
  border-radius:0;
  aspect-ratio:5/6;
  max-width:none;
  width:calc(100% + 60px);
  max-height:420px;
  margin-right:-60px;
  -webkit-mask-image:linear-gradient(to right, transparent 0%, #000 28%, #000 100%),
                     linear-gradient(to bottom, #000 78%, transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to right, transparent 0%, #000 28%, #000 100%),
             linear-gradient(to bottom, #000 78%, transparent 100%);
  mask-composite:intersect;
}
/* Keep the head in frame when the photo is cropped */
.img-ph.bleed .photo-fill{object-position:top center;}
.img-ph.head-up .photo-fill{object-position:center -60px;}
/* Wider / more landscape variant (home hero) */
.img-ph.bleed-tall{aspect-ratio:16/10;width:calc(100% + 120px);max-height:none;margin-right:-120px;}
.img-ph.bleed-tall .photo-fill{object-position:center center;}

/* ---------- SECTIONS ---------- */
section{padding:52px 0;position:relative;}
.hero + section{padding-top:20px;}
.section-alt{background:var(--blue-2);}
.section-soft{background:var(--cream-2);}
.section-head{max-width:640px;margin-bottom:32px;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.section-head .eyebrow{margin-bottom:14px;}
.section-head h2{font-size:2.15rem;line-height:1.1;margin-bottom:14px;}
.section-head h2 .rule,.rule-sm{display:block;width:52px;height:3px;border-radius:2px;background:var(--accent);margin-top:14px;}
.section-head.center .rule-sm{margin-left:auto;margin-right:auto;}
.section-head p{color:var(--ink-soft);font-size:1.05rem;}

/* ---------- CARDS: SERVICES ---------- */
.cards{display:grid;gap:26px;}
.cards-3{grid-template-columns:repeat(3,1fr);}
.cards-4{grid-template-columns:repeat(4,1fr);}
.card{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:30px 28px;
  display:flex;
  flex-direction:column;
  transition:transform .16s, box-shadow .16s;
}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);}
.card-icon{
  width:52px;height:52px;
  border-radius:50%;
  background:var(--accent);
  color:var(--white);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:18px;
}
.card-icon svg{width:24px;height:24px;}
.card .eyebrow{margin-bottom:8px;}
.card h3{font-size:1.35rem;margin-bottom:10px;}
.card p{color:var(--ink-soft);font-size:0.96rem;margin-bottom:16px;}
.card-list{margin:0 0 20px;display:grid;gap:9px;}
.card-list li{position:relative;padding-left:24px;font-size:0.93rem;color:var(--ink-soft);}
.card-list li::before{
  content:'';position:absolute;left:0;top:8px;
  width:13px;height:13px;border-radius:50%;
  background:var(--accent-soft);
  box-shadow:inset 0 0 0 2px var(--accent);
}
.card .btn{margin-top:auto;align-self:flex-start;}
.card.warm .card-icon{background:var(--warm);}
.card.warm .card-list li::before{background:#F0E6DA;box-shadow:inset 0 0 0 2px var(--warm);}

/* ---------- ABOUT / EDITORIAL ---------- */
.editorial{display:grid;grid-template-columns:0.9fr 1.1fr;gap:48px;align-items:center;}
.editorial.reverse{grid-template-columns:1.1fr 0.9fr;}
.editorial.reverse .editorial-media{order:2;}
.editorial-media .img-ph{aspect-ratio:4/5;}
.editorial-media .img-ph.bleed-tall{aspect-ratio:16/10;}
.editorial-text h2{font-size:1.9rem;margin-bottom:8px;}
.editorial-text .rule-sm{margin-bottom:20px;}
.editorial-text p{color:var(--ink-soft);}
.prose{max-width:none;}
.prose p{color:var(--ink-soft);font-size:1.04rem;max-width:none;margin-bottom:1em;}
.prose.cols{columns:2;column-gap:56px;}
.prose.cols p{break-inside:avoid;}
@media (max-width:760px){.prose.cols{columns:1;}}

/* language pills */
.pills{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;}
.pill{background:var(--accent-soft);color:var(--accent-dark);border-radius:999px;padding:7px 16px;font-size:0.86rem;font-weight:600;}
.pill.warm{background:#F0E6DA;color:#8A6A4A;}

/* ---------- PRICING ---------- */
.price-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.price-card{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:26px 24px;
  display:flex;flex-direction:column;
  position:relative;
  transition:transform .16s, box-shadow .16s;
}
.price-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);}
.price-card .p-icon{
  width:46px;height:46px;border-radius:50%;
  background:var(--accent-soft);color:var(--accent);
  display:flex;align-items:center;justify-content:center;margin-bottom:16px;
}
.price-card .p-icon svg{width:22px;height:22px;}
.price-card h4{font-size:1.05rem;text-transform:uppercase;letter-spacing:0.03em;margin-bottom:6px;font-family:'Work Sans';font-weight:700;color:var(--charcoal);}
.price-card .p-sub{font-size:0.85rem;color:var(--ink-soft);margin-bottom:16px;}
.price-card .p-price{font-family:'Fraunces',serif;font-size:2rem;color:var(--accent);margin-top:auto;line-height:1;}
.price-card .p-unit{font-size:0.82rem;color:var(--ink-soft);margin-top:6px;}
.price-card .btn{margin-top:18px;width:100%;}
.price-card.featured{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);}
.price-card .p-tag{
  position:absolute;top:16px;right:16px;
  background:var(--accent);color:#fff;font-size:0.68rem;font-weight:700;
  letter-spacing:0.05em;text-transform:uppercase;padding:5px 11px;border-radius:999px;
}
.price-card.group{background:linear-gradient(180deg,#FFFFFF 0%, var(--accent-soft) 100%);}

/* ---------- LIST (coaching "we can work on") ---------- */
.work-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 40px;max-width:820px;}
.work-item{display:flex;align-items:flex-start;gap:14px;font-size:1.02rem;color:var(--ink);padding:6px 0;}
.work-item .tick{
  flex-shrink:0;width:26px;height:26px;border-radius:50%;
  background:var(--accent-soft);color:var(--accent);
  display:flex;align-items:center;justify-content:center;margin-top:1px;
}
.work-item .tick svg{width:14px;height:14px;}

/* ---------- FUTURE PROGRAMMES ---------- */
.future-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.future-card{
  background:var(--white);border:1px dashed var(--line);border-radius:var(--radius);
  padding:24px 22px;position:relative;
}
.future-card .soon{
  display:inline-block;font-size:0.68rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--accent);background:var(--accent-soft);padding:4px 10px;border-radius:999px;margin-bottom:12px;
}
.future-card h4{font-size:1.08rem;margin-bottom:4px;}
.future-card p{font-size:0.9rem;color:var(--ink-soft);margin:0;}

/* ---------- STEPS ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.step{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:30px 26px;text-align:center;}
.step .num{
  width:46px;height:46px;border-radius:50%;background:var(--accent);color:#fff;
  font-family:'Fraunces',serif;font-size:1.25rem;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;
}
.step h4{font-size:1.12rem;margin-bottom:8px;}
.step p{font-size:0.94rem;color:var(--ink-soft);margin:0;}

/* ---------- CONTACT ---------- */
.contact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;max-width:820px;}
.contact-item{
  display:flex;align-items:center;gap:16px;
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;
  transition:transform .16s, box-shadow .16s;
}
.contact-item:hover{transform:translateY(-3px);box-shadow:var(--shadow-sm);}
.contact-item .c-icon{
  width:46px;height:46px;border-radius:50%;background:var(--accent-soft);color:var(--accent);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.contact-item .c-icon svg{width:22px;height:22px;}
.contact-item .c-label{font-size:0.78rem;text-transform:uppercase;letter-spacing:0.08em;color:var(--ink-soft);}
.contact-item .c-value{font-size:1.05rem;font-weight:600;color:var(--charcoal);}

/* ---------- CTA BAND ---------- */
.cta-band{background:var(--blue-2);text-align:center;}
.cta-band h2{font-size:2rem;margin-bottom:6px;}
.cta-band .sub{font-family:'Fraunces',serif;font-style:italic;font-size:1.4rem;color:var(--accent);margin-bottom:18px;}
.cta-band p{color:var(--ink-soft);max-width:52ch;margin:0 auto 24px;}
.cta-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}

/* ---------- LEAF DECOR ---------- */
.leaf{position:absolute;pointer-events:none;opacity:0.5;z-index:1;width:150px;}
.leaf-tl{top:-10px;left:-30px;transform:scaleX(-1) rotate(8deg);}
.leaf-bl{bottom:-20px;left:-30px;transform:rotate(-6deg);}
.leaf-br{bottom:-20px;right:-30px;transform:scaleX(-1) rotate(6deg);}

/* ---------- FOOTER ---------- */
.site-footer{background:var(--charcoal);color:rgba(255,255,255,0.82);position:relative;overflow:hidden;}
.site-footer .leaf{opacity:0.14;}
.footer-top{
  max-width:var(--maxw);margin:0 auto;padding:56px 32px 34px;
  display:grid;grid-template-columns:1.3fr 1fr 1.2fr;gap:40px;position:relative;z-index:2;
}
.footer-brand .brand-name{font-family:'Fraunces',serif;font-size:1.4rem;letter-spacing:0.14em;color:#fff;}
.footer-brand .brand-slogan{font-family:'Fraunces',serif;font-style:italic;color:var(--blue);margin-top:2px;}
.footer-tagline{color:rgba(255,255,255,0.6);font-size:0.9rem;margin-top:14px;letter-spacing:0.03em;}
.footer-col h5{font-size:0.78rem;text-transform:uppercase;letter-spacing:0.1em;color:var(--blue);margin-bottom:14px;font-family:'Work Sans';font-weight:700;}
.footer-links{display:flex;flex-direction:column;gap:10px;}
.footer-links a{color:rgba(255,255,255,0.78);font-size:0.92rem;transition:color .15s;}
.footer-links a:hover{color:#fff;}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,0.12);
  max-width:var(--maxw);margin:0 auto;padding:20px 32px;
  display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
  font-size:0.84rem;color:rgba(255,255,255,0.6);position:relative;z-index:2;
}
.footer-bottom a{color:rgba(255,255,255,0.7);}
.footer-bottom a:hover{color:#fff;}
.footer-legal{display:flex;gap:18px;}

/* ---------- MODAL (checkout) ---------- */
.modal-overlay{
  position:fixed;inset:0;background:rgba(28,39,43,0.55);backdrop-filter:blur(3px);
  display:none;align-items:center;justify-content:center;z-index:200;padding:24px;
}
.modal-overlay.open{display:flex;}
.modal{
  background:var(--cream);border-radius:var(--radius-lg);max-width:520px;width:100%;
  padding:32px;box-shadow:var(--shadow-md);position:relative;max-height:92vh;overflow-y:auto;
}
.modal-close{position:absolute;top:16px;right:16px;background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--ink-soft);line-height:1;}
.modal h3{font-size:1.4rem;margin-bottom:6px;}
.modal .modal-sub{color:var(--ink-soft);font-size:0.95rem;margin-bottom:22px;}
.modal .modal-price{font-family:'Fraunces',serif;font-size:1.3rem;color:var(--accent);}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0;}
.field{display:flex;flex-direction:column;}
.field.full{grid-column:1/-1;}
.field label{font-size:0.8rem;color:var(--ink-soft);margin-bottom:6px;}
.field input,.field textarea{
  width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:10px;
  font-family:'Work Sans';font-size:0.94rem;background:var(--white);color:var(--ink);
}
.field input:focus,.field textarea:focus{outline:2px solid var(--accent);outline-offset:1px;}
.modal .btn{width:100%;}
.modal .pay-note{text-align:center;font-size:0.78rem;color:var(--ink-soft);margin-top:12px;}
.error-msg{background:#FBEAE8;color:var(--red);border:1px solid #EFC5C0;border-radius:9px;padding:10px 14px;font-size:0.85rem;margin-bottom:14px;display:none;}
.error-msg.show{display:block;}

/* ---------- STATUS PAGES ---------- */
.status-page{min-height:64vh;display:flex;align-items:center;justify-content:center;padding:70px 24px;}
.status-card{max-width:480px;text-align:center;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);padding:48px 40px;box-shadow:var(--shadow-sm);}
.status-card .icon{width:58px;height:58px;margin:0 auto 20px;}
.status-card h1{font-size:1.7rem;margin-bottom:12px;}
.status-card p{color:var(--ink-soft);margin-bottom:26px;}

/* ---------- RESPONSIVE ---------- */
@media (max-width:960px){
  .hero-inner{grid-template-columns:1fr;gap:34px;}
  .hero-image .img-ph{max-width:520px;margin:0 auto;aspect-ratio:16/11;}
  .editorial,.editorial.reverse{grid-template-columns:1fr;gap:30px;}
  .editorial.reverse .editorial-media{order:0;}
  .editorial-media .img-ph{max-width:480px;margin:0 auto;}
  .cards-3,.cards-4,.price-grid,.future-grid{grid-template-columns:repeat(2,1fr);}
  .footer-top{grid-template-columns:1fr 1fr;}
}
@media (max-width:720px){
  .container{padding:0 20px;}
  .nav-bar{padding:12px 20px;}
  .nav-links{
    position:absolute;top:100%;left:0;right:0;background:var(--cream);
    flex-direction:column;align-items:stretch;gap:0;
    border-bottom:1px solid var(--line);box-shadow:var(--shadow-sm);
    max-height:0;overflow:hidden;transition:max-height .28s ease;
  }
  .nav-links.open{max-height:520px;}
  .nav-links a{padding:15px 24px;border-bottom:1px solid var(--line-soft);border-left:3px solid transparent;}
  .nav-links a.active{border-left-color:var(--accent);border-bottom-color:var(--line-soft);}
  .menu-toggle{display:block;}
  .lang-switch{border-left:none;padding:12px 24px;gap:12px;justify-content:flex-start;border-bottom:1px solid var(--line-soft);}
  .lang-flag{padding:0 !important;}
  .lang-flag img{width:30px;height:30px;}
  section{padding:34px 0;}
  .hero + section{padding-top:14px;}
  .hero-inner{padding:32px 20px 28px;gap:24px;}
  .hero-text h1,.hero-text .brand-lockup .name{font-size:2.3rem;}
  .section-head{margin-bottom:24px;}
  .steps,.work-grid{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr;}
  .footer-top{grid-template-columns:1fr 1fr;gap:24px 20px;}
  .footer-brand{grid-column:1 / -1;}
  .footer-bottom{flex-direction:column;text-align:center;}
  /* On phones: normal portrait image — no fade, no crop, just smaller */
  .img-ph.bleed,.img-ph.bleed-tall{
    display:block;
    aspect-ratio:auto;
    width:100%;
    max-width:340px;
    min-height:0;
    max-height:none;
    margin:0 auto;
    border-radius:var(--radius);
    box-shadow:var(--shadow-sm);
    overflow:hidden;
    -webkit-mask-image:none;
    mask-image:none;
  }
  .img-ph.bleed::after,.img-ph.bleed-tall::after{content:none;}
  .editorial-media .img-ph{max-width:340px;margin:0 auto;}
  .img-ph.bleed .photo-fill,.img-ph.bleed-tall .photo-fill{
    position:static;
    width:100%;
    height:auto;
    object-fit:contain;
  }
}
@media (max-width:560px){
  .cards-3,.cards-4,.price-grid,.future-grid{grid-template-columns:1fr;}
  .form-grid{grid-template-columns:1fr;}
  .hero-actions,.cta-actions{flex-direction:column;}
  .hero-actions .btn,.cta-actions .btn{width:100%;}
}
@media (hover:none){
  .nav-links a{padding-top:15px;padding-bottom:15px;}
}
