/* ==========================================================================
   Embassy of India, Yerevan — inner pages, photo gallery, lightbox,
   and the "Ask Bharati" conversation.
   Uses the DBIM tokens defined at the top of style.css.
   ========================================================================== */

/* ---------------------------------------------------------------------- */
/* 1. PAGE BANNER + BREADCRUMB                                             */
/* ---------------------------------------------------------------------- */
.page-hero{ background:var(--key-50); border-bottom:1px solid var(--key-200); padding:24px 0 28px; }
.page-hero h1{ font-size:2rem; margin:8px 0 0; max-width:1100px; overflow-wrap:anywhere; }
.breadcrumb ol{ display:flex; flex-wrap:wrap; gap:4px 0; list-style:none; margin:0; padding:0; font-size:.875rem; }
.breadcrumb li{ display:flex; align-items:center; color:var(--grey3); }
.breadcrumb li + li::before{ content:"/"; margin:0 10px; color:var(--grey2); }
.breadcrumb a{ color:var(--key-700); text-decoration:underline; text-underline-offset:2px; }
.breadcrumb [aria-current="page"]{ color:var(--text); max-width:60ch; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
ul.nav-list > li.current-section > button{ color:var(--key-700); border-bottom-color:var(--key-200); }

/* ---------------------------------------------------------------------- */
/* 2. LAYOUT — content, then the side menu on the right                    */
/* ---------------------------------------------------------------------- */
.page-layout{ display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:40px; padding-top:36px; padding-bottom:56px; align-items:start; }
.page-layout.no-side{ grid-template-columns:minmax(0,1fr); }
.page-content{ min-width:0; }

.side-nav{ display:flex; flex-direction:column; gap:20px; }
.side-box{ border:1px solid var(--key-200); background:#fff; }
.side-box h2{ font-size:.875rem; text-transform:uppercase; letter-spacing:.05em; color:#fff; background:var(--key-900); margin:0; padding:10px 16px; }
.side-box ul{ padding:6px 0; }
.side-box li a{ display:block; padding:8px 16px; color:var(--text); font-size:.875rem; line-height:1.4; border-left:3px solid transparent; }
.side-box li a:hover,.side-box li a:focus-visible{ background:var(--key-50); color:var(--key-700); text-decoration:underline; }
.side-box li a[aria-current="page"]{ border-left-color:var(--key-700); background:var(--key-50); color:var(--key-900); font-weight:600; }
.side-help{ background:var(--key-50); }
.side-help p{ font-size:.8125rem; padding:12px 16px 4px; margin:0; overflow-wrap:anywhere; }

/* ---------------------------------------------------------------------- */
/* 3. PROSE — the text of converted pages                                   */
/* ---------------------------------------------------------------------- */
.prose{ font-size:1rem; line-height:1.7; max-width:960px; overflow-wrap:break-word; }
.prose > :first-child{ margin-top:0; }
.prose h2{ font-size:1.375rem; margin:32px 0 12px; }
.prose h3{ font-size:1.125rem; margin:28px 0 10px; }
.prose h4,.prose h5,.prose h6{ font-size:1rem; margin:22px 0 8px; color:var(--key-900); }
.prose p{ margin:0 0 14px; }
.prose ul,.prose ol{ margin:0 0 16px; padding-left:1.5em; }
.prose ul{ list-style:disc; }
.prose ol{ list-style:decimal; }
.prose ol[type="a"]{ list-style:lower-alpha; }
.prose ol[type="i"]{ list-style:lower-roman; }
.prose li{ margin:0 0 6px; }
.prose li > ul,.prose li > ol{ margin:6px 0 0; }
.prose a{ color:var(--info); text-decoration:underline; text-underline-offset:2px; }
.prose a:hover{ color:var(--key-900); }
.prose img{ height:auto; margin:12px 0; }
.prose hr{ border:0; border-top:1px solid var(--key-200); margin:28px 0; }
.prose blockquote{ margin:16px 0; padding:12px 18px; border-left:4px solid var(--key-700); background:var(--key-50); }
.prose .lead{ font-size:1.125rem; }
.table-wrap{ position:relative; overflow-x:auto; margin:0 0 20px; border:1px solid var(--key-200); }
.table-wrap:focus-visible{ outline:3px solid var(--warning); }
.prose table{ border-collapse:collapse; width:100%; font-size:.9375rem; line-height:1.5; }
.prose th,.prose td{ border:1px solid var(--key-200); padding:10px 12px; vertical-align:top; text-align:left; }
.prose th,.prose thead td{ background:var(--key-900); color:#fff; font-weight:600; }
.prose th a,.prose thead td a{ color:#fff; }
.prose tbody tr:nth-child(even) td{ background:#F6F8FE; }
.prose td p:last-child,.prose th p:last-child{ margin-bottom:0; }
.prose td ul,.prose td ol{ margin-bottom:0; }
.prose .num{ text-align:right; white-space:nowrap; }
.badge-new{ display:inline-block; background:var(--success); color:#fff; font-size:.6875rem; font-weight:700; padding:1px 8px; border-radius:10px; margin-left:6px; vertical-align:2px; text-decoration:none; line-height:1.6; }
.note-box{ background:var(--key-50); border:1px solid var(--key-200); border-left:4px solid var(--key-700); padding:14px 18px; margin:0 0 20px; font-size:.9375rem; }
.note-box p:last-child{ margin:0; }
.prose .embed-gate{ height:380px; margin:0 0 20px; }

/* ---------------------------------------------------------------------- */
/* 4. DOCUMENT LISTS — What's New, Press Releases, Tenders, Speeches …       */
/* ---------------------------------------------------------------------- */
.list-intro{ color:var(--grey3); margin:0 0 20px; }
.doc-list{ border-top:1px solid var(--key-200); max-width:960px; }
.doc-list li{ display:flex; gap:14px; align-items:flex-start; padding:16px 4px; border-bottom:1px solid var(--key-200); }
.doc-list .ic{ flex:none; width:40px; height:40px; background:var(--key-50); color:var(--key-900); display:flex; align-items:center; justify-content:center; }
.doc-list .b{ flex:1; min-width:0; }
.doc-list a{ color:var(--text); font-weight:500; font-size:1rem; line-height:1.45; }
.doc-list a:hover,.doc-list a:focus-visible{ color:var(--key-700); text-decoration:underline; }
.doc-list .meta{ display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:4px; font-size:.8125rem; color:var(--grey3); }
.doc-list .sub{ margin:6px 0 0; font-size:.875rem; }
.doc-list .sub a{ font-weight:400; font-size:.875rem; color:var(--info); text-decoration:underline; }
.empty-note{ padding:24px; background:var(--key-50); border:1px dashed var(--key-200); }
.year-head{ font-size:1.125rem; margin:32px 0 0; padding:0 0 10px; }
.year-head:first-child{ margin-top:0; }

/* ---------------------------------------------------------------------- */
/* 5. VIDEO GRID                                                           */
/* ---------------------------------------------------------------------- */
.video-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:24px; }
.video-card{ border:1px solid var(--key-200); background:#fff; display:flex; flex-direction:column; }
.video-card .embed-gate{ height:auto; aspect-ratio:16/9; border:0; border-bottom:1px solid var(--key-200); }
.video-card h2{ font-size:1rem; margin:0; padding:14px 16px 16px; }

/* ---------------------------------------------------------------------- */
/* 6. PHOTO GALLERY — thumbnails                                            */
/* ---------------------------------------------------------------------- */
.gal-tools{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 24px; margin:0 0 24px; }
.year-filter ul{ display:flex; flex-wrap:wrap; gap:8px; }
.year-filter a{ display:inline-flex; align-items:center; min-height:36px; padding:4px 14px; border:1.5px solid var(--key-700); color:var(--key-700); font-size:.875rem; font-weight:600; background:#fff; }
.year-filter a:hover{ background:var(--key-50); text-decoration:none; }
.year-filter a[aria-current="page"]{ background:var(--key-700); color:#fff; }
.gal-count{ font-size:.875rem; color:var(--grey3); margin:0; }
.gallery-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:24px; }
.gal-card{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--key-200); color:var(--text); box-shadow:var(--card-shadow); transition:box-shadow .2s, transform .2s; height:100%; }
.gal-card:hover,.gal-card:focus-visible{ text-decoration:none; color:var(--text); box-shadow:0 8px 22px rgba(22,47,106,.18); transform:translateY(-2px); }
@media (prefers-reduced-motion:reduce){ .gal-card{ transition:none; } .gal-card:hover{ transform:none; } }
.gal-card .th{ position:relative; aspect-ratio:4/3; background:var(--linen); overflow:hidden; }
.gal-card .th img{ width:100%; height:100%; object-fit:cover; }
.gal-card .cnt{ position:absolute; right:8px; bottom:8px; background:rgba(22,47,106,.9); color:#fff; font-size:.75rem; font-weight:600; padding:3px 8px; display:inline-flex; align-items:center; gap:4px; }
.gal-card .cnt .icon{ width:14px; height:14px; }
.gal-card .b{ padding:14px 16px 16px; display:flex; flex-direction:column; gap:6px; flex:1; }
.gal-card .date{ font-size:.8125rem; color:var(--key-700); font-weight:600; }
.gal-card .t{ font-size:.9375rem; line-height:1.45; font-weight:500; margin:0; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
.gal-card:hover .t{ text-decoration:underline; }

.pager{ margin:36px 0 0; }
.pager ul{ display:flex; flex-wrap:wrap; gap:6px; align-items:center; justify-content:center; }
.pager a,.pager span{ display:inline-flex; align-items:center; justify-content:center; min-width:40px; height:40px; padding:0 12px; border:1px solid var(--key-200); background:#fff; color:var(--key-900); font-size:.875rem; font-weight:600; }
.pager a:hover{ background:var(--key-50); text-decoration:none; }
.pager a[aria-current="page"]{ background:var(--key-700); border-color:var(--key-700); color:#fff; }
.pager .gap{ border:0; min-width:20px; padding:0; }
.pager .dis{ color:var(--grey2); background:var(--linen); }

/* ---------------------------------------------------------------------- */
/* 7. ALBUM PAGE                                                            */
/* ---------------------------------------------------------------------- */
.album-meta{ display:flex; flex-wrap:wrap; gap:8px 20px; align-items:center; margin:0 0 20px; color:var(--grey3); font-size:.875rem; }
.album-meta .date{ color:var(--key-700); font-weight:600; }
.album-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:14px; }
.album-grid a{ display:block; position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--linen); border:1px solid var(--key-200); }
.album-grid img{ width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.album-grid a:hover img,.album-grid a:focus-visible img{ transform:scale(1.04); }
.album-grid a::after{ content:""; position:absolute; inset:0; background:rgba(22,47,106,0); transition:background .2s; }
.album-grid a:hover::after{ background:rgba(22,47,106,.12); }
.album-grid .zoom{ position:absolute; right:8px; bottom:8px; z-index:1; width:32px; height:32px; background:rgba(22,47,106,.85); color:#fff; display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .2s; }
.album-grid a:hover .zoom,.album-grid a:focus-visible .zoom{ opacity:1; }
@media (prefers-reduced-motion:reduce){ .album-grid img,.album-grid a::after,.album-grid .zoom{ transition:none; } .album-grid a:hover img{ transform:none; } }
.album-nav{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:16px; margin-top:36px; padding-top:20px; border-top:1px solid var(--key-200); }
.album-nav a{ display:flex; flex-direction:column; gap:2px; max-width:46%; color:var(--text); font-size:.875rem; }
.album-nav a .k{ font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--key-700); display:inline-flex; align-items:center; gap:4px; }
.album-nav a.next{ text-align:right; margin-left:auto; align-items:flex-end; }
.album-nav .back{ flex-basis:100%; text-align:center; }

/* ---------------------------------------------------------------------- */
/* 8. LIGHTBOX — previous, next, close                                      */
/* ---------------------------------------------------------------------- */
.lightbox{ position:fixed; inset:0; z-index:3000; background:#0b1226; display:flex; flex-direction:column; color:#fff; }
.lightbox[hidden]{ display:none; }
.lb-top{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 16px; }
.lb-count{ font-size:.9375rem; font-weight:600; }
.lb-stage{ flex:1; min-height:0; display:flex; align-items:center; justify-content:center; position:relative; padding:0 72px; touch-action:pan-y; }
.lb-stage img{ max-width:100%; max-height:100%; object-fit:contain; box-shadow:0 10px 40px rgba(0,0,0,.5); background:#222; user-select:none; -webkit-user-drag:none; }
.lb-stage img.loading{ opacity:.25; }
.lb-spinner{ position:absolute; width:42px; height:42px; border:3px solid rgba(255,255,255,.3); border-top-color:#fff; border-radius:50%; animation:lbspin 1s linear infinite; }
@keyframes lbspin{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce){ .lb-spinner{ animation:none; } }
.lb-btn{ width:48px; height:48px; border:1.5px solid rgba(255,255,255,.7); background:rgba(0,0,0,.45); color:#fff; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; border-radius:50%; }
.lb-btn:hover{ background:#fff; color:var(--key-900); }
.lb-btn:focus-visible{ outline:3px solid var(--warning); outline-offset:2px; }
.lb-btn .icon{ width:24px; height:24px; }
.lb-prev,.lb-next{ position:absolute; top:50%; transform:translateY(-50%); }
.lb-prev{ left:14px; }
.lb-next{ right:14px; }
.lb-cap{ padding:12px 16px 18px; text-align:center; font-size:.9375rem; line-height:1.5; max-width:1000px; margin:0 auto; }
.lb-tools{ display:flex; gap:8px; }
.lb-tools a.lb-btn{ text-decoration:none; }
body.lb-open{ overflow:hidden; }
@media (max-width:760px){
  .lb-stage{ padding:0 8px; }
  .lb-prev,.lb-next{ position:fixed; top:auto; bottom:16px; transform:none; }
  .lb-prev{ left:calc(50% - 60px); } .lb-next{ right:calc(50% - 60px); }
  .lb-cap{ padding-bottom:84px; font-size:.875rem; }
}

/* ---------------------------------------------------------------------- */
/* 9. FORMS (registration)                                                  */
/* ---------------------------------------------------------------------- */
.form-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 24px; max-width:960px; }
.form-grid .full{ grid-column:1 / -1; }
.field label{ display:block; font-weight:600; font-size:.9375rem; margin:0 0 6px; color:var(--key-900); }
.field .req{ color:var(--error); }
.field input,.field select,.field textarea{ width:100%; font:inherit; font-size:.9375rem; padding:10px 12px; border:1.5px solid var(--grey2); background:#fff; color:var(--text); border-radius:0; }
.field textarea{ min-height:96px; resize:vertical; }
.field input:focus,.field select:focus,.field textarea:focus{ outline:3px solid var(--warning); outline-offset:0; border-color:var(--key-700); }
.field .err{ display:block; color:var(--error); font-size:.8125rem; font-weight:600; margin-top:4px; }
.field .hint{ display:block; color:var(--grey3); font-size:.8125rem; margin-top:4px; }
.captcha-row{ display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.captcha-row img{ border:1px solid var(--key-200); }
.form-actions{ display:flex; gap:12px; flex-wrap:wrap; margin-top:8px; }
.form-msg{ padding:14px 18px; margin:0 0 20px; border-left:4px solid; }
.form-msg.ok{ background:#E8F5EE; border-color:var(--success); }
.form-msg.bad{ background:#FDECEE; border-color:var(--error); }

/* ---------------------------------------------------------------------- */
/* 10. SITEMAP                                                              */
/* ---------------------------------------------------------------------- */
.sitemap-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:28px 36px; }
.sitemap-grid h2{ font-size:1.125rem; border-bottom:2px solid var(--key-700); padding-bottom:6px; }
.sitemap-grid h3{ font-size:.875rem; text-transform:uppercase; letter-spacing:.04em; color:var(--key-700); margin:16px 0 6px; }
.sitemap-grid li{ padding:3px 0; font-size:.9375rem; }

/* ---------------------------------------------------------------------- */
/* 11. ASK BHARATI — conversation                                           */
/* ---------------------------------------------------------------------- */
.chatbot-window{ height:min(560px,calc(100vh - 120px)); width:370px; }
.chatbot-header{ gap:10px; justify-content:flex-start; }
.chatbot-header h2{ flex:1; }
.chatbot-header .cb-emblem{ filter:invert(1); height:30px; width:auto; }
.chatbot-header button{ width:34px; height:34px; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.4); }
.chatbot-header button:hover{ background:rgba(255,255,255,.15); }
.chatbot-body{ background:#F4F6FC; display:flex; flex-direction:column; gap:10px; }
.cb-static ul{ list-style:disc; padding-left:1.2em; margin:8px 0; }
.cb-row{ display:flex; flex-direction:column; max-width:88%; }
.cb-bot{ align-self:flex-start; }
.cb-user{ align-self:flex-end; align-items:flex-end; }
.cb-msg{ padding:10px 14px; font-size:.875rem; line-height:1.5; overflow-wrap:anywhere; }
.cb-bot .cb-msg{ background:#fff; border:1px solid var(--key-200); color:var(--text); border-radius:0 12px 12px 12px; }
.cb-user .cb-msg{ background:var(--key-700); color:#fff; border-radius:12px 0 12px 12px; }
.cb-msg a{ color:var(--info); text-decoration:underline; }
.cb-msg small{ font-size:.75rem; }
.cb-time{ font-size:.6875rem; color:var(--grey3); margin-top:3px; padding:0 4px; }
.cb-options{ display:flex; flex-wrap:wrap; gap:6px; padding-left:2px; }
.cb-opt{ background:#fff; border:1.5px solid var(--key-700); color:var(--key-700); padding:6px 12px; font-size:.8125rem; font-weight:600; border-radius:16px; cursor:pointer; text-align:left; }
.cb-opt:hover,.cb-opt:focus-visible{ background:var(--key-700); color:#fff; }
.cb-typing .cb-msg{ display:flex; gap:4px; padding:12px 14px; }
.cb-typing span{ width:7px; height:7px; border-radius:50%; background:var(--key-500); animation:cbdot 1s infinite ease-in-out; }
.cb-typing span:nth-child(2){ animation-delay:.15s; } .cb-typing span:nth-child(3){ animation-delay:.3s; }
@keyframes cbdot{ 0%,80%,100%{ opacity:.3; transform:translateY(0); } 40%{ opacity:1; transform:translateY(-3px); } }
@media (prefers-reduced-motion:reduce){ .cb-typing span{ animation:none; } }
.cb-end{ text-align:center; font-size:.8125rem; color:var(--grey3); padding:8px 0; }
.cb-reset{ background:none; border:0; color:var(--key-700); text-decoration:underline; cursor:pointer; font-weight:600; font-size:.8125rem; }
.cb-input{ display:flex; border-top:1px solid var(--key-200); background:#fff; }
.cb-input input{ flex:1; min-width:0; border:0; padding:12px 14px; font:inherit; font-size:.875rem; }
.cb-input input:focus{ outline:3px solid var(--warning); outline-offset:-3px; }
.cb-input input:disabled{ background:var(--linen); cursor:not-allowed; }
.cb-input button{ border:0; background:var(--key-700); color:#fff; width:48px; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.cb-input button:disabled{ background:var(--grey2); cursor:not-allowed; }
.cb-err{ margin:0; padding:6px 14px; font-size:.8125rem; color:var(--error); background:#fff; font-weight:600; }
.cb-foot{ margin:0; padding:8px 14px; font-size:.6875rem; color:var(--grey3); border-top:1px solid var(--linen); background:#fff; overflow-wrap:anywhere; }
@media (max-width:760px){
  .chatbot-window{ right:8px; left:8px; width:auto; max-width:none; bottom:80px; height:min(70vh,560px); }
}

/* ---------------------------------------------------------------------- */
/* 12. 404                                                                  */
/* ---------------------------------------------------------------------- */
.err-box{ text-align:center; padding:24px 0 8px; }
.err-box .code{ font-size:4rem; font-weight:700; color:var(--key-200); line-height:1; margin:0 0 12px; }

/* ---------------------------------------------------------------------- */
/* 13. RESPONSIVE + PRINT                                                   */
/* ---------------------------------------------------------------------- */
@media (max-width:1100px){
  .page-layout{ grid-template-columns:minmax(0,1fr) 260px; gap:28px; }
}
@media (max-width:900px){
  .page-layout{ grid-template-columns:minmax(0,1fr); }
  .side-nav{ position:static; }
}
@media (max-width:760px){
  .page-hero{ padding:16px 0 20px; }
  .page-hero h1{ font-size:1.375rem; }
  .breadcrumb [aria-current="page"]{ max-width:30ch; }
  .page-layout{ padding-top:24px; padding-bottom:40px; }
  .prose{ font-size:.9375rem; }
  .form-grid{ grid-template-columns:1fr; }
  .gallery-grid{ grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:14px; }
  .gal-card .b{ padding:10px 12px 12px; }
  .gal-card .t{ font-size:.875rem; -webkit-line-clamp:5; }
  .album-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .album-nav a{ max-width:100%; }
  .video-grid{ grid-template-columns:1fr; }
}
html.hc .page-hero,html.hc .side-help,html.hc .note-box{ background:#fff; border-color:#000; }
html.hc .prose tbody tr:nth-child(even) td{ background:#fff; }
@media print{
  .side-nav,.lightbox,.pager,.year-filter,.album-nav{ display:none!important; }
  .page-layout{ display:block; }
  .page-hero{ background:#fff; }
}
.album-nav .back a{ max-width:none; display:inline-flex; flex-direction:row; align-items:center; color:var(--key-700); font-size:.875rem; }
.album-nav .back a:hover{ color:#fff; }
.page-hero h1.long{ font-size:1.5rem; line-height:1.35; }
@media (max-width:760px){ .page-hero h1.long{ font-size:1.125rem; } }
.footer-meta-right{ text-align:left; }
/* contrast (WCAG 1.4.3) on tinted backgrounds */
.side-help a,.embed-gate a{ color:var(--key-900); text-decoration:underline; }
.prose a,.doc-list .sub a,.cb-msg a{ color:#0A58CA; }

/* ---------------------------------------------------------------------- */
/* 14. FACES — keep heads in the picture when a photo is cropped to fit     */
/*     (people are usually in the upper part of event photos).               */
/*     A slide can set its own focus point: <img style="--fp:30% 20%">       */
/* ---------------------------------------------------------------------- */
.slide img{ object-position:var(--fp,50% 25%); }
.gal-card .th img,.album-grid img,.feed-item img,.in-focus-box img{ object-position:50% 25%; }
/* Phones: the photo on top (3:2), the heading in a band below it,
   so long headings no longer cover the faces in the photo. */
@media (max-width:760px){
  .slides{ aspect-ratio:auto; height:calc(100vw * 2 / 3 + 172px); max-height:none; }
  .slide img{ height:calc(100vw * 2 / 3); }
  .slide .cap{ top:calc(100vw * 2 / 3); bottom:0; background:var(--key-900); padding:10px 0 52px; }
  .slide .cap p.t{ font-size:.9375rem; line-height:1.4; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
  .slide .cap .date{ font-size:.8125rem; }
}
@media (max-width:760px){
  .hero-ctrl .dots{ display:none; }
  .slide-count{ white-space:nowrap; margin-right:6px; }
}

/* Slider headings: smaller text (requested by the Mission, 05 Nov 2026) */
.slide .cap{ padding:48px 0 52px; }
.slide .cap p.t{ font-size:1.125rem; font-weight:600; line-height:1.45; max-width:820px; }
.slide .cap .date{ font-size:.8125rem; }
@media (max-width:760px){
  .slide .cap{ padding:10px 0 52px; }
  .slide .cap p.t{ font-size:.875rem; }
  .slide .cap .date{ font-size:.75rem; }
}

/* ---------------------------------------------------------------------- */
/* 15. HOME SLIDER — the whole photo is always shown (no face is cut).      */
/*     The space around it is a blurred copy of the same photo.             */
/* ---------------------------------------------------------------------- */
.slide{ overflow:hidden; background:var(--key-900); }
.slide::before{ content:""; position:absolute; inset:-30px; background:var(--bg,none) center/cover no-repeat; filter:blur(20px) brightness(.55); }
.slide picture,.slide img{ position:relative; }
.slide img{ object-fit:contain; object-position:center; }
.hero-ctrl .dots{ display:none; }          /* 60+ slides: the counter replaces the dots */
.slide-count{ font-size:.8125rem; font-weight:600; white-space:nowrap; margin-right:6px; }
@media (max-width:760px){
  .slide::before{ bottom:172px; }
}
