:root {
  --ink: #102033;
  --muted: #526271;
  --blue: #0d5cc6;
  --blue-dark: #073a88;
  --sky: #d9edf7;
  --cream: #fbfaf6;
  --line: #d7e0e7;
  --green: #56715a;
  --gold: #b9893a;
  --shadow: 0 18px 45px rgba(16, 32, 51, 0.14);
  --platinum: #d9dde2;
  --silver: #aab2bc;
  --silver-dark: #67717d;
  --chrome: linear-gradient(135deg, #f8fafc 0%, #c8ced6 35%, #f7f9fb 58%, #9ea7b2 100%);
  --luxury-shadow: 0 24px 65px rgba(13, 28, 44, 0.16), 0 1px 0 rgba(255,255,255,.8) inset;
  --display-font: "Trajan Pro", "Cormorant SC", "Times New Roman", serif;
  --serif-font: "Cormorant Garamond", Georgia, "Times New Roman", serif;
}

/* Final platinum layer */
body .site-header { background: linear-gradient(110deg,rgba(255,255,255,.97),rgba(226,230,235,.95) 48%,rgba(255,255,255,.97)); border-bottom-color:#aeb6c0; box-shadow:0 10px 35px rgba(12,31,49,.08); }
body .site-header nav a:hover, body .site-header nav a[aria-current="page"] { border-color:#67717d; }
body .info-card, body .resource-card, body .detail-card, body .program-card, body .purchase-card, body .shop-card, body .portal-panel, body .portal-summary, body .auth-card { border-color:#c2c8cf; box-shadow:var(--luxury-shadow); }
body .resource-card span, body .tag { background:linear-gradient(135deg,#eef1f4,#aeb6c0); color:#253240; border:1px solid rgba(255,255,255,.7); }
body .site-footer { border-top:1px solid #9fa8b3; background-image:linear-gradient(135deg,#071522,#172737 60%,#75808b 160%); }
body .pedigree-frame { height:auto; padding:14px; background:linear-gradient(135deg,#e8ebee,#8e98a4,#f9fafb); }
body .pedigree-frame img { height:auto; object-fit:contain; opacity:1; }

* {
  box-sizing: border-box;
}

[hidden] {
  display: none !important;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  color: var(--ink);
  background: var(--cream);
  font-family: var(--serif-font);
  font-size: 1.05rem;
  line-height: 1.55;
}

.auth-loading #protected-portal {
  display: none;
}

.auth-page {
  min-height: 100vh;
  background:
    linear-gradient(rgba(8, 20, 35, 0.82), rgba(8, 20, 35, 0.9)),
    url("assets/arena-jump.jpg") center / cover fixed;
}

.auth-shell {
  width: min(620px, calc(100% - 32px));
  margin: 0 auto;
  padding: 42px 0 72px;
}

.auth-brand {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-bottom: 24px;
  color: white;
  font-family: var(--display-font);
  font-weight: 800;
  text-decoration: none;
  text-transform: uppercase;
}

.auth-brand img {
  width: 92px;
}

.auth-card {
  padding: clamp(28px, 6vw, 52px);
  border-radius: 10px;
  background: white;
  box-shadow: 0 28px 80px rgba(0, 0, 0, 0.32);
}

.auth-card h1 {
  font-size: clamp(2.4rem, 8vw, 4.4rem);
}

.auth-card > p:not(.eyebrow) {
  color: var(--muted);
}

.auth-form {
  display: grid;
  gap: 18px;
  margin-top: 24px;
}

.auth-form label {
  display: grid;
  gap: 7px;
  font-weight: 800;
}

.auth-form input {
  width: 100%;
  min-height: 50px;
  padding: 10px 13px;
  border: 1px solid var(--line);
  border-radius: 6px;
  font: inherit;
}

.auth-form small {
  color: var(--muted);
  font-weight: 500;
}

.auth-consent {
  grid-template-columns: auto 1fr !important;
  align-items: start;
}

.auth-consent input {
  width: 18px;
  min-height: 18px;
  margin-top: 3px;
}

.auth-links {
  display: grid;
  gap: 9px;
  margin-top: 22px;
  color: var(--muted);
}

.auth-message {
  margin-top: 18px;
  padding: 13px 15px;
  border-radius: 6px;
  background: #edf5ff;
}

.auth-message.success { background: #e8f7ec; color: #205c31; }
.auth-message.error { background: #fff0ee; color: #8a251d; }
.auth-message.warning { background: #fff7df; color: #73540e; }

.portal-setup {
  min-height: calc(100vh - 112px);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 38px;
  background: #f1f6fb;
}

.portal-setup[hidden] {
  display: none;
}

.portal-setup img {
  width: 180px;
}

.portal-setup > div {
  max-width: 720px;
}

.portal-account-bar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 18px;
  padding: 12px clamp(18px, 5vw, 72px);
  color: white;
  background: var(--blue-dark);
}

.release-gate { background: #f3f0e9; min-height: 75vh; }
.release-card { max-width: 900px; margin: 0 auto; background: #fff; padding: clamp(1.5rem, 4vw, 3.5rem); border: 1px solid rgba(16, 40, 70, .18); box-shadow: 0 18px 45px rgba(16, 40, 70, .12); }
.release-card h1 { margin-bottom: .5rem; }
.release-copy { margin: 1.5rem 0; max-height: 360px; overflow-y: auto; padding: 1.25rem; border: 1px solid rgba(16, 40, 70, .18); background: #faf9f6; }
.release-copy h2 { font-size: 1.25rem; margin: 1rem 0 .35rem; }
.release-copy h2:first-child { margin-top: 0; }
.release-copy p { line-height: 1.65; }
.release-form { display: grid; gap: 1rem; }
.release-form > label:not(.release-check) { display: grid; gap: .4rem; font-weight: 700; }
.release-form input[type="text"] { width: 100%; padding: .85rem; border: 1px solid #a8afba; font: inherit; }
.release-check { display: flex; align-items: flex-start; gap: .7rem; line-height: 1.45; }
.release-check input { margin-top: .25rem; width: 18px; height: 18px; flex: 0 0 auto; }
.legal-note { margin-top: 1rem; font-size: .88rem; color: #59616c; }

.camp-form-page { background: #f3f0e9; }
.camp-form-sheet { max-width: 960px; margin: 0 auto; padding: clamp(1.5rem, 4vw, 3.5rem); background: #fff; border: 1px solid rgba(16,40,70,.18); box-shadow: 0 18px 45px rgba(16,40,70,.12); }
.camp-form-heading { display: flex; align-items: center; gap: 1.25rem; padding-bottom: 1.5rem; border-bottom: 2px solid #153a68; }
.camp-form-heading img { width: 110px; }
.camp-form-heading h1 { margin: 0; }
.camp-registration-form { display: grid; gap: 1.5rem; margin-top: 1.5rem; }
.camp-registration-form fieldset { border: 1px solid rgba(16,40,70,.22); padding: 1.25rem; }
.camp-registration-form legend { padding: 0 .5rem; color: #153a68; font-family: "Cormorant SC", serif; font-size: 1.25rem; font-weight: 700; }
.camp-registration-form label { display: grid; gap: .4rem; font-weight: 700; }
.camp-registration-form input:not([type="checkbox"]), .camp-registration-form select, .camp-registration-form textarea { width: 100%; padding: .75rem; border: 1px solid #a8afba; background: #fff; font: inherit; }
.camp-date-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: .75rem; }
.camp-date-options label { display: flex; align-items: center; gap: .55rem; }
.camp-date-options input { width: 18px; height: 18px; }
.camp-form-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.form-trap { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; }

.breeding-preview { display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: clamp(28px, 6vw, 80px); color: white; background: #081522; }
.breeding-preview-image { min-height: 520px; overflow: hidden; border: 1px solid rgba(255,255,255,.14); }
.breeding-preview-image img { width: 100%; height: 100%; min-height: 520px; object-fit: cover; }
.breeding-preview-copy { max-width: 620px; }
.breeding-preview-copy p:not(.eyebrow) { color: rgba(255,255,255,.76); font-size: 1.25rem; }
.horse-hero { position: relative; min-height: 78vh; display: flex; align-items: flex-end; overflow: hidden; background: #03070a; }
.horse-hero > img, .horse-hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.horse-hero > img { object-fit: cover; object-position: center 42%; }
.horse-hero-shade { background: linear-gradient(90deg,rgba(2,8,13,.92),rgba(2,8,13,.42) 48%,rgba(2,8,13,.08)),linear-gradient(0deg,rgba(2,8,13,.7),transparent 50%); }
.horse-hero-copy { position: relative; z-index: 1; max-width: 790px; padding: 80px clamp(20px,7vw,110px); color: white; }
.horse-hero-copy p:not(.eyebrow) { max-width: 640px; font-size: 1.35rem; color: rgba(255,255,255,.82); }
.stallion-feature { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(30px,7vw,100px); align-items: center; background: #f4f0e8; }
.stallion-copy { max-width: 590px; }
.horse-kicker { color: #8a6b38; font-family: var(--display-font); font-size: 1.15rem; letter-spacing: .14em; text-transform: uppercase; }
.stallion-copy > p:not(.eyebrow,.horse-kicker), .satori-copy > p:not(.eyebrow,.horse-kicker) { font-size: 1.25rem; color: var(--muted); }
.horse-facts { display: grid; grid-template-columns: repeat(3,1fr); margin: 28px 0; border-block: 1px solid #d5c9b6; }
.horse-facts div { padding: 20px 14px; border-right: 1px solid #d5c9b6; }
.horse-facts div:last-child { border: 0; }.horse-facts span,.horse-facts strong { display: block; }.horse-facts span { color: #7b6a50; font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; }.horse-facts strong { margin-top: 5px; font-family: var(--display-font); font-weight: 500; }
.stallion-portrait { margin: 0; padding: 16px; background: #fff; box-shadow: 0 30px 80px rgba(25,31,38,.2); transform: rotate(1deg); }.stallion-portrait img { display: block; width: 100%; }.stallion-portrait figcaption { padding: 14px 4px 2px; color: #6e6253; letter-spacing: .08em; }
.pedigree-section { background: #0a1724; color: white; }.pedigree-section .section-heading p { color: rgba(255,255,255,.7); }.pedigree-frame { display: block; position: relative; max-width: 1050px; height: 560px; margin: 34px auto 0; overflow: hidden; background: #05090d; border: 1px solid rgba(255,255,255,.18); box-shadow: 0 30px 80px rgba(0,0,0,.42); }.pedigree-frame img { width: 100%; height: 100%; object-fit: cover; object-position: center 58%; opacity: .9; }.pedigree-frame span { position: absolute; right: 18px; bottom: 18px; padding: 12px 16px; background: rgba(8,21,34,.9); color: white; text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; }
.satori-feature { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(30px,7vw,100px); align-items: center; background: #fbfaf6; }.satori-headshot img { display:block; width:100%; max-height:850px; object-fit:cover; box-shadow: 0 32px 85px rgba(8,21,34,.24); }.satori-wide { margin-top: 32px; }.satori-wide img { display:block; width:100%; }
.breeding-contact { text-align:center; background: linear-gradient(135deg,#e5eef6,#fbfaf6); }.breeding-contact > img { width:140px; }.breeding-contact p:not(.eyebrow) { max-width:650px; margin:18px auto 25px; font-size:1.2rem; }.breeding-contact > div { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; }
@media(max-width:760px){.breeding-preview,.stallion-feature,.satori-feature{grid-template-columns:1fr}.breeding-preview-image,.breeding-preview-image img{min-height:380px}.horse-hero{min-height:680px}.horse-hero > img{object-position:62% center}.horse-facts{grid-template-columns:1fr}.horse-facts div{border-right:0;border-bottom:1px solid #d5c9b6}.pedigree-frame{height:420px}.stallion-portrait{transform:none}}

/* Platinum finish */
.section-heading { position: relative; padding-bottom: 20px; }
.section-heading::after { content: ""; display: block; width: 92px; height: 2px; margin-top: 20px; background: linear-gradient(90deg, #69737e, #f7f9fb, #9fa8b3); box-shadow: 0 1px 5px rgba(42,55,70,.22); }
.section-heading .eyebrow, .eyebrow { color: #526171; }
.hero .eyebrow, .horse-hero .eyebrow { color: #dbe4ec; }
.button { position: relative; overflow: hidden; letter-spacing: .055em; box-shadow: 0 12px 26px rgba(8,31,58,.15); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.button::after { content: ""; position: absolute; inset: 0; background: linear-gradient(115deg, transparent 20%, rgba(255,255,255,.28) 48%, transparent 72%); transform: translateX(-120%); transition: transform .6s ease; pointer-events: none; }
.button:hover { transform: translateY(-2px); box-shadow: 0 17px 34px rgba(8,31,58,.22); }
.button:hover::after { transform: translateX(120%); }
.button.secondary, .button.secondary.dark { border-color: #aeb6c0; }
.info-card, .resource-card, .detail-card, .program-card, .purchase-card, .shop-card, .portal-panel, .portal-summary, .auth-card { border: 1px solid #c2c8cf; box-shadow: var(--luxury-shadow); }
.resource-card, .program-card, .purchase-card, .shop-card { transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease; }
.resource-card:hover, .program-card:hover, .purchase-card:hover, .shop-card:hover { transform: translateY(-5px); border-color: #8e99a5; box-shadow: 0 30px 75px rgba(13,28,44,.2); }
.resource-card span, .tag { background: linear-gradient(135deg,#eef1f4,#aeb6c0); color: #253240; border: 1px solid rgba(255,255,255,.7); }
.intro, .resources, .gallery, .satori-feature { background-image: radial-gradient(circle at 90% 5%, rgba(176,185,195,.15), transparent 30%); }
.site-footer { border-top: 1px solid #9fa8b3; background-image: linear-gradient(135deg,#071522,#172737 60%,#75808b 160%); }
.brand img, .site-footer img, .breeding-contact > img { filter: drop-shadow(0 5px 10px rgba(80,91,104,.22)); }
.gallery-grid img { border: 1px solid #c1c7ce; box-shadow: 0 12px 30px rgba(20,34,48,.13); }
.pedigree-frame { height: auto; padding: 14px; background: linear-gradient(135deg,#e8ebee,#8e98a4,#f9fafb); }
.pedigree-frame img { height: auto; object-fit: contain; opacity: 1; }
.pedigree-frame span { border: 1px solid rgba(218,224,230,.55); backdrop-filter: blur(10px); }
.stallion-portrait { border: 1px solid #b8c0c8; }
.horse-facts { border-color: #aeb6c0; }
.horse-facts div { border-color: #c5cbd1; }
@media (prefers-reduced-motion: reduce) { .button, .resource-card, .program-card, .purchase-card, .shop-card, .button::after { transition: none; } }
@media print { .site-header, .camp-form-actions { display: none !important; } .camp-form-page, .camp-form-sheet { padding: 0; background: #fff; box-shadow: none; border: 0; } }

.portal-account-bar p {
  margin: 0;
}

.my-bookings {
  background: #eef5fb;
}

.client-only-info {
  background: linear-gradient(135deg, #071522, #172737 70%, #66717d 150%);
  color: white;
}

.client-only-info .section-heading p,
.client-only-info .eyebrow {
  color: rgba(255, 255, 255, 0.82);
}

.client-info-heading {
  margin: clamp(42px, 6vw, 72px) 0 24px;
}

.client-info-heading h2 {
  color: white;
}

.adult-iea {
  background: linear-gradient(135deg, #edf2f6, #ffffff 55%, #d7dde4);
  border-top: 1px solid #c2c8cf;
  border-bottom: 1px solid #c2c8cf;
}

.adult-iea-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}

.discount-price {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 12px;
  margin: 14px 0 2px;
  font-family: var(--display-font);
}

.discount-price .original-price {
  color: #7d8792;
  font-size: 1.15rem;
  text-decoration: line-through;
  text-decoration-color: #a33b3b;
  text-decoration-thickness: 2px;
}

.discount-price strong {
  color: var(--blue-dark);
  font-size: clamp(1.55rem, 3vw, 2.15rem);
}

.sale-expiration {
  margin: 0 0 14px;
  color: #8b3f2e;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.bookings-list {
  display: grid;
  gap: 12px;
}

.booking-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 20px 22px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  box-shadow: 0 10px 24px rgba(16, 32, 51, 0.08);
}

.booking-card span {
  color: var(--blue);
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.booking-card h3 {
  margin-top: 4px;
  font-size: 1.35rem;
}

.booking-card p {
  margin: 5px 0 0;
  color: var(--muted);
}

.reschedule-button {
  color: white;
  background: var(--blue-dark);
}

.booking-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.button.secondary.dark {
  color: var(--blue-dark);
  border: 1px solid var(--blue-dark);
  background: white;
}

.demo-banner {
  justify-content: space-between;
  background: #8a6418;
}

.account-button {
  min-height: 38px;
  padding: 8px 14px;
  color: var(--blue-dark);
  background: white;
}

img {
  max-width: 100%;
  display: block;
}

a {
  color: inherit;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  min-height: 124px;
  padding: 14px clamp(18px, 5vw, 72px);
  background: linear-gradient(110deg, rgba(255,255,255,.97), rgba(226,230,235,.95) 48%, rgba(255,255,255,.97));
  border-bottom: 1px solid #aeb6c0;
  box-shadow: 0 10px 35px rgba(12,31,49,.08);
  backdrop-filter: blur(14px);
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  text-decoration: none;
  font-weight: 600;
  letter-spacing: 0;
  font-family: var(--display-font);
  font-size: 1.18rem;
  text-transform: uppercase;
}

.brand span {
  display: inline-block;
  text-shadow: 0 1px 0 white, 0 0 12px rgba(126, 137, 149, 0.2);
}

.brand span::first-letter,
.section-heading h2::first-letter {
  color: #77828f;
  text-shadow: 0 1px 0 #ffffff, 0 0 10px rgba(168, 178, 189, 0.48);
}

.brand img {
  width: 120px;
  height: 106px;
  object-fit: contain;
  filter: drop-shadow(0 8px 16px rgba(72, 84, 97, 0.3));
}

.site-header nav {
  display: flex;
  align-items: center;
  gap: clamp(12px, 2vw, 28px);
  font-size: 0.88rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-family: var(--display-font);
}

.site-header nav a {
  text-decoration: none;
  border-bottom: 2px solid transparent;
  padding: 8px 0;
}

.site-header nav a:hover {
  border-color: var(--silver-dark);
}

.site-header nav a[aria-current="page"] { border-color: var(--silver-dark); }

.hero {
  position: relative;
  min-height: calc(100vh - 112px);
  display: grid;
  align-items: end;
  overflow: hidden;
  background: var(--ink);
}

.hero-image,
.hero-overlay {
  position: absolute;
  inset: 0;
}

.hero-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.hero-overlay {
  background:
    linear-gradient(90deg, rgba(8, 20, 35, 0.86) 0%, rgba(8, 20, 35, 0.58) 43%, rgba(8, 20, 35, 0.15) 100%),
    linear-gradient(0deg, rgba(8, 20, 35, 0.55), rgba(8, 20, 35, 0.05));
}

.hero-content {
  position: relative;
  width: min(760px, calc(100% - 36px));
  padding: 72px 0 82px;
  margin-left: clamp(18px, 7vw, 96px);
  color: white;
}

.hero-logo {
  position: absolute;
  z-index: 1;
  top: 25%;
  right: -28px;
  width: clamp(340px, 35vw, 550px);
  max-height: 72%;
  object-fit: contain;
  opacity: 0.28;
  transform: translateY(-50%);
  filter: drop-shadow(0 14px 30px rgba(0, 0, 0, 0.2));
}

.eyebrow {
  margin: 0 0 10px;
  color: var(--blue);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.13em;
  font-size: 0.78rem;
}

.hero .eyebrow {
  color: #9bd5ff;
}

h1,
h2,
h3,
p {
  overflow-wrap: anywhere;
}

h1,
h2,
h3 {
  margin: 0;
  line-height: 1.05;
  font-family: var(--display-font);
  letter-spacing: 0;
  font-weight: 500;
}

h1 {
  font-size: clamp(3rem, 8vw, 6.8rem);
  max-width: 820px;
}

h2 {
  font-size: clamp(2.05rem, 4vw, 4rem);
}

h3 {
  font-size: clamp(1.35rem, 2.4vw, 2rem);
}

.hero-copy {
  max-width: 620px;
  margin: 20px 0 0;
  font-size: clamp(1.05rem, 1.6vw, 1.24rem);
  color: rgba(255, 255, 255, 0.88);
  font-family: var(--serif-font);
  font-size: clamp(1.18rem, 1.8vw, 1.38rem);
}

.hero-actions,
.contact-lines {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 13px 22px;
  border: 0;
  border-radius: 6px;
  font-weight: 900;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  cursor: pointer;
  font-family: var(--display-font);
}

.button.primary {
  color: white;
  background: var(--blue);
}

.button.secondary {
  color: white;
  background: rgba(255, 255, 255, 0.18);
  border: 1px solid rgba(255, 255, 255, 0.38);
}

.button:hover {
  transform: translateY(-1px);
}

.section-pad {
  padding: clamp(62px, 8vw, 112px) clamp(18px, 5vw, 72px);
}

.intro {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
  gap: 34px;
  align-items: start;
}

.intro-text p:last-child,
.section-heading p:last-child,
.contact-copy p {
  max-width: 690px;
  color: var(--muted);
  font-size: 1.05rem;
  font-family: var(--serif-font);
}

.quick-info {
  display: grid;
  gap: 12px;
}

.quick-info div,
.purchase-card,
.schedule-panel {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  box-shadow: var(--shadow);
}

.quick-info div {
  padding: 22px;
}

.quick-info strong,
.quick-info span {
  display: block;
}

.quick-info span {
  margin-top: 4px;
  color: var(--muted);
}

.programs,
.contact {
  background: white;
}

.notice {
  margin: 0 0 20px;
  padding: 16px 18px;
  border-left: 4px solid var(--gold);
  background: #fff8e9;
  color: var(--ink);
}

.apparel {
  background: #f1f6fb;
}

.iea-hero {
  background:
    linear-gradient(90deg, rgba(8, 20, 35, 0.93), rgba(8, 20, 35, 0.66)),
    url("assets/arena-jump.jpg") center 42% / cover;
  color: white;
}

.iea-hero > div {
  max-width: 850px;
}

.iea-hero p:not(.eyebrow) {
  max-width: 720px;
  color: rgba(255, 255, 255, 0.86);
  font-family: var(--serif-font);
  font-size: 1.24rem;
}

.iea-hero .button {
  margin-top: 18px;
}

.services-hero {
  background:
    linear-gradient(90deg, rgba(8, 20, 35, 0.93), rgba(8, 20, 35, 0.58)),
    url("assets/horse-hug.jpg") center 42% / cover;
  color: white;
}

.services-hero > div {
  max-width: 850px;
}

.services-hero p:not(.eyebrow) {
  max-width: 720px;
  color: rgba(255, 255, 255, 0.87);
  font-family: var(--serif-font);
  font-size: 1.24rem;
}

.services-hero .button {
  margin-top: 18px;
}

.service-menu-grid .shop-card {
  display: block;
}

.lesson-rate-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.lesson-rate-grid h4 {
  margin: 24px 0 8px;
  font-family: var(--display-font);
  font-size: 1.1rem;
  color: var(--blue-dark);
}

.rate-list {
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
}

.rate-list li {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 11px 0;
  border-bottom: 1px solid var(--line);
}

.rate-list.compact {
  margin-top: 0;
}

.rate-note {
  margin-top: 18px;
  padding: 12px;
  background: #eef6ff;
  color: var(--blue-dark) !important;
  font-weight: 750;
}

.monthly-plans {
  background: #eef5fb;
}

.table-wrap {
  overflow-x: auto;
}

.price-table {
  width: 100%;
  border-collapse: collapse;
  background: white;
  box-shadow: var(--shadow);
}

.price-table th,
.price-table td {
  padding: 15px 18px;
  border: 1px solid var(--line);
  text-align: left;
}

.price-table th {
  color: white;
  background: var(--blue-dark);
}

.lesson-policies {
  background: white;
}

.portal-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(24px, 6vw, 72px);
  background: var(--ink);
  color: white;
}

.portal-cta > img {
  width: min(210px, 30vw);
  flex: 0 0 auto;
}

.portal-cta > div {
  max-width: 720px;
}

.portal-cta p:not(.eyebrow) {
  color: rgba(255, 255, 255, 0.78);
}

.portal-cta .button {
  margin-top: 14px;
}

.iea-resources {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.apparel-heading {
  display: flex;
  align-items: flex-start;
  gap: 28px;
}

.apparel-heading > img {
  width: 150px;
  flex: 0 0 auto;
}

.apparel-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}

.apparel-card {
  padding: clamp(24px, 4vw, 38px);
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  box-shadow: var(--shadow);
}

.apparel-card h3 {
  margin-bottom: 24px;
  color: var(--blue-dark);
}

.apparel-list {
  margin: 0;
}

.apparel-list div {
  padding: 15px 0;
  border-top: 1px solid var(--line);
}

.apparel-list dt {
  font-weight: 850;
}

.apparel-list dd {
  margin: 3px 0 0;
  color: var(--muted);
}

.age-group + .age-group {
  margin-top: 30px;
  padding-top: 28px;
  border-top: 1px solid var(--line);
}

.age-group ul {
  margin: 14px 0 0;
  padding-left: 20px;
}

.age-group li + li {
  margin-top: 10px;
}

@media (max-width: 760px) {
  .apparel-heading {
    display: block;
  }

  .apparel-heading > img {
    width: 112px;
    margin-bottom: 20px;
  }

  .apparel-grid {
    grid-template-columns: 1fr;
  }
}

.section-heading {
  max-width: 820px;
  margin-bottom: 34px;
}

.program-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.program-card {
  display: grid;
  min-height: 270px;
  border-radius: 8px;
  background: white;
  border: 2px solid rgba(13, 92, 198, 0.18);
  box-shadow: 0 16px 36px rgba(13, 92, 198, 0.08);
}

.program-card div {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  padding: 28px;
}

.program-card h3 {
  color: var(--blue-dark);
}

.program-card p,
.purchase-card p,
.schedule-panel p {
  color: var(--muted);
}

.program-card p {
  color: #195ca9;
  font-family: var(--serif-font);
  font-size: 1.12rem;
}

.program-card a {
  display: inline-block;
  margin-top: 6px;
  color: var(--blue-dark);
  font-weight: 900;
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}

.schedule {
  background: linear-gradient(180deg, var(--sky), #ffffff 46%, var(--cream));
}

.schedule-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: 22px;
}

.info-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
  margin-top: 24px;
}

.info-card,
.resource-card,
.detail-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  box-shadow: var(--shadow);
}

.info-card {
  padding: clamp(24px, 4vw, 34px);
}

.info-card h3,
.detail-card h3 {
  color: var(--blue-dark);
}

.info-card ul,
.detail-card ul {
  margin: 18px 0;
  padding-left: 20px;
  color: var(--muted);
}

.info-card li,
.detail-card li {
  margin: 8px 0;
}

.info-card p,
.detail-card p {
  color: var(--muted);
}

.schedule-panel {
  padding: clamp(24px, 4vw, 38px);
}

.schedule-panel.blue {
  color: white;
  background: var(--blue-dark);
  border-color: var(--blue-dark);
}

.schedule-panel.blue .date-list li {
  border-color: rgba(255, 255, 255, 0.22);
}

.schedule-panel.blue .date-list span,
.schedule-panel.blue .date-list strong {
  color: white;
}

.schedule-contact {
  margin-top: 24px;
  padding-top: 22px;
  border-top: 1px solid rgba(255, 255, 255, 0.22);
}

.schedule-contact p {
  margin: 0 0 8px;
  color: rgba(255, 255, 255, 0.78);
  font-weight: 800;
}

.schedule-contact a {
  display: block;
  color: white;
  font-weight: 900;
  font-size: clamp(1.18rem, 2vw, 1.45rem);
  line-height: 1.45;
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}

.date-list {
  list-style: none;
  margin: 22px 0 0;
  padding: 0;
}

.date-list li {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 15px 0;
  border-top: 1px solid var(--line);
}

.date-list span {
  color: var(--muted);
}

.booking {
  background: var(--ink);
  color: white;
}

.booking .eyebrow {
  color: #9bd5ff;
}

.purchase-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.purchase-card {
  color: var(--ink);
  padding: 28px;
  min-height: 280px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.purchase-card.highlight {
  border-color: #76baf2;
  box-shadow: 0 24px 60px rgba(13, 92, 198, 0.26);
}

.tag {
  color: var(--gold);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.78rem;
  font-family: var(--display-font);
}

.gallery-grid {
  columns: 3 280px;
  column-gap: 14px;
}

.gallery-grid img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 0 14px;
  border-radius: 8px;
  background: white;
  break-inside: avoid;
}

.gallery-grid img:first-child {
  grid-row: auto;
}

.contact {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(320px, 1fr);
  gap: 44px;
  align-items: start;
}

.contact-lines {
  flex-direction: column;
  gap: 8px;
  font-size: clamp(1.3rem, 2.4vw, 1.75rem);
  line-height: 1.45;
}

.contact-lines a {
  color: var(--blue-dark);
  font-weight: 900;
}

.portal-note a,
.auth-card p a {
  font-size: 1.12em;
  font-weight: 900;
}

.breeding-contact .button {
  font-size: clamp(1rem, 1.5vw, 1.16rem);
}

.contact-form {
  display: grid;
  gap: 16px;
  padding: clamp(22px, 4vw, 34px);
  background: var(--sky);
  border-radius: 8px;
  border: 1px solid #bfd6e4;
}

.contact-form label {
  display: grid;
  gap: 7px;
  color: var(--ink);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.78rem;
}

.contact-form input,
.contact-form select,
.contact-form textarea {
  width: 100%;
  border: 1px solid #b3c5d2;
  border-radius: 6px;
  padding: 13px 14px;
  font: inherit;
  background: white;
}

.resources {
  background: white;
}

.resource-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.resource-card {
  display: grid;
  gap: 10px;
  padding: 26px;
  text-decoration: none;
  border-color: rgba(13, 92, 198, 0.18);
}

.resource-card span {
  width: fit-content;
  padding: 5px 9px;
  border-radius: 4px;
  color: white;
  background: var(--blue-dark);
  font-family: var(--display-font);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.resource-card strong {
  color: var(--blue-dark);
  font-family: var(--display-font);
  font-size: 1.35rem;
  line-height: 1.08;
}

.resource-card small {
  color: var(--muted);
  font-size: 0.98rem;
}

.booking-hero {
  display: grid;
  align-items: end;
  min-height: 520px;
  color: white;
  background:
    linear-gradient(90deg, rgba(8, 20, 35, 0.88), rgba(8, 20, 35, 0.45)),
    url("assets/camp-group.jpg") center / cover;
}

.booking-hero > div {
  max-width: 860px;
}

.booking-hero .eyebrow {
  color: #9bd5ff;
}

.booking-hero p:last-child {
  max-width: 680px;
  color: rgba(255, 255, 255, 0.88);
  font-size: 1.12rem;
}

.shop {
  background: white;
}

.shop-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.shop-card {
  display: flex;
  min-height: 360px;
  flex-direction: column;
  justify-content: space-between;
  gap: 18px;
  padding: 28px;
  border: 2px solid rgba(13, 92, 198, 0.18);
  border-radius: 8px;
  background: white;
  box-shadow: 0 16px 36px rgba(13, 92, 198, 0.08);
}

.shop-card.featured {
  border-color: #76baf2;
  box-shadow: 0 24px 60px rgba(13, 92, 198, 0.18);
}

.shop-card h3,
.shop-card .price {
  color: var(--blue-dark);
}

.shop-card p {
  color: var(--muted);
}

.shop-card .price {
  margin: 0;
  font-family: var(--display-font);
  font-size: 1.45rem;
  font-weight: 900;
}

.checkout {
  background: var(--sky);
}

.details {
  background: var(--cream);
}

.details.show-fees {
  background: white;
}

.detail-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.detail-grid.two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.detail-card {
  padding: 28px;
}

.detail-card .price {
  margin: 14px 0 0;
  color: var(--blue-dark);
  font-family: var(--display-font);
  font-size: 1.55rem;
  font-weight: 900;
}

.checkout-form {
  display: grid;
  gap: 18px;
  max-width: 1100px;
  padding: clamp(22px, 4vw, 34px);
  border: 1px solid #bfd6e4;
  border-radius: 8px;
  background: white;
  box-shadow: var(--shadow);
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.checkout-form label {
  display: grid;
  gap: 7px;
  color: var(--ink);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.78rem;
  font-family: var(--display-font);
}

.checkout-form input,
.checkout-form select,
.checkout-form textarea {
  width: 100%;
  border: 1px solid #b3c5d2;
  border-radius: 6px;
  padding: 13px 14px;
  color: var(--ink);
  background: white;
  font: 1rem Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  text-transform: none;
  letter-spacing: 0;
}

.payment-box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  padding: 24px;
  border-radius: 8px;
  color: white;
  background: var(--blue-dark);
}

.payment-box p {
  max-width: 560px;
  color: rgba(255, 255, 255, 0.82);
}

.payment-box h3 {
  color: white;
}

.payment-box .button.primary {
  flex: 0 0 auto;
  background: white;
  color: var(--blue-dark);
}

.portal-hero {
  display: grid;
  align-items: end;
  min-height: 500px;
  color: white;
  background:
    linear-gradient(90deg, rgba(8, 20, 35, 0.88), rgba(8, 20, 35, 0.38)),
    url("assets/lesson-certificates.jpg") center / cover;
}

.portal-hero > div {
  max-width: 920px;
}

.portal-hero .eyebrow {
  color: #9bd5ff;
}

.portal-hero p:last-child {
  max-width: 720px;
  color: rgba(255, 255, 255, 0.88);
  font-family: var(--serif-font);
  font-size: 1.22rem;
}

.portal-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);
  gap: 24px;
  align-items: start;
  background: var(--sky);
}

.portal-main {
  display: grid;
  gap: 18px;
}

.portal-panel,
.portal-summary {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  box-shadow: var(--shadow);
}

.portal-panel {
  padding: clamp(22px, 4vw, 34px);
}

.portal-panel h2,
.portal-summary h2 {
  color: var(--blue-dark);
  font-size: clamp(1.8rem, 3vw, 3rem);
}

.portal-options,
.slot-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 22px;
}

.month-toolbar {
  display: flex;
  align-items: end;
  gap: 10px;
  margin-top: 20px;
}

.month-toolbar label {
  display: grid;
  flex: 1;
  gap: 6px;
  font-weight: 800;
}

.month-toolbar input {
  width: 100%;
  min-height: 46px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: white;
  font: inherit;
}

.month-button {
  min-width: 46px;
  min-height: 46px;
  border: 1px solid var(--blue-dark);
  border-radius: 6px;
  color: var(--blue-dark);
  background: white;
  cursor: pointer;
  font-size: 1.2rem;
}

.day-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 8px;
  margin-top: 20px;
}

.day-button {
  display: grid;
  gap: 2px;
  min-height: 68px;
  padding: 8px 4px;
  border: 1px solid #b9d0df;
  border-radius: 7px;
  color: var(--ink);
  background: #f8fbfd;
  cursor: pointer;
}

.day-button span {
  color: var(--muted);
  font-size: 0.72rem;
  text-transform: uppercase;
}

.day-button strong {
  font-size: 1.2rem;
}

.day-button.active {
  color: white;
  border-color: var(--blue-dark);
  background: var(--blue-dark);
}

.day-button.active span {
  color: white;
}

.times-heading {
  margin-top: 26px;
  font-size: 1.2rem;
  color: var(--blue-dark);
}

.time-slot[hidden] {
  display: none;
}

.package-picker,
.availability-fields label {
  display: grid;
  gap: 8px;
  font-weight: 800;
}

.package-picker select,
.availability-fields input,
.availability-fields textarea {
  width: 100%;
  min-height: 50px;
  padding: 11px 13px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: white;
  font: inherit;
}

.availability-fields {
  display: grid;
  gap: 18px;
  margin-top: 20px;
}

.option-tile,
.date-pill,
.time-slot {
  border: 1px solid #b9d0df;
  border-radius: 8px;
  color: var(--ink);
  background: #f8fbfd;
  cursor: pointer;
}

.option-tile {
  display: grid;
  gap: 6px;
  min-height: 108px;
  padding: 18px;
  text-align: left;
}

.option-tile strong {
  color: var(--blue-dark);
  font-family: var(--display-font);
  font-size: 1.1rem;
  line-height: 1.08;
}

.option-tile span {
  color: var(--muted);
  font-weight: 800;
}

.option-tile.active,
.date-pill.active,
.time-slot.active {
  color: white;
  background: var(--blue-dark);
  border-color: var(--blue-dark);
}

.option-tile.active strong,
.option-tile.active span {
  color: white;
}

.calendar-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-top: 22px;
}

.date-pill,
.time-slot {
  display: grid;
  align-content: center;
  gap: 3px;
  min-height: 62px;
  padding: 10px;
  font-family: var(--display-font);
  font-weight: 900;
}

.time-slot span,
.time-slot small {
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
}

.date-pill strong {
  font-size: 1.45rem;
}

.time-slot.disabled {
  color: #8794a0;
  background: #eef2f5;
  cursor: not-allowed;
}

.portal-form {
  display: grid;
  gap: 18px;
}

.portal-form label {
  display: grid;
  gap: 7px;
  color: var(--ink);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.78rem;
  font-family: var(--display-font);
}

.portal-form input,
.portal-form select,
.portal-form textarea {
  width: 100%;
  border: 1px solid #b3c5d2;
  border-radius: 6px;
  padding: 13px 14px;
  color: var(--ink);
  background: white;
  font: 1rem Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  text-transform: none;
  letter-spacing: 0;
}

.portal-form small {
  color: var(--muted);
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.4;
  text-transform: none;
}

.saved-profile-card {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.saved-profile-card div {
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #f7fafc;
}

.saved-profile-card span,
.saved-profile-card strong {
  display: block;
}

.saved-profile-card span {
  color: var(--muted);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.saved-profile-card strong {
  margin-top: 3px;
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
  font-size: 0.98rem;
  letter-spacing: 0;
  text-transform: none;
}

.portal-summary {
  position: sticky;
  top: 136px;
  padding: 28px;
}

.portal-summary dl {
  display: grid;
  gap: 14px;
  margin: 24px 0;
}

.portal-summary dl div {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}

.portal-summary dt {
  color: var(--muted);
  font-weight: 800;
}

.portal-summary dd {
  margin: 0;
  color: var(--blue-dark);
  font-weight: 900;
  text-align: right;
}

.portal-payment {
  display: grid;
  gap: 12px;
  padding: 22px;
  border-radius: 8px;
  color: white;
  background: var(--blue-dark);
}

.portal-payment h3,
.portal-payment p,
.portal-payment .tag {
  color: white;
}

.portal-payment p {
  margin: 0;
}

.portal-payment .button.primary {
  color: var(--blue-dark);
  background: white;
}

.portal-note {
  margin: 18px 0 0;
  color: var(--muted);
  font-size: 0.95rem;
}

.site-footer {
  display: grid;
  justify-items: center;
  gap: 8px;
  padding: 38px 18px;
  text-align: center;
  color: var(--muted);
  background: var(--cream);
  border-top: 1px solid var(--line);
}

.site-footer img {
  width: 72px;
}

.site-footer p {
  margin: 0;
}

.site-footer p:first-of-type {
  color: var(--ink);
  font-weight: 900;
}

@media (max-width: 1050px) {
  .program-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .purchase-grid,
  .shop-grid,
  .detail-grid,
  .detail-grid.two,
  .info-grid,
  .resource-grid,
  .portal-shell,
  .schedule-layout,
  .intro,
  .contact {
    grid-template-columns: 1fr;
  }

  .portal-summary {
    position: static;
  }
}

@media (max-width: 760px) {
  .site-header {
    position: static;
    align-items: flex-start;
    flex-direction: column;
  }

  .site-header nav {
    width: 100%;
    overflow-x: auto;
    padding-bottom: 4px;
  }

  .brand span {
    font-size: 0.98rem;
  }

  .hero {
    min-height: 760px;
  }

  .hero-content {
    margin: 0;
    padding: 54px 18px 64px;
    width: 100%;
  }

  .hero-logo {
    top: 20%;
    right: -58px;
    width: 280px;
    opacity: 0.2;
  }

  .program-grid,
  .purchase-grid,
  .shop-grid,
  .gallery-grid,
  .iea-resources,
  .lesson-rate-grid {
    grid-template-columns: 1fr;
  }

  .form-grid,
  .payment-box {
    grid-template-columns: 1fr;
  }

  .portal-options,
  .slot-grid,
  .calendar-strip {
    grid-template-columns: 1fr;
  }

  .day-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .payment-box {
    display: grid;
  }

  .portal-cta {
    align-items: flex-start;
    flex-direction: column;
  }

  .program-card {
    min-height: auto;
  }

  .gallery-grid {
    columns: 1;
  }

  .gallery-grid img:first-child {
    grid-row: auto;
  }

  .date-list li {
    display: grid;
    gap: 4px;
  }
}

/* Final platinum layer — intentionally last in the cascade */
body .site-header { background: linear-gradient(110deg,rgba(255,255,255,.97),rgba(226,230,235,.95) 48%,rgba(255,255,255,.97)); border-bottom-color:#aeb6c0; box-shadow:0 10px 35px rgba(12,31,49,.08); }
body .site-header nav a:hover, body .site-header nav a[aria-current="page"] { border-color:#67717d; }
body .info-card, body .resource-card, body .detail-card, body .program-card, body .purchase-card, body .shop-card, body .portal-panel, body .portal-summary, body .auth-card { border-color:#c2c8cf; box-shadow:var(--luxury-shadow); }
body .resource-card span, body .tag { background:linear-gradient(135deg,#eef1f4,#aeb6c0); color:#253240; border:1px solid rgba(255,255,255,.7); }
body .site-footer { border-top:1px solid #9fa8b3; background-image:linear-gradient(135deg,#071522,#172737 60%,#75808b 160%); }
body .pedigree-frame { height:auto; padding:14px; background:linear-gradient(135deg,#e8ebee,#8e98a4,#f9fafb); }
body .pedigree-frame img { height:auto; object-fit:contain; opacity:1; }
.recurring-authorization{background:linear-gradient(135deg,#f7f6f2,#e5e8ec)}.recurring-payment-form{max-width:1050px;margin:0 auto}.recurring-payment-form .release-copy{margin:1.25rem 0;padding:1.2rem;border-left:4px solid #9da6b1;background:#f7f8fa}.recurring-payment-form .release-copy h3{margin-top:0}.recurring-payment-form a{color:#0d5ea8;font-weight:700}
.admin-records-page{min-height:100vh;background:linear-gradient(135deg,#f8f7f3,#e5e7eb);color:#142033}.admin-records-header,.admin-records-toolbar,.admin-client-card{max-width:1180px;margin:0 auto 1.2rem}.admin-records-header,.admin-records-toolbar,.admin-client-title{display:flex;justify-content:space-between;gap:1.5rem;align-items:center}.admin-records-toolbar,.admin-client-card{background:rgba(255,255,255,.92);border:1px solid #c7cbd1;box-shadow:0 18px 50px rgba(15,28,48,.1);padding:1.5rem}.admin-records-toolbar label{flex:1}.admin-records-toolbar input{width:100%;margin-top:.45rem}.admin-records-counts{display:flex;gap:1rem;flex-wrap:wrap}.admin-records-counts span{padding:.65rem .85rem;background:#edf0f4;border:1px solid #c3c8cf}.admin-client-list{max-width:1180px;margin:auto}.admin-client-card{border-left:4px solid #9da4ae}.admin-client-title h2{margin:.2rem 0}.admin-client-title span{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}.record-current,.record-due{padding:.5rem .7rem;white-space:nowrap}.record-current{background:#e3f4ea;color:#22613b}.record-due{background:#fff0e8;color:#8b3c19}.admin-record-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.75rem;margin:1.2rem 0}.admin-record-grid div{padding:.8rem;background:#f5f6f7;border:1px solid #d6d9dd}.admin-record-grid dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}.admin-record-grid dd{margin:.3rem 0 0;font-weight:700}.admin-record-detail{padding:1rem 0}.admin-record-detail h3{margin:1rem 0 .35rem}@media(max-width:760px){.admin-records-header,.admin-records-toolbar,.admin-client-title{align-items:stretch;flex-direction:column}.admin-record-grid{grid-template-columns:1fr 1fr}}
.service-next-step{margin-top:1.25rem;padding:1.25rem;border:1px solid rgba(136,148,163,.65);background:linear-gradient(135deg,rgba(238,243,249,.95),rgba(255,255,255,.98));box-shadow:inset 3px 0 0 var(--blue)}.service-next-step h3{margin:.2rem 0 .5rem}


/* Lesson-credit system */
.credit-balance-card { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding:1.5rem; border:1px solid rgba(25,43,53,.16); border-radius:18px; background:#f7f4ee; }
.credit-balance-card h2 { margin:.2rem 0 .35rem; }
#lesson-credit-balance { font-size:1.25em; }
.admin-credit-controls { display:grid; grid-template-columns:minmax(130px,.7fr) minmax(220px,1.4fr) auto; gap:.75rem; align-items:end; margin:1rem 0; padding:1rem; border-radius:14px; background:rgba(25,43,53,.06); }
.admin-credit-controls label { display:grid; gap:.35rem; font-weight:600; }
.admin-credit-controls input { width:100%; padding:.7rem .8rem; border:1px solid rgba(25,43,53,.22); border-radius:8px; background:#fff; }
@media (max-width:760px) { .credit-balance-card { align-items:flex-start; flex-direction:column; } .admin-credit-controls { grid-template-columns:1fr; } }

.payment-price-summary{display:grid;grid-template-columns:1fr auto;gap:.55rem 1rem;padding:1rem;margin:1rem 0;border:1px solid rgba(20,37,64,.16);border-radius:14px;background:#fff}.payment-price-summary span{color:#596273}.payment-price-summary strong{text-align:right}.payment-method-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:1rem 0}.payment-method-card{display:flex;flex-direction:column;gap:.35rem;padding:1rem;border:1px solid rgba(20,37,64,.18);border-radius:14px;background:#fff;cursor:pointer}.payment-method-card:has(input:checked){outline:2px solid #24466f;background:#f3f7fb}.payment-method-card input{width:auto;margin:0 0 .35rem}.payment-method-card span{font-size:.9rem;color:#596273}.payment-qr-panel{margin:1rem 0;padding:1rem;text-align:center;border-radius:14px;background:#fff}.payment-qr-panel img{display:block;max-width:320px;width:100%;max-height:420px;object-fit:contain;margin:0 auto 1rem}.payment-confirmation-check{display:flex;gap:.65rem;align-items:flex-start;margin:1rem 0}.payment-confirmation-check input{width:auto;margin-top:.25rem}.admin-payment-card{padding:1rem;margin:.75rem 0;border:1px solid rgba(20,37,64,.16);border-radius:14px;background:#fff}.admin-payment-actions{display:flex;gap:.65rem;flex-wrap:wrap;margin-top:.75rem}@media(max-width:760px){.payment-method-grid{grid-template-columns:1fr}}

#birthday-parties, #iea-enrollment { scroll-margin-top: 120px; }
.iea-enrollment .enrollment-card { max-width: 900px; }
.iea-enrollment ol { margin: 1rem 0 1.5rem 1.25rem; }
.iea-enrollment li { margin-bottom: .65rem; }

/* Professional checkout */
.checkout-order-card{margin:1.25rem 0;padding:1.1rem 1.2rem;border:1px solid rgba(20,37,64,.14);border-radius:14px;background:#fff;color:#142540}.checkout-order-card>div{display:flex;justify-content:space-between;gap:1rem;padding:.48rem 0}.checkout-order-card span{color:#5b6574}.checkout-order-card strong{text-align:right}.checkout-total-row{margin-top:.35rem;padding-top:.8rem!important;border-top:1px solid rgba(20,37,64,.14);font-size:1.08rem}.square-checkout-button{width:100%;display:flex;align-items:center;justify-content:center;gap:.85rem;border:0;border-radius:12px;padding:1rem 1.2rem;background:#111;color:#fff;cursor:pointer;box-shadow:0 12px 24px rgba(0,0,0,.14)}.square-checkout-button:disabled{opacity:.48;cursor:not-allowed}.square-checkout-button span:last-child{display:flex;flex-direction:column;text-align:left}.square-checkout-button small{font-size:.78rem;font-weight:400;opacity:.78;margin-top:.18rem}.square-mark{display:grid;place-items:center;width:28px;height:28px;border:2px solid #fff;border-radius:6px;font-size:0}.square-mark:after{content:"";width:9px;height:9px;border:2px solid #fff;border-radius:2px}.alternate-payment-divider{display:flex;align-items:center;gap:.75rem;margin:1.25rem 0;color:#687386;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em}.alternate-payment-divider:before,.alternate-payment-divider:after{content:"";height:1px;flex:1;background:rgba(20,37,64,.15)}.alternate-payment-buttons{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.alternate-payment-button{display:flex;flex-direction:column;align-items:flex-start;padding:.9rem 1rem;border:1px solid rgba(20,37,64,.18);border-radius:12px;background:#fff;color:#142540;cursor:pointer}.alternate-payment-button:hover{border-color:#24466f;background:#f7faff}.alternate-payment-button span{margin-top:.2rem;font-size:.82rem;color:#687386}.polished-payment-panel{border:1px solid rgba(20,37,64,.14);box-shadow:0 10px 28px rgba(20,37,64,.08)}.polished-payment-panel h4{margin:.1rem 0 .75rem;font-size:1.2rem;color:#142540}@media(max-width:640px){.alternate-payment-buttons{grid-template-columns:1fr}.checkout-order-card>div{align-items:flex-start}.checkout-order-card strong{max-width:55%}}
