/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/font-01.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/font-02.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/font-03.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/font-04.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/font-05.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/font-01.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/font-02.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/font-03.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/font-04.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/font-05.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/font-06.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/font-07.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/font-08.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/font-09.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/font-10.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/font-06.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/font-07.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/font-08.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/font-09.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/font-10.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/font-06.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/font-07.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/font-08.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/font-09.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/font-10.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/font-11.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/font-12.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/font-13.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/font-14.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/font-11.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/font-12.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/font-13.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/font-14.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/font-11.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/font-12.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/font-13.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/font-14.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/font-11.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/font-12.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/font-13.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/font-14.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
.pk-res2{margin-top:32px;display:flex;align-items:center;gap:24px;padding:20px 28px;background:#fff;border:1px solid rgba(110,100,140,.18);border-radius:16px;max-width:560px}.pk-res2 .amt{font-family:var(--serif,Georgia,serif);font-size:40px;line-height:1;color:var(--navy,#6e6a8a);padding-right:24px;border-right:1px solid rgba(110,100,140,.2);white-space:nowrap}.pk-res2 p{margin:6px 0 0}.pa-list{margin:16px 0 0;padding:0;list-style:none;display:grid;gap:10px}.pa-list li{position:relative;padding-left:22px;color:var(--ink-soft)}.pa-list li::before{content:"";position:absolute;left:0;top:.6em;width:8px;height:8px;border-radius:50%;background:var(--lav,#9a8fc0)}.pk-quote blockquote{margin:0 auto;max-width:980px;text-align:center}.pk-quote blockquote p{font-family:var(--serif,Georgia,serif);font-size:clamp(24px,3.2vw,40px);line-height:1.3;color:#fff;text-wrap:balance;margin:0}.pk-quote cite{display:block;margin-top:24px;font-style:normal;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#fff}

/* ================================================================
   COLEGIO PALMA EL PUIG — Propuesta V2
   "Piedra fría, minimalista" — navy de marca + blanco/gris piedra
   Sin dorado, sin beige/crema. El lujo de la contención.
   ================================================================ */

:root{
  /* Marca */
  --navy:        #00285b;
  --navy-deep:   #001a3d;
  --navy-700:    #123a68;

  /* Piedra / blanco frío */
  --white:       #ffffff;
  --stone-50:    #f6f7f8;
  --stone-100:   #eef0f2;
  --stone-200:   #e2e5e9;

  /* Tinta */
  --ink:         #0d1b2e;
  --ink-soft:    #57616f;
  --ink-faint:   #8b93a0;
  --line:        rgba(13,27,46,0.14);
  --line-soft:   rgba(13,27,46,0.08);
  --line-on-dark: rgba(255,255,255,0.22);
  --line-on-dark-soft: rgba(255,255,255,0.12);

  /* Tipografía */
  --serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --sans:  "Hanken Grotesk", system-ui, -apple-system, sans-serif;

  /* Métrica */
  --maxw: 1240px;
  --gutter: clamp(20px, 5vw, 80px);
  --section-y: clamp(64px, 10vh, 132px);
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--sans);
  background:var(--white);
  color:var(--ink);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ display:block; max-width:100%; }
