/* Shared public-site component fixes. Keep page-specific rules in their existing stylesheets. */
.content-card-image{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:12px;display:block}
.site-directory-link{padding:0 0 22px}
.navlinks .nav-cta{white-space:nowrap}
@media (max-width:900px){.navlinks{max-height:calc(100vh - 76px);overflow-y:auto}}

.detail-hero-image{width:100%;max-height:520px;object-fit:cover;border-radius:18px;margin-bottom:30px;display:block}
.account-nav{display:flex;align-items:center;justify-content:space-between;padding-top:18px;padding-bottom:18px}.account-nav .brand img{max-height:38px}.account-nav nav{display:flex;gap:16px}

/* CMS-managed public content */
.cms-content{max-width:900px;font-size:1.05rem;line-height:1.85}.cms-content h2,.cms-content h3{margin:1.5em 0 .55em}.cms-content p,.cms-content ul,.cms-content ol{margin:.8em 0}.cms-content img{max-width:100%;height:auto;border-radius:18px}.cms-featured-image{width:100%;max-height:520px;object-fit:cover;border-radius:22px;margin-bottom:32px}.partner-logo{max-width:150px;max-height:72px;object-fit:contain}.faq-list{display:grid;gap:14px}.faq-item{padding:20px 22px;border:1px solid #e5e7eb;border-radius:16px;background:#fff}.faq-item summary{font-weight:800;cursor:pointer}.faq-item p{margin:12px 0 0;line-height:1.7}

/* Admin-to-public content consistency */
.managed-card{overflow:hidden;display:flex;flex-direction:column}.managed-card .content-card-image{width:100%;aspect-ratio:16/9;object-fit:cover}.managed-card-body{padding:1.15rem;display:flex;flex-direction:column;gap:.7rem;height:100%}.managed-card-body h3,.managed-card-body p{margin:0}.managed-meta{display:flex;flex-wrap:wrap;gap:.45rem .85rem;font-size:.88rem;opacity:.82}.managed-meta span{display:inline-block}.managed-card .text-link{margin-top:auto}.detail-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin:1.25rem 0}.detail-facts>div{padding:1rem;border:1px solid rgba(127,127,127,.2);border-radius:14px}.detail-facts p{margin:.35rem 0 0}.detail-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.detail-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:14px}.cms-content{max-width:900px}.cms-content img{max-width:100%;height:auto}

/* Homepage curation + complete footer directory */
.section-more{margin-top:28px;display:flex;justify-content:flex-start}.footer-directory-grid{grid-template-columns:minmax(220px,1.35fr) repeat(5,minmax(130px,1fr));gap:32px}.footer-directory-grid>div{display:flex;flex-direction:column;gap:10px}.footer-directory-grid .footer-brand{display:block}.footer-directory-grid .footer-brand img{margin-bottom:14px}.footer-location{opacity:.72}.footer-socials{display:flex;gap:16px;flex-wrap:wrap}.footer-socials a{color:inherit}@media(max-width:1100px){.footer-directory-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:720px){.footer-directory-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.footer-directory-grid{grid-template-columns:1fr}}

/* KiruDev branded page loader */
.kd-page-loader{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:24px;background:#fff;opacity:1;visibility:visible;pointer-events:all;transition:opacity .42s ease,visibility .42s ease}
.kd-page-loader.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.kd-loader-inner{position:relative;width:min(86vw,430px);min-height:330px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.kd-loader-logo{position:relative;z-index:2;width:min(72vw,330px);height:auto;object-fit:contain;animation:kdLogoFloat 1.7s ease-in-out infinite;filter:drop-shadow(0 18px 35px rgba(11,85,238,.12))}
.kd-loader-orbit{position:absolute;z-index:1;top:50%;left:50%;width:min(82vw,390px);height:min(82vw,390px);max-width:390px;max-height:390px;transform:translate(-50%,-55%);border-radius:50%;border:2px solid rgba(11,85,238,.08)}
.kd-loader-orbit span{position:absolute;inset:-2px;border-radius:50%;border:4px solid transparent;border-top-color:#0b55ee;animation:kdOrbit 1.25s linear infinite}
.kd-loader-orbit span:nth-child(2){inset:18px;border-width:2px;border-top-color:transparent;border-right-color:rgba(11,85,238,.48);animation-duration:1.8s;animation-direction:reverse}
.kd-loader-orbit span:nth-child(3){inset:38px;border-width:2px;border-top-color:rgba(255,86,36,.78);animation-duration:2.25s}
.kd-loader-status{position:relative;z-index:2;margin-top:42px;font-family:Manrope,sans-serif;font-size:12px;font-weight:800;letter-spacing:.32em;text-transform:uppercase;color:#172033}
.kd-loader-status::after{content:'...';display:inline-block;width:1.8em;text-align:left;overflow:hidden;vertical-align:bottom;animation:kdDots 1.2s steps(4,end) infinite}
.kd-loader-line{position:relative;z-index:2;width:min(58vw,240px);height:4px;margin-top:15px;border-radius:999px;overflow:hidden;background:#e9eef7}
.kd-loader-line span{display:block;width:42%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0b55ee,#3988ff);animation:kdLoaderLine 1.05s ease-in-out infinite}
@keyframes kdOrbit{to{transform:rotate(360deg)}}
@keyframes kdLogoFloat{0%,100%{transform:translateY(0) scale(.985)}50%{transform:translateY(-7px) scale(1)}}
@keyframes kdLoaderLine{0%{transform:translateX(-120%)}50%{transform:translateX(90%)}100%{transform:translateX(240%)}}
@keyframes kdDots{0%{width:0}100%{width:1.8em}}
@media(max-width:520px){.kd-loader-inner{min-height:280px}.kd-loader-logo{width:min(76vw,300px)}.kd-loader-orbit{width:min(88vw,340px);height:min(88vw,340px)}.kd-loader-status{margin-top:34px}}
@media(prefers-reduced-motion:reduce){.kd-loader-logo,.kd-loader-orbit span,.kd-loader-line span,.kd-loader-status::after{animation:none}.kd-page-loader{transition:none}}

/* Customer Portal entry points — intentionally distinct from KiruDev Academy/web accounts. */
.navlinks .nav-portal{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 14px;border:1px solid rgba(11,85,238,.28);color:#0b55ee;background:#f5f8ff;font-weight:800;white-space:nowrap}
.navlinks .nav-portal:hover{background:#eaf1ff;color:#063ed1}
.product-actions,.managed-card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:auto}
.product-actions .text-link,.managed-card-actions .text-link{margin-top:0}
.portal-buy-link,.portal-commerce-link{font-weight:800;color:#0b55ee}
.product.blue .portal-buy-link,.product.outline .portal-buy-link{color:#fff}
.page-links .portal-commerce-link{background:#0b55ee;color:#fff;border-color:#0b55ee}
@media(max-width:1280px) and (min-width:1121px){.navlinks{gap:11px}.navlinks>a{font-size:.78rem}.navlinks .nav-portal{padding:9px 10px}.navlinks .nav-cta{padding-inline:12px}}
@media(max-width:1120px){.navlinks .nav-portal{width:100%;margin-top:4px}.product-actions,.managed-card-actions{align-items:flex-start}}
