:root {
  --black: #0a090a;
  --ink: #171317;
  --paper: #f0efed;
  --muted: #a9a4a6;
  --line: rgba(18, 15, 17, .17);
  --hot: #ff2f92;
  --hot-dark: #d80064;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--black); }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: Inter, Arial, sans-serif; font-size: 16px; line-height: 1.5; }
img { display: block; width: 100%; height: 100%; object-fit: cover; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }

.topbar { height: 72px; padding: 0 3.4vw; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; background: var(--paper); border-bottom: 1px solid var(--line); position: relative; z-index: 5; }
.brand { font-family: Unbounded, sans-serif; font-size: clamp(.82rem, 1.15vw, 1rem); font-weight: 700; letter-spacing: -.05em; }
.brand span { color: var(--hot); margin-left: 3px; }
.topbar nav { display: flex; gap: 34px; font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; }
.topbar nav a, footer a { transition: color .2s ease; }
.topbar nav a:hover, footer a:hover { color: var(--hot); }
.mini-cta { justify-self: end; padding: 10px 18px; border: 1px solid var(--ink); border-radius: 999px; font-size: .8rem; font-weight: 600; text-transform: uppercase; }

.hero { min-height: calc(100svh - 72px); display: grid; grid-template-columns: minmax(0, 56fr) minmax(0, 44fr); position: relative; overflow: hidden; border-bottom: 1px solid var(--line); }
.hero-copy { padding: clamp(56px, 8vw, 130px) 4vw 34px; display: flex; flex-direction: column; align-items: flex-start; position: relative; z-index: 2; }
.eyebrow { margin: 0 0 24px; font-size: .72rem; line-height: 1.2; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
h1, h2 { margin: 0; font-family: Unbounded, sans-serif; font-weight: 600; letter-spacing: -.035em; line-height: 1.12; }
h1 { font-size: clamp(2rem, 5vw, 6rem); white-space: normal; }
h1 em, h2 em { color: var(--hot); font-style: normal; }
.hero-text { max-width: 590px; margin: clamp(34px, 5vh, 62px) 0 0; font-size: clamp(1rem, 1.35vw, 1.28rem); line-height: 1.55; }
.hero-actions { margin-top: 34px; display: flex; align-items: center; gap: 30px; }
.button { appearance: none; border: 1px solid var(--ink); background: transparent; color: var(--ink); min-height: 52px; padding: 15px 25px; display: inline-flex; align-items: center; justify-content: center; border-radius: 0; font-weight: 700; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; transition: transform .2s ease, background .2s ease, color .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-hot { background: var(--hot); border-color: var(--hot); color: var(--black); }
.button-hot:hover { background: #ff5cac; }
.text-link { font-weight: 700; font-size: .78rem; text-transform: uppercase; letter-spacing: .07em; border-bottom: 1px solid currentColor; padding-bottom: 4px; }
.text-link span { color: var(--hot); margin-left: 7px; }
.hero-meta { margin-top: auto; display: flex; gap: 9px; flex-wrap: wrap; padding-top: 36px; }
.hero-meta span { padding: 8px 12px; border: 1px solid var(--line); border-radius: 999px; font-size: .68rem; letter-spacing: .13em; }
.hero-image { margin: 0; min-height: 620px; position: relative; background: #1a1718; }
.hero-image img { object-position: center 24%; }
.hero-image::after { content: ''; position: absolute; inset: 0; box-shadow: inset 30px 0 60px rgba(0,0,0,.16); pointer-events: none; }
.hero-image figcaption { position: absolute; right: 18px; bottom: 18px; color: white; font-size: .65rem; text-transform: uppercase; letter-spacing: .14em; writing-mode: vertical-rl; z-index: 1; }
.vertical-note { position: absolute; right: calc(44% + 10px); top: 24px; margin: 0; z-index: 3; writing-mode: vertical-rl; font-size: .6rem; letter-spacing: .15em; color: rgba(255,255,255,.6); }

.statement { padding: 9vw 4vw; background: var(--hot); overflow: hidden; }
.statement p { margin: 0; font-family: Unbounded, sans-serif; font-weight: 600; font-size: clamp(2rem, 5.2vw, 6.6rem); line-height: 1.15; letter-spacing: -.035em; }
.statement p:last-child { margin-left: 10vw; }
.statement span { color: var(--paper); }

.section { padding: clamp(78px, 10vw, 150px) 4vw; }
.section-head { display: grid; grid-template-columns: 1.1fr .8fr; gap: 8vw; align-items: end; margin-bottom: clamp(52px, 7vw, 100px); }
.section h2 { font-size: clamp(2.75rem, 5.8vw, 7rem); }
.section-intro { max-width: 580px; margin: 0 0 5px; font-size: clamp(1rem, 1.4vw, 1.3rem); line-height: 1.6; }

.works { background: var(--paper); }
.gallery { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: 12vw; gap: 12px; }
.gallery figure { margin: 0; overflow: hidden; background: #cac6c4; }
.gallery figure:nth-child(1) { grid-column: span 7; grid-row: span 4; }
.gallery figure:nth-child(2) { grid-column: span 5; grid-row: span 5; }
.gallery figure:nth-child(3) { grid-column: span 4; grid-row: span 4; }
.gallery figure:nth-child(4) { grid-column: span 3; grid-row: span 4; }
.gallery figure:nth-child(5) { grid-column: span 7; grid-row: span 4; }
.gallery figure:nth-child(6) { grid-column: span 5; grid-row: span 4; }
.gallery img { transition: transform .7s cubic-bezier(.2,.8,.2,1); }
.gallery figure:hover img { transform: scale(1.025); }

.fit { padding-left: 0; display: grid; grid-template-columns: 43% 57%; background: var(--ink); color: var(--paper); }
.fit-image { min-height: 760px; }
.fit-copy { padding: 5vw 5vw 2vw 7vw; }
.fit-copy h2 { font-size: clamp(2.8rem, 5vw, 6.2rem); margin-bottom: 60px; }
.fit-copy ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.22); }
.fit-copy li { display: grid; grid-template-columns: 45px 1fr; gap: 20px; padding: 22px 0; border-bottom: 1px solid rgba(255,255,255,.22); font-size: clamp(.95rem, 1.25vw, 1.15rem); }
.fit-copy li span { color: var(--hot); font-size: .72rem; font-weight: 700; }

.program { background: #d8d5d3; }
.program-list { border-top: 1px solid var(--ink); }
.program-list article { display: grid; grid-template-columns: 80px 1fr 1fr; gap: 30px; align-items: baseline; padding: 28px 0; border-bottom: 1px solid var(--ink); }
.program-list span { color: var(--hot-dark); font-size: .75rem; font-weight: 700; }
.program-list h3 { margin: 0; font-family: Unbounded, sans-serif; font-size: clamp(1.4rem, 2.7vw, 3.2rem); letter-spacing: -.05em; text-transform: uppercase; }
.program-list p { max-width: 520px; margin: 0; font-size: 1rem; }

.author { padding: 0; display: grid; grid-template-columns: minmax(0, 52fr) minmax(0, 48fr); background: var(--hot); min-height: 780px; }
.author-copy { padding: 9vw 5vw 5vw 4vw; display: flex; flex-direction: column; align-items: flex-start; }
.author-copy h2 { font-size: clamp(3rem, 6vw, 7rem); }
.author-copy h2 em { color: var(--paper); }
.author-copy > p:not(.eyebrow) { max-width: 630px; margin: 52px 0 32px; font-size: clamp(1.05rem, 1.5vw, 1.35rem); line-height: 1.6; }
.author-copy .text-link { margin-top: auto; }
.author-image { margin: 0; min-height: 780px; }

.prices { background: var(--paper); }
.price-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; align-items: stretch; }
.price-card { padding: 32px; border: 1px solid var(--ink); display: flex; min-height: 570px; flex-direction: column; position: relative; }
.price-card.featured { border: 3px solid var(--hot); padding: 30px; }
.popular { position: absolute; top: 0; right: 0; padding: 9px 12px; background: var(--hot); font-size: .61rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.dark-card { color: var(--paper); background: var(--ink); }
.price-top { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid currentColor; padding-bottom: 18px; }
.price-top span { color: var(--hot); font-size: .72rem; font-weight: 700; }
.price-top p { margin: 0; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.price-card h3 { margin: 38px 0 24px; font-family: Unbounded, sans-serif; font-size: clamp(2rem, 3.1vw, 3.8rem); letter-spacing: -.065em; white-space: normal; }
.price-desc { min-height: 74px; margin: 0 0 28px; }
.price-card ul { margin: 0 0 36px; padding: 0; list-style: none; }
.price-card li { padding: 10px 0 10px 20px; border-bottom: 1px solid currentColor; position: relative; font-size: .9rem; }
.price-card li::before { content: '+'; position: absolute; left: 0; color: var(--hot); font-weight: 700; }
.price-card .button { margin-top: auto; width: 100%; }
.button-light { color: var(--ink); background: var(--paper); border-color: var(--paper); }

.final-cta { min-height: 82svh; position: relative; display: grid; place-items: center; text-align: center; color: white; overflow: hidden; }
.final-cta::after { content: ''; position: absolute; inset: 0; background: rgba(5,4,5,.53); }
.final-cta > img { position: absolute; inset: 0; }
.final-cta > div { padding: 70px 4vw; position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; }
.final-cta h2 { font-size: clamp(3rem, 7vw, 8rem); margin-bottom: 42px; }

footer { min-height: 150px; padding: 40px 4vw; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px; color: var(--paper); background: var(--black); }
footer p { margin: 0; font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; }
.footer-details { display: grid; gap: 6px; text-align: center; }
.footer-details p { text-transform: none; letter-spacing: .04em; line-height: 1.45; }
footer > a:last-child { justify-self: end; font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; }
.footer-details a { text-decoration: underline; text-underline-offset: 3px; }

.legal-page { min-height: 100svh; color: var(--paper); background: var(--black); }
.legal-topbar { position: sticky; top: 0; background: rgba(10,9,10,.94); border-color: rgba(255,255,255,.16); backdrop-filter: blur(12px); }
.legal-topbar .mini-cta { color: var(--paper); border-color: var(--paper); }
.legal-document { width: min(920px, calc(100% - 44px)); margin: 0 auto; padding: clamp(70px, 9vw, 130px) 0 110px; }
.legal-document h1 { max-width: 900px; margin-bottom: 28px; font-size: clamp(2.45rem, 6vw, 5.8rem); white-space: normal; }
.legal-lead { max-width: 760px; margin: 0 0 64px; color: #c9c4c6; font-size: clamp(1rem, 1.4vw, 1.22rem); line-height: 1.65; }
.legal-section { padding: 34px 0; border-top: 1px solid rgba(255,255,255,.2); }
.legal-section h2 { margin-bottom: 22px; color: var(--hot); font-size: clamp(1.25rem, 2.4vw, 2rem); line-height: 1.15; letter-spacing: -.04em; }
.legal-section p, .legal-section li { color: #e0dcde; line-height: 1.75; }
.legal-section p { margin: 0 0 14px; }
.legal-section ol, .legal-section ul { margin: 0; padding-left: 24px; }
.legal-section li + li { margin-top: 12px; }
.legal-note { padding: 22px; color: var(--paper); background: rgba(255,47,146,.12); border-left: 3px solid var(--hot); }
.legal-requisites { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 40px; }
.legal-requisites p { margin: 0; }

.payment-dialog { width: min(560px, calc(100% - 28px)); padding: 40px; border: 1px solid rgba(255,255,255,.3); color: var(--paper); background: var(--ink); box-shadow: 0 30px 100px rgba(0,0,0,.55); }
.payment-dialog::backdrop { background: rgba(0,0,0,.76); backdrop-filter: blur(7px); }
.dialog-close { position: absolute; top: 14px; right: 18px; border: 0; background: none; color: white; font-size: 2rem; cursor: pointer; }
.payment-dialog h2 { font-size: clamp(2rem, 5vw, 3.5rem); padding-right: 24px; }
.dialog-price { margin: 25px 0 0; color: var(--hot); font-family: Unbounded, sans-serif; font-size: 2rem; font-weight: 600; }
.dialog-copy { margin: 18px 0 28px; color: #d2ced0; }
.payment-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.payment-actions .button { color: var(--paper); border-color: var(--paper); text-align: center; }
.payment-actions .button-hot { color: var(--black); border-color: var(--hot); }
.payment-note { margin: 18px 0 0; color: #908b8e; font-size: .73rem; }

@media (max-width: 900px) {
  .topbar { grid-template-columns: 1fr auto; height: 64px; }
  .topbar nav { display: none; }
  .hero { min-height: auto; grid-template-columns: 1fr; }
  .hero-copy { padding: 54px 22px 42px; min-height: calc(100svh - 64px); }
  h1 { font-size: clamp(2rem, 9vw, 5rem); white-space: normal; }
  .hero-text { margin-top: 32px; }
  .hero-image { min-height: 112vw; }
  .vertical-note { display: none; }
  .statement { padding: 80px 22px; }
  .statement p { font-size: clamp(1.5rem, 6.5vw, 3.5rem); }
  .statement p:last-child { margin: 20px 0 0; }
  .section { padding: 78px 22px; }
  .section-head { grid-template-columns: 1fr; gap: 28px; margin-bottom: 48px; }
  .section h2 { font-size: clamp(1.5rem, 7vw, 4rem); }
  .gallery { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 70vw; gap: 8px; }
  .gallery figure:nth-child(n) { grid-column: span 1; grid-row: span 1; }
  .gallery figure:nth-child(1), .gallery figure:nth-child(5) { grid-column: span 2; }
  .fit { padding: 0; grid-template-columns: 1fr; }
  .fit-image { min-height: 120vw; }
  .fit-copy { padding: 78px 22px; }
  .fit-copy h2 { margin-bottom: 42px; }
  .program-list article { grid-template-columns: 38px 1fr; gap: 12px; }
  .program-list p { grid-column: 2; }
  .author { grid-template-columns: 1fr; min-height: auto; }
  .author-copy { min-height: 650px; padding: 78px 22px 54px; }
  .author-image { min-height: 118vw; }
  .price-grid { grid-template-columns: 1fr; gap: 14px; }
  .price-card { min-height: 510px; padding: 28px; }
  .price-card.featured { order: -1; padding: 26px; }
  .price-card h3 { font-size: 2.45rem; }
  footer { grid-template-columns: 1fr auto; }
  footer > .brand { grid-column: 1; grid-row: 1; }
  footer > a:last-child { grid-column: 2; grid-row: 1; }
  .footer-details { grid-column: 1 / -1; grid-row: 2; margin-top: 14px; text-align: left; }
}

@media (max-width: 520px) {
  .hero-actions { width: 100%; flex-direction: column; align-items: stretch; gap: 20px; }
  .hero-actions .text-link { align-self: flex-start; }
  .hero-actions .button { width: 100%; }
  .gallery { grid-template-columns: 1fr; grid-auto-rows: 132vw; }
  .gallery figure:nth-child(n) { grid-column: span 1; }
  .payment-dialog { padding: 32px 22px 24px; }
  .payment-actions { grid-template-columns: 1fr; }
  .legal-document { width: min(100% - 32px, 920px); padding-top: 54px; }
  .legal-requisites { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}

/* Keep typography within its own column, including narrow screens and text zoom. */
.hero-copy, .section-head > *, .fit-copy, .author-copy, .price-card,
.final-cta > div, .legal-document, .payment-dialog { min-width: 0; container-type: inline-size; }
h1, h2, h3, p, li, a, button { overflow-wrap: anywhere; }
.hero-copy > *, .author-copy > *, .fit-copy > * { max-width: 100%; }
.hero h1 { font-size: clamp(2rem, 10.5cqi, 6rem); }
.section-head h2, .fit-copy h2 { font-size: clamp(1.5rem, 8cqi, 5rem); }
.author-copy h2 { width: 100%; font-size: clamp(2rem, 12cqi, 6rem); }
.author-copy h2 em { display: inline-block; max-width: 100%; font-size: clamp(1.25rem, 8.3cqi, 4.5rem); color: var(--ink); }
.author-copy > p:not(.eyebrow) { margin-top: 32px; }
.author-copy .text-link span { color: var(--ink); }
.hero-actions { flex-wrap: wrap; }
.hero-copy, .author-copy { gap: 0; }
.topbar nav, .mini-cta, .button, .text-link, .price-top p,
.price-card li, .footer-details p, footer > a:last-child { font-size: .875rem; }
.button { text-align: center; letter-spacing: .035em; }
.eyebrow, .hero-meta span, .fit-copy li span, .program-list span,
.price-top span, .popular, .hero-image figcaption, .vertical-note { font-size: .75rem; }
.eyebrow { line-height: 1.5; letter-spacing: .12em; }
.hero-image figcaption { writing-mode: horizontal-tb; padding: 7px 10px; background: rgba(10,9,10,.8); letter-spacing: .08em; }
.vertical-note { color: var(--ink); }
.price-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.price-card { padding: 28px; }
.price-card.featured { padding: 26px; }
.price-card h3 { font-size: clamp(1.5rem, 13cqi, 3.8rem); line-height: 1.2; }
.price-top { gap: 12px; align-items: baseline; }
.price-top p { text-align: right; }
.popular { position: static; align-self: flex-start; margin: 0 0 20px; line-height: 1.5; }
.final-cta::after { background: rgba(5,4,5,.72); }
.final-cta > div { width: 100%; }
.final-cta h2 { font-size: clamp(1.75rem, 6.5cqi, 7rem); }
.final-cta h2 em { color: #ff75b7; }
.legal-document h1 { font-size: clamp(1.75rem, 8cqi, 5.8rem); }
.payment-dialog h2 { font-size: clamp(1.5rem, 8cqi, 2.5rem); line-height: 1.2; }
.dialog-price { font-size: clamp(1.5rem, 9cqi, 2rem); }
.payment-note { color: #c9c4c6; font-size: .875rem; }
.payment-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.payment-actions .button { padding-inline: 14px; }
.dialog-close { min-width: 44px; min-height: 44px; }

@media (max-width: 1100px) and (min-width: 901px) {
  .price-grid { grid-template-columns: 1fr; }
  .price-card { min-height: auto; }
}
@media (max-width: 900px) {
  .hero-copy { min-height: auto; padding-bottom: 42px; }
  .author-copy { min-height: auto; }
  .author-copy .text-link { margin-top: 12px; }
  .hero-image, .fit-image, .author-image { min-height: 0; height: auto; aspect-ratio: 4 / 5; }
  .price-grid { grid-template-columns: 1fr; }
  .fit-copy li { grid-template-columns: 28px minmax(0, 1fr); gap: 12px; font-size: 1rem; }
  .legal-topbar > span { display: none; }
}
@media (max-width: 520px) {
  .topbar { height: auto; min-height: 64px; padding: 12px 16px; gap: 12px; grid-template-columns: minmax(0, 1fr) auto; }
  .brand { font-size: .8125rem; letter-spacing: -.035em; }
  .mini-cta { padding: 10px 12px; }
  .hero-copy { padding: 40px 20px; }
  .section { padding: 60px 20px; }
  .fit, .author { padding: 0; }
  .fit-copy, .author-copy { padding: 60px 20px; }
  .statement { padding: 60px 20px; }
  .price-card { padding: 24px; }
  .price-card.featured { padding: 22px; }
  .payment-actions { grid-template-columns: 1fr; }
  footer { grid-template-columns: minmax(0, 1fr); gap: 20px; padding: 32px 20px; }
  footer > a:last-child { grid-column: 1; grid-row: 3; justify-self: start; }
}

/* Individual lessons share the existing typography and pink/black palette. */
.lessons { background: var(--ink); color: var(--paper); }
.lessons .section-intro a { text-decoration: underline; text-underline-offset: 4px; }
.lesson-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.lesson-card { min-width: 0; padding: clamp(20px, 2.3vw, 36px); display: flex; flex-direction: column; border: 1px solid #625c61; }
.lesson-category { display: flex; align-items: baseline; gap: 12px; margin: 0 0 28px; font-size: .875rem; color: #d7cdd3; }
.lesson-category span { color: #ff75b7; font-weight: 700; }
.lesson-card h3 { margin: 0 0 20px; font-family: Unbounded, sans-serif; font-size: clamp(1.125rem, 1.65vw, 1.65rem); font-weight: 600; line-height: 1.35; letter-spacing: -.025em; }
.lesson-description { margin: 0 0 22px; font-size: 1rem; line-height: 1.65; color: #ded9dc; }
.lesson-details { border-top: 1px solid #625c61; padding: 14px 0; margin-bottom: 24px; }
.lesson-details summary { cursor: pointer; min-height: 44px; padding-block: 10px; font-size: .875rem; font-weight: 600; }
.lesson-details p { margin: 8px 0; font-size: 1rem; line-height: 1.6; color: #ded9dc; }
.lesson-bottom { margin-top: auto; }
.lesson-price { margin: 0 0 20px; font-family: Unbounded, sans-serif; font-size: clamp(1.5rem, 2.5vw, 2.25rem); line-height: 1.3; letter-spacing: -.035em; }
.lesson-card .button { width: 100%; background: var(--hot); border-color: var(--hot); color: var(--black); }
.lesson-card .button:hover { background: #ff75b7; }
.lesson-contact { margin-top: 28px; display: flex; align-items: center; flex-wrap: wrap; gap: 24px; }
.lesson-contact p { flex: 1 1 400px; max-width: 800px; margin: 0; font-size: .875rem; line-height: 1.7; color: #d7cdd3; }
.lesson-contact .text-link { line-height: 1.6; }
.lessons :focus-visible { outline: 3px solid #ff75b7; outline-offset: 5px; }
@media (min-width: 901px) { .topbar nav { gap: clamp(14px, 2vw, 34px); } }
@media (max-width: 1050px) { .lesson-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .lesson-grid { grid-template-columns: minmax(0, 1fr); } .lesson-card { padding: 24px; } .lesson-card h3 { font-size: 1.35rem; } }

/* Student portfolio */
.students { background: var(--ink); color: var(--paper); }
.student-feature { margin:48px 0 64px; padding:34px 0 0; border-top:1px solid rgba(255,255,255,.24); }
.student-feature-heading { display:flex; justify-content:space-between; align-items:end; gap:36px; margin-bottom:30px; }
.student-feature-heading h3 { margin:10px 0 0; font-family:'Unbounded',sans-serif; font-size:clamp(1.65rem,3.7vw,3.2rem); line-height:1.12; letter-spacing:-.07em; }
.student-feature-heading h3 em { color:var(--hot); font-style:normal; }
.student-feature-heading > p { margin:0; width:min(340px,100%); color:#c7bdc2; font-size:.96rem; line-height:1.7; }
.student-archive-label { margin:0 0 24px; padding-top:26px; border-top:1px solid rgba(255,255,255,.24); color:var(--paper); text-transform:uppercase; font-size:.85rem; font-weight:700; letter-spacing:.12em; }
.student-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; align-items:start; }
.student-photo { display:block; background:#0a090a; cursor:zoom-in; }
.student-photo img { height:auto; aspect-ratio:3/4; object-fit:contain; }
.student-photo:focus-visible, .students summary:focus-visible { outline:3px solid var(--hot); outline-offset:5px; }
.student-more { margin-top:28px; }
.student-more summary { color:var(--paper); border-color:var(--hot); width:fit-content; margin:0 auto 28px; font-size:.875rem; }
.student-more[open] summary { background:var(--hot); color:var(--black); }
.student-viewer { border:0; padding:60px 16px 16px; width:min(1100px,100%); max-width:100%; max-height:100dvh; background:#0a090a; color:white; }
.student-viewer::backdrop { background:rgba(0,0,0,.94); }
.student-viewer > img { height:calc(100dvh - 160px); width:100%; object-fit:contain; }
.student-close { position:absolute; right:16px; top:10px; }
.student-viewer button { min-height:44px; padding:10px 16px; background:transparent; border:1px solid #777; color:white; cursor:pointer; font-size:1rem; }
.student-controls { display:flex; justify-content:center; align-items:center; gap:24px; padding-top:16px; }
body:has(.student-viewer[open]) { overflow:hidden; }
@media(max-width:900px) { .student-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; } }
@media(max-width:680px) { .student-feature { margin:34px 0 46px; } .student-feature-heading { display:block; } .student-feature-heading > p { margin-top:18px; } }
@media(max-width:420px) { .student-controls { gap:12px; } }


.special-price-note { margin:24px 0 0; color:var(--hot-dark); font-size:.875rem; font-weight:700; }
.special-price-active h3.special-price { margin-top:12px; }
.special-price-active .regular-price { display:block; font-size:.6em; color:#6e666c; text-decoration:line-through; text-decoration-thickness:2px; margin-bottom:8px; }
.offer-price { display:block; color:var(--hot-dark); }
.offer-price[hidden], .special-price-note[hidden] { display:none; }
