/* ============================================================
   Sunshine School for Dogs - stylesheet, Option A "Refined Sunshine"
   Same look as today (yellow, ink, green), polished and fixed.
   Colors and shapes are variables in :root, so they are easy to change.
   ============================================================ */
:root{
  --sun:#ffc21a; --sun-deep:#e8a000; --sun-soft:#fff6d6;
  --ink:#1b2b34; --grass:#1f7a4d; --sky:#e8f3f8; --white:#fff; --line:#d5e2e9;
  --muted:#4d5f6a; --field:#8fa5b2; --danger:#a4262c;

  --link:var(--grass); --link-hover:#14573a;
  --header-bg:var(--sun); --header-ink:var(--ink); --header-line:var(--ink);
  --header-hover-bg:var(--ink); --header-hover-ink:var(--sun);
  --logo-ring:var(--ink); --logo-core:var(--white);

  --hero-bg:var(--sun); --hero-ink:var(--ink); --hero-line:var(--ink);
  --hero-ring-1:var(--ink); --hero-ring-2:var(--white); --hero-cap:var(--ink);

  --btn-bg:var(--ink); --btn-ink:var(--sun); --btn-line:var(--ink);
  --btn2-bg:var(--white); --btn2-ink:var(--ink); --btn2-line:var(--ink);

  --footer-bg:var(--ink); --footer-ink:#e9f1f5; --footer-link:var(--sun);
  --th-bg:var(--ink); --th-ink:var(--sun);
  --card-accent:var(--sun);

  --body:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --head:"Trebuchet MS","Segoe UI",Verdana,sans-serif;
  --radius:10px;
  --shadow:0 2px 10px rgba(27,43,52,.18);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:17px/1.65 var(--body);color:var(--ink);background:var(--white)}
img{max-width:100%;height:auto}
a{color:var(--link)}
a:hover{color:var(--link-hover)}
h1,h2,h3{font-family:var(--head);line-height:1.2;margin:0 0 .6rem}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:.6rem 1rem;z-index:100}
.skip:focus{left:0}

/* ---------- Header and menu ---------- */
.site-header{background:var(--header-bg);color:var(--header-ink);border-bottom:4px solid var(--header-line);position:relative;z-index:50}
.bar{max-width:1100px;margin:0 auto;padding:.7rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.wordmark{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--header-ink);font:bold 1.15rem/1.15 var(--head)}
.wordmark:hover{color:var(--header-ink)}
.sun{width:38px;height:38px;border-radius:50%;background:var(--logo-core);border:7px solid var(--logo-ring);flex:none}

/* Logo in the header (replaces the old CSS sun + text wordmark) */
.brand{display:flex;align-items:center;gap:.8rem;flex:none;text-decoration:none;color:var(--header-ink);font:bold 1.2rem/1.15 var(--head);border-radius:12px}
.brand:hover{color:var(--header-ink)}
.brand img{display:block;height:76px;width:auto}
.brand:focus-visible{outline:3px solid var(--ink);outline-offset:3px}

.nav-toggle{display:none;font:bold 1rem var(--body);background:var(--header-hover-bg);color:var(--header-hover-ink);border:0;border-radius:8px;padding:.55rem 1rem;cursor:pointer}

.site-nav .top,.site-nav .sub{list-style:none;margin:0;padding:0}
.site-nav .top{display:flex;gap:.2rem}
.has-sub{position:relative}
.top-btn,.site-nav .top-link{font:bold 1rem var(--body);color:var(--header-ink);background:transparent;border:0;padding:.65rem .9rem;border-radius:8px;cursor:pointer;text-decoration:none}
.site-nav .top-link{display:block}
.top-btn::after{content:"";display:inline-block;margin-left:.45rem;width:.45em;height:.45em;border:solid currentColor;border-width:0 2px 2px 0;transform:translateY(-.15em) rotate(45deg)}
.top-btn:hover,.top-btn[aria-expanded="true"],.site-nav .top-link:hover,.site-nav .top-link[aria-current="page"]{background:var(--header-hover-bg);color:var(--header-hover-ink)}

