/* HUDCO Cares gallery: DBIM palette and typography variables only.
   Keep typography.css and ColorPalette.css loaded globally before this file. */
.hudco-care-gallery-section { padding:5px 0 5px; background:var(--surface-primary); color:var(--text-primary); font-family:var(--font-family-primary); }
.hudco-care-gallery-container { width:min(100% - 40px,1450px); margin-inline:auto; }
#hudcoCareGalleryHeading { font-family:var(--font-family-primary); font-size:var(--fs-desktop-h2); font-weight:var(--font-bold); line-height:var(--lh-heading-2); color:var(--text-primary); margin:0 0 24px; }
.hudco-care-slider { display:flex; align-items:center; gap:12px; min-width:0; }
.hudco-care-slider-viewport { flex:1; min-width:0; overflow-x:auto; overflow-y:hidden; scrollbar-width:none; scroll-behavior:smooth; }
.hudco-care-slider-viewport::-webkit-scrollbar { display:none; }
.hudco-care-gallery-grid { display:flex; gap:25px; align-items:stretch; }
.hudco-care-gallery-card { appearance:none; display:block; flex:0 0 calc((100% - 50px)/3); min-width:0; box-sizing:border-box; margin:0; padding:0; border:1px solid var(--border-light); border-radius:13px; overflow:hidden; background:var(--surface-primary); color:var(--text-primary); font-family:var(--font-family-primary); text-align:left; cursor:pointer; }
.hudco-care-gallery-image { display:block; position:relative; width:100%; aspect-ratio:16/9; overflow:hidden; background:var(--surface-secondary); }
.hudco-care-gallery-image img { display:block; width:100%; height:100%; object-fit:cover; }
.hudco-care-gallery-title { display:block; padding:15px 17px; font-size:var(--fs-desktop-p1); font-weight:var(--font-semibold); line-height:var(--lh-body); overflow-wrap:anywhere; }
.hudco-care-gallery-zoom { position:absolute; right:12px; bottom:12px; display:flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:9px; background:var(--surface-primary); color:var(--brand-900); border:1px solid var(--border-light); pointer-events:none; }
.hudco-care-gallery-zoom svg { width:19px; height:19px; }
.hudco-care-slider-arrow { flex:0 0 42px; width:42px; height:42px; display:flex; align-items:center; justify-content:center; border:1px solid var(--border-medium); border-radius:50%; background:var(--surface-primary); color:var(--brand-900); font-family:inherit; font-size:var(--fs-desktop-h3); cursor:pointer; }
.hudco-care-slider-arrow:hover:not(:disabled) { background:var(--brand-900); color:var(--surface-primary); }
.hudco-care-slider-arrow:disabled { opacity:.35; cursor:not-allowed; }
.hudco-care-slider-status { margin-top:14px; text-align:right; color:var(--text-secondary); font-size:var(--fs-desktop-p2); font-variant-numeric:tabular-nums; }
.hudco-care-gallery-empty { padding:50px 15px; font-size:var(--fs-desktop-p1); color:var(--text-secondary); text-align:center; }
.hudco-care-gallery-card:focus-visible, .hudco-care-slider-arrow:focus-visible, .hudco-care-slider-viewport:focus-visible { outline:3px solid var(--brand-700); outline-offset:3px; }
.hudco-care-photo-modal[hidden] { display:none!important; }
.hudco-care-photo-modal { position:fixed; inset:0; z-index:10000; display:flex; align-items:center; justify-content:center; padding:22px; background:rgba(0,0,0,.92); font-family:var(--font-family-primary); }
.hudco-care-modal-content { display:flex; flex-direction:column; width:min(100%,1250px); max-height:calc(100dvh - 44px); color:var(--surface-primary); }
.hudco-care-modal-topbar { display:flex; justify-content:space-between; align-items:center; min-height:46px; }
.hudco-care-modal-counter { font-size:var(--fs-desktop-p2); font-weight:var(--font-semibold); font-variant-numeric:tabular-nums; }
.hudco-care-modal-close,.hudco-care-modal-arrow { display:flex; align-items:center; justify-content:center; flex-shrink:0; border:1px solid var(--border-medium); background:transparent; color:var(--surface-primary); font-family:inherit; cursor:pointer; }
.hudco-care-modal-close { width:42px; height:42px; border-radius:50%; font-size:var(--fs-desktop-h2); }
.hudco-care-modal-viewer { display:flex; align-items:center; gap:15px; min-height:0; flex:1; }
.hudco-care-modal-arrow { width:45px; height:45px; border-radius:50%; font-size:var(--fs-desktop-h3); }
.hudco-care-modal-arrow[hidden] { display:none; }
.hudco-care-modal-image-wrap { display:flex; justify-content:center; align-items:center; min-width:0; min-height:0; flex:1; }
.hudco-care-modal-image-wrap img { display:block; max-width:100%; max-height:calc(100dvh - 180px); width:auto; height:auto; object-fit:contain; }
.hudco-care-modal-caption { margin:0; padding:20px 45px 5px; text-align:center; font-size:var(--fs-desktop-p1); line-height:var(--lh-body); overflow-wrap:anywhere; color:var(--surface-primary); }
.hudco-care-modal-close:focus-visible,.hudco-care-modal-arrow:focus-visible { outline:3px solid var(--surface-primary); outline-offset:3px; }
body.hudco-care-modal-open { overflow:hidden; }
@media(min-width:768px) and (max-width:1023px) { .hudco-care-gallery-title,.hudco-care-modal-caption { font-size:15px; /* DBIM tablet paragraph scale */ } .hudco-care-slider-status,.hudco-care-modal-counter { font-size:13px; /* DBIM tablet compact scale */ } }
@media(max-width:991px) { .hudco-care-gallery-grid { gap:22px; } .hudco-care-gallery-card { flex-basis:calc((100% - 22px)/2); } }
@media(max-width:767px) { #hudcoCareGalleryHeading { font-size:var(--fs-mobile-h2); } .hudco-care-gallery-title,.hudco-care-modal-caption,.hudco-care-gallery-empty { font-size:var(--fs-mobile-p1); } .hudco-care-slider-status,.hudco-care-modal-counter { font-size:var(--fs-mobile-p2); } }
@media(max-width:600px) { .hudco-care-gallery-container { width:min(100% - 30px,1450px); } .hudco-care-gallery-section { padding:25px 0 45px; } .hudco-care-gallery-grid { gap:16px; } .hudco-care-gallery-card { flex-basis:100%; } .hudco-care-slider { gap:6px; } .hudco-care-slider-arrow { flex-basis:30px; width:30px; height:36px; font-size:var(--fs-mobile-h3); } .hudco-care-gallery-title { padding:13px 15px; } .hudco-care-photo-modal { padding:12px; } .hudco-care-modal-viewer { gap:5px; } .hudco-care-modal-arrow { width:32px; height:38px; border-radius:8px; } .hudco-care-modal-image-wrap img { max-height:calc(100dvh - 175px); } .hudco-care-modal-caption { padding:15px 10px 5px; } }
@media(prefers-reduced-motion:reduce) { .hudco-care-slider-viewport { scroll-behavior:auto; } }

/* Accessible controls and focus; colors from HUDCO DBIM. */
.hudco-care-slider-arrow:focus-visible,.hudco-care-gallery-card:focus-visible { outline:3px solid var(--brand-700); outline-offset:3px; }
