/* Yoga online · Aroa — estilos independientes de Sankalpa */
:root {
  --ink: #34382b;
  --olive: #4b533a;
  --sage: #c1cca7;
  --paper: #f2f4e9;
  --line: #34382b30;
  font-family: Arial, Helvetica, sans-serif;
  font-synthesis: none;
  color: var(--ink);
  background: var(--sage);
}
* { box-sizing: border-box; }
body { margin: 0; }
a { color: inherit; text-decoration: none; }
p { margin: 0; line-height: 1.6; }
h1, h2, h3 { margin: 0; font-weight: 400; }
.wrap { width: min(1040px, calc(100% - 64px)); margin-inline: auto; }

/* Un título común y dos columnas alineadas, sin desplazamientos artificiales. */
.hero { padding-block: 42px 48px; }
.headline {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 30px;
}
h1 {
  font: 400 clamp(78px, 9.5vw, 126px)/1.12 Georgia, serif;
  letter-spacing: -.035em;
}
h1 span, h1 em { display: inline; }
h1 em { margin-left: .12em; font-weight: 400; }
.signature { flex-shrink: 0; font: italic 27px/1.3 Georgia, serif; }
.hero-layout { display: grid; grid-template-columns: 1fr 1.06fr; gap: 32px; align-items: stretch; }
.hero-details { display: flex; flex-direction: column; gap: 25px; min-width: 0; }
.yoga-photo {
  position: relative;
  overflow: hidden;
  margin: 0;
  min-width: 0;
  border-radius: 140px 24px 24px 24px;
  background: #adb993;
}
.yoga-photo img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 78%;
}
.signup {
  background: var(--paper);
  border: 1px solid #ffffff48;
  border-radius: 24px;
  padding: 32px;
}
.eyebrow { font-size: 10px; letter-spacing: .14em; margin-bottom: 16px; }
h2 { font: 36px/1.16 Georgia, serif; letter-spacing: -.025em; }
h2 br { display: none; }
h2 span { display: inline-block; margin-left: 10px; white-space: nowrap; }
.time { font-size: 12px; margin-top: 12px; line-height: 1.5; }
.price { font: 68px/1.1 Georgia, serif; letter-spacing: -.045em; margin-top: 24px; }
.price span { font: 15px Arial, sans-serif; letter-spacing: 0; margin-left: 8px; }
.included { font-size: 14px; margin: 14px 0 20px; }
.renewal { font-size: 12px; line-height: 1.6; border-top: 1px solid #d7dacb; padding-top: 18px; margin-bottom: 20px; }
.renewal strong { font-weight: 600; }
.button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 17px 21px;
  border-radius: 30px;
  background: var(--olive);
  color: #fffdfa;
  font-size: 14px;
  font-weight: 600;
  min-height: 56px;
}
.button:hover { background: #343c27; }
.button span { font-size: 22px; font-weight: 400; }
.pay { font-size: 11px; text-align: center; margin: 11px 0 16px; }
.small { font-size: 11px; color: #535b43; line-height: 1.5; }
.signup-note { padding: 0 12px 4px; text-align: center; }
.intro { font: 27px/1.4 Georgia, serif; letter-spacing: -.015em; }
.start-date { font-size: 12px; margin-top: 12px; color: var(--olive); }

/* Información breve y preguntas desplegables. */
.essentials { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; border-block: 1px solid var(--line); padding-block: 30px; }
h3 { font: 25px/1.2 Georgia, serif; margin-bottom: 10px; }
.essentials p { font-size: 13px; max-width: 280px; }
.practice { display: grid; grid-template-columns: 1fr 1.06fr; gap: 32px; align-items: center; padding-block: 42px; }
.practice > p { font: 34px/1.2 Georgia, serif; letter-spacing: -.025em; }
.practice > div { font-size: 14px; line-height: 1.7; }
.faq { padding-bottom: 30px; }
details { border-top: 1px solid var(--line); }
details:last-child { border-bottom: 1px solid var(--line); }
summary { list-style: none; cursor: pointer; font-size: 14px; line-height: 1.5; position: relative; padding: 20px 35px 20px 0; }
summary::-webkit-details-marker { display: none; }
summary::after { content: '+'; position: absolute; right: 0; top: 14px; font-size: 24px; }
details[open] summary::after { content: '−'; }
details p { font-size: 13px; padding: 0 35px 22px 0; max-width: 780px; }
details a { text-decoration: underline; overflow-wrap: anywhere; }
footer { padding: 12px 0 30px; display: flex; justify-content: space-between; gap: 20px; font-size: 12px; }
footer > span { font: italic 18px Georgia, serif; }
footer a { overflow-wrap: anywhere; }
a:focus-visible, summary:focus-visible { outline: 3px solid #795e43; outline-offset: 5px; }
.skip { position: absolute; top: -100px; left: 15px; background: var(--paper); padding: 15px; z-index: 5; }
.skip:focus { top: 15px; }

@media (max-width: 900px) and (min-width: 701px) {
  .wrap { width: calc(100% - 48px); }
  .hero-layout { grid-template-columns: .9fr 1.1fr; gap: 24px; }
  .signup { padding: 26px; }
  h2 { font-size: 30px; }
  .intro { font-size: 24px; }
}

@media (max-width: 700px) {
  .wrap { width: calc(100% - 36px); }
  .hero { padding-block: 26px 32px; }
  .headline { display: block; text-align: center; margin-bottom: 24px; }
  h1 { font-size: clamp(68px, 14.6vw, 99px); line-height: 1.12; }
  h1 span, h1 em { display: block; }
  h1 em { margin-left: 0; }
  .signature { font-size: 23px; margin-top: 9px; }
  .hero-layout { display: flex; flex-direction: column; gap: 26px; }
  .hero-details { order: 1; gap: 24px; }
  .yoga-photo { order: 2; aspect-ratio: 3 / 4; border-radius: 95px 20px 20px 20px; }
  .signup { padding: 25px 23px; border-radius: 22px; }
  h2 { font-size: clamp(27px, 7vw, 34px); }
  h2 span { margin-left: 6px; }
  .eyebrow { margin-bottom: 14px; }
  .price { font-size: 59px; margin-top: 20px; }
  .included { margin: 12px 0 17px; }
  .button { padding-inline: 17px; }
  .intro { font-size: 25px; }
  .essentials { grid-template-columns: 1fr; gap: 23px; padding-block: 27px; }
  h3 { font-size: 24px; margin-bottom: 7px; }
  .essentials p { max-width: none; }
  .practice { grid-template-columns: 1fr; gap: 20px; padding-block: 32px; }
  .practice > p { font-size: 31px; }
  .practice > div { font-size: 13px; }
  footer { flex-direction: column; gap: 10px; }
  summary { font-size: 13px; }
}