.sub{display:none;position:absolute;left:0;top:100%;min-width:15rem;background:var(--white);border:2px solid var(--ink);border-radius:0 0 var(--radius) var(--radius);box-shadow:0 10px 24px rgba(27,43,52,.28);padding:.4rem 0}
.sub a{display:block;padding:.5rem 1rem;color:var(--ink);text-decoration:none}
.sub a:hover,.sub a:focus-visible{background:var(--sky);color:var(--ink)}
.sub a[aria-current="page"]{font-weight:bold;box-shadow:inset 4px 0 0 var(--sun-deep)}
.group-label{padding:.6rem 1rem .2rem;margin-top:.3rem;border-top:1px solid var(--line);font:bold .9rem var(--head);color:var(--grass)}
.sub > .group-label:first-child{border-top:0;margin-top:0}
.group-label ~ li a{padding-left:1.6rem}

/* Mouse users: hover or keyboard focus opens a menu */
@media (hover:hover) and (min-width:861px){
  .has-sub:hover > .sub,.has-sub:focus-within > .sub{display:block}
  .has-sub:hover > .top-btn{background:var(--header-hover-bg);color:var(--header-hover-ink)}
}
/* Touch users and small screens: tap toggles aria-expanded */
.top-btn[aria-expanded="true"] + .sub{display:block}

@media (max-width:860px){
  .nav-toggle{display:block}
  .brand{font-size:1rem;gap:.6rem}
  .brand img{height:56px}
  .site-nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--header-bg);border-top:2px solid var(--header-line);padding:.4rem 1.25rem 1rem;box-shadow:0 10px 18px rgba(27,43,52,.28)}
  .site-nav.open{display:block}
  .site-nav .top{flex-direction:column;gap:0}
  .top-btn,.site-nav .top-link{width:100%;text-align:left;padding:.85rem .5rem}
  .sub{position:static;box-shadow:none;border:0;border-left:4px solid var(--header-line);border-radius:0;margin:0 0 .4rem .5rem}
}

/* ---------- Page layout ---------- */
.wrap{max-width:1100px;margin:0 auto;padding:0 1.25rem}
/* The page area lines up with the logo; text keeps a comfortable reading width. */
.page{max-width:1100px;margin:0 auto;padding:2.5rem 1.25rem 3rem}
.page > *{max-width:48rem}
.page > .class-intro,.page > .schedule,.page > .testimonial{max-width:58rem}
.page h1{font-size:2.1rem}
.page h2{margin-top:1.8rem}

/* ---------- Home page ---------- */
.hero{background:var(--hero-bg);color:var(--hero-ink);padding:2.75rem 0 3.5rem;border-bottom:6px solid var(--hero-line)}
.hero .wrap{display:grid;grid-template-columns:1fr minmax(220px,320px);gap:3rem;align-items:center}
.hero h1{font-size:clamp(2rem,5vw,3.4rem);max-width:15ch}
.hero p{font-size:1.2rem;max-width:34rem}
.hero-photo{margin:0;text-align:center}
.hero-photo img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:50%;background:var(--sky);box-shadow:0 0 0 8px var(--hero-ring-1),0 0 0 16px var(--hero-ring-2)}
.hero-photo figcaption{margin-top:2.2rem;font-weight:bold;font-size:.95rem;color:var(--hero-cap)}

.buttons{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.5rem}
.btn{display:inline-block;padding:.8rem 1.4rem;border-radius:999px;font:bold 1rem var(--body);text-decoration:none;border:3px solid var(--btn-line);transition:transform .12s ease,box-shadow .12s ease}
.btn-dark{background:var(--btn-bg);color:var(--btn-ink)}
.btn-dark:hover{color:var(--btn-ink)}
.btn-light{background:var(--btn2-bg);color:var(--btn2-ink);border-color:var(--btn2-line)}
.btn-light:hover{color:var(--btn2-ink)}
.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}
.btn:hover{transform:translateY(-1px);box-shadow:0 3px 8px rgba(27,43,52,.25)}