::selection{ background:var(--navy); color:#fff; }
a{ color:inherit; text-decoration:none; }

/* ---------- Tipografía ---------- */
h1,h2,h3,h4{
  font-family:var(--serif);
  font-weight:500;
  line-height:1.08;
  letter-spacing:-0.008em;
  margin:0;
  color:var(--ink);
}
.display{ font-size:clamp(46px,7.6vw,108px); line-height:0.98; font-weight:500; letter-spacing:-0.015em; }
.h-xl{ font-size:clamp(36px,5vw,64px); }
.h-lg{ font-size:clamp(28px,3.2vw,42px); }
.h-md{ font-size:clamp(22px,2.2vw,29px); }
em,.italic{ font-style:italic; }
p{ margin:0 0 1.1em; }
.muted{ color:var(--ink-soft); }
.lede{ font-family:var(--serif); font-style:italic; font-size:clamp(19px,1.6vw,24px); line-height:1.5; color:var(--ink-soft); }

.eyebrow{
  font-family:var(--sans);
  font-size:12px;
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--ink);
  display:inline-flex;
  align-items:center;
  gap:14px;
}
.eyebrow::before{ content:""; width:28px; height:1px; background:var(--navy); display:inline-block; }
.eyebrow.on-dark{ color:#fff; }
.eyebrow.on-dark::before{ background:rgba(255,255,255,.7); }
.eyebrow.center{ justify-content:center; }

/* ---------- Layout ---------- */
.wrap{ width:100%; max-width:var(--maxw); margin:0 auto; padding-inline:var(--gutter); }
.section{ padding-block:var(--section-y); }
.section.tight{ padding-block: calc(var(--section-y) * 0.6); }
.bg-stone{ background:var(--stone-50); }
.bg-navy{ background:var(--navy); color:#fff; }
.center{ text-align:center; margin-inline:auto; }
.measure{ max-width:640px; }
.section-head{ max-width:640px; margin-bottom:52px; }
.section-head.center{ margin-inline:auto; }
.section-head h2{ margin-top:14px; }
.section-head p{ margin-top:16px; color:var(--ink-soft); font-size:16px; }

/* ---------- Botones ---------- */
.btn{
  font-family:var(--sans);
  font-size:13.5px;
  font-weight:600;
  letter-spacing:.05em;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:15px 26px;
  border-radius:0;
  border:1px solid transparent;
  cursor:pointer;
  transition:all .4s var(--ease);
  white-space:nowrap;
  background:none;
}
.btn .arrow{ transition:transform .4s var(--ease); }
.btn:hover .arrow{ transform:translateX(4px); }
.btn-primary{ background:var(--navy); color:#fff; }
.btn-primary:hover{ background:var(--navy-deep); }
.btn-outline{ background:transparent; color:var(--navy); border-color:var(--line); }
.btn-outline:hover{ border-color:var(--navy); background:var(--navy); color:#fff; }
.btn-ghost-dark{ background:transparent; color:#fff; border-color:var(--line-on-dark); }
.btn-ghost-dark:hover{ background:#fff; color:var(--navy); border-color:#fff; }
.btn-white{ background:#fff; color:var(--navy); }
.btn-white:hover{ background:var(--stone-100); }
.link-u{
  font-weight:600; font-size:13.5px; letter-spacing:.04em;
  display:inline-flex; align-items:center; gap:9px;
  padding-bottom:3px; border-bottom:1px solid var(--line);
  transition:border-color .35s var(--ease), gap .35s var(--ease);
}
.link-u:hover{ border-color:var(--navy); }
.link-u:hover .arrow{ transform:translateX(4px); }
.link-u .arrow{ transition:transform .35s var(--ease); }

/* ---------- Placeholder de imagen ---------- */
.ph{
  position:relative;
  background-color:#dfe2e6;
  background-image:repeating-linear-gradient(135deg, rgba(13,27,46,0.055) 0px, rgba(13,27,46,0.055) 1px, transparent 1px, transparent 13px);
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
}
.ph span{
  font-family:var(--sans);
  font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(13,27,46,.45);
  background:rgba(255,255,255,.6);
  padding:6px 12px; text-align:center;
}
.ph.on-dark{ background-color:#0e1c30; }
.ph.on-dark::before{ content:""; position:absolute; inset:0; background-image:repeating-linear-gradient(135deg, rgba(255,255,255,0.06) 0px, rgba(255,255,255,0.06) 1px, transparent 1px, transparent 13px); }
.ph.on-dark span{ color:rgba(255,255,255,.6); background:rgba(0,0,0,.32); }

/* ---------- NAV ---------- */
header.site{ position:sticky; top:0; z-index:50; background:#fff; border-bottom:1px solid var(--line); }
.nav{ display:flex; align-items:center; justify-content:space-between; height:82px; max-width:var(--maxw); margin:0 auto; padding-inline:var(--gutter); }
.nav-left{ display:flex; align-items:center; gap:44px; }
.brand{ display:flex; align-items:center; }
.brand img{ height:28px; }
.nav-links{ display:flex; align-items:center; gap:30px; list-style:none; margin:0; padding:0; }
.nav-links > li{ position:relative; }
.nav-links a{ font-size:12.5px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--ink); display:inline-flex; align-items:center; gap:6px; padding:30px 0; }
.nav-links a:hover{ color:var(--navy); }
.caret{ width:7px; height:7px; border-right:1.4px solid currentColor; border-bottom:1.4px solid currentColor; transform:rotate(45deg); margin-top:-3px; opacity:.6; }
.dropdown{
  position:absolute; top:100%; left:-18px; min-width:280px;
  background:#fff; border:1px solid var(--line);
  box-shadow:0 24px 48px -24px rgba(13,27,46,.22);
  padding:10px; display:none; flex-direction:column;
}
.nav-links > li:hover .dropdown{ display:flex; }
.dropdown a{ padding:12px 14px; text-transform:none; letter-spacing:0; font-weight:500; font-size:14.5px; display:flex; flex-direction:column; gap:2px; align-items:flex-start; text-align:left; justify-content:flex-start; }
.dropdown a:hover{ background:var(--stone-50); }
.dd-desc{ font-size:12px; font-weight:400; color:var(--ink-faint); text-transform:none; letter-spacing:0; }
.nav-cta{ font-size:12px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; padding:12px 20px; border:1px solid var(--navy); color:var(--navy); white-space:nowrap; flex:none; }
.nav-cta:hover{ background:var(--navy); color:#fff; }
.menu-toggle{ display:none; flex-direction:column; justify-content:center; gap:5px; width:34px; height:34px; background:none; border:none; cursor:pointer; }
.menu-toggle span{ display:block; width:100%; height:1.4px; background:var(--ink); }

.mobile-panel{
  position:fixed; inset:0; z-index:100; background:var(--navy);
  transform:translateY(-100%); transition:transform .45s var(--ease);
  display:flex; flex-direction:column; overflow-y:auto;
}
.mobile-panel.open{ transform:translateY(0); }
.mp-top{ display:flex; align-items:center; justify-content:space-between; padding:22px var(--gutter); }
.mp-close{ background:none; border:none; color:#fff; font-size:30px; cursor:pointer; line-height:1; }
.mobile-panel nav{ display:flex; flex-direction:column; padding:10px var(--gutter) 40px; gap:2px; }
.mp-link{ color:#fff; font-size:20px; font-family:var(--serif); padding:14px 0; border-bottom:1px solid var(--line-on-dark-soft); display:flex; align-items:center; justify-content:space-between; }
.mp-sub{ max-height:0; overflow:hidden; transition:max-height .35s var(--ease); display:flex; flex-direction:column; }
.mp-sub.open{ max-height:400px; }
.mp-sub a{ color:rgba(255,255,255,.72); font-size:15px; padding:10px 0 10px 16px; }
.mp-cta{ margin-top:24px; justify-content:center; }

/* ---------- HERO (home) ---------- */
.hero{ position:relative; min-height:78vh; display:flex; align-items:center; }
.hero .ph{ position:absolute; inset:0; }
.hero-scrim{ position:absolute; inset:0; background:linear-gradient(100deg, rgba(0,26,61,.92) 6%, rgba(0,26,61,.5) 48%, rgba(0,26,61,.14) 82%); }
.hero-content{ position:relative; z-index:2; max-width:760px; padding-block:80px; }
.hero-content h1{ color:#fff; font-size:clamp(38px,5.2vw,64px); margin-top:20px; }
.hero-content h1 em{ color:rgba(255,255,255,.86); }
.hero-content .lead{ color:rgba(255,255,255,.78); font-size:17.5px; margin-top:20px; max-width:54ch; }
.hero-cta{ display:flex; gap:14px; margin-top:32px; flex-wrap:wrap; }
.hero-stats{ display:flex; gap:0; margin-top:56px; flex-wrap:wrap; }
.hero-stats > div{ padding-right:34px; margin-right:34px; border-right:1px solid var(--line-on-dark); }
.hero-stats > div:last-child{ border-right:none; margin-right:0; padding-right:0; }
.hero-stats .num{ display:block; font-family:var(--serif); font-style:italic; font-size:27px; color:#fff; }
.hero-stats .lbl{ display:block; font-size:10.5px; letter-spacing:.09em; text-transform:uppercase; color:rgba(255,255,255,.62); margin-top:5px; max-width:130px; }

/* ---------- TICKER ---------- */
.ticker{ border-bottom:1px solid var(--line); padding:15px 0; overflow:hidden; }
.ticker-inner{ display:flex; justify-content:center; flex-wrap:wrap; gap:0; font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-faint); }
.ticker-inner span{ margin:0 16px; }
.ticker-inner span.dot{ color:var(--line); }

/* ---------- PAGE HERO (interior pages) ---------- */
.page-hero{ background:var(--stone-50); border-bottom:1px solid var(--line); padding-block:64px; }
.crumbs{ font-size:12px; color:var(--ink-faint); letter-spacing:.03em; margin-bottom:20px; }
.crumbs a{ color:var(--ink-faint); }
.crumbs a:hover{ color:var(--navy); }
.page-hero h1{ font-size:clamp(32px,4.2vw,52px); margin-top:14px; max-width:820px; }
.page-hero .lead{ font-size:17px; color:var(--ink-soft); margin-top:16px; max-width:none; }

/* ---------- REASONS (numbered grid) ---------- */
.reasons{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.reason{ background:#fff; padding:36px 30px; }
.reason .num{ display:block; font-family:var(--serif); font-style:italic; font-size:26px; color:var(--navy); margin-bottom:22px; }
.reason h3{ font-size:19px; margin-bottom:10px; font-weight:700; }
.reason p{ font-size:14.5px; color:var(--ink-soft); margin:0; }
.card,.material,.stage,.team-card,.stage-card,.member,.pk-home-links a,.pk-family-list .item,.pk-week>div,.pk-bono>div,.pk-cont>div,.pk-ess>div,.pk-res-grid>div,.reasons .reason,.pk-price tbody td{transition:background-color .25s ease}section:not(.bg-navy) .card:hover,section:not(.bg-navy) .material:hover,section:not(.bg-navy) .stage:hover,section:not(.bg-navy) .team-card:hover,section:not(.bg-navy) .stage-card:hover,section:not(.bg-navy) .member:hover,section:not(.bg-navy) .pk-home-links a:hover,section:not(.bg-navy) .pk-family-list .item:hover,section:not(.bg-navy) .pk-week>div:hover,section:not(.bg-navy) .pk-bono>div:hover,section:not(.bg-navy) .pk-cont>div:hover,section:not(.bg-navy) .pk-ess>div:hover,section:not(.bg-navy) .pk-res-grid>div:hover,section:not(.bg-navy) .reasons .reason:hover,section:not(.bg-navy) .pk-price tbody td:hover,section:not(.bg-navy) .pk-price tbody tr:hover td{background:var(--stone-50)}
#pg-es-servicios .card,#pg-en-services .card{transition:background-color .25s ease}#pg-es-servicios .card:hover,#pg-en-services .card:hover{background:var(--stone-50)}.pk-res2.in-rates{margin-top:40px;background:#fff}
.reason{transition:background-color .25s ease}.reasons:not(.pk-acts) .reason:hover{background:var(--stone-50)}

/* ---------- CARDS ---------- */
.cards-2{ display:grid; grid-template-columns:1fr 1fr; gap:56px; }
.cards-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.cards-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.card{ background:#fff; padding:32px 30px; }
.cards-3 .card, .cards-4 .card{ height:100%; }
.card h3{ font-size:19px; margin-bottom:10px; }
.card p{ font-size:14.5px; color:var(--ink-soft); margin:0; }
.tag{ font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-faint); }
.card .tag + h3{ margin-top:10px; }
.card ul{ margin:14px 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:9px; }
.card ul li{ font-size:14px; color:var(--ink-soft); padding-left:16px; position:relative; }
.card ul li::before{ content:""; position:absolute; left:0; top:9px; width:5px; height:5px; background:var(--navy); }

/* Cards on dark background */
.bg-navy .card{ background:rgba(255,255,255,.06); border:1px solid var(--line-on-dark-soft); }
.bg-navy .card p{ color:rgba(255,255,255,.7); }
.bg-navy .card h3{ color:#fff; }
.bg-navy .card.card-lila{background:#e6e0f6;border-color:#e6e0f6}.bg-navy .card.card-lila h3{color:var(--ink)}.bg-navy .card.card-lila p{color:var(--ink-soft)}.bg-navy .card.card-lila .tag{color:var(--navy)}
.bg-navy .tag{ color:rgba(255,255,255,.5); }

/* ---------- PILLARS (philosophy, method) ---------- */
.pillars{ display:grid; grid-template-columns:1fr 1fr; gap:72px; }
.pillar h3{ font-size:24px; margin:14px 0 12px; }
.pillar p{ color:var(--ink-soft); font-size:15.5px; }
.pillar ul{ margin:16px 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:10px; }
.pillar ul li{ font-size:14.5px; color:var(--ink-soft); padding-left:18px; position:relative; }
.pillar ul li::before{ content:""; position:absolute; left:0; top:9px; width:6px; height:6px; border:1px solid var(--navy); }
.pillar-rule{ width:100%; height:1px; background:var(--line); margin-top:26px; }

/* ---------- MATERIALS SHELF ---------- */
.shelf{ display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.material{ background:#fff; padding:26px 20px; text-align:center; position:relative; cursor:default; }
.material svg{ width:44px; height:44px; margin:0 auto 16px; display:block; }
.m-name{ display:block; font-family:var(--serif); font-size:16px; color:var(--ink); }
.m-area{ display:block; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); margin-top:4px; }
.m-desc{
  position:absolute; left:0; right:0; top:calc(100% - 1px);
  background:var(--navy); color:rgba(255,255,255,.86);
  font-size:13px; line-height:1.55; padding:16px 18px; text-align:left;
  opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity .3s var(--ease), transform .3s var(--ease);
  z-index:5;
}
.material:hover .m-desc, .material:focus .m-desc{ opacity:1; visibility:visible; transform:translateY(0); }

/* ---------- STAGES ---------- */
.stages{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.stage{ background:#fff; padding:32px 28px; display:flex; flex-direction:column; }
.stage-age{ font-size:11px; font-weight:600; letter-spacing:.12em; color:var(--ink-faint); }
.stage h3{ font-size:22px; margin-top:8px; }
.stage p{ font-size:14px; color:var(--ink-soft); margin-top:12px; flex:1; }
.stage .more{ margin-top:16px; font-size:12.5px; font-weight:600; letter-spacing:.04em; display:inline-flex; align-items:center; gap:8px; color:var(--navy); }

/* ---------- QUOTE ---------- */
.quote-block{ text-align:center; max-width:820px; margin:0 auto; }
.quote-block p{ font-family:var(--serif); font-style:italic; font-size:clamp(22px,2.6vw,32px); line-height:1.42; color:var(--ink); margin:0; }
.quote-block span{ display:block; margin-top:22px; font-family:var(--sans); font-style:normal; font-size:12.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint); }

/* ---------- VISIT / CTA BAND ---------- */
.visit{ display:grid; grid-template-columns:1.1fr .9fr; gap:60px; align-items:center; }
.visit h2{ font-size:clamp(28px,3.4vw,42px); }
.visit p{ color:var(--ink-soft); margin-top:14px; max-width:46ch; }
.bg-navy .visit p{ color:rgba(255,255,255,.72); }
.cta-close{ text-align:center; }
.cta-close .eyebrow{ justify-content:center; }
.cta-close h2{ margin-top:16px; }
.cta-close p{ margin:16px auto 0; max-width:52ch; }
.cta-close .btn{ margin-top:28px; }

/* ---------- GALLERY (instalaciones) ---------- */
.gallery{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:190px; gap:14px; }
.g-item{ overflow:hidden; }
.g-item.tall{ grid-row:span 2; }
.g-item.wide{ grid-column:span 2; }

/* ---------- TEAM ---------- */
.team-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.team-card{ background:#fff; padding:0; }
.team-photo{ aspect-ratio:4/3; }
.team-info{ padding:26px 26px 30px; }
.team-info .role{ font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); }
.team-info h3{ font-size:20px; margin-top:8px; }
.team-info p{ font-size:14px; color:var(--ink-soft); margin-top:10px; }

/* ---------- NEWS ---------- */
.news-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:44px 32px; }
.news-thumb{ aspect-ratio:16/10; margin-bottom:20px; }
.news-date{ font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); }
.news-card h3{ font-size:19px; margin-top:10px; line-height:1.28; }
.news-card p{ font-size:14px; color:var(--ink-soft); margin-top:10px; }
.read{ display:inline-flex; align-items:center; gap:8px; font-size:12.5px; font-weight:600; letter-spacing:.04em; color:var(--navy); margin-top:14px; }

/* ---------- TIMELINE (admisiones) ---------- */
.timeline{ display:flex; flex-direction:column; }
.tl-step{ display:grid; grid-template-columns:64px 1fr; gap:26px; padding:26px 0; border-top:1px solid var(--line); }
.tl-step:last-child{ border-bottom:1px solid var(--line); }
.tl-num{ font-family:var(--serif); font-style:italic; font-size:30px; color:var(--navy); }
.tl-content h3{ font-size:19px; margin-bottom:8px; }
.tl-content p{ font-size:14.5px; color:var(--ink-soft); margin:0; max-width:60ch; }

/* ---------- MINI STEPS (etapas — "un día en...") ---------- */
.mini-steps{ display:flex; flex-direction:column; margin-top:16px; }
.mini-step{ display:flex; gap:14px; padding:13px 0; border-top:1px solid var(--line); }
.mini-step:first-child{ border-top:none; }
.mini-step .n{ font-family:var(--serif); font-style:italic; font-size:17px; color:var(--navy); flex:none; width:26px; }
.mini-step .t{ font-size:14px; color:var(--ink-soft); }
.focus-list{ margin:16px 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:11px; }
.focus-list li{ font-size:14.5px; color:var(--ink-soft); padding-left:20px; position:relative; }
.focus-list li::before{ content:""; position:absolute; left:0; top:8px; width:7px; height:7px; border-radius:50%; background:var(--navy); }
.stage-detail-head{ display:flex; align-items:center; gap:14px; }

/* ---------- WORDMARK (Grupo Palma has no group logo file yet) ---------- */
.wordmark{ display:flex; align-items:baseline; gap:9px; }
.wordmark .mark{ width:9px; height:9px; border:1.4px solid var(--navy); transform:rotate(45deg); flex:none; }
.wordmark span{ font-family:var(--serif); font-size:19px; font-weight:600; letter-spacing:.01em; color:var(--ink); white-space:nowrap; }
.wordmark small{ display:block; font-family:var(--sans); font-size:9px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-faint); margin-top:1px; }
.wordmark.on-dark span{ color:#fff; }
.wordmark.on-dark small{ color:rgba(255,255,255,.55); }
.wordmark.on-dark .mark{ border-color:#fff; }

/* ---------- SCHOOL CARDS ---------- */
.schools{ display:flex; flex-direction:column; }
.school-row{
  display:grid; grid-template-columns:0.9fr 1.1fr; gap:0;
  border-top:1px solid var(--line);
}
.school-row:last-child{ border-bottom:1px solid var(--line); }
.school-row.rev{ grid-template-columns:1.1fr 0.9fr; }
.school-row.rev .school-photo{ order:2; }
.school-photo{ aspect-ratio:5/4; }
.school-body{ padding:56px 60px; display:flex; flex-direction:column; justify-content:center; }
.school-tags{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:18px; }
.school-tag{ font-size:10.5px; font-weight:600; letter-spacing:.09em; text-transform:uppercase; color:var(--ink-soft); border:1px solid var(--line); padding:6px 12px; }
.school-tag.accent{ color:var(--navy); border-color:var(--navy); }
.school-body h3{ font-size:clamp(24px,2.4vw,32px); }
.school-loc{ font-size:12.5px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint); margin-top:10px; }
.school-body p.desc{ margin-top:18px; color:var(--ink-soft); font-size:15px; line-height:1.65; max-width:52ch; }
.school-points{ margin:20px 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:9px; }
.school-points li{ font-size:14px; color:var(--ink-soft); padding-left:18px; position:relative; }
.school-points li::before{ content:""; position:absolute; left:0; top:8px; width:6px; height:6px; border:1px solid var(--navy); }
.school-links{ display:flex; align-items:center; gap:24px; margin-top:26px; flex-wrap:wrap; }

/* ---------- UNIFORM SHOP ---------- */
.uniform-band{ display:grid; grid-template-columns:1fr 1fr; gap:0; align-items:stretch; }
.uniform-text{ padding:80px 64px; display:flex; flex-direction:column; justify-content:center; }
.uniform-text p{ color:rgba(255,255,255,.72); margin-top:16px; max-width:46ch; font-size:15.5px; }
.uniform-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:rgba(255,255,255,.14); }
.uniform-item{ background:var(--navy-deep); aspect-ratio:1/1; display:block; position:relative; overflow:hidden; }
.uniform-item img{ width:100%; height:100%; object-fit:cover; display:block; }
.uniform-item span{
  position:absolute; left:0; right:0; bottom:0;
  font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
  color:#fff; text-align:left; padding:26px 18px 14px;
  background:linear-gradient(0deg, rgba(0,10,26,.78) 0%, rgba(0,10,26,0) 100%);
}

/* ---------- TABLE ---------- */
table.simple{ width:100%; border-collapse:collapse; font-size:14.5px; }
table.simple th, table.simple td{ text-align:left; padding:16px 18px; border-bottom:1px solid var(--line); }
table.simple th{ font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); }
table.simple td{ color:var(--ink-soft); }
table.simple tr:first-child th{ border-top:1px solid var(--line); }

/* ---------- FAQ ---------- */
.faq{ border-top:1px solid var(--line); }
.faq-item{ border-bottom:1px solid var(--line); }
.faq-q{
  width:100%; text-align:left; background:none; border:none; cursor:pointer;
  padding:24px 0; font-family:var(--serif); font-size:19px; color:var(--ink);
  display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.plus{ font-family:var(--sans); font-size:22px; font-weight:400; color:var(--navy); transition:transform .3s var(--ease); flex:none; }
.faq-item.open .plus{ transform:rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .35s var(--ease); }
.faq-a p{ padding-bottom:22px; color:var(--ink-soft); font-size:15px; max-width:70ch; margin:0; }

/* ---------- FORM ---------- */
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px 18px; }
.form-grid .full{ grid-column:1 / -1; }
.form-grid label{ display:block; font-size:11.5px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:8px; }
.form-grid input, .form-grid select, .form-grid textarea{
  width:100%; border:none; border-bottom:1px solid var(--line); background:transparent;
  padding:10px 2px; font-family:var(--sans); font-size:15px; color:var(--ink);
  border-radius:0; outline:none; transition:border-color .3s var(--ease);
}
.form-grid input:focus, .form-grid select:focus, .form-grid textarea:focus{ border-color:var(--navy); }
.form-grid textarea{ resize:vertical; min-height:80px; }
.form-note{ font-size:12.5px; color:var(--ink-faint); margin-top:16px; }
.newsletter-form{ display:flex; gap:12px; flex-wrap:wrap; }
.newsletter-form input{ flex:1; min-width:220px; border:none; border-bottom:1px solid var(--line-on-dark); background:transparent; padding:12px 2px; color:#fff; font-size:15px; outline:none; }
.newsletter-form input::placeholder{ color:rgba(255,255,255,.5); }

/* ---------- INFO LIST (contacto) ---------- */
.info-list{ display:flex; flex-direction:column; gap:22px; }
.info-list .lbl{ font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); display:block; margin-bottom:6px; }
.info-list .val{ font-size:16px; color:var(--ink); }
.info-list .val a:hover{ color:var(--navy); }

/* ---------- FOOTER ---------- */
footer.site{ background:var(--navy); color:rgba(255,255,255,.7); padding-block:72px 32px; }
.foot-top{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:48px; padding-bottom:52px; border-bottom:1px solid var(--line-on-dark-soft); }
.f-logo img{ height:26px; margin-bottom:20px; }
.f-logo p{ font-size:14px; color:rgba(255,255,255,.6); max-width:34ch; }
.f-social{ display:flex; gap:18px; margin-top:22px; flex-wrap:wrap; }
.f-social a{ font-size:12.5px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.62); border-bottom:1px solid transparent; padding-bottom:3px; }
.f-social a:hover{ color:#fff; border-color:#fff; }
footer h4{ font-family:var(--sans); font-size:11.5px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.42); margin-bottom:18px; }
.f-links{ display:flex; flex-direction:column; gap:12px; }
.f-links a{ font-size:14.5px; color:rgba(255,255,255,.78); }
.f-links a:hover{ color:#fff; }
.foot-bottom{ display:flex; justify-content:space-between; align-items:center; padding-top:28px; flex-wrap:wrap; gap:14px; font-size:12.5px; color:rgba(255,255,255,.45); }
.foot-bottom a{ color:rgba(255,255,255,.55); }
.foot-bottom a:hover{ color:#fff; }
.foot-legal{ display:flex; gap:22px; }

/* ---------- REVEAL ----------
   This environment can leave CSS transitions/animations stuck at
   currentTime 0, which previously left real content permanently
   invisible (opacity stuck at 0). To guarantee content is always
   visible, .reveal no longer gates opacity/transform on any
   animation or transition — it is purely opacity:1, always. */
.reveal{ opacity:1; }

/* ---------- RESPONSIVE ---------- */
@media (max-width: 1024px){
  .school-row, .school-row.rev{ grid-template-columns:1fr; }
  .school-row.rev .school-photo{ order:0; }
  .school-body{ padding:40px var(--gutter); }
  .uniform-band{ grid-template-columns:1fr; }
  .uniform-text{ padding:56px var(--gutter); }
  .nav-links{ display:none; }
  .nav-cta{ display:none; }
  .menu-toggle{ display:flex; }
  .reasons{ grid-template-columns:repeat(2,1fr); }
  .cards-3, .cards-4{ grid-template-columns:repeat(2,1fr); }
  .team-grid{ grid-template-columns:repeat(2,1fr); }
  .stages{ grid-template-columns:repeat(2,1fr); }
  .shelf{ grid-template-columns:repeat(3,1fr); }
  .gallery{ grid-template-columns:repeat(3,1fr); }
  .news-grid{ grid-template-columns:repeat(2,1fr); }
  .foot-top{ grid-template-columns:1fr 1fr; gap:36px; }
}
@media (max-width: 720px){
  .cards-2{ grid-template-columns:1fr; gap:40px; }
  .cards-3, .cards-4{ grid-template-columns:1fr; }
  .reasons{ grid-template-columns:1fr; }
  .team-grid{ grid-template-columns:1fr; }
  .stages{ grid-template-columns:1fr; }
  .shelf{ grid-template-columns:repeat(2,1fr); }
  .gallery{ grid-template-columns:repeat(2,1fr); grid-auto-rows:150px; }
  .news-grid{ grid-template-columns:1fr; }
  .pillars{ grid-template-columns:1fr; gap:44px; }
  .visit{ grid-template-columns:1fr; gap:32px; }
  .form-grid{ grid-template-columns:1fr; }
  .foot-top{ grid-template-columns:1fr; }
  .tl-step{ grid-template-columns:40px 1fr; }
  .hero-stats{ gap:20px; }
  .hero-stats > div{ padding-right:0; margin-right:0; border-right:none; }
}

:root{--lav:#ae9ced;--navy:#57507e;--navy-deep:#433d66;--navy-700:#6b6490;--ink:#1c1830;--ink-soft:#5b5770;--ink-faint:#8a869d;--line:rgba(28,24,48,.14);--line-soft:rgba(28,24,48,.08);--stone-50:#f6f5fb;--stone-100:#eeecf7;--stone-200:#e2def2}
.pk-logo{height:40px;width:auto;display:block}
.on-dark .pk-logo{filter:brightness(0) invert(1)}
.hero-stats .num,.eyebrow.on-dark{color:var(--lav)}
.eyebrow.on-dark::before{background:var(--lav)}
.eyebrow.lav{color:var(--lav)}.eyebrow.lav::before{background:var(--lav)}
.hero-content h1 em{color:var(--lav)}
.beg-facts .v{color:#fff}.beg-facts .l{color:var(--lav)}
a{color:var(--navy)}a:hover{color:var(--navy-deep)}
.nav-links a{text-transform:none;font-size:13.5px;letter-spacing:.02em}
.nav-links a,.nav a{color:var(--ink)}
.nav-cta{color:var(--navy)}.nav-cta:hover{color:#fff}
.btn-primary,.btn-primary:hover{color:#fff}.btn-white{color:var(--navy)}.btn-ghost-dark{color:#fff}
.pk-word{display:flex;flex-direction:column;line-height:1}
.pk-word b{font-family:var(--serif);font-size:25px;font-weight:600;color:var(--navy);letter-spacing:.005em}
.pk-word small{font-size:9.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);margin-top:5px}
.on-dark .pk-word b{color:#fff}.on-dark .pk-word small{color:rgba(255,255,255,.6)}
.hero{min-height:84vh}
.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero video.hero-photo{background:#28243c}
.hero-scrim{background:linear-gradient(100deg,rgba(40,36,60,.9) 6%,rgba(40,36,60,.55) 46%,rgba(40,36,60,.1) 84%)}
.ph{background-color:#e2def2;background-image:repeating-linear-gradient(135deg,rgba(28,24,48,.055) 0,rgba(31,21,41,.055) 1px,transparent 1px,transparent 13px)}
.ph span{color:rgba(31,21,41,.5)}
.reasons{grid-template-columns:repeat(4,1fr)}
.reason{padding:30px 26px}.reason .num{font-size:22px;margin-bottom:16px}.reason h3{font-size:18px}
.stages-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.stage-card{background:#fff;display:flex;flex-direction:column}
.stage-card .ph{aspect-ratio:4/3}
.stage-card .body{padding:30px 28px 34px;display:flex;flex-direction:column;flex:1}
.stage-card h3{font-size:26px;margin-top:8px}
.stage-card p{font-size:14.5px;color:var(--ink-soft);margin-top:12px}
.stage-meta{display:flex;gap:0;margin-top:auto;padding-top:22px;border-top:1px solid var(--line)}
.stage-meta div{flex:1}
.stage-meta .v{display:block;font-family:var(--serif);font-style:italic;font-size:24px;color:var(--navy)}
.stage-meta .l{display:block;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-top:2px}
.svc-link{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;letter-spacing:.04em;color:var(--navy);margin-top:16px;border-bottom:1px solid var(--line);padding-bottom:3px}
.team{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.member{background:#fff;padding:22px 22px 24px;border:1px solid var(--line)}
.member .role{font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--navy)}
.member h3{font-size:19px;margin-top:6px}
.member p{font-size:13px;color:var(--ink-soft);margin:6px 0 0;line-height:1.5}
.member.lead{grid-column:span 2;display:grid;grid-template-columns:120px 1fr;gap:22px;align-items:center}
.member.lead .ph{aspect-ratio:1/1}
.beg{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:start}
.beg p{color:rgba(255,255,255,.76)}
.beg-facts{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.16)}
.beg-facts div{background:var(--navy);padding:20px 22px}
.beg-facts .l{display:block;font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.beg-facts .v{display:block;font-family:var(--serif);font-size:21px;color:#fff;margin-top:6px;line-height:1.25}
.beg-facts .full{grid-column:span 2}
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:48px}
.review p{font-family:var(--serif);font-style:italic;font-size:20px;line-height:1.5;color:var(--ink);margin:0}
.review span{display:block;margin-top:18px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}
.review .stars{color:var(--navy);letter-spacing:.2em;font-size:13px;margin-bottom:14px;display:block;font-style:normal}
.steps3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.steps3 .card .num{display:block;font-family:var(--serif);font-style:italic;font-size:30px;color:var(--navy);margin-bottom:14px}
.partners{display:flex;flex-wrap:wrap;gap:34px;align-items:center}
.partners a{font-size:13px;font-weight:600;letter-spacing:.04em;color:rgba(255,255,255,.72)}
.partners a:hover{color:#fff}
@media (max-width:1024px){.reasons{grid-template-columns:repeat(2,1fr)}.stages-3,.reviews,.steps3{grid-template-columns:1fr}.team{grid-template-columns:repeat(2,1fr)}.beg{grid-template-columns:1fr;gap:36px}}
@media (max-width:720px){.reasons,.team{grid-template-columns:1fr}.member.lead{grid-column:auto;grid-template-columns:80px 1fr}}

.pk-home-links{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.pk-home-links a{background:#fff;padding:30px 26px;display:flex;flex-direction:column;color:var(--ink);transition:background .3s}
.pk-home-links a:hover{background:var(--stone-50);color:var(--ink)}
.pk-home-links .tag{margin-bottom:10px}.pk-home-links h3{font-size:21px}.pk-home-links p{font-size:14px;color:var(--ink-soft);margin:10px 0 0;flex:1}
.pk-home-links .more{margin-top:18px;font-size:12.5px;font-weight:600;letter-spacing:.04em;color:var(--navy)}
.lang{font-size:12px;font-weight:600;letter-spacing:.1em;color:var(--ink)}
.nav-right{display:flex;align-items:center;gap:22px}
.dropdown a{color:var(--ink)}
.pillar-block{display:grid;grid-template-columns:.8fr 1.2fr;gap:64px;padding:56px 0;border-top:1px solid var(--line)}
.pillar-block:last-child{border-bottom:1px solid var(--line)}
.pillar-block h2{font-size:clamp(28px,3vw,40px);margin-top:12px}
.pillar-block p{color:var(--ink-soft);font-size:16px}
.stage-full{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line)}
.stage-full:last-child{border-bottom:1px solid var(--line)}
.stage-full .ph{min-height:420px}
.stage-full .body{padding:56px 60px;display:flex;flex-direction:column;justify-content:center}
.stage-full.rev .ph{order:2}
.stage-full h2{font-size:clamp(30px,3.2vw,44px);margin-top:10px}
.stage-full p{color:var(--ink-soft);margin-top:16px;font-size:15.5px}
.stage-full .stage-meta{margin-top:26px}
.tour-frame{aspect-ratio:16/9;width:100%}
@media (max-width:1024px){.pk-home-links{grid-template-columns:repeat(2,1fr)}.pillar-block,.stage-full{grid-template-columns:1fr;gap:24px}.stage-full.rev .ph{order:0}.stage-full .ph{min-height:260px}.stage-full .body{padding:36px var(--gutter)}}
@media (max-width:720px){.pk-home-links{grid-template-columns:1fr}}

.pk-rating{display:flex;align-items:flex-end;justify-content:space-between;gap:32px 48px;flex-wrap:wrap;margin-bottom:52px;padding-bottom:40px;border-bottom:1px solid var(--line)}
.pk-rating .section-head{margin-bottom:0}
.pk-score{display:flex;align-items:center;gap:22px}
.pk-score .big{font-family:var(--serif);font-size:92px;line-height:.85;color:var(--navy)}
.pk-score .stars{display:block;color:var(--navy);font-size:20px;letter-spacing:.18em}
.pk-score .cnt{display:block;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-top:6px}
.pk-score .svc-link{margin-top:10px}
.pk-family{display:block}
.pk-family .section-head{margin-bottom:52px}.pk-family h2 em{color:var(--navy)}
.pk-family-list{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.pk-family-list .item{background:#fff;padding:30px 26px;display:flex;flex-direction:column}
.pk-family-list .tag{color:var(--navy);margin-bottom:10px}
.pk-family-list h3{font-size:21px}.pk-family-list p{font-size:14px;color:var(--ink-soft);margin:10px 0 0}
.pk-day-wrap{display:grid;grid-template-columns:.75fr 1.25fr;gap:64px;align-items:start}
.pk-day-side{position:sticky;top:110px}
.pk-day{border-top:1px solid var(--line)}
.pk-day-row{display:grid;grid-template-columns:190px 1fr;gap:28px;padding:28px 0;border-bottom:1px solid var(--line)}
.pk-day-row .t{font-family:var(--serif);font-style:italic;font-size:28px;line-height:1.1;color:var(--navy)}
.pk-day-row .t small{display:block;font-family:var(--sans);font-style:normal;font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-top:8px}
.pk-day-row h3{font-size:21px}.pk-day-row p{font-size:15px;color:var(--ink-soft);margin:8px 0 0;max-width:60ch}
.pk-week{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.pk-week div{background:#fff;padding:28px 24px}
.pk-week .a{display:block;font-family:var(--serif);font-size:26px;color:var(--navy);margin-top:10px}
.pk-aid-rows{border-top:1px solid var(--line)}
.pk-aid-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:48px;padding:40px 0;border-bottom:1px solid var(--line)}
.pk-aid-row h3{margin-top:12px}
.pk-aid-row p{color:var(--ink-soft);max-width:none}
.pk-aid-row ul{margin:18px 0 0;padding-left:18px;color:var(--ink-soft);font-size:15px;display:grid;gap:6px}
.pk-bono{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-top:22px}
.pk-bono-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.pk-bono-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.pk-bono div{background:#fff;padding:22px 24px}
.pk-bono .l{display:block;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}
.pk-bono .a{display:block;font-family:var(--serif);font-size:36px;line-height:1.1;color:var(--navy);margin-top:10px}
.pk-bono .m{display:block;font-size:13px;color:var(--ink-soft);margin-top:4px}
@media (max-width:720px){.pk-aid-row{grid-template-columns:1fr;gap:16px}.pk-bono{grid-template-columns:1fr}}
.pk-aid .amt{display:block;font-family:var(--serif);font-size:46px;line-height:1;color:var(--navy);margin-top:22px}
.pk-aid .amt-l{display:block;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin:6px 0 18px}
.pk-aid p{font-size:14.5px;color:var(--ink-soft)}
@media (max-width:1024px){.pk-day-wrap{grid-template-columns:1fr;gap:36px}.pk-family-list{grid-template-columns:repeat(2,1fr)}.pk-day-side{position:static}.pk-week{grid-template-columns:repeat(2,1fr)}.pk-week div:last-child,.cards-3 .pk-aid:last-child{grid-column:span 2}.pk-day-row{grid-template-columns:130px 1fr}}
@media (max-width:720px){.pk-week div:last-child,.cards-3 .pk-aid:last-child{grid-column:auto}}
@media (max-width:720px){.pk-day-row{grid-template-columns:1fr;gap:6px}.pk-family-list{grid-template-columns:1fr}.pk-week{grid-template-columns:1fr}.pk-score .big{font-size:72px}}

.pk-rev-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 96px)/3);gap:48px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;scroll-behavior:smooth;overscroll-behavior-x:contain}
.pk-rev-track::-webkit-scrollbar{display:none}
.pk-rev-track .review{scroll-snap-align:start}
.pk-rev-nav{display:flex;gap:10px;justify-content:flex-end;margin-top:40px}
.pk-rev-nav button{width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--navy);font-size:18px;cursor:pointer;transition:background .25s,color .25s,opacity .25s}
.pk-rev-nav button:hover:not(:disabled){background:var(--navy);color:#fff;border-color:var(--navy)}
.pk-rev-nav button:disabled{opacity:.3;cursor:default}
@media (max-width:1024px){.pk-rev-track{grid-auto-columns:calc((100% - 32px)/2);gap:32px}}
@media (max-width:720px){.pk-rev-track{grid-auto-columns:88%;gap:24px}}

.pk-cont{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.pk-cont div{background:#fff;padding:30px 26px}
.pk-cont .v{display:block;font-family:var(--serif);font-style:italic;font-size:44px;line-height:1;color:var(--navy)}
.pk-cont .l{display:block;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-top:10px}
.pk-cont p{font-size:14px;color:var(--ink-soft);margin:12px 0 0}
@media (max-width:720px){.pk-cont{grid-template-columns:1fr}}

.beg-sec{padding-top:56px}.beg-info{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--stone-100);border-radius:18px;overflow:hidden}.beg-info>div{padding:28px 26px;display:flex;flex-direction:column;gap:8px}.beg-info>div+div{border-left:1px solid var(--stone-200)}.beg-info .l{font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--navy)}.beg-info .v{font-family:var(--serif);font-size:26px;line-height:1.15;color:var(--ink)}.beg-info .s{font-size:13.5px;color:var(--ink-soft)}@media(max-width:860px){.beg-info{grid-template-columns:1fr 1fr}.beg-info>div+div{border-left:none}.beg-info>div:nth-child(n+3){border-top:1px solid var(--stone-200)}.beg-info>div:nth-child(even){border-left:1px solid var(--stone-200)}}@media(max-width:520px){.beg-info{grid-template-columns:1fr}.beg-info>div:nth-child(even){border-left:none}.beg-info>div+div{border-top:1px solid var(--stone-200)}}.hero-scrim{background:linear-gradient(100deg,rgba(34,30,52,.94) 0%,rgba(34,30,52,.82) 40%,rgba(34,30,52,.45) 70%,rgba(34,30,52,.2) 100%)!important}
.hero::after{content:"";position:absolute;inset:auto 0 0 0;height:40%;background:linear-gradient(to top,rgba(34,30,52,.6),transparent);z-index:1;pointer-events:none}
.hero-content h1,.hero-content .lead,.hero-content .eyebrow,.hero-stats .num,.hero-stats .lbl{text-shadow:0 1px 14px rgba(20,18,32,.55)}
.hero-content .lead{color:rgba(255,255,255,.94)!important}
.hero-stats .lbl{color:rgba(255,255,255,.88)!important}
@media (max-width:720px){.hero-scrim{background:rgba(34,30,52,.78)!important}}
.pk-bono-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.pk-prio{margin:16px 0 0;padding-left:22px;color:var(--ink-soft);font-size:15px;display:grid;gap:8px}
.pk-prio strong{color:var(--ink);font-weight:600}
@media (max-width:1024px){.pk-bono-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){.pk-bono-4{grid-template-columns:1fr}}
.reasons.pk-acts{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:1024px){.reasons.pk-acts{grid-template-columns:repeat(2,minmax(0,1fr))}.reasons.pk-acts::after{content:"";background:#fff}}
@media (max-width:720px){.reasons.pk-acts{grid-template-columns:1fr}.reasons.pk-acts::after{display:none}}
.pk-hero-sub{min-height:64vh!important}
.pk-sum{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:72px;align-items:start}
.pk-facts{margin:0;border-top:1px solid var(--line)}
.pk-facts>div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:24px;padding:20px 0;border-bottom:1px solid var(--line)}
.pk-facts dt{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);padding-top:6px}
.pk-facts dd{margin:0}
.pk-facts dd strong{display:block;font-family:var(--serif);font-weight:500;font-size:24px;line-height:1.2;color:var(--navy)}
.pk-facts dd span{display:block;font-size:14px;color:var(--ink-soft);margin-top:4px}
.pk-price-wrap{overflow-x:auto}
.pk-price{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line)}
.pk-price th{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);text-align:left;padding:20px 28px;border-bottom:1px solid var(--line)}
.pk-price td{padding:24px 28px;border-bottom:1px solid var(--line);vertical-align:middle}
.pk-price tr:last-child td{border-bottom:none}
.pk-price td strong{display:block;font-size:16px;font-weight:600;color:var(--ink)}
.pk-price td span{display:block;font-size:13.5px;color:var(--ink-soft);margin-top:3px}
.pk-price td.v{font-family:var(--serif);font-size:36px;line-height:1;color:var(--navy);white-space:nowrap}
.pk-price tr.hl td{background:color-mix(in oklch,var(--lav) 14%,#fff)}
.pk-steps4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1024px){.pk-sum{grid-template-columns:1fr;gap:36px}.pk-steps4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){.pk-steps4{grid-template-columns:1fr}.pk-price th,.pk-price td{padding:16px}.pk-price td.v{font-size:26px}.pk-facts>div{grid-template-columns:1fr;gap:4px}}
.pk-ess{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.pk-ess>div{background:#fff;padding:34px 30px}
.pk-ess .l{display:block;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}
.pk-ess .a{display:block;font-family:var(--serif);font-size:38px;line-height:1.1;color:var(--navy);margin:14px 0 10px}
.pk-ess p{font-size:14.5px;color:var(--ink-soft);margin:0}
@media (max-width:1024px){.pk-ess{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){.pk-ess{grid-template-columns:1fr}}
.pk-price th:not(:first-child),.pk-price td.v{text-align:center}
.pk-reserva{margin-top:48px;border-top:1px solid var(--line);grid-template-columns:1fr!important;gap:14px!important}
.pk-reserva h3{font-family:var(--serif);font-size:44px;line-height:1;color:var(--navy)}
.pk-prio-line{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:28px;position:relative}
.pk-prio-line::before{content:"";position:absolute;top:28px;left:28px;right:28px;height:1px;background:var(--line)}
.pk-prio-line li{position:relative}
.pk-prio-line .n{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:#fff;border:1px solid var(--navy);font-family:var(--serif);font-style:italic;font-size:26px;color:var(--navy);position:relative;z-index:1}
.pk-prio-line li:first-child .n{background:var(--navy);color:#fff}
.pk-prio-line h3{font-size:19px;margin:22px 0 8px}
.pk-prio-line p{font-size:14.5px;color:var(--ink-soft);margin:0}
.pk-res{margin-top:64px;background:var(--stone-100,#f1eef6);background:color-mix(in oklch,var(--lav) 16%,#fff);padding:44px 44px 40px}
.pk-res .amt{display:block;font-family:var(--serif);font-size:64px;line-height:1;color:var(--navy);margin:16px 0 32px}
.pk-res-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.pk-res-grid>div{background:#fff;padding:24px 26px}
.pk-res-grid .l{display:block;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:8px}
.pk-res-grid p{font-size:15px;color:var(--ink-soft);margin:0}
@media (max-width:1024px){.pk-prio-line{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:40px}.pk-prio-line::before{display:none}}
@media (max-width:720px){.pk-prio-line,.pk-res-grid{grid-template-columns:1fr}.pk-res{padding:32px 24px}}

.pk-wa{position:fixed;right:clamp(16px,3vw,32px);bottom:clamp(16px,3vw,32px);z-index:90;display:flex;align-items:center;gap:10px;padding:12px 20px 12px 14px;border-radius:999px;background:var(--navy);color:#fff;text-decoration:none;font-family:var(--sans);font-size:14px;font-weight:500;letter-spacing:.02em;box-shadow:0 10px 30px rgba(0,0,0,.18);transition:transform .3s var(--ease),box-shadow .3s var(--ease)}.pk-wa:hover{color:#fff;transform:translateY(-2px);box-shadow:0 14px 36px rgba(0,0,0,.24)}.pk-wa svg{width:24px;height:24px;flex:none}.pk-wa small{display:block;font-size:11px;font-weight:400;opacity:.8;letter-spacing:.06em;text-transform:uppercase}@media(max-width:640px){.pk-wa{padding:14px}.pk-wa .txt{display:none}}

.steps3:has(> .card:nth-child(4)){grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:1000px){.steps3:has(> .card:nth-child(4)){grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.steps3:has(> .card:nth-child(4)){grid-template-columns:1fr}}.pk-ef-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px;border-top:1px solid var(--line)}.pk-ef-row{display:grid;grid-template-columns:72px 1fr;gap:20px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}.pk-ef-row .d{display:flex;flex-direction:column;align-items:center;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}.pk-ef-row .d b{font-family:var(--serif);font-style:italic;font-weight:500;font-size:36px;line-height:1;letter-spacing:0;color:var(--navy);margin-bottom:4px}.pk-ef-row h3{font-size:19px;line-height:1.3;text-wrap:pretty}.pk-ef-row.is-next .d b{color:var(--navy)}.pk-ef-row.is-next h3::after{content:"Próxima";display:inline-block;margin-left:10px;padding:3px 9px;border-radius:999px;background:var(--navy);color:#fff;font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;vertical-align:middle}@media(max-width:760px){.pk-ef-list{grid-template-columns:1fr}}

.pk-plazas{margin-top:clamp(56px,8vw,96px)}.pk-pl-list{display:grid;gap:14px;margin-top:8px}.pk-pl{background:var(--stone-50);border:1px solid var(--line);border-radius:4px}.pk-pl summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:1fr auto 28px;align-items:center;gap:20px;padding:22px 28px}.pk-pl summary::-webkit-details-marker{display:none}.pk-pl .c{font-family:var(--serif);font-size:clamp(24px,2.4vw,30px);color:var(--navy)}.pk-pl .t{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}.pk-pl .ic{position:relative;width:28px;height:28px;border:1px solid var(--line);border-radius:50%}.pk-pl .ic::before,.pk-pl .ic::after{content:"";position:absolute;left:50%;top:50%;width:10px;height:1.5px;background:var(--navy);transform:translate(-50%,-50%);transition:transform .3s var(--ease)}.pk-pl .ic::after{transform:translate(-50%,-50%) rotate(90deg)}.pk-pl[open] .ic::after{transform:translate(-50%,-50%) rotate(0)}.pk-pl-body{padding:0 28px 12px}.pk-pl-row{display:grid;grid-template-columns:140px 1fr auto;gap:20px;align-items:baseline;padding:18px 0;border-top:1px solid var(--line)}.pk-pl-row .age{font-family:var(--serif);font-style:italic;font-size:22px;color:var(--navy)}.pk-pl-row .stg{font-size:15px;color:var(--ink-soft)}.pk-pl-row .n{font-size:15px;color:var(--ink)}.pk-pl-row .n b{font-family:var(--serif);font-size:28px;font-weight:500;color:var(--navy);margin-right:4px}.pk-pl-row .n.full{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}@media(max-width:640px){.pk-pl summary{grid-template-columns:1fr 28px;padding:18px 20px}.pk-pl .t{grid-column:1;grid-row:2}.pk-pl .ic{grid-column:2;grid-row:1/3}.pk-pl-body{padding:0 20px 8px}.pk-pl-row{grid-template-columns:1fr auto}.pk-pl-row .stg{grid-column:1;grid-row:2}.pk-pl-row .n{grid-row:1/3;grid-column:2;align-self:center}}

[data-lang^="en"] .pk-ef-row.is-next h3::after{content:"Next"}

.pk-cont:has(> div:nth-child(4)){grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:1000px){.pk-cont:has(> div:nth-child(4)){grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.pk-cont:has(> div:nth-child(4)){grid-template-columns:1fr}}.pk-pl-note{margin-top:22px;font-size:15px;color:var(--ink-soft);max-width:none}.pk-pl-note strong{color:var(--navy)}.pk-pl-note a{color:var(--navy);text-decoration:underline;text-underline-offset:3px}

.pk-car-track{display:grid;grid-auto-flow:column;grid-auto-columns:78%;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;scroll-behavior:smooth;overscroll-behavior-x:contain}.pk-car-track::-webkit-scrollbar{display:none}.pk-car-track figure{margin:0;aspect-ratio:3/2;overflow:hidden;background:var(--stone-100);scroll-snap-align:start}.pk-car-track img{width:100%;height:100%;object-fit:cover;display:block}.pk-car-nav{display:flex;gap:10px;justify-content:flex-end;margin-top:28px}.pk-car-nav button{width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--navy);font-size:18px;cursor:pointer;transition:background .25s,color .25s}.pk-car-nav button:hover{background:var(--navy);color:#fff;border-color:var(--navy)}@media(max-width:760px){.pk-car-track{grid-auto-columns:88%;gap:14px}}

.pk-ss-stage{position:relative;aspect-ratio:3/2;max-height:82vh;width:100%;overflow:hidden;background:var(--stone-100)}.pk-ss-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .9s ease}.pk-ss-stage img.on{opacity:1}.pk-ss-n{position:absolute;top:50%;transform:translateY(-50%);width:54px;height:54px;border-radius:50%;border:0;background:rgba(255,255,255,.88);color:var(--navy);font-size:20px;cursor:pointer;transition:background .25s,color .25s}.pk-ss-n:hover{background:var(--navy);color:#fff}.pk-ss-n[data-dir="-1"]{left:22px}.pk-ss-n[data-dir="1"]{right:22px}.pk-ss-bar{display:flex;align-items:center;gap:28px;margin-top:18px}.pk-ss-c{font-size:13px;letter-spacing:.14em;color:var(--navy);flex:none;font-variant-numeric:tabular-nums}.pk-ss-th{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;flex:1}.pk-ss-th button{padding:0;border:0;aspect-ratio:3/2;overflow:hidden;cursor:pointer;opacity:.45;transition:opacity .3s;background:var(--stone-100);outline:2px solid transparent;outline-offset:2px}.pk-ss-th button.on{opacity:1;outline-color:var(--navy)}.pk-ss-th button:hover{opacity:1}.pk-ss-th img{width:100%;height:100%;object-fit:cover;display:block}@media(max-width:760px){.pk-ss-n{width:42px;height:42px;font-size:16px}.pk-ss-n[data-dir="-1"]{left:10px}.pk-ss-n[data-dir="1"]{right:10px}.pk-ss-th{display:none}.pk-ss-bar{justify-content:center}}.hero-content{max-width:var(--maxw)!important}.hero-content h1{max-width:820px}.hero-content .lead{max-width:none!important}
.hero-stats{justify-content:center}.hero-stats>div{text-align:center}.hero-stats .lbl{margin-inline:auto}

.hero{min-height:0!important;height:clamp(300px,62vw,760px)}
.hero::after{display:none!important}
.hero video.hero-photo{background:#28243c}
.page-hero .crumbs,.page-hero .eyebrow{display:none!important}.page-hero .lead{margin-top:14px!important}
.page-hero{padding-block:clamp(28px,4vw,44px)!important}
.page-hero h1{margin:0!important}
#pg-es-ayudas .pk-aid-row:last-child,#pg-en-funding .pk-aid-row:last-child{border-bottom:0!important;padding-bottom:0!important}
#pg-es-ayudas section.section,#pg-en-funding section.section{padding-block:clamp(36px,4vw,56px)!important}
@media(min-width:900px){.pk-prio-line{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:24px!important}.pk-prio-line::before{left:calc((100% - 96px)/10)!important;right:calc((100% - 96px)/10)!important}.pk-prio-line li{text-align:center}.pk-prio-line li .n{margin-inline:auto!important}.pk-prio-line li p{margin-inline:auto}}
#pg-es-verano .pk-day,#pg-en-summer-school .pk-day{width:100%!important;max-width:none!important}
#pg-es-verano .pk-day-row,#pg-en-summer-school .pk-day-row{grid-template-columns:minmax(160px,0.32fr) 1fr!important}
#pg-es-verano .pk-day-row p,#pg-en-summer-school .pk-day-row p{max-width:none!important}
#pg-es-verano section.section,#pg-en-summer-school section.section{padding-block:clamp(36px,4vw,56px)!important}
#pg-es-escuela-familias .page-hero+.section,#pg-en-family-school .page-hero+.section{padding-bottom:clamp(36px,4vw,56px)!important}
#pg-es-escuela-familias .page-hero+.section+.section,#pg-en-family-school .page-hero+.section+.section{padding-top:clamp(36px,4vw,56px)!important}
.pk-page .page-hero+.section{padding-top:clamp(36px,4vw,56px)!important}
.pk-page:has(.page-hero) .section:has(+footer){padding-bottom:clamp(36px,4vw,56px)!important}
#pg-es-un-dia .page-hero+.section,#pg-en-a-day .page-hero+.section{padding-bottom:clamp(44px,5vw,64px)!important}
#pg-es-un-dia .page-hero+.section+.section,#pg-en-a-day .page-hero+.section+.section{padding-top:clamp(36px,4vw,56px)!important}
#pg-es-un-dia .pk-day-row:last-child,#pg-en-a-day .pk-day-row:last-child{padding-bottom:0!important}
.ticker{background:var(--navy)!important;border:0!important;padding-block:20px!important}
.ticker-inner span{color:#fff!important;font-weight:600!important;font-size:13px!important;letter-spacing:.18em!important}
.ticker-inner span.dot{color:var(--lav)!important;font-size:0!important;letter-spacing:0!important;display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--lav);vertical-align:middle;align-self:center}
#pg-es-un-dia .pk-day,#pg-en-a-day .pk-day{width:100%!important;max-width:none!important}
#pg-es-un-dia .pk-day-row,#pg-en-a-day .pk-day-row{grid-template-columns:minmax(160px,0.32fr) 1fr!important}
#pg-es-un-dia .pk-day-row p,#pg-en-a-day .pk-day-row p{max-width:none!important}
#pg-es-un-dia .pk-day-row:last-child,#pg-en-a-day .pk-day-row:last-child{border-bottom:0!important}
.pk-rev-track .review p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden}
.pk-rev-nav{margin-top:20px!important}
#pg-es-index > section.section,#pg-en-index > section.section,#pg-es-index > * > section.section,#pg-en-index > * > section.section{padding-block:clamp(44px,5vw,64px)!important}
#pg-es-un-dia .page-hero+.section,#pg-en-a-day .page-hero+.section{padding-top:clamp(36px,4vw,56px)!important}
#pg-es-un-dia .section:has(+footer),#pg-en-a-day .section:has(+footer){padding-bottom:clamp(36px,4vw,56px)!important}

.pkc{display:flex;flex-direction:column;gap:20px;margin-top:30px}
.pkc-i{display:flex;align-items:center;gap:16px;color:#fff;text-decoration:none}
.pkc-i svg{flex:none;width:40px;height:40px;padding:9px;border:1px solid rgba(255,255,255,.22);border-radius:50%;color:#fff;transition:background .25s,border-color .25s}
.pkc-i b{display:block;font-weight:600;font-size:15px;line-height:1.2;color:#fff}
.pkc-i small{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.58);margin-top:5px}
.pkc-i:hover svg{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.5)}
.pkc-i:hover b{text-decoration:underline;text-underline-offset:3px}
#pg-es-etapas-educativas .page-hero+.section,#pg-en-stages .page-hero+.section{padding-block:clamp(36px,4vw,56px)!important}
#pg-es-etapas-educativas .page-hero+.section .stage-full:first-of-type,#pg-en-stages .page-hero+.section .stage-full:first-of-type{border-top:0!important}
#pg-es-etapas-educativas .page-hero+.section .stage-full:last-of-type,#pg-en-stages .page-hero+.section .stage-full:last-of-type{border-bottom:0!important}
#pg-es-modelo-educativo .page-hero+.section,#pg-en-approach .page-hero+.section{padding-top:clamp(36px,4vw,56px)!important}
#pg-es-modelo-educativo .page-hero+.section .pillar-block:first-child,#pg-en-approach .page-hero+.section .pillar-block:first-child{border-top:0!important;padding-top:0!important}
#pg-es-modelo-educativo .page-hero+.section,#pg-en-approach .page-hero+.section{padding-bottom:clamp(36px,4vw,56px)!important}
#pg-es-modelo-educativo .page-hero+.section .pillar-block:last-child,#pg-en-approach .page-hero+.section .pillar-block:last-child{border-bottom:0!important;padding-bottom:0!important}

.pk-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.pk-check{display:flex;gap:10px;align-items:flex-start;margin-top:22px;font-size:14px;color:var(--ink-soft);cursor:pointer;text-transform:none;letter-spacing:0;font-weight:400}
.pk-check input{width:18px;height:18px;margin-top:2px;flex:none;accent-color:var(--navy)}
.pk-check a,.pk-rgpd a{color:var(--navy);text-decoration:underline}
.pk-form-msg{margin-top:16px;padding:14px 16px;font-size:14.5px;border-left:3px solid}
.pk-form-msg.is-ok{background:#eef7ef;border-color:#2e7d4f;color:#1f5a38}
.pk-form-msg.is-err{background:#fbeeee;border-color:#b3261e;color:#8c1d18}
.pk-rgpd{line-height:1.55}

.pk-map{height:300px;background:var(--stone-50);border:1px solid var(--line);position:relative}
.pk-map-ph{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;gap:14px}
.pk-map-addr{font-size:15px;color:var(--ink-soft);margin:0}
.pk-map-note{font-size:12.5px;color:var(--ink-faint);max-width:380px;margin:0;line-height:1.5}
.pk-map-note a,.pk-map-link{color:var(--navy);text-decoration:underline}
.pk-map-link{font-size:13px}
.pk-map.is-loaded{border:0}
.pk-map iframe{width:100%;height:100%;border:0;display:block}

.pk-visit{margin:48px 0 8px;border:1px solid var(--line);background:#fff}
.pk-visit-toggle{all:unset;box-sizing:border-box;width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:28px 32px;cursor:pointer;background:var(--stone-50);transition:background .3s}
.pk-visit-toggle:hover{background:var(--stone-100)}
.pk-visit-toggle:focus-visible{outline:2px solid var(--navy);outline-offset:-2px}
.pk-visit-title{display:block;font-family:var(--serif);font-size:clamp(26px,3vw,36px);color:var(--ink);margin-top:8px;line-height:1.15}
.pk-visit-ic{position:relative;width:46px;height:46px;flex:none;border-radius:50%;background:var(--navy);transition:transform .45s var(--ease,ease)}
.pk-visit-ic::before,.pk-visit-ic::after{content:"";position:absolute;left:50%;top:50%;width:16px;height:2px;background:#fff;transform:translate(-50%,-50%)}
.pk-visit-ic::after{transform:translate(-50%,-50%) rotate(90deg);transition:opacity .3s}
.pk-visit.is-open .pk-visit-ic{transform:rotate(180deg)}
.pk-visit.is-open .pk-visit-ic::after{opacity:0}
.pk-visit-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .6s var(--ease,ease)}
.pk-visit.is-open .pk-visit-panel{grid-template-rows:1fr}
.pk-visit-clip{overflow:hidden;min-height:0}
.pk-visit-inner{padding:8px 32px 36px;opacity:0;transform:translateY(-8px);transition:opacity .45s .1s,transform .45s .1s}
.pk-visit.is-open .pk-visit-inner{opacity:1;transform:none}
.pk-visit-intro{color:var(--ink-soft);margin:16px 0 26px;max-width:640px}
@media(max-width:640px){.pk-visit-toggle{padding:22px 20px}.pk-visit-inner{padding:4px 20px 28px}}

.hero .pk-hero-grad{z-index:1;background:linear-gradient(0deg,rgba(34,30,52,.72) 0%,rgba(34,30,52,.38) 28%,rgba(34,30,52,.08) 60%,rgba(34,30,52,0) 100%)!important}
.pk-hero-h{position:absolute;bottom:clamp(18px,3vw,38px);left:0;right:0;z-index:2;text-align:center}
.pk-hero-h h1{font-family:var(--sans);font-size:clamp(10.5px,.95vw,12.5px);font-weight:400;letter-spacing:.26em;text-transform:uppercase;color:#fff;margin:0;line-height:1.3}

.pk-schools-band{background:var(--navy);color:#fff}
.pk-split{display:flex;flex-wrap:wrap;gap:40px 96px;align-items:flex-start}
.pk-split>*{flex:1 1 420px}
.pk-schools-band .eyebrow{color:#d9d2f8}
.pk-schools-band .eyebrow::before{background:#d9d2f8}
.pk-schools-band h2{font-family:var(--serif);font-weight:500;color:#fff;font-size:clamp(40px,5vw,68px);line-height:1.02;margin:18px 0 0}
.pk-schools-band h2 em{color:#d9d2f8;font-style:italic}
.pk-schools-band .lead{color:rgba(255,255,255,.86);font-size:16px;line-height:1.7;margin-top:26px;max-width:440px}
.pk-schools{list-style:none;margin:0;padding:0;border-top:1px solid rgba(255,255,255,.28)}
.pk-schools li{border-bottom:1px solid rgba(255,255,255,.28)}
.pk-schools a,.pk-schools li>div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:24px 0;color:#fff;text-decoration:none}
.pk-schools a:hover{color:#d9d2f8}
.pk-schools strong{font-family:var(--serif);font-weight:500;font-size:28px;line-height:1.2}
.pk-schools span{font-size:12px;letter-spacing:.12em;color:#d9d2f8;text-transform:uppercase;white-space:nowrap}
.pk-schools .is-current strong{font-style:italic}
.pk-schools .is-current span{background:#fff;color:var(--navy);font-weight:600;font-size:11px;padding:6px 10px}
@media(max-width:720px){.pk-schools strong{font-size:22px}.pk-split{gap:32px}}

.pk-legal{max-width:820px;color:var(--ink-soft);font-size:16px;line-height:1.7}.pk-legal h2{font-size:26px;margin:40px 0 14px;color:var(--navy)}.pk-legal h3{font-size:19px;margin:28px 0 10px}.pk-legal p,.pk-legal ul,.pk-legal ol{margin:0 0 14px}.pk-legal ul,.pk-legal ol{padding-left:22px}.pk-legal a{color:var(--navy);text-decoration:underline}.pk-legal table{border-collapse:collapse;width:100%;margin:0 0 18px;font-size:14px}.pk-legal th,.pk-legal td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}.pk-legal img{max-width:100%;height:auto}.pk-legal ul.plain{list-style:none;padding-left:0}.pk-legal ul.plain li{margin:0 0 4px}.pk-legal .upd{font-size:14px;color:var(--ink-faint);margin-top:32px}.pk-legal td:first-child{white-space:nowrap;font-family:monospace;font-size:13px}
