/**
 * Innovative Security Solutions — canonical site stylesheet.
 * Global primitives, frame, fallback header/footer and reusable CMS components.
 * Component-specific Elementor overrides belong in homepage.css or future
 * page-family stylesheets rather than being layered here.
 */

/* Reset / base ------------------------------------------------------------ */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
:where(body.iss-site){margin:0;background:var(--iss-white);color:var(--iss-navy);font-family:var(--iss-font-body);font-size:var(--iss-body-size);line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
:where(body.iss-site) img{display:block;max-width:100%;height:auto}
:where(body.iss-site) a{color:inherit;text-decoration:none}
:where(body.iss-site) a:hover{color:var(--iss-gold)}
:where(body.iss-site) button,:where(body.iss-site) input,:where(body.iss-site) select,:where(body.iss-site) textarea{font:inherit}
:where(body.iss-site) h1,:where(body.iss-site) h2,:where(body.iss-site) h3,:where(body.iss-site) h4,:where(body.iss-site) h5,:where(body.iss-site) h6{margin:0 0 .55em;color:var(--iss-navy);font-family:var(--iss-font-heading);font-weight:400;letter-spacing:-.025em}
:where(body.iss-site) h1{font-size:var(--iss-h1-size);line-height:1}
:where(body.iss-site) h2{font-size:var(--iss-h2-size);line-height:1.03}
:where(body.iss-site) h3{font-size:var(--iss-h3-size);line-height:1.1}
:where(body.iss-site) p{margin:0 0 1.2em}
:where(body.iss-site) ul,:where(body.iss-site) ol{padding-left:1.25rem}
:where(body.iss-site) blockquote{margin:2rem 0;padding:.2rem 0 .2rem 1.5rem;border-left:2px solid var(--iss-gold);font-family:var(--iss-font-heading);font-size:1.5rem;line-height:1.25}

.screen-reader-text{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);border:0;word-wrap:normal}
.screen-reader-text:focus{z-index:100000;top:8px;left:8px;display:block;width:auto;height:auto;padding:14px 18px;clip:auto;clip-path:none;background:#fff;color:#111;font-size:var(--iss-small-size);line-height:normal}

/* Shared frame ------------------------------------------------------------ */
:where(body.iss-site) .container,:where(body.iss-site) .iss-container{width:min(calc(100% - var(--iss-desktop-gutter-total)),var(--iss-content-width));margin-inline:auto}
@media(min-width:1200px){
  :where(body.iss-site) .container,:where(body.iss-site) .iss-container{width:min(var(--iss-desktop-frame-percent),var(--iss-content-width));max-width:none}
}
.iss-reading-width{width:min(100%,var(--iss-reading-width));margin-inline:auto}
.iss-section{padding:var(--iss-section-space) 0}
.iss-main{min-height:50vh}
.iss-main--full-width>.elementor,.iss-page-content>.elementor{width:100%}
.iss-prose{color:#424C54;font-size:16px;line-height:1.68}
.iss-prose h2{margin-top:2.2em}.iss-prose h3{margin-top:1.8em}.iss-prose a{text-decoration:underline;text-underline-offset:3px}.iss-prose li{margin:.45em 0}

/* Shared controls --------------------------------------------------------- */
:where(body.iss-site) .eyebrow{margin:0 0 16px;color:var(--iss-gold);font-family:var(--iss-font-body);font-size:var(--iss-small-size);font-weight:700;line-height:1.2;letter-spacing:.06em;text-transform:uppercase}
:where(body.iss-site) .btn,:where(body.iss-site) .iss-button{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 17px;border:1px solid var(--iss-navy);border-radius:var(--iss-button-radius);font-family:var(--iss-font-body);font-size:var(--iss-button-size);font-weight:700;line-height:1;text-decoration:none;transition:background var(--iss-transition),color var(--iss-transition),border-color var(--iss-transition)}
:where(body.iss-site) .btn-primary,:where(body.iss-site) .iss-button--primary{background:var(--iss-navy);border-color:var(--iss-navy);color:#fff}
:where(body.iss-site) .btn-primary:hover,:where(body.iss-site) .iss-button--primary:hover{background:var(--iss-gold);border-color:var(--iss-gold);color:var(--iss-navy)}
:where(body.iss-site) .btn-secondary,:where(body.iss-site) .iss-button--secondary{min-height:auto;padding-inline:0;border:0;background:transparent;color:var(--iss-navy)}
:where(body.iss-site) .text-link{display:inline-flex;align-items:center;gap:8px;padding:0;border:0;font-size:var(--iss-button-size);font-weight:700;line-height:1.2;text-decoration:none}

/* Fallback header --------------------------------------------------------- */
.iss-topline{display:none}
.iss-site-header{position:relative;z-index:100;background:#fff;border-bottom:1px solid #efedeb}
.iss-site-header__inner{display:flex;align-items:center;gap:26px;min-height:82px}
.iss-site-brand{flex:0 0 150px;width:150px}
.iss-site-brand img,.iss-site-brand .custom-logo{display:block;width:auto;max-width:145px;height:auto;max-height:52px}
.iss-primary-nav{margin-left:auto}
.iss-menu{display:flex;align-items:center;gap:26px;margin:0;padding:0;list-style:none}
.iss-menu>li{position:relative}
.iss-menu a{display:block;padding:31px 0;color:var(--iss-navy);font-size:var(--iss-button-size);font-weight:500}
.iss-menu .sub-menu{position:absolute;top:100%;left:-18px;min-width:260px;margin:0;padding:10px 18px;list-style:none;background:#fff;border:1px solid var(--iss-line);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity var(--iss-transition),visibility var(--iss-transition),transform var(--iss-transition)}
.iss-menu li:hover>.sub-menu,.iss-menu li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}
.iss-menu .sub-menu a{padding:9px 0}
.iss-header-cta{display:inline-flex;align-items:center;min-height:37px;padding:0 17px;white-space:nowrap;background:#fff;border:1px solid var(--iss-navy);border-radius:var(--iss-button-radius);color:var(--iss-navy);font-size:var(--iss-button-size);font-weight:700}
.iss-header-cta:hover{background:var(--iss-navy);color:#fff}
.iss-nav-toggle{display:none;width:44px;height:44px;margin-left:auto;padding:10px;border:0;background:none}
.iss-nav-toggle span:not(.screen-reader-text){display:block;height:1px;margin:6px 0;background:var(--iss-navy);transition:transform var(--iss-transition),opacity var(--iss-transition)}

/* Elementor authoring shell --------------------------------------------- */
.iss-section-host,.iss-section-host>.e-con-inner,.iss-section-host>.elementor-widget,.iss-section-host .elementor-widget-container{display:block;width:100%;max-width:none;margin:0;padding:0}

/* Generic CMS cards / archives ------------------------------------------ */
.iss-content-grid{display:grid;grid-template-columns:repeat(var(--iss-grid-columns,3),minmax(0,1fr));gap:18px}
.iss-content-card{min-width:0;overflow:hidden;background:#fff;border:1px solid var(--iss-line);border-radius:var(--iss-card-radius)}
.iss-content-card__media{display:block;overflow:hidden;aspect-ratio:16/10;background:var(--iss-warm)}
.iss-content-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .25s ease}
.iss-content-card:hover .iss-content-card__media img{transform:scale(1.015)}
.iss-content-card__body{padding:24px}.iss-content-card__title{margin-bottom:12px;font-size:24px}.iss-content-card__body p{color:var(--iss-neutral);font-size:var(--iss-body-size);line-height:1.55}
.iss-filter-bar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:28px;padding:16px;background:var(--iss-canvas);border:1px solid var(--iss-line)}
.iss-filter-bar select{min-height:44px;padding:0 38px 0 12px;background:#fff;border:1px solid var(--iss-line-strong);color:var(--iss-navy)}
.iss-pagination{display:flex;gap:6px;margin-top:32px}.iss-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;border:1px solid var(--iss-line)}.iss-pagination .current{background:var(--iss-navy);color:#fff}
.iss-standard-entry{padding:24px 0;border-bottom:1px solid var(--iss-line)}.iss-single__hero{margin:36px 0}.iss-empty-state{padding:18px;background:var(--iss-canvas);border:1px solid var(--iss-line)}

/* Official threat-level module ------------------------------------------ */
.threat-check{padding:40px 0;background:#f8f6f4}
.threat-check-inner{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);align-items:center;gap:82px;padding:31px 40px;background:#fff;border-radius:var(--iss-card-radius)}
.threat-heading{display:flex;align-items:center;gap:22px}.threat-icon{display:flex;flex:0 0 46px;align-items:center;justify-content:center}.threat-icon svg{width:40px;height:40px;color:var(--iss-gold)}
.threat-check h2{max-width:310px;margin:0;color:var(--iss-navy);font-family:var(--iss-font-heading);font-size:32px;line-height:1.08;letter-spacing:-.02em}
.threat-check-copy p{max-width:610px;margin:0 0 11px;color:var(--iss-copy);font-size:var(--iss-body-size);line-height:1.5}.threat-check-copy p:last-child{margin-bottom:0}
.threat-actions{display:flex;align-items:center;gap:18px;margin-top:14px}.threat-actions .btn{background:var(--iss-gold);border-color:var(--iss-gold);color:#fff;font-size:var(--iss-button-size)}.threat-actions .text-link{color:var(--iss-navy);font-size:var(--iss-button-size);text-transform:uppercase}

/* Fallback footer -------------------------------------------------------- */
.iss-site-footer{background:#f0ecea;border-top:0;color:var(--iss-navy);font-size:15px}
.iss-site-footer__main{display:grid;grid-template-columns:1.25fr .9fr .9fr .82fr;gap:48px;padding-top:41px;padding-bottom:33px}
.iss-footer-brand__logo{width:145px}.iss-footer-brand__logo img{max-height:52px}.iss-footer-brand p{max-width:240px;margin:15px 0 0;color:var(--iss-copy);font-size:15px;line-height:1.4}
.iss-footer-label{display:block;margin-bottom:9px;color:var(--iss-gold);font-size:15px;font-weight:500;line-height:1.2;letter-spacing:.02em}
.iss-footer-contact>.iss-footer-label,.iss-footer-office>.iss-footer-label:first-child,.iss-footer-assurance-wrap>.iss-footer-label{font-size:20px}
.iss-footer-contact a,.iss-footer-office p,.iss-footer-office a{color:var(--iss-navy);font-size:15px;line-height:1.4}
.iss-footer-contact>div+div{margin-top:14px}.iss-footer-assurance{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:12px}.iss-footer-assurance img{width:auto;max-width:62px;max-height:34px;border-radius:0}
.iss-footer-nav-wrap{padding:0;border-top:1px solid #d7d1cd;border-bottom:1px solid #d7d1cd}.iss-footer-menu{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin:0;padding:0;list-style:none}.iss-footer-menu>li{padding:14px 18px;border-right:1px solid #d7d1cd}.iss-footer-menu>li:first-child{padding-left:0}.iss-footer-menu>li:last-child{border-right:0}.iss-footer-menu>li>a{color:var(--iss-navy);font-size:18px;font-weight:500;line-height:1.2}.iss-footer-menu .sub-menu{display:none}
.iss-footer-directory{background:#65676a;color:#fff}.iss-footer-directory__inner{display:grid;grid-template-columns:125px 1fr;align-items:start;gap:22px;padding:14px 0 16px}.iss-footer-directory__title{color:#fff;font-family:var(--iss-font-heading);font-size:20px;line-height:1.25}.iss-footer-directory__links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px 28px}.iss-footer-directory__links a{color:#fff;font-size:16px;line-height:1.35}
.iss-footer-legal{background:#fff;color:var(--iss-copy);font-size:var(--iss-small-size)}.iss-footer-legal__inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:37px}.iss-legal-menu{display:flex;gap:14px;margin:0;padding:0;list-style:none}.iss-legal-menu a{color:var(--iss-copy);font-size:15px}