.learn{padding:3rem 0}
.learn .wrap{display:grid;grid-template-columns:1fr 1fr;gap:3rem}
.learn ul{margin:0;padding:0;list-style:none}
.learn li{position:relative;padding:.9rem 0 .9rem 1.6rem;border-bottom:1px solid var(--line);font-size:1.1rem}
.learn li::before{content:"";position:absolute;left:.2rem;top:1.45rem;width:.6rem;height:.6rem;border-radius:50%;background:var(--card-accent)}
.learn li:first-child{border-top:1px solid var(--line)}

.quick{background:var(--sky);padding:2.75rem 0 3rem}
.quick ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:.75rem}
.quick li a{display:block;padding:.8rem 1rem;background:var(--white);border:2px solid var(--line);border-radius:var(--radius);text-decoration:none;font-weight:bold;color:var(--ink)}
.quick li a:hover{border-color:var(--ink);background:var(--sun-soft);color:var(--ink)}

@media (max-width:860px){
  .hero .wrap,.learn .wrap{grid-template-columns:1fr}
  .hero-photo{max-width:260px;margin:0 auto}
}

/* ---------- Footer ---------- */
.site-footer{background:var(--footer-bg);color:var(--footer-ink);padding:1.8rem 0}
.site-footer p{margin:.2rem 0}
.site-footer a{color:var(--footer-link)}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.footer-logo{display:block;height:88px;width:auto;flex:none}
@media (max-width:600px){
  .footer-inner{flex-direction:column;align-items:flex-start}
  .footer-logo{height:72px}
}

/* ---------- Contact page location cards ---------- */
.loc-card,.staff-card{background:var(--white);border:2px solid var(--line);border-left:8px solid var(--card-accent);border-radius:0 var(--radius) var(--radius) 0}
.loc-card{margin:0 0 1.5rem;padding:1.1rem 1.4rem}
.loc-card h2{font-size:1.3rem;margin-top:0}
.loc-card dl{margin:0;display:grid;grid-template-columns:9rem 1fr;gap:.5rem 1rem}
.loc-card dt{font-weight:bold}
.loc-card dd{margin:0}
@media (max-width:560px){.loc-card dl{grid-template-columns:1fr;gap:0}.loc-card dt{margin-top:.6rem}}

/* ---------- Link list pages (health, board, breeding, clubs, rescue, shows) ---------- */
.link-group{margin:0 0 1.5rem}
.link-group h2{font-size:1.25rem;margin-top:0;padding-bottom:.3rem;border-bottom:3px solid var(--card-accent);display:inline-block}
.link-group ul{margin:.6rem 0 0;padding-left:1.2rem}
.link-group li{padding:.15rem 0}
.disclaimer{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--line);font-size:.95rem;color:var(--muted)}

/* ---------- House training ---------- */
.booklet{display:grid;grid-template-columns:minmax(150px,200px) 1fr;gap:1.5rem;align-items:start;margin-top:2rem;padding:1.25rem;background:var(--sky);border-radius:var(--radius)}
.booklet img{border:4px solid var(--white);box-shadow:var(--shadow)}
.booklet address{font-style:normal;margin:0 0 1rem;font-weight:bold}
@media (max-width:560px){.booklet{grid-template-columns:1fr}.booklet img{max-width:200px}}

/* ---------- Class pages ---------- */
.class-intro{display:grid;grid-template-columns:minmax(200px,300px) 1fr;gap:2rem;align-items:start;margin-bottom:2rem}
.class-intro:not(:has(figure)){grid-template-columns:1fr}
.class-intro figure,.testimonial figure{margin:0}
.class-intro img,.testimonial img{display:block;width:100%;border:5px solid var(--white);box-shadow:var(--shadow);border-radius:6px}
figcaption{margin-top:.4rem;font-size:.85rem;color:var(--muted)}
@media (max-width:700px){.class-intro{grid-template-columns:1fr}.class-intro figure{max-width:320px}}

