/* =========================================================================
   EVERYTHING BALLROOM — stylesheet
   Aesthetic: warm ivory paper, deep ballroom wine, antique gold.
   Priorities: elegance + effortless legibility for older eyes.
   ========================================================================= */

/* ----- Self-hosted fonts (no internet needed) ----- */
@font-face{font-family:"Fraunces";src:url("../fonts/fraunces-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Fraunces";src:url("../fonts/fraunces-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap;}
@font-face{font-family:"Fraunces";src:url("../fonts/fraunces-900.woff2") format("woff2");font-weight:900;font-style:normal;font-display:swap;}
@font-face{font-family:"Source Sans 3";src:url("../fonts/sourcesans-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Source Sans 3";src:url("../fonts/sourcesans-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap;}
@font-face{font-family:"Source Sans 3";src:url("../fonts/sourcesans-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap;}

/* ----- Design tokens ----- */
:root{
  --ivory:#FBF6EC;
  --cream:#F3E8D6;
  --paper:#FFFDF8;
  --ink:#2A211C;
  --ink-soft:#5c5049;
  --wine:#7c1f2c;
  --wine-deep:#5c1420;
  --gold:#9c7a34;          /* decorative only: borders, rules, bullets, icons */
  --gold-text:#6b5320;     /* text-safe gold — passes WCAG AA (>=4.5:1) on the light backgrounds */
  --gold-bright:#c39a4e;
  --line:#e4d6bf;
  --shadow:28px 28px 60px rgba(60,30,20,.10);

  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Source Sans 3",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;

  --text-scale:1;               /* changed by the "Text size" buttons */
  --maxw:1180px;
  --pad: clamp(1.1rem, 4vw, 2.75rem);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}

body{
  margin:0;
  background-color:var(--ivory);
  background-image:
    radial-gradient(1100px 620px at 88% -6%, #f7ead2 0%, rgba(247,234,210,0) 60%),
    radial-gradient(900px 560px at -8% 8%, #f3e4ea 0%, rgba(243,228,234,0) 55%);
  background-repeat:no-repeat;
  color:var(--ink);
  font-family:var(--sans);
  font-size:calc(1.25rem * var(--text-scale));  /* ~20px base, grows with toggle */
  line-height:1.72;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* ----- Type ----- */
h1,h2,h3,h4{font-family:var(--serif);font-weight:900;line-height:1.08;color:var(--wine-deep);margin:0 0 .5em;letter-spacing:-.01em;}
h2{font-size:calc(2.35rem * var(--text-scale));}
h3{font-size:calc(1.55rem * var(--text-scale));font-weight:600;color:var(--ink);}
h4{font-size:calc(1.18rem * var(--text-scale));font-weight:600;color:var(--wine);}
p{margin:0 0 1em;}
a{color:var(--wine);text-underline-offset:3px;text-decoration-thickness:1.5px;}
a:hover{color:var(--wine-deep);}
strong{font-weight:700;}
:focus-visible{outline:3px solid var(--gold-bright);outline-offset:3px;border-radius:4px;}

.eyebrow{font-family:var(--sans);font-weight:700;letter-spacing:.22em;text-transform:uppercase;
  font-size:calc(.8rem * var(--text-scale));color:var(--gold-text);margin:0 0 .6rem;}

/* Skip link for keyboard / screen-reader users */
.skip{position:absolute;left:-999px;top:0;background:var(--wine);color:#fff;padding:.8rem 1.2rem;border-radius:0 0 8px 0;z-index:200;font-weight:700;}
.skip:focus{left:0;color:#fff;}

/* ----- Layout helpers ----- */
.wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad);}
section{padding:clamp(3rem,7vw,5.5rem) 0;}
/* Offset anchor jumps so the sticky header never covers a section heading */
:where(section[id],#top,#main){scroll-margin-top:96px;}
.section-alt{background:linear-gradient(180deg,#f7ecda,#f3e8d6);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}

/* Art-deco flourish divider */
.flourish{display:flex;align-items:center;justify-content:center;gap:14px;color:var(--gold-text);margin:0 auto 2.4rem;max-width:340px;}
.flourish::before,.flourish::after{content:"";height:1px;flex:1;background:linear-gradient(90deg,transparent,var(--gold));}
.flourish::after{background:linear-gradient(90deg,var(--gold),transparent);}
.flourish span{font-size:1.4rem;line-height:1;transform:translateY(-1px);}

/* =========================================================================
   HEADER / NAV
   ========================================================================= */
.site-header{position:sticky;top:0;z-index:100;background:rgba(251,246,236,.92);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
.nav{display:flex;align-items:center;gap:1rem;min-height:76px;}
.brandmark{display:flex;flex-direction:column;line-height:1;text-decoration:none;margin-right:auto;}
.brandmark .b1{font-family:var(--serif);font-weight:900;font-size:calc(1.5rem * var(--text-scale));color:var(--wine-deep);letter-spacing:.01em;}
.brandmark .b2{font-family:var(--sans);font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  font-size:calc(.62rem * var(--text-scale));color:var(--gold-text);margin-top:.25rem;}

.nav-links{display:flex;gap:.25rem;align-items:center;}
.nav-links a{font-family:var(--sans);font-weight:600;color:var(--ink);text-decoration:none;
  padding:.55rem .8rem;border-radius:999px;font-size:calc(1.02rem * var(--text-scale));white-space:nowrap;}
.nav-links a:hover,.nav-links a:focus-visible{background:var(--wine);color:#fff;}

/* Text-size control */
.textsize{display:flex;align-items:center;gap:.45rem;margin-left:.4rem;padding-left:.7rem;border-left:1px solid var(--line);}
.textsize .lbl{font-size:calc(.72rem * var(--text-scale));font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);}
.textsize button,.textsize-mobile button{font-family:var(--serif);font-weight:600;background:var(--paper);border:1.5px solid var(--line);
  color:var(--wine);border-radius:10px;cursor:pointer;line-height:1;min-width:44px;min-height:44px;
  display:inline-flex;align-items:center;justify-content:center;padding:.25rem .5rem;}
.textsize button:hover,.textsize-mobile button:hover{border-color:var(--gold);}
.textsize button[aria-pressed="true"],.textsize-mobile button[aria-pressed="true"]{background:var(--wine);color:#fff;border-color:var(--wine);}
.textsize .t1,.textsize-mobile .t1{font-size:.92rem;} .textsize .t2,.textsize-mobile .t2{font-size:1.12rem;} .textsize .t3,.textsize-mobile .t3{font-size:1.4rem;}

/* Mobile menu button */
.menu-toggle{display:none;background:var(--wine);color:#fff;border:none;border-radius:10px;
  padding:.6rem .9rem;font-family:var(--sans);font-weight:700;font-size:1rem;cursor:pointer;align-items:center;gap:.5rem;}
.menu-toggle svg{width:22px;height:22px;}

/* =========================================================================
   HERO
   ========================================================================= */
.hero{position:relative;overflow:hidden;padding:clamp(2.5rem,6vw,5rem) 0 clamp(3rem,7vw,5.5rem);}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4rem);align-items:center;}
.hero-copy .kicker{font-family:var(--sans);font-weight:700;letter-spacing:.22em;text-transform:uppercase;
  font-size:calc(.82rem * var(--text-scale));color:var(--gold-text);margin-bottom:1rem;}
.hero-title{font-size:clamp(2.7rem,6vw,4.6rem);line-height:.98;margin-bottom:.35em;}
.hero-title em{font-style:italic;font-weight:400;color:var(--wine);}
.hero-sub{font-size:calc(1.3rem * var(--text-scale));color:var(--ink-soft);max-width:34ch;margin-bottom:1.7rem;}
.hero-heritage{font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;font-weight:600;
  font-size:calc(.78rem * var(--text-scale));color:var(--gold-text);margin-bottom:1.9rem;}

.hero-photo{position:relative;}
.hero-photo img{width:100%;height:100%;max-height:520px;}
.hero-photo::after{content:"";position:absolute;inset:14px;border:1px solid rgba(255,255,255,.5);border-radius:4px;pointer-events:none;}
.hero-photo figcaption{font-family:var(--serif);font-style:italic;color:var(--ink-soft);
  font-size:calc(.95rem * var(--text-scale));text-align:center;margin-top:.9rem;}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--sans);font-weight:700;
  font-size:calc(1.1rem * var(--text-scale));text-decoration:none;cursor:pointer;
  padding:.85rem 1.6rem;border-radius:999px;border:2px solid transparent;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--wine);color:#fff;box-shadow:0 10px 24px rgba(124,31,44,.28);}
.btn-primary:hover{background:var(--wine-deep);color:#fff;}
.btn-ghost{background:transparent;color:var(--wine);border-color:var(--wine);}
.btn-ghost:hover{background:var(--wine);color:#fff;}
.btn-row{display:flex;flex-wrap:wrap;gap:.9rem;}

/* =========================================================================
   THIS MONTH card
   ========================================================================= */
.thismonth{position:relative;}
.tm-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;
  box-shadow:var(--shadow);padding:clamp(1.6rem,4vw,3rem);position:relative;overflow:hidden;max-width:900px;margin:0 auto;}
.tm-card::before{content:"";position:absolute;top:0;left:0;right:0;height:6px;
  background:linear-gradient(90deg,var(--wine),var(--gold-bright),var(--wine));}
.tm-date{display:inline-block;font-family:var(--sans);font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  font-size:calc(.82rem * var(--text-scale));color:#fff;background:var(--wine);padding:.35rem .9rem;border-radius:999px;margin-bottom:1.2rem;}
.tm-greeting{font-family:var(--serif);font-style:italic;font-size:calc(1.55rem * var(--text-scale));color:var(--wine-deep);margin-bottom:.7rem;}
.tm-body p{font-size:calc(1.18rem * var(--text-scale));}
.tm-signoff{font-family:var(--serif);font-style:italic;font-size:calc(1.3rem * var(--text-scale));color:var(--wine);margin-top:1rem;}

/* =========================================================================
   CLASSES
   ========================================================================= */
.season-tag{display:inline-block;font-family:var(--sans);font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  font-size:calc(.82rem * var(--text-scale));color:var(--gold-text);border:1.5px solid var(--gold);border-radius:999px;padding:.3rem .95rem;margin-bottom:1rem;}
.class-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.4rem;margin-top:2rem;}
.class-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:1.5rem 1.6rem;box-shadow:0 12px 30px rgba(60,30,20,.06);}
.class-card .day{font-family:var(--serif);font-weight:900;font-size:calc(1.6rem * var(--text-scale));color:var(--wine-deep);margin-bottom:.15rem;}
.class-card .start{font-weight:700;color:var(--gold-text);margin-bottom:.6rem;}
.class-card .place{color:var(--ink-soft);margin-bottom:.9rem;}
.class-card ul{list-style:none;margin:0 0 1rem;padding:0;}
.class-card ul li{padding:.5rem 0 .5rem 1.7rem;border-bottom:1px dashed var(--line);position:relative;font-size:calc(1.02rem * var(--text-scale));}
.class-card ul li:last-child{border-bottom:none;}
.class-card ul li::before{content:"♪";position:absolute;left:0;color:var(--gold-text);font-size:1.1em;}
.class-meta{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem;align-items:baseline;margin-bottom:.5rem;}
.class-meta .price{font-family:var(--serif);font-weight:900;font-size:calc(1.3rem * var(--text-scale));color:var(--wine);}
.class-card .note{color:var(--wine);font-weight:600;font-size:calc(.98rem * var(--text-scale));}
.class-card .contact{font-size:calc(1rem * var(--text-scale));color:var(--ink-soft);margin-top:.4rem;}

.class-guide{margin-top:2.6rem;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:clamp(1.4rem,3vw,2.2rem);}
.class-guide h3{margin-bottom:1rem;}
.guide-item{padding:.9rem 0;border-bottom:1px solid var(--line);}
.guide-item:last-child{border-bottom:none;}
.guide-item .lvl{font-family:var(--serif);font-weight:600;color:var(--wine-deep);font-size:calc(1.12rem * var(--text-scale));}

/* =========================================================================
   EVENTS
   ========================================================================= */
.events-list{display:grid;gap:1.4rem;margin-top:2rem;max-width:940px;margin-left:auto;margin-right:auto;}
.event{display:grid;grid-template-columns:120px 1fr;gap:1.6rem;background:var(--paper);
  border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 12px 30px rgba(60,30,20,.06);}
.event .cal{background:linear-gradient(160deg,var(--wine),var(--wine-deep));color:#fff;display:flex;
  flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:1.2rem .6rem;}
.event .cal .ico{font-size:2rem;line-height:1;}
.event .cal .lbl{font-family:var(--sans);font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:.66rem;margin-top:.5rem;opacity:.9;}
.event .body{padding:1.4rem 1.6rem 1.5rem 0;}
.event h3{margin-bottom:.25rem;color:var(--wine-deep);}
.event .when{font-family:var(--serif);font-weight:600;font-style:italic;color:var(--wine);font-size:calc(1.16rem * var(--text-scale));margin-bottom:.7rem;}
.event dl{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;margin:0 0 .8rem;}
.event dt{font-weight:700;color:var(--gold-text);font-size:calc(.82rem * var(--text-scale));letter-spacing:.08em;text-transform:uppercase;padding-top:.15rem;}
.event dd{margin:0;}
.event .details p{font-size:calc(1.03rem * var(--text-scale));color:var(--ink-soft);margin-bottom:.6rem;}

/* =========================================================================
   Two-column feature (Dance Club / About)
   ========================================================================= */
.feature{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,3.5rem);align-items:center;}
.feature.rev .feature-media{order:2;}
.feature-media img{width:100%;border-radius:8px;box-shadow:var(--shadow);border:1px solid #efe2c9;}
.feature-media figcaption{font-family:var(--serif);font-style:italic;color:var(--ink-soft);text-align:center;margin-top:.8rem;font-size:calc(.95rem * var(--text-scale));}
.card-soft{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:clamp(1.4rem,3vw,2rem);box-shadow:0 12px 30px rgba(60,30,20,.05);}
.tick{list-style:none;margin:1rem 0;padding:0;}
.tick li{padding:.45rem 0 .45rem 2rem;position:relative;font-size:calc(1.08rem * var(--text-scale));}
.tick li::before{content:"❦";position:absolute;left:0;color:var(--gold-text);}

.callout{background:var(--wine);color:#fff;border-radius:12px;padding:1.3rem 1.6rem;margin-top:1.4rem;}
.callout strong{color:var(--gold-bright);}
.callout a{color:#fff;}

/* =========================================================================
   About / tribute / quotes
   ========================================================================= */
.people{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:2rem;}
.person{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:1.6rem;text-align:center;}
.person img{width:120px;height:120px;object-fit:cover;border-radius:50%;border:3px solid var(--gold);margin-bottom:1rem;box-shadow:0 8px 20px rgba(60,30,20,.15);}
.person h3{color:var(--wine-deep);margin-bottom:.2rem;}
.person .role{font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:calc(.72rem * var(--text-scale));color:var(--gold-text);margin-bottom:.8rem;}
.person.memoriam img{filter:sepia(.25);}
.person .angel{font-style:italic;color:var(--wine);font-family:var(--serif);margin-top:.6rem;font-size:calc(.98rem * var(--text-scale));}

.quotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.2rem;margin-top:2rem;}
blockquote.quote{margin:0;background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--gold);
  border-radius:0 10px 10px 0;padding:1.3rem 1.5rem;font-family:var(--serif);font-style:italic;font-size:calc(1.1rem * var(--text-scale));color:var(--ink);}
blockquote.quote cite{display:block;font-style:normal;font-family:var(--sans);font-weight:700;font-size:calc(.85rem * var(--text-scale));color:var(--gold-text);margin-top:.8rem;}

/* =========================================================================
   Photo gallery
   ========================================================================= */
.gallery{columns:3 260px;column-gap:1.1rem;margin-top:2rem;}
.gallery figure{margin:0 0 1.1rem;break-inside:avoid;background:var(--paper);padding:.6rem;border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 24px rgba(60,30,20,.07);}
.gallery img{width:100%;display:block;border-radius:4px;}
.gallery figcaption{font-family:var(--serif);font-style:italic;color:var(--ink-soft);font-size:calc(.9rem * var(--text-scale));padding:.6rem .3rem .2rem;text-align:center;}

/* =========================================================================
   Info strips (dances offered, lectures, trips, videos)
   ========================================================================= */
.chips{display:flex;flex-wrap:wrap;gap:.6rem;margin:1.2rem 0;}
.chip{background:var(--paper);border:1.5px solid var(--line);border-radius:999px;padding:.45rem 1.1rem;
  font-weight:600;font-size:calc(1rem * var(--text-scale));color:var(--wine-deep);}
.mini-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.3rem;margin-top:1.6rem;}
.mini{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:1.5rem;box-shadow:0 10px 24px rgba(60,30,20,.05);}
.mini .ico{font-size:1.8rem;color:var(--gold-text);}
.mini h3{margin:.5rem 0 .4rem;font-size:calc(1.3rem * var(--text-scale));}

/* =========================================================================
   Contact / footer
   ========================================================================= */
.contact-block{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,3.5rem);align-items:center;}
.contact-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:clamp(1.6rem,4vw,2.4rem);box-shadow:var(--shadow);}
.contact-row{display:flex;align-items:center;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line);}
.contact-row:last-child{border-bottom:none;}
.contact-row .ico{width:48px;height:48px;flex:none;display:grid;place-items:center;background:var(--wine);color:#fff;border-radius:50%;font-size:1.3rem;}
.contact-row .k{font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:calc(.72rem * var(--text-scale));color:var(--gold-text);}
.contact-row .v{font-size:calc(1.2rem * var(--text-scale));}
.contact-row a{text-decoration:none;font-weight:600;}

.site-footer{background:var(--wine-deep);color:#f4e7d6;padding:3rem 0 2.2rem;}
.site-footer .wrap{display:flex;flex-wrap:wrap;gap:2rem;justify-content:space-between;align-items:flex-start;}
.site-footer .fbrand{font-family:var(--serif);font-weight:900;font-size:calc(1.7rem * var(--text-scale));color:#fff;}
.site-footer .fbrand span{color:var(--gold-bright);}
.site-footer a{color:#f4e7d6;}
.site-footer .fine{width:100%;border-top:1px solid rgba(255,255,255,.16);margin-top:1.4rem;padding-top:1.4rem;
  font-size:calc(.9rem * var(--text-scale));color:#d8c3a8;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;}
.site-footer .fine a.editlink{color:#d8c3a8;text-decoration:underline;}

/* =========================================================================
   Reveal-on-scroll animation
   ========================================================================= */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease;}
.reveal.in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none;}}

/* =========================================================================
   Overflow safety — let grid/flex items shrink below their content's
   intrinsic width so a long email/URL can never push the page sideways.
   ========================================================================= */
.hero-grid>*,.feature>*,.contact-block>*,.class-grid>*,.events-list>*,
.people>*,.quotes>*,.mini-grid>*,.field-2>*{min-width:0;}
.contact-row,.contact-row span{min-width:0;}
.contact-row .v,.contact-row a,.event dd,.tm-body,.class-card .contact{overflow-wrap:anywhere;}

/* =========================================================================
   RESPONSIVE
   ========================================================================= */
@media (max-width:920px){
  .hero-grid{grid-template-columns:1fr;}
  .hero-photo{order:-1;max-width:460px;margin:0 auto;}
  .class-grid{grid-template-columns:1fr;}
  .feature,.contact-block{grid-template-columns:1fr;}
  .feature.rev .feature-media{order:0;}
  .people{grid-template-columns:1fr;max-width:420px;margin-inline:auto;}
  .gallery{columns:2 200px;}
}
@media (max-width:760px){
  .nav-links,.textsize{display:none;}
  .menu-toggle{display:inline-flex;}
  .nav-links.open{display:flex;position:absolute;top:76px;left:0;right:0;flex-direction:column;
    background:var(--ivory);border-bottom:1px solid var(--line);padding:.8rem var(--pad) 1.4rem;gap:.2rem;box-shadow:0 20px 30px rgba(60,30,20,.12);}
  .nav-links.open a{padding:.9rem 1rem;font-size:calc(1.15rem * var(--text-scale));border-bottom:1px solid var(--line);border-radius:0;}
  .nav-links.open .textsize-mobile{display:flex;}
  .event{grid-template-columns:88px 1fr;gap:1rem;}
  .event .body{padding:1.1rem 1.2rem 1.2rem 0;}
  .event dl{grid-template-columns:1fr;gap:.15rem;}
  .event dt{margin-top:.5rem;}
  .gallery{columns:1;}
}
@media (max-width:420px){
  .event{grid-template-columns:1fr;}
  .event .cal{flex-direction:row;gap:.6rem;padding:.7rem;}
  .event .body{padding:1.1rem 1.2rem 1.3rem;}   /* restore left padding once the card stacks */
}

/* In-page mobile text size control (shown inside open menu) */
.textsize-mobile{display:none;gap:.5rem;align-items:center;padding:1rem 1rem 0;}

/* =========================================================================
   PRINT (so students can print the schedule / newsletter)
   ========================================================================= */
@media print{
  .site-header,.menu-toggle,.hero-photo,.btn-row,.site-footer .fine,.gallery{display:none !important;}
  body{background:#fff;font-size:12pt;color:#000;}
  section{padding:1rem 0;}
  .tm-card,.class-card,.event,.card-soft{box-shadow:none;border:1px solid #999;break-inside:avoid;}
}
