/* Public themes. Green deliberately retains the existing design. */
.theme-navy,.sample-navy{--accent:#164e82;--deep:#102b49;--wash:#edf3f9;--line:#cbd9e7;--muted:#516579;--round:4px}
.theme-gold,.sample-gold{--accent:#796027;--deep:#292824;--wash:#f7f3e9;--line:#ded4bb;--muted:#686253;--round:2px}
.theme-forest,.sample-forest{--accent:#3b6442;--deep:#28432e;--wash:#f3f2e9;--line:#d6ddc9;--muted:#5c6956;--round:24px}
.theme-white,.sample-white{--accent:#086b72;--deep:#13383b;--wash:#f5f9f9;--line:#d6e3e4;--muted:#52686a;--round:8px}
.theme-sport,.sample-sport{--accent:#a9430b;--deep:#142e48;--wash:#fff4e9;--line:#e9d4c2;--muted:#66605c;--round:10px}
.theme-info,.sample-info{--accent:#27644e;--deep:#283c47;--wash:#f0f4f5;--line:#cedadd;--muted:#516773;--round:4px}
.sample-green{--accent:#006148;--deep:#123d32;--wash:#f1f7f3;--line:#d4e2d9;--round:8px}
body:is(.theme-navy,.theme-gold,.theme-forest,.theme-white,.theme-sport,.theme-info){--green:var(--accent);--navy:var(--deep);--border:var(--line);color:var(--deep);background:#fff}
body[class^="theme-"]:not(.theme-green) :is(.hero-heading em,.eyebrow,.program-icon,.program-en,.tile-link,.text-link,.card-action,.brand-text,.guide-lead,.guide-lead h2,.blended-gallery h3,.region-card-top,.step-top,.module-list span){color:var(--accent)}
body[class^="theme-"]:not(.theme-green) :is(.home-hero,.page-intro,.programs-home,.soft-section,.enrollment-panel,.region-live div,.portal-account-note,.connection-pending,.about-brand,.expansion-panel,.detail-grid .check-list,.inline-note,.compare-table thead th,.learning-illustration,.audience-icon,.program-detail-icon){background:var(--wash)}
body[class^="theme-"]:not(.theme-green) :is(.news-tag,.hero-controls button:hover){background:var(--wash);color:var(--accent)}
body[class^="theme-"]:not(.theme-green) :is(.program-card,.enrollment-panel,.portal-account-note,.detail-grid .check-list,.inline-note){border-color:var(--accent)}
body[class^="theme-"]:not(.theme-green) :is(.program-card,.region-card,.center-card,.info-panel,.mission-grid article,.education-photo,.blended-gallery article,.enrollment-panel,.audience-section,.region-tiles,.portal-learning-cta){border-radius:var(--round)}
body[class^="theme-"]:not(.theme-green) :is(.region-card,.center-card,.info-panel,.mission-grid article,.blended-gallery article,.region-tiles,.region-tile,.compare-table th,.compare-table td,.news-list a,.news-full-list a){border-color:var(--line)}
body[class^="theme-"]:not(.theme-green) :is(.prose p,.prose ul,.page-intro p,.hero-carousel .hero-message p,.section-heading p,.course-card-copy>p,.blended-gallery p,.connection-caption,.section-footnote,.center-subtitle,.program-card-bottom,.region-tile>p,.region-card>p,.enrollment-panel dt,.hero-note,.audience-card p,.news-heading p,.news-full-list p){color:var(--muted)}
body[class^="theme-"]:not(.theme-green) .button.primary{background:var(--accent);border-color:var(--accent);color:white}
body[class^="theme-"]:not(.theme-green) .button.primary:hover{background:var(--deep);border-color:var(--deep)}
body[class^="theme-"]:not(.theme-green) :is(.button.outline,.hero-controls button,.learning-link){color:var(--deep);border-color:var(--line);background:white}
body[class^="theme-"]:not(.theme-green) .hero-dot[aria-current="true"] span{background:var(--accent)}
body[class^="theme-"]:not(.theme-green) .hero-controls .hero-dot{background:transparent;border:0}
body[class^="theme-"]:not(.theme-green) :is(.portal-learning-cta,.mission-banner){background:var(--deep);border-color:var(--deep);color:white}
body[class^="theme-"]:not(.theme-green) :is(.portal-learning-cta p,.mission-banner p,.mission-banner .eyebrow){color:#e8edf0}
body[class^="theme-"]:not(.theme-green) .portal-learning-cta .button.primary{background:white;border-color:white;color:var(--deep)}
body[class^="theme-"]:not(.theme-green) .site-footer{background:var(--wash);color:var(--muted)}
body[class^="theme-"]:not(.theme-green) .footer-top strong{color:var(--deep)}
body[class^="theme-"]:not(.theme-green) .filter-tabs [data-slot=tabs-trigger][data-state=active]{color:var(--accent);border-bottom-color:var(--accent)}
body[class^="theme-"]:not(.theme-green) .news-pagination [aria-current=page]{background:var(--accent);border-color:var(--accent);color:#fff}
body[class^="theme-"]:not(.theme-green) :is(a,button,select):focus-visible{outline-color:var(--accent)}
/* Navy: photo first, clean institutional grid. */
.theme-navy .hero-carousel .hero-grid{grid-template-columns:1.1fr 1fr;gap:56px}
.theme-navy .hero-copy{grid-column:2;grid-row:1}
.theme-navy .hero-carousel .hero-frames{grid-column:1;grid-row:1;border-radius:4px;box-shadow:14px 14px 0 var(--line)}
.theme-navy .section-heading{padding-bottom:18px;border-bottom:2px solid var(--accent)}
.theme-navy .page-intro{border-bottom:4px solid var(--accent)}
/* Gold: centered editorial hero with panoramic photography. */
.theme-gold .home-hero{padding-top:65px;padding-bottom:65px}
.theme-gold .hero-carousel .hero-grid{grid-template-columns:1fr;gap:28px}
.theme-gold .hero-copy{text-align:center;max-width:900px;margin:auto}
.theme-gold :is(.hero-actions,.hero-controls,.hero-note){justify-content:center}
.theme-gold .hero-carousel .hero-heading{font-size:clamp(30px,3.8vw,52px)}
.theme-gold .hero-carousel .hero-frames{aspect-ratio:24/9;border-radius:2px}
.theme-gold .section{padding-top:80px;padding-bottom:80px}
.theme-gold .news-home{grid-template-columns:1fr;gap:28px}
.theme-gold .news-heading{border-left:3px solid var(--accent);padding-left:24px}
.theme-gold .page-intro{text-align:center;padding-top:40px;padding-bottom:50px}
/* Forest: generous curved images and separated natural cards. */
.theme-forest .hero-carousel .hero-grid{grid-template-columns:1fr 1.12fr;gap:48px}
.theme-forest .hero-carousel .hero-frames{border-radius:120px 24px 120px 24px;aspect-ratio:1/1}
.theme-forest .region-tiles{border:0;gap:20px;overflow:visible}
.theme-forest .region-tile{border:1px solid var(--line);border-radius:24px;background:var(--wash)}
.theme-forest .audience-section{gap:20px;border:0;overflow:visible}
.theme-forest .audience-card{border:1px solid var(--line);border-radius:24px}
.theme-forest .program-grid{gap:30px}
/* White: restrained centered hero and horizontal course rows. */
.theme-white .hero-carousel .hero-grid{grid-template-columns:1fr;gap:24px}
.theme-white .hero-copy{text-align:center;max-width:860px;margin:auto}
.theme-white :is(.hero-actions,.hero-controls,.hero-note){justify-content:center}
.theme-white .hero-carousel .hero-frames{aspect-ratio:26/9;border-radius:8px}
.theme-white .program-grid{grid-template-columns:1fr}
.theme-white .program-card.photo-course-card{display:grid;grid-template-columns:280px 1fr;border-top-width:1px;box-shadow:none}
.theme-white .course-card-photo{height:100%;aspect-ratio:auto;min-height:190px}
.theme-white .course-card-copy{padding:24px 32px 0}
.theme-white .page-intro{background:white!important;border-bottom:1px solid var(--line)}
/* Sport: full banner photography with a readable solid copy panel. */
.theme-sport .hero-carousel .hero-grid{grid-template-columns:1fr;position:relative;padding:36px;min-height:590px}
.theme-sport .hero-carousel .hero-frames{grid-area:1/1;align-self:stretch;height:100%;aspect-ratio:auto;border-radius:10px}
.theme-sport .hero-copy{grid-area:1/1;z-index:2;background:#ffffffed;border-left:6px solid var(--accent);border-radius:6px;padding:30px;max-width:580px}
.theme-sport .hero-carousel .hero-heading{font-size:clamp(26px,3vw,42px)}
.theme-sport .hero-frame .visual-label{left:auto;right:28px;max-width:300px;text-align:right}
.theme-sport .hero-frame figcaption{left:auto;right:28px;text-align:right}
.theme-sport .audience-card{border-top:4px solid var(--accent)}
.theme-sport .page-intro{border-left:8px solid var(--accent)}
/* Information: compact hero, dense rows and reduced section spacing. */
.theme-info .home-hero{padding:24px 0}
.theme-info .hero-carousel .hero-grid{grid-template-columns:1.4fr 1fr;gap:32px}
.theme-info .hero-carousel .hero-heading{font-size:clamp(25px,2.6vw,36px);margin:12px 0}
.theme-info .hero-carousel .hero-message p{font-size:15px;margin-bottom:12px}
.theme-info .hero-carousel .hero-frames{aspect-ratio:16/10;border-radius:4px}
.theme-info .hero-copy{padding:0}
.theme-info .hero-actions{margin-top:12px}
.theme-info .hero-controls{margin-top:12px}
.theme-info .hero-carousel .hero-note{margin-top:12px}
.theme-info .section{padding-top:38px;padding-bottom:38px}
.theme-info .region-tiles{grid-template-columns:repeat(2,1fr)}
.theme-info .region-tile{border:1px solid var(--line);padding:18px}
.theme-info .course-card-photo{aspect-ratio:16/8}
.theme-info .news-list a{padding:16px 0}
.theme-info .page-intro{padding-bottom:24px}
/* Preview bar is not sticky: never covers menu or focused controls. */
.theme-preview-bar{background:#172d3a;color:#fff;padding:14px 24px;display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;font-size:14px}
.theme-preview-bar a{color:#fff;text-decoration:underline;text-underline-offset:4px}
.theme-preview-bar a:focus-visible{outline:3px solid #fff}
/* Admin cards use CSS thumbnails, no additional image downloads. */
.theme-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:24px}
.theme-option{border:1px solid #cbd9d2;border-radius:12px;padding:18px;background:white;min-width:0}
.theme-option.theme-selected{border:2px solid #006148;padding:17px}
.theme-option h3{font-size:18px;margin:18px 0 8px;font-weight:700}
.theme-option p{font-size:14px;line-height:1.8;color:#52665a}
.theme-option form{margin:12px 0 0}
.theme-option .button{padding:10px 12px;font-size:14px;margin-bottom:0}
.theme-option button:disabled,.theme-restore button:disabled{opacity:.5;cursor:default}
.theme-sample{background:var(--wash);border:1px solid var(--line);border-radius:6px;padding:12px;height:175px;overflow:hidden}
.sample-nav{height:10px;background:white;border-bottom:2px solid var(--accent);margin-bottom:12px}
.sample-hero{display:grid;grid-template-columns:1fr 1fr;gap:12px;height:85px;align-items:center}
.sample-copy i{display:block;height:6px;background:var(--deep);margin:8px 0;width:80%}
.sample-copy i:first-child{background:var(--accent);width:45%;height:4px}
.sample-photo{height:100%;background:linear-gradient(140deg,var(--line),var(--accent));border-radius:var(--round)}
.sample-cards{display:flex;gap:8px;margin-top:12px;height:22px}
.sample-cards i{flex:1;background:white;border-top:2px solid var(--accent);border-radius:var(--round)}
.sample-navy .sample-copy{order:2}
.sample-gold .sample-hero,.sample-white .sample-hero{grid-template-columns:1fr;grid-template-rows:25px 50px;gap:5px}
.sample-gold .sample-copy,.sample-white .sample-copy{display:flex;gap:5px;justify-content:center}
.sample-forest .sample-photo{border-radius:32px 8px}
.sample-sport .sample-hero{background:var(--accent);padding:8px}
.sample-sport .sample-copy{background:white;padding:5px}
.sample-info .sample-hero{height:65px;grid-template-columns:1.6fr 1fr}
.sample-info .sample-cards{height:42px}
.theme-restore{display:inline-block;margin-right:12px}
@media(max-width:1000px){.theme-sport .hero-frame .visual-label{display:none}.theme-admin-grid{grid-template-columns:1fr}}
@media(max-width:760px){
 body[class^="theme-"]:not(.theme-green) .hero-carousel .hero-grid{grid-template-columns:1fr;gap:24px}
 .theme-navy .hero-copy,.theme-navy .hero-carousel .hero-frames{grid-column:auto;grid-row:auto}
 .theme-navy .hero-carousel .hero-frames{box-shadow:6px 6px 0 var(--line)}
 body[class^="theme-"]:not(.theme-green) .hero-carousel .hero-frames{aspect-ratio:4/3;max-height:none}
 .theme-forest .hero-carousel .hero-frames{border-radius:60px 18px}
 .theme-gold .section{padding-top:44px;padding-bottom:44px}
 .theme-white .program-card.photo-course-card{grid-template-columns:1fr}
 .theme-white .course-card-photo{aspect-ratio:16/10;min-height:0}
 .theme-sport .hero-carousel .hero-grid{padding:0;min-height:0}
 .theme-sport .hero-copy,.theme-sport .hero-carousel .hero-frames{grid-area:auto}
 .theme-sport .hero-copy{padding:22px;max-width:none}
 .theme-sport .hero-carousel .hero-frames{height:auto}
 .theme-info .region-tiles{grid-template-columns:1fr}
 .theme-forest .audience-section{grid-template-columns:1fr}
 .theme-preview-bar{justify-content:flex-start;font-size:13px}
 .theme-admin-grid{grid-template-columns:1fr}
}
