/* ============================================================
   JUNO AURORA HAVEN — WOW LAYER
   Loaded AFTER style.css and site.css on every page.
   One place for: the mobile nav fix, the footer (no skyline),
   the shared page shell (blue depth background + rings + crayon art),
   News / Volunteer / Contact / Shop, the log-in pages, the customer
   account and the admin portal.
   ============================================================ */

/* ---------- no city skyline anywhere ---------- */
.jh-skyline{ display:none !important; }

/* ---------- NAV: the burger must never be cut off (iPhone) ---------- */
.jh-nav__inner{ box-sizing:border-box; }
.jh-right{ min-width:0; }
.jh-burger, .jh-iconbtn{ flex:none; }
.jh-brand{ min-width:0; }
@media (max-width:1060px){
  .jh-nav__inner{ padding-left:max(14px, env(safe-area-inset-left)); padding-right:max(14px, env(safe-area-inset-right)); gap:10px; }
  .jh-right{ gap:8px; }
  .jh-iconbtn{ width:40px; height:40px; }
  .jh-burger{ width:42px; height:42px; }
  .jh-brand span{ font-size:17px; overflow:hidden; text-overflow:ellipsis; }
}
@media (max-width:560px){
  .jh-brand span{ display:none; }
  .jh-brand img{ height:34px; }
}

/* ---------- footer without the skyline ---------- */
.jh-footer{ border-radius:44px 44px 0 0; margin-top:-1px; position:relative; z-index:3; }
@media (max-width:640px){ .jh-footer{ border-radius:30px 30px 0 0; } }

/* ============================================================
   SHARED PAGE SHELL  (same family as "Our story")
   body.jh-hero-page > #jh-nav[data-hero] > main > .jh-flow > .jh-pagehero + body
   ============================================================ */
.jh-flow--page{ min-height:60vh; }
.jh-flow--page > .jh-pagehero{ position:relative; z-index:2; }
.jh-pagebody{ position:relative; z-index:3; padding:56px 0 110px; }
.jh-pagehero--compact{ padding:136px 0 96px; }
.jh-pagehero--compact h1{ font-size:clamp(38px, 7vw, 76px); }
.jh-pagehero--compact .jh-wrap{ max-width:880px; }
@media (max-width:640px){
  .jh-pagehero--compact{ padding:112px 0 70px; }
  .jh-pagebody{ padding:36px 0 80px; }
}
.jh-pagehero .jh-hero-chips{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:26px; }
.jh-pagehero .jh-hero-chips a, .jh-pagehero .jh-hero-chips span{
  display:inline-flex; align-items:center; gap:8px; padding:10px 18px; border-radius:999px;
  background:rgba(255,255,255,.14); color:#fff; font-size:14px; font-weight:600; border:1px solid rgba(255,255,255,.25);
}
.jh-sheet{
  position:relative; background:#fff; border-radius:30px; padding:34px 34px 38px;
  box-shadow:0 30px 60px -34px rgba(14,26,51,.6);
}
@media (max-width:640px){ .jh-sheet{ padding:22px 16px 26px; border-radius:24px; } }

