/* Live Django adapters for Royal Ice v15; hero.css supplies the approved hero. */
.nsstars-royal .ri-content { font-family:var(--body); font-size:17px; line-height:1.75; color:var(--ink); background:var(--paper); }
.nsstars-royal .ri-content :is(h1,h2,h3,h4,h5,h6) { font-family:var(--display); color:inherit; }
.nsstars-royal .ri-content .wrap { max-width:none; }
.nsstars-royal .ri-content .production-learn { background:var(--mist); }
.nsstars-royal .production-promos { position:relative; }
.nsstars-royal .ri-content .production-promo > span { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.nsstars-royal .ri-content .production-promo .ri-promo-arrow { display:inline; padding:0; flex-shrink:0; }
.nsstars-royal .ri-content .production-promo img { border-radius:0; }
.nsstars-royal .ri-content .news-card { min-width:0; height:100%; position:relative; padding:0; border:1px solid var(--line); background:var(--paper); }
.nsstars-royal .ri-content .news-image { display:block; aspect-ratio:16/10; overflow:hidden; }
.nsstars-royal .ri-content .news-image img { width:100%; height:100%; object-fit:cover; }
.nsstars-royal .ri-content .production-news-copy :is(h2,h3) { font-size:23px; font-weight:700; line-height:1.25; letter-spacing:-.025em; text-transform:none; margin:14px 0; }
.nsstars-royal .ri-content .production-news-copy :is(h2,h3) a { color:var(--ink); }
.nsstars-royal .ri-content .ri-news-meta { display:flex; flex-wrap:wrap; gap:8px 13px; align-items:center; font-size:11px; color:var(--muted); }
.nsstars-royal .ri-content .ri-news-meta a { color:var(--blue); text-transform:uppercase; font-weight:700; letter-spacing:.07em; }
.nsstars-royal .ri-card-edit { position:absolute; top:12px; right:12px; z-index:2; }
.nsstars-royal .ri-content .ri-collection { padding:60px 0; background:var(--mist); }
.nsstars-royal .ri-content .ri-journal-grid { margin-top:32px; }
.nsstars-royal .ri-content .journal-category-button { text-decoration:none; }
.nsstars-royal .ri-content .journal-category-button.is-active { background:var(--action-bg); border-color:var(--action-bg); color:var(--action-ink); }
.nsstars-royal .ri-content .journal-masthead { min-height:330px; padding-top:64px; }
.nsstars-royal .ri-content .journal-masthead h1 { color:#fff; }
.nsstars-royal .ri-content .journal-article-header { padding-top:54px; }
.nsstars-royal .ri-content .ri-article-reading { max-width:820px; padding-bottom:64px; }
.nsstars-royal .ri-content .ri-breadcrumbs { padding:24px 0; font-size:12px; color:var(--muted); }
.nsstars-royal .ri-content .ri-breadcrumbs a { color:var(--muted); }
.nsstars-royal .ri-content .journal-article-copy { margin:12px 0 40px; }
.nsstars-royal .ri-content .journal-article-copy :is(ul,ol) { margin-bottom:22px; }
.nsstars-royal .ri-content .journal-article-copy a { color:var(--blue); text-decoration:underline; text-underline-offset:3px; }
.nsstars-royal .ri-content .journal-article-copy :is(img,video,iframe,table) { max-width:100%; }
.nsstars-royal .ri-content .journal-article-copy img { height:auto; }
.nsstars-royal .ri-content .journal-article-copy :is(h3,h4) { margin:30px 0 16px; line-height:1.35; }
.nsstars-royal .ri-content .ri-article-nav { border-top:1px solid var(--line); }
.nsstars-royal .ri-content .ri-article-nav a { max-width:48%; overflow-wrap:anywhere; color:var(--ink); }
.nsstars-royal .ri-content .ri-article-nav-label { display:block; margin-bottom:10px; color:var(--muted); font:650 11px/1.5 var(--body); letter-spacing:.1em; text-transform:uppercase; }
.nsstars-royal .ri-content .ri-article-nav-title { display:block; font:700 clamp(18px,2vw,23px)/1.4 var(--display); letter-spacing:-.02em; }
.nsstars-royal .ri-content .ri-article-nav a:hover .ri-article-nav-title { color:var(--blue); }
/* Public core forms, equipment, training and CMS pages share the same type scale. */
.nsstars-royal .ri-page > .container { max-width:1240px; }
.nsstars-royal .ri-page :is(.btn,.form-control,.form-select) { font-family:var(--body); }
.nsstars-royal .ri-page .btn { border-radius:3px; font-weight:650; letter-spacing:0; text-transform:none; }
.nsstars-royal .ri-page .lead { font-size:18px; line-height:1.85; color:var(--muted); }
.nsstars-royal .ri-page .blog-post__content :is(p,ul,ol) { margin-bottom:22px; }
/* Original logo assets: one crest, plus the cropped lettering from the combined file. */
.nsstars-royal .royal-brand.brand-aligned { gap:11px; }
.nsstars-royal .brand-aligned .brand-crest { display:block; width:54px; height:54px; object-fit:contain; flex-shrink:0; }
.nsstars-royal .brand-name-lockup { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; width:166px; flex-shrink:0; }
.nsstars-royal .brand-name-viewport { display:block; position:relative; width:100%; aspect-ratio:1113/180; overflow:hidden; }
.nsstars-royal .brand-aligned .brand-lettering { position:absolute; width:142.587601%; max-width:none; height:auto; left:-42.587601%; top:-64.444444%; }
.nsstars-royal .brand-aligned .brand-tagline { display:block; width:100%; font:650 7px/1.35 var(--body); text-align:center; letter-spacing:.1em; white-space:nowrap; color:var(--muted); }
.nsstars-royal .royal-header .nav-main-links .nav-link { font-family:var(--body); font-size:13px; font-weight:650; text-transform:none!important; }
.nsstars-royal .royal-header .nav-main-links { gap:18px; }
.nsstars-royal .royal-footer { font-family:var(--body); }
.nsstars-royal .royal-footer :is(p,ul) { font-size:14px; line-height:1.9; }
.nsstars-royal .royal-footer h2 { font-size:14px; }
html.nsstars-royal[data-bs-theme=dark] .brand-aligned .brand-lettering { filter:drop-shadow(0 1px 1px rgba(137,194,235,.18)); }
@media(max-width:1350px) and (min-width:992px) {
  .nsstars-royal .royal-header .nav-main-links { gap:10px; }
  .nsstars-royal .royal-header .nav-main-links .nav-link { font-size:12px; }
  .nsstars-royal .brand-name-lockup { width:140px; }
  .nsstars-royal .brand-aligned .brand-crest { width:44px; height:44px; }
}
@media(max-width:700px) {
  .nsstars-royal .ri-content { font-size:16px; }
  .nsstars-royal .brand-name-lockup { width:121px; }
  .nsstars-royal .brand-aligned .brand-crest { width:39px; height:39px; }
  .nsstars-royal .royal-brand.brand-aligned { gap:8px; }
  .nsstars-royal .brand-aligned .brand-tagline { font-size:6px; letter-spacing:.06em; }
  .nsstars-royal .ri-content .journal-masthead { padding-top:42px; min-height:290px; }
  .nsstars-royal .ri-content .journal-article-header { padding-top:30px; }
  .nsstars-royal .ri-content .ri-article-nav { flex-direction:column; }
  .nsstars-royal .ri-content .ri-article-nav a { max-width:100%; }
}
@media(max-width:370px) {
  .nsstars-royal .brand-name-lockup { width:94px; }
  .nsstars-royal .brand-aligned .brand-crest { width:34px; height:34px; }
  .nsstars-royal .brand-aligned .brand-tagline { display:none; }
}
.nsstars-royal .ri-content .ri-cms { max-width:900px; padding-block:54px 72px; }
.nsstars-royal .ri-content .ri-cms :is(p,ul,ol,figure) { margin-bottom:24px; }
.nsstars-royal .ri-content .ri-cms :is(h1,h2,h3) { margin:28px 0 18px; }
.nsstars-royal .ri-content .ri-cms :is(img,video,iframe,table) { max-width:100%; }
.nsstars-royal .ri-content .ri-cms a { color:var(--blue); text-decoration:underline; text-underline-offset:3px; }
html.nsstars-royal .training-picker-dialog { font-family:var(--body); font-size:16px; }
/* Header appearance control and the original round club stamp. */
.nsstars-royal :is(.royal-header,.royal-navigation) { background:var(--paper); border-color:var(--line); }
/* Reference v15 header sits over the photograph, then becomes a paper surface. */
html.royal-home .royal-header { margin-bottom:calc(-1 * var(--site-header-height)); transition:background-color .18s,border-color .18s; }
html.royal-home .royal-navigation { min-height:calc(var(--site-header-height) - 1px); background:transparent; }
html.royal-home .royal-header[data-transparent="true"] { background:transparent; border-bottom-color:transparent; }
html.royal-home .royal-header[data-transparent="true"] :is(.nav-link,.brand-tagline) { color:#d7e7f5; }
html.royal-home .royal-header[data-transparent="true"] .brand-lettering { filter:drop-shadow(0 1px 1px rgba(137,194,235,.18)); }
html.royal-home .royal-header[data-transparent="true"] .nav-main-links .nav-link { color:#fff; text-shadow:0 1px 9px rgba(0,0,0,.35); }
html.royal-home .royal-header[data-transparent="true"] .dropdown-menu .nav-link { color:var(--ink); text-shadow:none; }
html.royal-home .royal-header[data-transparent="true"] .royal-theme-toggle { color:#fff; border-color:#9ab2d2; background:rgba(0,16,46,.2); }
html.royal-home .royal-header[data-transparent="true"] .nav-link-cta { background:#1745d2; border:1px solid #719aff; color:#fff!important; }
html.royal-home .royal-header[data-transparent="true"] .navbar-toggler { color:#fff; border-color:#9ab2d2; }
html.royal-home .royal-hero-content.hero-inner { width:calc(100% - 96px); max-width:1240px; padding-inline:0; }
html.nsstars-royal.royal-home .ns-hero :is(h1,h2,p) { margin:0; }
html.nsstars-royal.royal-home .ns-hero .royal-hero-description { margin-top:24px; }
/* Let the reference paper/mist sections, rather than an adapter fill, set the rhythm. */
html.royal-home[data-bs-theme=dark] .ri-content .production-learn { background:var(--card,var(--paper)); }
@media(max-width:960px) { html.royal-home .royal-hero-content.hero-inner { width:calc(100% - 64px); } }
@media(max-width:700px) { html.royal-home .royal-hero-content.hero-inner { width:calc(100% - 40px); } }
@media(max-width:370px) { html.royal-home .royal-hero-content.hero-inner { width:calc(100% - 32px); } }
/* The live carousel keeps navigation below the mobile CTA, outside its hit area. */
@media(max-width:700px) {
  html.nsstars-royal.royal-home .royal-hero :is(#pocetak,.ns-hero) .hero-inner { padding-bottom:88px; }
  html.nsstars-royal.royal-home .royal-hero .splide__arrow {
    width:44px; height:44px; bottom:12px; transform:none; left:calc(50% - 50px);
  }
  html.nsstars-royal.royal-home .royal-hero .splide__arrow--next { left:calc(50% + 6px); }
}
.nsstars-royal .royal-theme-toggle {
  display:grid; place-items:center; width:44px; height:44px; padding:10px; flex-shrink:0;
  color:var(--ink); background:var(--paper); border:1px solid var(--line); border-radius:50%;
  cursor:pointer; transition:background-color .15s,border-color .15s,color .15s;
}
.nsstars-royal .royal-theme-toggle:hover { color:var(--blue); background:var(--brand-soft); border-color:var(--brand-border); }
.nsstars-royal .royal-theme-toggle:focus-visible { outline:3px solid var(--ri-focus); outline-offset:3px; }
.nsstars-royal .royal-theme-icon { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.nsstars-royal .royal-theme-icon--sun { display:none; }
html.nsstars-royal[data-bs-theme=dark] .royal-theme-icon--moon { display:none; }
html.nsstars-royal[data-bs-theme=dark] .royal-theme-icon--sun { display:block; }
.nsstars-royal .royal-footer-mark { display:block; width:112px; height:112px; margin-bottom:20px; border-radius:50%; overflow:hidden; background:#000; }
.nsstars-royal .royal-footer-mark img { display:block; width:100%; height:100%; object-fit:cover; }
@media(prefers-reduced-motion:reduce) { .nsstars-royal .royal-theme-toggle { transition:none; } }
/* Homepage calendar and schedule: all selections stay visible without swiping. */
html.royal-home .ri-content .today-clock { padding:16px 20px; background:var(--brand-soft); border:1px solid var(--brand-border); border-left:3px solid var(--action-bg); border-radius:4px; text-align:left; }
html.royal-home .ri-content #today-weekday { margin:0 0 4px; color:var(--ink); font:750 clamp(23px,2.4vw,30px)/1.2 var(--display); letter-spacing:-.025em; text-transform:none; }
html.royal-home .ri-content #today-date { color:var(--brand-soft-ink); font-size:14px; line-height:1.6; }
html.royal-home .ri-content .today-clock-detail { margin-top:8px; color:var(--muted); font-size:12px; font-variant-numeric:tabular-nums; }
html.royal-home .ri-content .training-picker-strip { flex-wrap:wrap; overflow:visible; scroll-snap-type:none; padding:4px; gap:8px; }
html.royal-home .ri-content .training-group-chip { white-space:normal; max-width:100%; min-width:0; min-height:46px; text-align:center; }
html.royal-home .ri-content .training-picker-more-row,
html.royal-home .ri-content .training-picker-scroll::before,
html.royal-home .ri-content .training-picker-scroll::after { display:none; }
html.royal-home .ri-content .training-day { min-width:0; }
html.royal-home .ri-content .training-day small { color:var(--ink); font-size:13px; letter-spacing:0; }
html.royal-home .ri-content .training-time { font-variant-numeric:tabular-nums; letter-spacing:-.025em; }
/* Distinct learning story: new club photo, link rows and copy before photo. */
html.royal-home .ri-content .royal-learn-layout { display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(32px,6vw,88px); align-items:center; }
html.royal-home .ri-content .royal-learn-copy { min-width:0; }
html.royal-home .ri-content .royal-learn-copy .eyebrow { color:var(--blue); margin-bottom:18px; }
html.royal-home .ri-content .royal-learn-copy .section-title { max-width:17ch; font-size:clamp(30px,3.6vw,44px); }
html.royal-home .ri-content .royal-learn-copy .section-intro { margin-block:22px 28px; max-width:48ch; font-size:16px; }
html.royal-home .ri-content .royal-learn-links { display:grid; grid-template-columns:1fr 1fr; gap:0 28px; }
html.royal-home .ri-content .royal-learn-links a { display:flex; justify-content:space-between; align-items:center; gap:16px; min-height:58px; padding-block:14px; border-top:1px solid var(--brand-border); color:var(--ink); font-size:15px; font-weight:650; }
html.royal-home .ri-content .royal-learn-links a:hover { color:var(--blue); }
html.royal-home .ri-content .royal-learn-links a span { color:var(--blue); font-size:20px; }
html.royal-home .ri-content .royal-learn-photo { margin:0; min-width:0; }
html.royal-home .ri-content .royal-learn-photo img { width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; object-position:43% center; border-radius:4px; }
html.royal-home .ri-content .royal-learn-photo figcaption { padding-top:14px; color:var(--brand-soft-ink); font-size:13px; line-height:1.6; }
@media(max-width:700px) {
  html.royal-home .ri-content .today-clock { width:100%; padding:16px 18px; }
  html.royal-home .ri-content .training-picker-strip { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); overflow:visible; align-items:stretch; }
  html.royal-home .ri-content .training-group-chip { width:100%; padding:12px 10px; font-size:14px; }
  html.royal-home .ri-content #schedule-panel { display:grid; gap:12px; }
  html.royal-home .ri-content .training-row { grid-template-columns:minmax(0,1fr) auto; grid-template-areas:"day day" "group time"; align-items:start; gap:14px 16px; padding:18px; border:1px solid var(--line); border-radius:4px; background:var(--paper); }
  html.royal-home .ri-content .training-day { grid-area:day; font-size:0; padding-bottom:12px; border-bottom:1px solid var(--line); }
  html.royal-home .ri-content .training-day small { margin:0; color:var(--blue); font:700 18px/1.4 var(--body); }
  html.royal-home .ri-content .training-group { grid-area:group; min-width:0; }
  html.royal-home .ri-content .training-group strong { font-size:15px; line-height:1.5; }
  html.royal-home .ri-content .training-group span { margin-top:4px; font-size:12px; line-height:1.5; }
  html.royal-home .ri-content .training-time { grid-area:time; justify-self:end; align-self:start; font-size:21px; line-height:1.5; }
  html.royal-home .ri-content .royal-learn-layout { grid-template-columns:1fr; gap:32px; }
  html.royal-home .ri-content .royal-learn-links { grid-template-columns:1fr; }
  html.royal-home .ri-content .royal-learn-photo img { aspect-ratio:4/3; object-position:center 40%; }
}
@media(max-width:370px) {
  html.royal-home .ri-content .training-row { grid-template-columns:1fr; grid-template-areas:"day" "group" "time"; gap:12px; padding:16px; }
  html.royal-home .ri-content .training-group { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; }
  html.royal-home .ri-content .training-group span { margin:0; }
  html.royal-home .ri-content .training-time { justify-self:start; font-size:24px; }
}