.schedule{width:100%;border-collapse:collapse;margin-top:.5rem}
.schedule th{text-align:left;font-family:var(--head);padding:.65rem .8rem;background:var(--th-bg);color:var(--th-ink)}
.schedule th:first-child{border-radius:var(--radius) 0 0 0}
.schedule th:last-child{border-radius:0 var(--radius) 0 0}
.schedule td{padding:.8rem;vertical-align:top;border-bottom:1px solid var(--line)}
.schedule tr.note td{padding-top:0;font-style:italic}
.no-classes{margin-top:1rem;padding:1rem 1.25rem;background:var(--sky);border-left:8px solid var(--card-accent);border-radius:0 var(--radius) var(--radius) 0}
@media (max-width:640px){
  .schedule thead{position:absolute;left:-999px}
  .schedule,.schedule tbody,.schedule tr,.schedule td{display:block;width:100%}
  .schedule tr{margin-bottom:.8rem;border:2px solid var(--line);border-radius:var(--radius);padding:.4rem 0}
  .schedule td{border:0;padding:.3rem .9rem}
  .schedule td[data-label]::before{content:attr(data-label) ": ";font-weight:bold}
  .schedule tr.note{border:0;margin-top:-.8rem}
}

/* ---------- Graduate testimonials ---------- */
.lead{font-size:1.2rem;font-style:italic;margin-bottom:2rem}
.testimonial{display:grid;grid-template-columns:minmax(170px,260px) 1fr;gap:2rem;align-items:center;padding:1.5rem 0;border-top:1px solid var(--line)}
.testimonial.flip{grid-template-columns:1fr minmax(170px,260px)}
.testimonial.flip figure{order:2}
.testimonial blockquote{margin:0;font-size:1.1rem}
.testimonial footer{margin-top:.8rem;font-weight:bold}
.testimonial footer::before{content:"\2014\00a0"}
@media (max-width:700px){.testimonial,.testimonial.flip{grid-template-columns:1fr}.testimonial.flip figure{order:0}.testimonial figure{max-width:300px}}

/* ---------- Registration / history forms ---------- */
.form-page .step{margin:-.3rem 0 1.5rem;color:var(--muted)}
.form-table,.form-table table{width:100%;border-collapse:collapse}
.form-table > tbody > tr > td{padding:.7rem 0}
.checks{margin-top:.6rem}
.checks td{padding:.25rem .5rem .25rem 0;vertical-align:top}
.checks td:first-child{width:2rem;text-align:right}
.form-page input[type=text],.form-page input[type=password],.form-page textarea,.form-page select{width:100%;max-width:34rem;padding:.55rem .7rem;font:inherit;color:var(--ink);border:2px solid var(--field);border-radius:8px;background:var(--white)}
.form-page input:focus,.form-page textarea:focus,.form-page select:focus{border-color:var(--ink);outline:3px solid var(--sun)}
.form-page input[type=checkbox],.form-page input[type=radio]{width:1.2rem;height:1.2rem;accent-color:var(--grass)}
.form-page button.btn{cursor:pointer;margin-top:.5rem}