/* big brush button on a dark/blue background, solid sun button on white */
.jh-btn-sun{
  display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:15px 30px; border:0; cursor:pointer;
  border-radius:999px; font:700 15px/1 var(--font-body, 'Poppins', sans-serif); color:#16233d;
  background:linear-gradient(135deg,#ffd75e,#ffb62e); box-shadow:0 14px 26px -12px rgba(242,166,64,.9);
  transition:transform .2s ease, box-shadow .2s ease;
}
.jh-btn-sun:hover{ transform:translateY(-2px) rotate(-1deg); box-shadow:0 20px 30px -14px rgba(242,166,64,.9); }
.jh-btn-sun[disabled]{ opacity:.55; cursor:not-allowed; transform:none; }
.jh-btn-blue{
  display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:15px 30px; border:0; cursor:pointer;
  border-radius:999px; font:700 15px/1 var(--font-body, 'Poppins', sans-serif); color:#fff;
  background:linear-gradient(135deg,#3a5a94,#1f3a6b); box-shadow:0 14px 26px -14px rgba(31,58,107,.95);
  transition:transform .2s ease, box-shadow .2s ease;
}
.jh-btn-blue:hover{ transform:translateY(-2px); }
.jh-btn-block{ width:100%; }

/* ============================================================
   FORM CARD + BENEFIT CARDS  (Volunteer, Contact, custom orders)
   ============================================================ */
.jh-twocol{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:34px; align-items:start; }
@media (max-width:900px){ .jh-twocol{ grid-template-columns:minmax(0,1fr); gap:26px; } }
.jh-benefits{ display:grid; gap:20px; }
.jh-benefit{
  position:relative; background:#fff; border-radius:26px; padding:26px 26px 26px 112px; min-height:112px;
  box-shadow:0 24px 44px -30px rgba(14,26,51,.6); transition:transform .25s ease;
}
.jh-benefit:hover{ transform:translateY(-4px) rotate(-.4deg); }
.jh-benefit > img{ position:absolute; left:20px; top:50%; width:74px; height:74px; margin-top:-37px; object-fit:contain; animation:jhFloatB 7s ease-in-out infinite; }
.jh-benefit:nth-child(2) > img{ animation-delay:-2s; } .jh-benefit:nth-child(3) > img{ animation-delay:-4s; }
.jh-benefit h3{ font-family:'Pangolin',cursive; font-weight:400; font-size:23px; color:#16233d; margin:0 0 6px; line-height:1.15; }
.jh-benefit p, .jh-benefit a{ margin:0; font-size:14.5px; line-height:1.65; color:#4a5875; }
a.jh-benefit{ display:block; text-decoration:none; }
a.jh-benefit b{ color:#2e4a7d; }
@media (max-width:520px){
  .jh-benefit{ padding:20px 18px 20px 92px; min-height:96px; }
  .jh-benefit > img{ left:14px; width:62px; height:62px; margin-top:-31px; }
  .jh-benefit h3{ font-size:20px; }
}

.jh-formcard{
  position:relative; background:#fff; border-radius:32px; padding:38px 38px 40px;
  box-shadow:0 34px 64px -36px rgba(14,26,51,.7);
}
.jh-formcard > .jh-peek{ position:absolute; top:-46px; right:24px; width:96px; height:auto; pointer-events:none; animation:jhFloatB 8s ease-in-out infinite; filter:drop-shadow(0 10px 14px rgba(22,35,61,.2)); }
.jh-formcard h2{ font-family:'Pangolin',cursive; font-weight:400; font-size:30px; color:#16233d; margin:0 0 6px; line-height:1.1; }
.jh-formcard .sub{ font-size:14.5px; color:#5d6b85; margin:0 0 24px; line-height:1.6; }
.jh-formcard .field{ margin-bottom:16px; }
.jh-formcard .field label{ display:block; font-size:13px; font-weight:700; color:#2e4a7d; margin-bottom:7px; }
.jh-formcard input[type=text], .jh-formcard input[type=email], .jh-formcard input[type=tel], .jh-formcard select, .jh-formcard textarea{
  width:100%; box-sizing:border-box; padding:14px 16px; border-radius:16px; border:2px solid #dbe6f7; background:#f6f9ff;
  font:500 15px/1.4 'Poppins',sans-serif; color:#16233d; transition:border-color .2s, box-shadow .2s, background .2s;
}
.jh-formcard textarea{ resize:vertical; min-height:110px; }
.jh-formcard input:focus, .jh-formcard select:focus, .jh-formcard textarea:focus{ outline:0; background:#fff; border-color:#4a73b8; box-shadow:0 0 0 4px rgba(74,115,184,.18); }
.jh-formgrid2{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:560px){ .jh-formgrid2{ grid-template-columns:1fr; gap:0; } .jh-formcard{ padding:30px 20px 30px; border-radius:26px; } .jh-formcard > .jh-peek{ width:78px; top:-38px; } }
.jh-status{ display:none; padding:12px 16px; border-radius:14px; font-size:13.5px; margin-bottom:16px; line-height:1.5; }

/* ============================================================
   NEWS
   ============================================================ */
.jh-soon{ text-align:center; position:relative; }
.jh-soon__stage{ position:relative; display:flex; justify-content:center; align-items:flex-end; gap:26px; padding:20px 0 6px; min-height:300px; }
.jh-soon__card{
  position:relative; width:min(300px, 30%); background:rgba(255,255,255,.78); border:2.5px dashed rgba(46,74,125,.35); border-radius:30px;
  padding:26px 22px 24px; text-align:left; box-shadow:0 30px 50px -34px rgba(14,26,51,.7); backdrop-filter:blur(2px);
}
.jh-soon__card.c1{ transform:rotate(-5deg) translateY(16px); }
.jh-soon__card.c2{ transform:translateY(-14px); background:#fff; border-style:solid; border-color:#fff; z-index:2; padding-top:34px; }
.jh-soon__card.c3{ transform:rotate(5deg) translateY(16px); }
.jh-soon__card img{ display:block; width:92px; height:92px; object-fit:contain; margin:-62px 0 12px; animation:jhFloatB 7s ease-in-out infinite; filter:drop-shadow(0 10px 12px rgba(22,35,61,.22)); }
.jh-soon__card.c2 img{ width:112px; height:112px; margin-top:-82px; }
.jh-soon__chip{ display:inline-block; font-size:11.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#2e4a7d; background:#dcebfc; padding:6px 12px; border-radius:999px; margin-bottom:14px; }
.jh-soon__card i{ display:block; height:11px; border-radius:8px; background:linear-gradient(90deg,#e4edfb,#f4f8ff,#e4edfb); background-size:200% 100%; animation:jhShimmer 2.6s linear infinite; margin-bottom:10px; }
.jh-soon__card i:nth-of-type(1){ width:92%; } .jh-soon__card i:nth-of-type(2){ width:70%; } .jh-soon__card i:nth-of-type(3){ width:48%; margin-bottom:0; }
@keyframes jhShimmer{ 0%{ background-position:200% 0; } 100%{ background-position:-200% 0; } }
.jh-soon h2{ font-size:clamp(34px,5.4vw,56px); line-height:1.05; margin:50px 0 0; }
.jh-soon .jh-lead{ max-width:620px; margin:16px auto 0; }
.jh-soon__cta{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px; margin-top:34px; }
.jh-soon__cta .jh-btn-pill{ color:#16233d; border-color:rgba(22,35,61,.35); background:rgba(255,255,255,.6); }
.jh-soon__cta .jh-btn-pill:hover{ background:#fff; }
@media (max-width:720px){
  .jh-soon__stage{ min-height:0; padding-top:60px; flex-direction:column; align-items:center; gap:70px; }
  .jh-soon__card{ width:min(340px,100%); }
  .jh-soon__card.c1, .jh-soon__card.c3{ transform:none; }
  .jh-soon__card.c3{ display:none; }
  .jh-soon__card.c2{ transform:none; }
  .jh-soon h2{ margin-top:34px; }
}

.jh-newsgrid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(310px,1fr)); gap:30px; }
@media (max-width:560px){ .jh-newsgrid{ grid-template-columns:minmax(0,1fr); gap:24px; } }
.jh-newscard{
  position:relative; display:flex; flex-direction:column; background:#fff; border-radius:30px; overflow:visible; color:inherit; text-decoration:none;
  box-shadow:0 30px 50px -32px rgba(14,26,51,.7); transition:transform .3s var(--jh-ease), box-shadow .3s ease;
}
.jh-newscard:nth-child(3n+1){ transform:rotate(-.8deg); } .jh-newscard:nth-child(3n+2){ transform:rotate(.7deg) translateY(10px); } .jh-newscard:nth-child(3n){ transform:rotate(-.4deg); }
.jh-newscard:hover{ transform:translateY(-8px) rotate(0); box-shadow:0 40px 60px -30px rgba(14,26,51,.75); }
.jh-newscard__cover{ height:210px; border-radius:30px 30px 0 0; background-size:cover; background-position:center; position:relative; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.jh-newscard__cover img{ width:110px; height:110px; object-fit:contain; filter:drop-shadow(0 10px 14px rgba(22,35,61,.22)); animation:jhFloatB 8s ease-in-out infinite; }
.jh-newscard__peek{ position:absolute; top:-26px; right:16px; width:62px; z-index:3; pointer-events:none; filter:drop-shadow(0 8px 10px rgba(22,35,61,.2)); animation:jhFloatB 7s ease-in-out infinite; }
.jh-newscard__body{ padding:22px 24px 26px; }
.jh-newscard__meta{ display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:12px; }
.jh-newscard__cat{ font-size:11.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#2e4a7d; background:#dcebfc; padding:6px 12px; border-radius:999px; }
.jh-newscard__date{ font-size:12.5px; color:#6a7894; }
.jh-newscard h2{ font-family:'Pangolin',cursive; font-weight:400; font-size:25px; line-height:1.15; color:#16233d; margin:0 0 8px; }
.jh-newscard p{ margin:0 0 14px; font-size:14.5px; line-height:1.65; color:#4a5875; }
.jh-newscard__more{ font-size:14px; font-weight:700; color:#2e4a7d; background:linear-gradient(transparent 62%, rgba(255,206,74,.7) 62%); padding:0 3px; }

/* ============================================================
   SHOP
   ============================================================ */
.jh-chips{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin:0 0 34px; position:relative; z-index:3; }
.jh-chips a{
  padding:11px 22px; border-radius:999px; font-size:14.5px; font-weight:700; text-decoration:none; color:#2e4a7d;
  background:rgba(255,255,255,.85); border:2px solid #fff; transition:transform .2s ease, background .2s ease;
}
.jh-chips a:hover{ transform:translateY(-2px); background:#fff; }
.jh-chips a.on{ color:#16233d; background:linear-gradient(135deg,#ffd75e,#ffb62e); border-color:transparent; box-shadow:0 12px 22px -12px rgba(242,166,64,.95); }

.jh-pgrid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; position:relative; z-index:3; }
@media (max-width:1000px){ .jh-pgrid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; } }
@media (max-width:520px){ .jh-pgrid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; } }
.jh-pcard{
  position:relative; display:flex; flex-direction:column; background:#fff; border-radius:30px; padding:12px 12px 16px;
  box-shadow:0 30px 50px -32px rgba(14,26,51,.7); transition:transform .3s var(--jh-ease), box-shadow .3s ease;
}
.jh-pcard:hover{ transform:translateY(-8px) rotate(-.5deg); box-shadow:0 40px 60px -30px rgba(14,26,51,.75); }
.jh-pcard__photo{ position:relative; display:block; border-radius:22px; overflow:hidden; aspect-ratio:1/1; background:#eaf2ff; }
.jh-pcard__photo img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.jh-pcard:hover .jh-pcard__photo img{ transform:scale(1.07); }
.jh-pcard__cat{ position:absolute; left:10px; top:10px; z-index:2; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#16233d; background:rgba(255,255,255,.92); padding:6px 11px; border-radius:999px; }
.jh-pcard__peek{ position:absolute; right:-6px; top:-22px; width:58px; z-index:3; pointer-events:none; filter:drop-shadow(0 8px 10px rgba(22,35,61,.22)); animation:jhFloatB 7s ease-in-out infinite; }
.jh-pcard__body{ padding:16px 8px 0; display:flex; flex-direction:column; flex:1; }
.jh-pcard__name{ font-family:'Pangolin',cursive; font-size:22px; line-height:1.15; color:#16233d; text-decoration:none; margin:0 0 8px; display:block; }
.jh-pcard__row{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:14px; flex-wrap:wrap; }
.jh-pcard__price{ font-family:'Pangolin',cursive; font-size:25px; color:#1f3a6b; line-height:1; }
.jh-stock{ font-size:11.5px; font-weight:700; padding:6px 11px; border-radius:999px; }
.jh-stock.ok{ background:#e6f5ed; color:#2f8059; } .jh-stock.low{ background:#fdece9; color:#b23b3b; } .jh-stock.out{ background:#eceff5; color:#6a7894; }
.jh-pcard .jh-btn-sun{ margin-top:auto; width:100%; padding:14px 18px; font-size:14px; }
@media (max-width:520px){
  .jh-pcard{ border-radius:22px; padding:8px 8px 12px; }
  .jh-pcard__photo{ border-radius:16px; }
  .jh-pcard__body{ padding:12px 4px 0; }
  .jh-pcard__name{ font-size:17px; margin-bottom:6px; }
  .jh-pcard__price{ font-size:20px; }
  .jh-stock{ font-size:10.5px; padding:5px 9px; }
  .jh-pcard .jh-btn-sun{ padding:12px 10px; font-size:13px; gap:6px; }
  .jh-pcard__peek{ width:44px; top:-16px; }
  .jh-pcard__cat{ font-size:10px; padding:5px 9px; left:8px; top:8px; }
  .jh-pcard__row{ flex-direction:column; align-items:flex-start; gap:6px; margin-bottom:12px; min-height:56px; }
}
.jh-values{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin-top:80px; position:relative; z-index:3; }
@media (max-width:760px){ .jh-values{ grid-template-columns:minmax(0,1fr); gap:56px; margin-top:70px; } }
.jh-value{ position:relative; background:linear-gradient(160deg, rgba(31,58,107,.94), rgba(18,32,62,.96)); border:1.5px solid rgba(255,255,255,.28); box-shadow:0 30px 50px -34px rgba(8,16,36,.8); border-radius:28px; padding:62px 22px 24px; text-align:center; color:#fff; backdrop-filter:blur(3px); }
.jh-value img{ position:absolute; top:-38px; left:50%; width:84px; height:84px; margin-left:-42px; object-fit:contain; animation:jhFloatB 7s ease-in-out infinite; filter:drop-shadow(0 10px 12px rgba(10,20,45,.3)); }
.jh-value b{ display:block; font-family:'Pangolin',cursive; font-weight:400; font-size:23px; margin-bottom:6px; }
.jh-value p{ margin:0; font-size:14.5px; line-height:1.65; color:rgba(255,255,255,.88); }
.jh-custom{ margin-top:90px; position:relative; z-index:3; }
.jh-custom__head{ text-align:center; margin-bottom:34px; }
.jh-custom__head .jh-h2{ color:#fff; }
.jh-custom__head p{ color:rgba(255,255,255,.9); max-width:560px; margin:14px auto 0; font-size:16.5px; line-height:1.7; }
.jh-custom .jh-formcard{ max-width:760px; margin:0 auto; }

/* product / cart / checkout pages sit on a white sheet; keep legacy blocks tidy */
.jh-sheet .breadcrumb{ margin-top:0 !important; }
.jh-sheet h1{ font-family:'Pangolin',cursive; font-weight:400; }

/* ============================================================
   LOG-IN PAGES  (no nav, no footer; Back at the top)
   ============================================================ */
body.jh-authbody{ margin:0; background:#2f4f88; min-height:100vh; }
.jh-authpage{
  position:relative; overflow:hidden; min-height:100vh; display:flex; align-items:center; justify-content:center;
  padding:92px 16px 56px;
  background:
    radial-gradient(900px 700px at 8% 4%, rgba(255,255,255,.95), rgba(255,255,255,0) 62%),
    radial-gradient(820px 820px at 96% 20%, rgba(255,255,255,.72), rgba(255,255,255,0) 58%),
    radial-gradient(1000px 900px at 92% 52%, rgba(118,168,236,.9), rgba(118,168,236,0) 64%),
    radial-gradient(1100px 900px at 14% 96%, rgba(58,100,182,.95), rgba(58,100,182,0) 66%),
    linear-gradient(180deg, #ebf4ff 0%, #cbdffa 30%, #94baed 62%, #4f7bc0 100%);
}
.jh-backpill{
  position:absolute; top:max(18px, env(safe-area-inset-top)); left:18px; z-index:6; display:inline-flex; align-items:center; gap:8px;
  padding:12px 20px; border-radius:999px; background:#fff; color:#16233d; font-size:14.5px; font-weight:700; text-decoration:none;
  box-shadow:0 14px 26px -14px rgba(14,26,51,.7); transition:transform .2s ease;
}
.jh-backpill:hover{ transform:translateX(-3px); }
.jh-authwrap{ position:relative; z-index:3; width:100%; max-width:480px; display:flex; flex-direction:column; align-items:center; }
.jh-authlogo{ display:block; margin-bottom:18px; }
.jh-authlogo img{ height:58px; width:auto; filter:drop-shadow(0 8px 12px rgba(14,26,51,.25)); }
.jh-authcard{
  position:relative; width:100%; box-sizing:border-box; background:#fff; border-radius:32px; padding:36px 34px 34px;
  box-shadow:0 40px 70px -34px rgba(10,20,45,.75);
}
.jh-authcard > .jh-peek{ position:absolute; top:-48px; right:22px; width:92px; pointer-events:none; animation:jhFloatB 8s ease-in-out infinite; filter:drop-shadow(0 10px 14px rgba(22,35,61,.2)); }
.jh-authcard h1, .jh-authcard h2{ font-family:'Pangolin',cursive; font-weight:400; color:#16233d; }
.jh-authcard .field{ margin-bottom:16px; }
.jh-authcard .field label{ display:block; font-size:13px; font-weight:700; color:#2e4a7d; margin-bottom:7px; }
.jh-authcard input[type=text], .jh-authcard input[type=email], .jh-authcard input[type=password]{
  width:100%; box-sizing:border-box; padding:14px 16px; border-radius:16px; border:2px solid #dbe6f7; background:#f6f9ff;
  font:500 15px/1.4 'Poppins',sans-serif; color:#16233d; transition:border-color .2s, box-shadow .2s;
}
.jh-authcard input:focus{ outline:0; background:#fff; border-color:#4a73b8; box-shadow:0 0 0 4px rgba(74,115,184,.18); }
.jh-authcard .btn.btn-primary, .jh-authcard .btn-block{
  border-radius:999px !important; padding:15px 24px !important; font-weight:700; background:linear-gradient(135deg,#3a5a94,#1f3a6b) !important; box-shadow:0 14px 26px -14px rgba(31,58,107,.95);
}
.jh-authcard .tabs{ display:flex; gap:6px; padding:5px; background:#eaf2ff; border-radius:999px; margin-bottom:26px !important; }
.jh-authcard .tabs .tab{ flex:1; text-align:center; padding:11px 14px; border-radius:999px; font-weight:700; font-size:14px; color:#2e4a7d; cursor:pointer; border:0 !important; background:transparent; }
.jh-authcard .tabs .tab.active{ background:#fff; color:#16233d; box-shadow:0 8px 16px -10px rgba(14,26,51,.6); }
.jh-authtag{ margin:18px 0 0; text-align:center; color:#16233d; font-size:14px; line-height:1.6; max-width:380px; }
@media (max-width:560px){ .jh-authcard > .jh-peek{ width:74px; top:-40px; right:12px; } .jh-authpage{ padding:84px 14px 40px; align-items:flex-start; } .jh-authcard{ padding:28px 20px 26px; border-radius:26px; } .jh-authlogo img{ height:50px; } }

/* "How would you like to continue" */
.jh-selgrid .select-card{ border-radius:28px !important; }

/* ============================================================
   CUSTOMER ACCOUNT
   ============================================================ */
.jh-acct-stats{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin-bottom:34px; position:relative; z-index:3; }
@media (max-width:560px){ .jh-acct-stats{ grid-template-columns:minmax(0,1fr); gap:18px; } }
.jh-acct-stat{ position:relative; background:#fff; border-radius:28px; padding:26px 26px 24px 116px; box-shadow:0 28px 48px -32px rgba(14,26,51,.7); min-height:112px; display:flex; flex-direction:column; justify-content:center; }
.jh-acct-stat > img{ position:absolute; left:20px; top:50%; width:78px; height:78px; margin-top:-39px; object-fit:contain; animation:jhFloatB 7s ease-in-out infinite; }
.jh-acct-stat small{ font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#6a7894; }
.jh-acct-stat b{ font-family:'Pangolin',cursive; font-weight:400; font-size:44px; line-height:1.05; color:#16233d; }
.jh-acct-stat span{ font-size:13.5px; color:#2f8059; font-weight:600; }
.jh-acct-table{ position:relative; z-index:3; background:#fff; border-radius:30px; box-shadow:0 30px 50px -34px rgba(14,26,51,.7); overflow:hidden; }
.jh-acct-table__head{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:22px 28px; border-bottom:1px solid #e6edf8; }
.jh-acct-table__head h2{ margin:0; font-family:'Pangolin',cursive; font-weight:400; font-size:26px; color:#16233d; }
.jh-acct-table table{ width:100%; border-collapse:collapse; }
.jh-acct-table th{ text-align:left; padding:14px 18px; background:#f0f6ff; color:#2e4a7d; font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
.jh-acct-table td{ padding:16px 18px; border-top:1px solid #edf2fa; font-size:14.5px; color:#33425f; }
.jh-acct-table .scroll{ overflow-x:auto; }
.jh-empty{ text-align:center; padding:54px 24px 60px; }
.jh-empty img{ width:120px; height:120px; object-fit:contain; animation:jhFloatB 7s ease-in-out infinite; }
.jh-empty h3{ font-family:'Pangolin',cursive; font-weight:400; font-size:28px; color:#16233d; margin:10px 0 6px; }
.jh-empty p{ margin:0 auto 22px; max-width:420px; color:#5d6b85; line-height:1.65; }

/* ============================================================
   ADMIN PORTAL
   ============================================================ */
/* fancy blue background + rings + crayon art behind the whole portal */
.admin-shell-top{
  position:relative; overflow:hidden; padding-top:14px;
  background:
    radial-gradient(900px 700px at 6% 2%, rgba(255,255,255,.95), rgba(255,255,255,0) 62%),
    radial-gradient(820px 820px at 98% 18%, rgba(255,255,255,.7), rgba(255,255,255,0) 58%),
    radial-gradient(1000px 900px at 94% 60%, rgba(118,168,236,.75), rgba(118,168,236,0) 64%),
    radial-gradient(1100px 900px at 8% 96%, rgba(58,100,182,.6), rgba(58,100,182,0) 66%),
    linear-gradient(180deg, #ecf4ff 0%, #d4e4fb 45%, #b4cff3 100%) !important;
}
.admin-shell-top > .jh-ring{ border-color:rgba(255,255,255,.55); }
.admin-shell-top > .jh-px{ position:absolute; }
.admin-shell-top > .admin-topnav, .admin-shell-top > .admin-main-top, .admin-shell-top > .admin-foot{ position:relative; z-index:3; }
.admin-shell-top > .admin-topnav{ position:sticky; z-index:300; }
.admin-main-top{ position:relative; z-index:3; }

/* compact nav that fits without scrolling */
.admin-topnav{ width:calc(100% - 24px); max-width:1240px; top:12px; border-radius:999px; background:rgba(18,32,62,.97); }
.admin-topnav-inner{ height:58px; gap:14px; padding:0 10px 0 18px; }
.admin-topnav-brand{ min-width:0; font-size:17px; white-space:nowrap; }
.admin-topnav-brand .mark-img{ width:auto; height:30px; }
.admin-topnav-links{
  max-height:none !important; overflow:visible !important; padding:14px; border-radius:26px;
  top:calc(100% + 10px); left:0; right:0; background:rgba(18,32,62,.98);
}
.admin-topnav-links.open{ display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.admin-topnav-links a{
  flex-direction:column; justify-content:center; gap:6px; padding:12px 6px; font-size:12.5px; line-height:1.15; text-align:center; white-space:normal;
  border-radius:16px; background:rgba(255,255,255,.06);
}
.admin-topnav-links a .ico{ width:22px; height:22px; }
.admin-topnav-links a.active{ background:#fff; color:#16233d; }
@media (min-width:900px){ .admin-topnav-links.open{ grid-template-columns:repeat(6,minmax(0,1fr)); } }
@media (max-width:560px){
  .admin-topnav{ width:calc(100% - 16px); top:8px; }
  .admin-topnav-inner{ height:54px; padding:0 8px 0 14px; }
  .admin-topnav-brand{ font-size:15px; }
  .admin-topnav-brand .mark-img{ height:26px; }
  .admin-topnav-links.open{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; padding:10px; }
  .admin-topnav-links a{ padding:10px 4px; font-size:11.5px; border-radius:14px; }
  .admin-topnav-links a .ico{ width:20px; height:20px; }
}
@media (max-width:360px){ .admin-topnav-brand span, .admin-topnav-brand{ font-size:13px; } }

/* header band: keep gradient, shorter on phones */
.admin-band{ border-radius:0 0 40px 40px; margin-top:-70px; padding-top:70px; }
@media (max-width:640px){ .admin-band{ border-radius:0 0 28px 28px; margin-top:-62px; padding-top:62px; } }
.admin-foot__bar{ border-radius:34px 34px 0 0; }
.admin-main-top .admin-content{ position:relative; z-index:3; }

/* dashboard layout: 4 stat cards -> 2 -> 1 ; activity goes BELOW the chart */
.dash-stats{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; margin-bottom:22px; }
.dash-split{ display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:22px; }
@media (max-width:1100px){ .dash-stats{ grid-template-columns:repeat(2,minmax(0,1fr)); } .dash-split{ grid-template-columns:minmax(0,1fr); } }
@media (max-width:520px){
  .dash-stats{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .dash-stats .stat-card{ padding:16px 14px 16px !important; border-radius:20px !important; }
  .dash-stats .stat-card .label{ font-size:11px !important; line-height:1.25; }
  .dash-stats .stat-card .value{ font-size:22px !important; line-height:1.1; word-break:break-word; }
  .dash-stats .stat-card .delta{ font-size:11.5px !important; line-height:1.3; }
  .dash-stats .stat-card-icon-badge{ width:34px; height:34px; margin-bottom:10px; }
  .dash-split{ gap:16px; }
}
.dash-split .panel{ min-width:0; }
.dash-chart{ display:flex; align-items:flex-end; gap:32px; height:180px; padding-top:20px; }
.dash-chart > div{ display:flex; flex-direction:column; align-items:center; flex:1; min-width:0; }
@media (max-width:520px){ .dash-chart{ gap:14px; } }
.dash-activity strong{ overflow-wrap:anywhere; }

/* every admin table scrolls inside its card, never the page */
.admin-content .table-responsive, .admin-content .panel-body{ overflow-x:auto; }
.admin-content .panel, .admin-content .card{ max-width:100%; }

/* background doodles that crowd small screens */
@media (max-width:760px){ .jh-px.hide-sm{ display:none !important; } }

.jh-empty img{ display:block; margin:0 auto; }

/* admin: crayon art in the header band and welcome strip */
.admin-band::before{ background-image:url('/assets/crayon/bee.png') !important; }
.admin-band::after{ background-image:url('/assets/crayon/sun.png') !important; }
.jh-welcome::before{ background-image:url('/assets/crayon/sun.png') !important; }
.admin-band::before{ top:76px !important; right:5% !important; }

/* Donate page on the new shell */
.jh-flow--page .donate-layout{ margin-top:0; gap:34px; position:relative; z-index:3; }
@media (max-width:900px){ .jh-flow--page .donate-layout{ grid-template-columns:minmax(0,1fr); } }
.jh-flow--page .donate-impact-col{ background:#fff; border-radius:30px; padding:30px 28px; box-shadow:0 30px 50px -34px rgba(14,26,51,.7); }
.jh-flow--page .donate-impact-col h3{ font-family:'Pangolin',cursive; font-weight:400; font-size:26px !important; color:#16233d; }
.jh-flow--page .donate-card{ border-radius:30px !important; box-shadow:0 34px 60px -34px rgba(14,26,51,.75) !important; background:#fff !important; }
.jh-flow--page .donate-card h3{ font-family:'Pangolin',cursive; font-weight:400; font-size:26px !important; color:#16233d; }
#donateAmountButtons .btn{ border-radius:999px; }
@media (max-width:420px){ #donateAmountButtons{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; } }
.jh-wipe,.jh-wipe__bg,.jh-wipe__s{display:none!important;visibility:hidden!important}

/* ---- mobile hardening (v7b) ---- */
@media (max-width:400px){ .admin-topnav-brand .brand-txt{ display:none; } .admin-topnav-brand .mark-img{ height:28px; } }
.admin-topnav-right{ flex-shrink:0; }
.jh-benefit, a.jh-benefit{ min-width:0; overflow-wrap:anywhere; }
.jh-benefit p, .jh-benefit a, .jh-benefit b{ overflow-wrap:anywhere; }
@media (max-width:360px){ .jh-benefit{ padding:18px 14px 18px 84px !important; } .jh-benefit > img{ left:12px; width:62px; height:62px; margin-top:-31px; } }

/* ---- phone art placement: drawings sit in the margins, never on text (v7b) ---- */
@media (max-width:560px){
  /* hero art on inner pages */
  .jh-pagehero .jh-px{ top:84px !important; bottom:auto !important; }
  .jh-pagehero .jh-px .jh-doodle{ width:54px !important; }
  /* login / forgot / reset */
  .jh-authpage{ padding-bottom:130px; }
  .jh-authpage > span.jh-px .jh-doodle{ width:54px !important; }
  .jh-authpage > span.jh-px:nth-of-type(3){ top:12px !important; left:auto !important; right:78px; }
  .jh-authpage > span.jh-px:nth-of-type(4){ top:8px !important; right:12px !important; }
  .jh-authpage > span.jh-px:nth-of-type(4) .jh-doodle{ width:60px !important; }
  .jh-authpage > span.jh-px:nth-of-type(5){ bottom:14px !important; left:14px !important; top:auto !important; }
  .jh-authpage > span.jh-px:nth-of-type(6){ bottom:12px !important; right:14px !important; top:auto !important; }
  .jh-authpage > span.jh-px:nth-of-type(5) .jh-doodle, .jh-authpage > span.jh-px:nth-of-type(6) .jh-doodle{ width:70px !important; }
  .jh-authtag{ position:relative; z-index:4; }
}
@media (max-width:560px){ .admin-band::before{ display:none !important; } }

/* Landing hero: playground photo. Keep the children's faces clear: text sits low, over the ground. */
.jh-hero{ align-items:flex-end; }
.jh-hero__bg{ background-position:center 28%; }
.jh-hero__shade{
  background:
    linear-gradient(180deg, rgba(14,26,51,.38) 0%, rgba(14,26,51,.05) 34%, rgba(14,26,51,.55) 62%, rgba(14,26,51,.9) 100%);
}
.jh-hero__inner{ padding-bottom:120px; }
@media (max-width:560px){ .jh-hero__inner{ padding-bottom:110px; } }
@media (max-width:560px){ .jh-hero > .jh-px:nth-of-type(2), .jh-hero > .jh-px:nth-of-type(3){ display:none; } }

/* ======================================================================
   GALLERY — bento mosaic + full-screen viewer (home page and News page)
   Photos come from the admin Gallery tab via /api/gallery (public/js/gallery.js)
   ====================================================================== */
.jh-gallery{ position:relative; padding:34px 0 100px; }
.jh-gallery[hidden]{ display:none; }
.jh-gallery--news{ margin-top:78px; padding:0 0 40px; }
.jh-gallery__stage{
  position:relative; overflow:hidden; border-radius:46px; padding:62px 44px 56px;
  background:
    radial-gradient(760px 460px at 96% -8%, rgba(255,206,74,.26), rgba(255,206,74,0) 62%),
    radial-gradient(720px 560px at -8% 108%, rgba(255,111,160,.20), rgba(255,111,160,0) 62%),
    linear-gradient(158deg,#2e4a7d 0%,#16233d 60%,#0e1a33 100%);
  box-shadow:0 56px 100px -46px rgba(8,16,36,.9), inset 0 0 0 1.5px rgba(255,255,255,.10);
}
.jh-gallery__ring{ position:absolute; border-radius:50%; border:2px solid rgba(255,255,255,.09); pointer-events:none; }
.jh-gallery__head{
  position:relative; z-index:2; display:flex; align-items:flex-end; justify-content:space-between;
  gap:22px 30px; flex-wrap:wrap; margin-bottom:40px;
}
.jh-gallery__head .jh-h2{ margin-top:14px; }
.jh-gallery__lead{ margin:14px 0 0; max-width:520px; font-size:clamp(15.5px, 2vw, 17.5px); line-height:1.7; color:rgba(255,255,255,.82); }
.jh-gallery__count{
  display:inline-flex; align-items:baseline; gap:8px; padding:10px 22px; border-radius:999px;
  background:var(--jh-sun); color:var(--jh-navy); font-weight:700; font-size:14px; letter-spacing:.04em;
  box-shadow:0 14px 28px -14px rgba(255,206,74,.8);
}
.jh-gallery__count b{ font-family:'Pangolin',cursive; font-weight:400; font-size:30px; line-height:1; }

.jh-gallery__grid{
  position:relative; z-index:2; display:grid; grid-template-columns:repeat(4, minmax(0, 1fr));
  grid-auto-rows:clamp(150px, 15.5vw, 214px); grid-auto-flow:dense; gap:16px;
}
/* a full 4 x 4 block of ten photos: one big, one tall, two wide */
.jh-gtile:nth-child(10n+1){ grid-column:span 2; grid-row:span 2; }
.jh-gtile:nth-child(10n+3){ grid-row:span 2; }
.jh-gtile:nth-child(10n+5){ grid-column:span 2; }
.jh-gtile:nth-child(10n){ grid-column:span 2; }
/* fewer than ten, or the last unfinished block: plain tiles so there are no holes */
.jh-gtile.is-flat{ grid-column:auto !important; grid-row:auto !important; }
.jh-gallery__grid[data-n="1"]{ grid-template-columns:minmax(0, 760px); justify-content:center; grid-auto-rows:clamp(240px, 36vw, 440px); }
.jh-gallery__grid[data-n="2"]{ grid-template-columns:repeat(2, minmax(0, 1fr)); grid-auto-rows:clamp(220px, 30vw, 380px); }
.jh-gallery__grid[data-n="3"]{ grid-template-columns:repeat(3, minmax(0, 1fr)); grid-auto-rows:clamp(210px, 26vw, 360px); }

.jh-gtile{
  position:relative; display:block; width:100%; height:100%; margin:0; padding:0; border:0; cursor:zoom-in;
  border-radius:26px; overflow:hidden; background:#1f3a6b; color:#fff; text-align:left; font:inherit;
  box-shadow:0 0 0 4px rgba(255,255,255,.94), 0 28px 44px -26px rgba(0,0,0,.8);
  opacity:0; -webkit-tap-highlight-color:transparent;
  transition:transform .5s var(--jh-ease), box-shadow .5s ease;
}
.jh-gtile.is-extra{ display:none; }
.jh-gallery.is-open .jh-gtile.is-extra{ display:block; }
.jh-gtile.in-view{ opacity:1; animation:jhGIn .95s var(--jh-ease) backwards; animation-delay:calc(var(--d, 0) * 75ms); }
@keyframes jhGIn{ from{ opacity:0; transform:translateY(46px) scale(.93) rotate(1.4deg); } to{ opacity:1; transform:none; } }
.jh-gtile img{
  display:block; width:100%; height:100%; object-fit:cover;
  transform:scale(1.001); transition:transform 1.2s var(--jh-ease), filter .6s ease;
}
.jh-gtile__shade{
  position:absolute; inset:0; pointer-events:none; opacity:0; transition:opacity .45s ease;
  background:linear-gradient(to top, rgba(14,26,51,.88) 0%, rgba(14,26,51,.25) 46%, rgba(14,26,51,0) 70%);
}
.jh-gtile__cap{
  position:absolute; left:0; right:0; bottom:0; padding:18px 20px 18px; pointer-events:none;
  font-family:'Pangolin',cursive; font-size:clamp(18px, 1.9vw, 24px); line-height:1.2; color:#fff;
  opacity:0; transform:translateY(14px); transition:opacity .45s ease, transform .55s var(--jh-ease);
  text-shadow:0 2px 14px rgba(0,0,0,.45);
}
.jh-gtile__zoom{
  position:absolute; top:14px; right:14px; width:42px; height:42px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; background:var(--jh-sun); color:var(--jh-navy);
  box-shadow:0 12px 22px -10px rgba(0,0,0,.6); opacity:0; transform:scale(.6) rotate(-20deg);
  transition:opacity .35s ease, transform .5s cubic-bezier(.2,1.4,.4,1);
}
.jh-gtile:hover, .jh-gtile:focus-visible{ transform:translateY(-6px); box-shadow:0 0 0 4px #fff, 0 38px 54px -26px rgba(0,0,0,.9); }
.jh-gtile:hover img, .jh-gtile:focus-visible img{ transform:scale(1.09); }
.jh-gtile:hover .jh-gtile__shade, .jh-gtile:focus-visible .jh-gtile__shade{ opacity:1; }
.jh-gtile:hover .jh-gtile__cap, .jh-gtile:focus-visible .jh-gtile__cap{ opacity:1; transform:none; }
.jh-gtile:hover .jh-gtile__zoom, .jh-gtile:focus-visible .jh-gtile__zoom{ opacity:1; transform:none; }
.jh-gtile:focus-visible{ outline:4px solid var(--jh-sun); outline-offset:4px; }
@media (hover:none){
  .jh-gtile__shade{ opacity:1; background:linear-gradient(to top, rgba(14,26,51,.78) 0%, rgba(14,26,51,0) 44%); }
  .jh-gtile__cap{ opacity:1; transform:none; padding:12px 14px; font-size:17px; }
  .jh-gtile__zoom{ display:none; }
}
.jh-gallery__foot{ position:relative; z-index:2; display:flex; justify-content:center; margin-top:34px; }
.jh-gallery__foot[hidden]{ display:none; }
.jh-gallery__more{ cursor:pointer; font:inherit; }

@media (max-width:980px){
  .jh-gallery__stage{ padding:46px 26px 44px; border-radius:38px; }
  .jh-gallery__grid{ grid-template-columns:repeat(3, minmax(0, 1fr)); grid-auto-rows:clamp(140px, 24vw, 200px); gap:12px; }
}
@media (max-width:620px){
  .jh-gallery{ padding:20px 0 70px; }
  .jh-gallery__stage{ padding:38px 14px 34px; border-radius:30px; }
  .jh-gallery__head{ margin-bottom:26px; padding:0 6px; }
  .jh-gallery__grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); grid-auto-rows:clamp(128px, 38vw, 190px); gap:10px; }
  .jh-gallery__grid[data-n="3"]{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .jh-gtile{ border-radius:20px; box-shadow:0 0 0 3px rgba(255,255,255,.94), 0 20px 30px -20px rgba(0,0,0,.8); }
  .jh-gallery__count{ padding:8px 18px; }
}

/* ---------------------------- full-screen viewer ---------------------------- */
html.jh-lb-open{ overflow:hidden; }
.jh-lb{
  position:fixed; inset:0; z-index:10000; display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:64px 74px 128px; opacity:0; transition:opacity .35s ease; color:#fff;
}
.jh-lb[hidden]{ display:none; }
.jh-lb.is-open{ opacity:1; }
.jh-lb__bg{
  position:absolute; inset:0; background:rgba(8,16,36,.93);
  -webkit-backdrop-filter:blur(18px) saturate(1.2); backdrop-filter:blur(18px) saturate(1.2);
}
.jh-lb__stage{ position:relative; margin:0; display:flex; flex-direction:column; align-items:center; gap:18px; max-width:100%; }
.jh-lb__img{
  display:block; max-width:min(100%, 1240px); max-height:calc(100vh - 262px); width:auto; height:auto;
  border-radius:20px; box-shadow:0 44px 90px -30px rgba(0,0,0,.9), 0 0 0 4px rgba(255,255,255,.95);
  background:#1f3a6b; opacity:0; transition:opacity .3s ease; will-change:transform, opacity;
  touch-action:pan-y;
}
.jh-lb__img.is-ready{ opacity:1; }
.jh-lb__cap{
  min-height:34px; max-width:min(92vw, 820px); text-align:center; font-family:'Pangolin',cursive;
  font-size:clamp(20px, 2.6vw, 30px); line-height:1.25; color:#fff; text-shadow:0 2px 16px rgba(0,0,0,.5);
  transition:opacity .3s ease;
}
.jh-lb__cap:empty{ min-height:0; }
.jh-lb__btn{
  position:absolute; z-index:3; display:flex; align-items:center; justify-content:center; padding:0; cursor:pointer;
  width:54px; height:54px; border-radius:50%; border:2px solid rgba(255,255,255,.28); color:#fff;
  background:rgba(255,255,255,.12); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  transition:background .25s ease, transform .3s var(--jh-ease), color .25s ease, border-color .25s ease;
}
.jh-lb__btn:hover, .jh-lb__btn:focus-visible{ background:var(--jh-sun); border-color:var(--jh-sun); color:var(--jh-navy); outline:none; }
.jh-lb__btn:focus-visible{ box-shadow:0 0 0 4px rgba(255,206,74,.5); }
.jh-lb__close{ top:22px; right:24px; }
.jh-lb__close:hover{ transform:rotate(90deg); }
.jh-lb__prev, .jh-lb__next{ top:calc(50% - 92px); }
.jh-lb__prev{ left:16px; } .jh-lb__next{ right:16px; }
.jh-lb__prev:hover{ transform:translateX(-4px); } .jh-lb__next:hover{ transform:translateX(4px); }
.jh-lb__count{
  position:absolute; z-index:3; top:30px; left:28px; padding:8px 18px; border-radius:999px;
  background:rgba(255,255,255,.14); font-size:14px; font-weight:700; letter-spacing:.08em;
}
.jh-lb__thumbs{
  position:absolute; z-index:3; left:0; right:0; bottom:20px; display:flex; gap:10px; padding:10px 24px;
  overflow-x:auto; scrollbar-width:none; justify-content:safe center;
}
.jh-lb__thumbs::-webkit-scrollbar{ display:none; }
.jh-lb__thumb{
  flex:0 0 auto; width:68px; height:68px; padding:0; border:0; border-radius:14px; overflow:hidden; cursor:pointer;
  opacity:.5; transform:scale(.92); transition:opacity .3s ease, transform .4s var(--jh-ease), box-shadow .3s ease;
}
.jh-lb__thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.jh-lb__thumb:hover{ opacity:.9; }
.jh-lb__thumb.is-active{ opacity:1; transform:scale(1.06); box-shadow:0 0 0 3px var(--jh-sun); }
.jh-lb__thumb:focus-visible{ outline:3px solid var(--jh-sun); outline-offset:2px; }
@media (max-width:760px){
  .jh-lb{ padding:70px 12px 112px; }
  .jh-lb__img{ border-radius:14px; max-height:calc(100vh - 250px); }
  .jh-lb__btn{ width:46px; height:46px; }
  .jh-lb__prev, .jh-lb__next{ top:auto; bottom:106px; }
  .jh-lb__prev{ left:calc(50% - 62px); } .jh-lb__next{ right:calc(50% - 62px); }
  .jh-lb__close{ top:14px; right:14px; }
  .jh-lb__count{ top:20px; left:14px; }
  .jh-lb__thumbs{ bottom:12px; padding:8px 14px; }
  .jh-lb__thumb{ width:52px; height:52px; border-radius:11px; }
}
@media (prefers-reduced-motion:reduce){
  .jh-gtile, .jh-gtile img, .jh-lb, .jh-lb__img, .jh-lb__btn, .jh-lb__thumb{ transition:none !important; }
  .jh-gtile.in-view{ animation:none; }
}

/* ---- News article: several photos (cover + thumbnails + full-screen view) ---- */
.jh-newscard{ position:relative; }
.jh-newscard__photos{ position:absolute; top:14px; right:14px; z-index:3; display:inline-flex; align-items:center; gap:6px; padding:6px 12px; border-radius:999px; background:rgba(22,35,61,.78); color:#fff; font-size:12.5px; font-weight:700; backdrop-filter:blur(6px); }
.jh-newsphotos{ margin-bottom:28px; }
.jh-newsphotos__main{ display:block; width:100%; padding:0; border:none; background:#eaf1fb; border-radius:22px; overflow:hidden; cursor:zoom-in; height:clamp(240px, 46vw, 440px); box-shadow:0 18px 36px -24px rgba(22,35,61,.6); }
.jh-newsphotos__main img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
@media (hover:hover){ .jh-newsphotos__main:hover img{ transform:scale(1.03); } }
.jh-newsphotos__thumbs{ display:flex; gap:10px; margin-top:12px; flex-wrap:wrap; }
.jh-newsphotos__thumbs button{ width:84px; height:64px; padding:0; border:3px solid transparent; border-radius:14px; overflow:hidden; background:#eaf1fb; cursor:pointer; opacity:.78; transition:opacity .2s ease, border-color .2s ease, transform .2s ease; }
.jh-newsphotos__thumbs button:hover{ opacity:1; transform:translateY(-2px); }
.jh-newsphotos__thumbs button.on{ border-color:#ffce4a; opacity:1; }
.jh-newsphotos__thumbs img{ width:100%; height:100%; object-fit:cover; display:block; }
.jh-newsphotos__main:focus-visible, .jh-newsphotos__thumbs button:focus-visible{ outline:3px solid #ffce4a; outline-offset:3px; }
.jh-newsphotos__lb{ position:fixed; inset:0; z-index:9999; background:rgba(10,18,36,.92); display:flex; align-items:center; justify-content:center; padding:24px; cursor:zoom-out; }
.jh-newsphotos__lb[hidden]{ display:none; }
.jh-newsphotos__lb img{ max-width:100%; max-height:100%; border-radius:16px; box-shadow:0 30px 80px rgba(0,0,0,.5); }
.jh-newsphotos__lb button{ position:absolute; top:16px; right:20px; width:46px; height:46px; border-radius:50%; border:none; background:rgba(255,255,255,.16); color:#fff; font-size:28px; line-height:1; cursor:pointer; }
