/* Step 35F - final visual contracts for public and staff pages. */

/* Dark surfaces always own their foreground colors. */
.page-hero,.queue-hero,.visitor-emergency,.footer-emergency{color:#fff}
.page-hero :is(h1,h2),.queue-hero :is(h1,h2),.visitor-emergency :is(h1,h2){color:#fff!important}
.page-hero p,.queue-hero p{color:#e5f1ff!important}
.visitor-emergency p{color:#ffe9e9!important}
.visitor-emergency .section-kicker{color:#fff!important}
.visitor-emergency-contact :is(span,strong){color:#fff}

/* All locally drawn icons use the same optical center. */
.ui-line-icon{vertical-align:middle}
.ui-line-icon>i{margin:0!important}
.footer-emergency-icon.ui-line-icon{display:grid;place-items:center}
.footer-emergency-icon.ui-line-icon>i{top:50%!important;left:50%!important;margin:0!important;transform:translate(-50%,-50%)!important}
.admin-kpi-card>.ui-line-icon{display:grid;place-items:center}
.admin-kpi-card>.ui-line-icon>i{top:50%;left:50%;margin:0;transform:translate(-50%,-50%)}
.admin-kpi-card>.ui-line-icon-doctor>i{top:calc(50% - 8px)}
.admin-kpi-card>.ui-line-icon-registration>i{top:calc(50% - 3px)}
.queue-hero-line-icon.ui-line-icon{width:58px;height:58px;flex-basis:58px;color:#fff;border-color:rgba(255,255,255,.3);border-radius:18px;background:rgba(255,255,255,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.16)}
.queue-hero-line-icon.ui-line-icon>i::after{border-color:#3979c9}

/* Shared inner-page introduction and result language. */
.content-index-hero{background:linear-gradient(115deg,#082e60,#155faa 60%,#0b8394)}
.content-index-hero .eyebrow{color:#fff}
.content-index-section{padding-top:38px}
.content-index-filter{display:grid;grid-template-columns:minmax(240px,1.4fr) minmax(190px,.65fr) auto auto;gap:12px;align-items:end;margin-bottom:18px;padding:18px}
.content-index-filter .field{margin:0}.content-index-filter .btn{min-height:46px}
.content-result-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:28px 0 18px}
.content-result-heading h2{margin:4px 0 0;color:#11355c}.content-result-heading p{margin:0;color:#66778b}
.content-index-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.content-index-card{display:flex;min-width:0;flex-direction:column;padding:0;overflow:hidden}
.content-index-card .content-card-cover{position:relative;display:block;height:205px;overflow:hidden;background:linear-gradient(145deg,#eaf3fb,#d8e8f5)}
.content-index-card .content-card-cover img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .25s}
.content-index-card:hover .content-card-cover img{transform:scale(1.025)}
.content-cover-placeholder{height:100%;display:grid;place-items:center}.content-cover-placeholder .ui-line-icon{width:62px;height:62px;flex-basis:62px}
.content-index-card-body{display:flex;flex:1;flex-direction:column;padding:20px}
.content-index-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#55708c;font-size:11px;font-weight:750}
.content-index-meta span:first-child{color:#0d63ad;text-transform:uppercase;letter-spacing:.06em}
.content-index-card h2,.content-index-card h3{margin:10px 0 7px;color:#0e3158;font-size:19px;line-height:1.35}
.content-index-card h2 a,.content-index-card h3 a{text-decoration:none}.content-index-card p{margin:0;color:#607287;font-size:13px;line-height:1.65}
.content-index-card .text-link{margin-top:auto;padding-top:17px}
.content-pagination{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:28px}.content-pagination span{padding:8px 12px;color:#5f7185;font-size:12px}
.empty-state .empty-icon{display:grid;place-items:center;margin-inline:auto}
.empty-state .empty-icon .ui-line-icon{margin:0}

/* FAQ */
.faq-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:24px;align-items:start}
.faq-side{position:sticky;top:104px;padding:18px}.faq-side h2{margin:0 0 5px;color:#12385f;font-size:18px}.faq-side p{margin:0 0 15px;color:#6c7d90;font-size:12px}
.faq-category-list{display:grid;gap:6px}.faq-category-list a{padding:9px 11px;border-radius:9px;color:#315572;text-decoration:none;font-size:12px;font-weight:750}.faq-category-list a:hover,.faq-category-list a.active{color:#0d5da8;background:#eaf4ff}
.faq-main{min-width:0}.faq-group-modern{scroll-margin-top:100px;margin-bottom:28px}.faq-group-modern>h2{margin:0 0 12px;color:#10365d;font-size:21px}
.faq-item-modern{margin-bottom:9px;border:1px solid #d8e3ed;border-radius:13px;background:#fff;overflow:hidden}
.faq-item-modern summary{display:grid;grid-template-columns:minmax(0,1fr) 28px;gap:12px;align-items:center;padding:16px 18px;cursor:pointer;color:#173d64;font-weight:800;list-style:none}
.faq-item-modern summary::-webkit-details-marker{display:none}.faq-item-modern summary::after{content:"+";display:grid;place-items:center;width:28px;height:28px;border-radius:9px;color:#1769b5;background:#e8f3ff;font-size:18px}
.faq-item-modern[open] summary{color:#0c5da8;background:#f6faff}.faq-item-modern[open] summary::after{content:"−"}
.faq-item-answer{padding:17px 18px;border-top:1px solid #e3eaf2;color:#536a80;line-height:1.75}

/* Contact and profile */
.contact-modern-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.75fr);gap:22px;align-items:start}
.contact-method-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:16px}
.contact-method-card{display:grid;grid-template-columns:52px minmax(0,1fr);gap:14px;align-items:center;min-height:116px}
.contact-method-card .ui-line-icon{width:52px;height:52px;flex-basis:52px}.contact-method-card h2,.contact-method-card h3{margin:0 0 4px;color:#12375d;font-size:16px}.contact-method-card p,.contact-method-card a{margin:0;color:#607489;font-size:13px;overflow-wrap:anywhere}
.contact-map-card{padding:20px}.contact-map-card h2{margin:0 0 12px;color:#12375d;font-size:19px}.contact-map-card .map-embed iframe{min-height:330px}
.contact-form-modern{position:sticky;top:102px}.contact-form-modern h2{margin:0}.contact-form-modern>p{margin:6px 0 18px}
.profile-intro{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr);gap:40px;align-items:center}
.profile-intro-media{min-height:420px;border-radius:24px;overflow:hidden;box-shadow:0 18px 45px rgba(15,48,84,.13)}
.profile-intro-media img{width:100%;height:100%;min-height:420px;display:block;object-fit:cover}
.profile-intro-copy h2{margin:6px 0 14px;color:#102f56;font-size:clamp(1.8rem,3vw,2.55rem)}
.profile-contact-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-top:22px}.profile-contact-item{padding:15px;border:1px solid #d9e4ee;border-radius:13px;background:#f8fbfe}.profile-contact-item span,.profile-contact-item strong{display:block}.profile-contact-item span{color:#6b7d90;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.profile-contact-item strong{margin-top:4px;color:#173d64;font-size:13px;overflow-wrap:anywhere}
.profile-vision-section{background:#f3f7fb}.profile-vision-card{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:30px;align-items:center}.profile-vision-image{height:330px;border-radius:20px;overflow:hidden}.profile-vision-image img{width:100%;height:100%;object-fit:cover}
.profile-cta{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:26px;padding:22px;border:1px solid #cfe0ef;border-radius:17px;background:#edf6ff}.profile-cta h3{margin:0 0 4px;color:#12375d}.profile-cta p{margin:0;color:#60758a;font-size:13px}.profile-cta .actions{margin:0;flex-shrink:0}

.admin-dashboard-secondary{margin-top:18px}

/* Offline state uses the same card and typography language as the public portal. */
.offline-shell{border-radius:24px!important;box-shadow:0 24px 60px rgba(12,47,84,.14)!important}
.offline-shell .section-kicker{display:block;margin-bottom:8px}.offline-shell .btn{margin-top:8px}

@media(max-width:980px){
  .content-index-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .faq-layout,.contact-modern-layout,.profile-intro,.profile-vision-card{grid-template-columns:1fr}
  .faq-side,.contact-form-modern{position:static}
  .profile-intro-media{min-height:340px}.profile-intro-media img{min-height:340px}
}
@media(max-width:700px){
  .content-index-filter,.content-index-grid,.contact-method-grid,.profile-contact-strip{grid-template-columns:1fr}
  .content-index-filter .btn{width:100%}.content-result-heading,.profile-cta{align-items:flex-start;flex-direction:column}
  .profile-cta .actions{width:100%}.profile-cta .btn{flex:1}
  .queue-hero-line-icon.ui-line-icon{width:50px;height:50px;flex-basis:50px;border-radius:15px}
}