.notice{padding:.8rem 1.1rem;background:var(--sun-soft);border-left:6px solid var(--sun-deep);border-radius:0 8px 8px 0}
.fields{display:grid;gap:1rem;margin:1.2rem 0;max-width:36rem}
.field{display:grid;gap:.3rem}
.field > label,.field .lbl{font-weight:bold}
.date-field .dates{display:flex;gap:.5rem;flex-wrap:wrap}
.date-field select{width:auto;min-width:5.5rem}
.date-field small{color:var(--muted)}
.choices{border:2px solid var(--line);border-radius:var(--radius);padding:.6rem 1.1rem .8rem;margin:1.2rem 0;max-width:36rem}
.choices legend{font-weight:bold;padding:0 .4rem}
label.choice{display:flex;align-items:center;gap:.5rem;padding:.3rem 0;font-weight:normal}
.inline-choices{display:flex;gap:1.5rem;flex-wrap:wrap}
.btn-row{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.5rem}
.page address{font-style:normal;margin:.5rem 0 1rem;padding-left:1rem;border-left:4px solid var(--card-accent)}
.sponsor a{display:inline-flex;align-items:center;gap:.9rem;text-decoration:none;font-weight:bold}
.sponsor img{height:60px;width:auto}

/* ---------- Staff area ---------- */
.staff-page{max-width:1100px;margin:0 auto;padding:1.5rem 1.25rem 3rem}
.staff-page h1{font-size:1.7rem}
.table-scroll{overflow-x:auto}
.staff-table{border-collapse:collapse;width:100%}
.staff-table td,.staff-table th{padding:.45rem .6rem;vertical-align:top;text-align:left}
.staff-table td[align="right"]{text-align:right;white-space:nowrap;font-weight:bold;width:14rem}
.staff-table td[align="center"],.staff-table th[align="center"]{text-align:center}
.staff-table input[type=text],.staff-table input[type=password],.staff-table select,.staff-table textarea{max-width:100%;padding:.4rem .55rem;font:inherit;color:var(--ink);border:2px solid var(--field);border-radius:8px;background:var(--white)}
.staff-table textarea{width:100%;max-width:48rem}
.staff-table input:focus,.staff-table select:focus,.staff-table textarea:focus{border-color:var(--ink);outline:3px solid var(--sun)}
.staff-table input[type=checkbox]{width:1.15rem;height:1.15rem;accent-color:var(--grass)}
.staff-table hr{border:0;border-top:1px solid var(--line);margin:0}
.staff-table .btn{margin:.2rem .5rem .2rem 0;cursor:pointer}
.staff-table small{color:var(--muted)}
/* data tables (rosters, lists) get a header and light row banding */
.staff-table:has(th) th{background:var(--th-bg);color:var(--th-ink);font-family:var(--head)}
.staff-table:has(th) tr:nth-child(even) td{background:var(--sky)}
.staff-table:has(th) td{border-bottom:1px solid var(--line)}
.clsVertBT{display:inline-block;writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap}
.staff-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem;margin-top:1.5rem}
.staff-card{padding:1rem 1.25rem}
.staff-card h2{font-size:1.15rem;margin:0 0 .4rem}
.staff-card ul{margin:0;padding-left:1.1rem}

@media print{
  .site-header,.site-footer,.skip,.noprint{display:none!important}
  body{font-size:11pt;color:#000}
  .staff-page{padding:0;max-width:none}
  .table-scroll{overflow:visible}
}
@media (prefers-reduced-motion:reduce){.btn,.btn:hover{transition:none;transform:none}}

/* ============================================================
   OPTION "SOFT"  -  warm sunshine canvas, floating rounded cards,
   pill menu, gradient hero. Friendly and app-like.
   (Everything above is the shared base; only this layer changes the look.)
   ============================================================ */
:root{
  --sun:#ffd23a; --sun-deep:#f0b400; --sun-soft:#fff2b8;
  --ink:#2e2600; --grass:#8a5600; --link:#8a5600; --link-hover:#5e3a00;
  --sky:#fff6cf; --line:#f0e3a6; --muted:#6b5c2a; --field:#a58a1f;

  --header-bg:#ffffff; --header-ink:var(--ink); --header-line:transparent;
  --header-hover-bg:var(--sun); --header-hover-ink:var(--ink);
  --logo-ring:var(--sun-deep); --logo-core:var(--sun);

  --hero-bg:radial-gradient(circle at 88% 14%,#fff8d6 0,#fff8d6 15%,transparent 15.3%),radial-gradient(circle at 6% 112%,#ffe688 0,#ffe688 28%,transparent 28.3%),linear-gradient(135deg,#ffd84a,#ffc20a);
  --hero-ink:var(--ink); --hero-line:transparent;
  --hero-ring-1:#ffffff; --hero-ring-2:rgba(255,255,255,.55); --hero-cap:var(--ink);

  --btn-bg:var(--sun); --btn-ink:var(--ink); --btn-line:var(--sun-deep);
  --btn2-bg:#ffffff; --btn2-ink:var(--ink); --btn2-line:var(--sun-deep);

  --footer-bg:#ffffff; --footer-ink:var(--ink); --footer-link:#8a5600;
  --th-bg:var(--sun); --th-ink:var(--ink); --card-accent:var(--sun);

  --radius:22px;
  --shadow:0 6px 18px rgba(138,86,0,.16);
}
body{background:#fffbea}
h1,h2,h3{font-weight:800}

.site-header{border-bottom:0;border-radius:0 0 28px 28px;box-shadow:var(--shadow)}
.top-btn,.site-nav .top-link{border-radius:999px}
.nav-toggle{border-radius:999px}
@media (min-width:861px){
  .sub{border:0;border-radius:20px;box-shadow:0 14px 34px rgba(120,80,0,.28);padding:.6rem}
  .sub a{border-radius:12px}
}

/* sections become floating cards */
.hero{width:calc(100% - 2.5rem);max-width:calc(1100px - 2.5rem);margin:1.75rem auto 0;border:0;border-radius:36px;padding:3rem 0;overflow:hidden}
.hero .wrap{padding:0 3rem}
.hero h1{font-weight:800}
.hero-photo figcaption{font-weight:700}
.btn{box-shadow:0 4px 0 rgba(138,86,0,.35)}
.btn:hover{transform:translateY(2px);box-shadow:0 2px 0 rgba(138,86,0,.35)}
.hero .btn-dark{background:var(--ink);color:var(--sun);border-color:var(--ink)}
.hero .btn-dark:hover{color:var(--sun)}
.hero .btn-light{border-color:#fff}

.learn{padding:2.5rem 0 1rem}
.learn .wrap{gap:1.5rem;align-items:start}
.learn .wrap > div{background:#fff;border-radius:var(--radius);padding:1.75rem 2rem;box-shadow:var(--shadow)}
.learn li{border-bottom:1px dashed var(--line)}
.learn li:first-child{border-top:1px dashed var(--line)}
.quick{background:transparent;padding:2rem 0 3rem}
.quick li a{border:0;border-radius:var(--radius);background:#fff;box-shadow:var(--shadow);padding:1rem 1.2rem}
.quick li a:hover{background:var(--sun);transform:translateY(-3px)}

.page,.staff-page{width:calc(100% - 2.5rem);max-width:calc(1100px - 2.5rem);background:#fff;border-radius:28px;box-shadow:var(--shadow);margin:1.75rem auto 3rem;padding:2.5rem}
.loc-card,.staff-card{border:0;background:var(--sky);border-radius:var(--radius)}
.booklet,.no-classes{border-radius:var(--radius)}
.notice{border-radius:14px;border-left-width:6px}
.class-intro img,.testimonial img,.booklet img{border:0;border-radius:24px;box-shadow:var(--shadow)}
.testimonial{border-top:2px dashed var(--line)}
.schedule td{border-bottom:1px dashed var(--line)}
.schedule th:first-child{border-radius:16px 0 0 0}
.schedule th:last-child{border-radius:0 16px 0 0}
.staff-table:has(th) tr:nth-child(even) td{background:var(--sun-soft)}
.form-page input[type=text],.form-page input[type=password],.form-page textarea,.form-page select,
.staff-table input[type=text],.staff-table input[type=password],.staff-table select,.staff-table textarea{border-radius:14px}
.choices{border-radius:18px}

.site-footer{margin-top:1rem;border-radius:32px 32px 0 0;box-shadow:0 -6px 18px rgba(138,86,0,.12);padding:2.2rem 0}
.site-footer a{text-decoration-color:var(--sun-deep);text-decoration-thickness:2px}

@media (max-width:560px){
  .hero .wrap{padding:0 1.4rem}
  .page,.staff-page{padding:1.5rem 1.25rem;border-radius:22px}
  .learn .wrap > div{padding:1.4rem}
}
@media print{.page,.staff-page{box-shadow:none;width:auto;margin:0;border-radius:0;padding:0}}

/* THIS IS CSS FOR THE GALLERY PAGE */

/* ============================================================
   DYNAMIC GALLERY GRID & LIGHTBOX STYLES (Added to bottom)
   ============================================================ */
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  justify-content: center;
  justify-items: center;
  gap: 1.5rem;
  margin: 1.5rem auto 0 auto; /* Center the grid container */
  max-width: 100% !important; /* Overrides .page > * width restriction */
  width: 100%;
}

.gallery-card {
  background: var(--white);
  border: 2px solid var(--line);
  border-radius: var(--radius);
  padding: 0.6rem;
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  transition: transform 0.15s ease;
}

.gallery-card:hover {
  transform: translateY(-3px);
}

.gallery-card figure {
  margin: 0;
  width: 100%;
}

.gallery-card img.lightbox-trigger {
  width: 100%;
  height: 200px;
  object-fit: cover;
  border-radius: calc(var(--radius) - 4px);
  display: block;
  cursor: pointer;
  transition: opacity 0.2s ease;
}

.gallery-card img.lightbox-trigger:hover {
  opacity: 0.9;
}

/* Lightbox overlay styling */
.lightbox {
  display: none;
  position: fixed;
  z-index: 1000;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(27, 43, 52, 0.9);
  backdrop-filter: blur(4px);
  justify-content: center;
  align-items: center;
  padding: 1.5rem;
}

.lightbox.active {
  display: flex;
}

.lightbox-container {
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 80vw;
  max-height: 85vh;
}

.lightbox-content {
  max-width: 80vw;
  max-height: 80vh;
  object-fit: contain;
  border: 4px solid var(--white);
  border-radius: var(--radius);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}

/* Close button and counter */
.lightbox-close {
  position: absolute;
  top: 1.5rem;
  right: 2rem;
  color: var(--white);
  font-size: 2.5rem;
  font-weight: bold;
  cursor: pointer;
  line-height: 1;
  transition: color 0.15s ease;
  z-index: 1010;
}

.lightbox-close:hover {
  color: var(--sun);
}

.lightbox-counter {
  position: absolute;
  top: 1.8rem;
  left: 2rem;
  color: var(--white);
  font-weight: bold;
  font-size: 1.1rem;
}

/* Navigation arrows */
.lightbox-btn {
  background: rgba(255, 255, 255, 0.15);
  color: var(--white);
  border: 2px solid var(--white);
  border-radius: 50%;
  width: 50px;
  height: 50px;
  font-size: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  z-index: 1010;
}

.lightbox-btn:hover {
  background: var(--sun);
  color: var(--ink);
  border-color: var(--sun);
}

.lightbox-prev {
  left: 2rem;
}

.lightbox-next {
  right: 2rem;
}

@media (max-width: 768px) {
  .lightbox-btn {
    width: 40px;
    height: 40px;
    font-size: 1.2rem;
  }
  .lightbox-prev { left: 0.75rem; }
  .lightbox-next { right: 0.75rem; }
  .lightbox-counter { font-size: 0.95rem; left: 1rem; top: 1.5rem; }
  .lightbox-close { right: 1rem; top: 1.2rem; font-size: 2.2rem; }
}
