/* Components. Specificity kept flat: one class per component, no element selectors. */

/* ---------- eyebrow ---------- */
.smt-eyebrow{
  display:inline-block;
  margin:0 0 var(--s-3);
  font-size:var(--t-xs);
  font-weight:600;
  letter-spacing:var(--ls-wide);
  text-transform:uppercase;
  color:var(--smt-blue-700);
  text-decoration:none;
}
.smt-dark .smt-eyebrow{color:var(--smt-blue-300)}

/* ---------- buttons ---------- */
.smt-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:var(--s-2);
  min-height:48px;
  padding:0 var(--s-6);
  border:1.5px solid transparent;
  border-radius:var(--r-pill);
  font-family:var(--f-body);
  font-size:var(--t-sm);
  font-weight:600;
  line-height:1;
  text-decoration:none;
  cursor:pointer;
  transition:background-color var(--dur-base) var(--ease-out),
             border-color var(--dur-base) var(--ease-out),
             transform var(--dur-fast) var(--ease-out),
             filter var(--dur-base) var(--ease-out);
}
.smt-btn:hover{transform:translateY(-1px);text-decoration:none}
.smt-btn--primary{background-image:var(--grad-brand);color:var(--smt-white)}
.smt-btn--primary:hover{filter:brightness(.94);color:var(--smt-white)}
.smt-btn--secondary{background:var(--smt-white);color:var(--smt-blue-700);border-color:var(--c-border)}
.smt-btn--secondary:hover{background:var(--smt-blue-50);border-color:var(--smt-blue-300);color:var(--smt-blue-900)}
.smt-btn--ghost{background:transparent;color:var(--smt-blue-700)}
.smt-btn--ghost:hover{background:var(--smt-blue-50)}
.smt-dark .smt-btn--secondary{background:var(--smt-white);color:var(--smt-navy-900);border-color:transparent}
.smt-btn--sm{min-height:40px;padding:0 var(--s-4);font-size:var(--t-xs)}
.smt-btn--lg{min-height:56px;padding:0 var(--s-7);font-size:var(--t-base)}

/* ---------- announcement + utility bars ---------- */
.smt-announcement{background:var(--grad-brand);color:var(--smt-white);font-size:var(--t-sm)}
.smt-announcement__inner{display:flex;justify-content:center;align-items:center;gap:var(--s-3);min-height:44px;text-align:center}
.smt-announcement__link{color:var(--smt-white);text-decoration:underline}

.smt-utility{background:var(--smt-navy-900);color:#C7D6E4;font-size:var(--t-xs)}
.smt-utility__inner{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--s-3);min-height:40px}
.smt-utility__list,.smt-utility__menu{display:flex;flex-wrap:wrap;gap:var(--s-4);list-style:none;margin:0;padding:0}
.smt-utility__item a,.smt-utility__menu a{display:inline-flex;align-items:center;gap:var(--s-1);min-height:32px;color:inherit;text-decoration:none}
.smt-utility__item a:hover,.smt-utility__menu a:hover{color:var(--smt-white);text-decoration:underline}
.smt-utility__region{opacity:.65}
@media (max-width:767px){.smt-utility{display:none}}

/* ---------- header ---------- */
.smt-header{
  position:relative;
  z-index:var(--z-header);
  background:var(--smt-white);
  border-bottom:1px solid var(--c-border);
  transition:box-shadow var(--dur-base) var(--ease-out),background-color var(--dur-base) var(--ease-out);
}
.smt-has-sticky-header .smt-header{position:sticky;top:0}
.smt-header.is-scrolled{box-shadow:var(--sh-2)}
.smt-header__inner{display:flex;align-items:center;gap:var(--s-5);min-height:var(--header-h)}
.smt-brand{flex:0 0 auto;display:flex;align-items:center}
.smt-brand img{max-height:44px;width:auto;border-radius:0}
.smt-brand__text{font-family:var(--f-display);font-size:var(--t-lg);font-weight:700;color:var(--c-heading);text-decoration:none}
.smt-header__actions{margin-left:auto;display:flex;align-items:center;gap:var(--s-3)}

.smt-has-transparent-header .smt-header{
  position:absolute;inset-inline:0;top:0;
  background:transparent;border-bottom-color:transparent;
}
.smt-has-transparent-header .smt-header.is-scrolled{position:fixed;background:var(--smt-white);border-bottom-color:var(--c-border)}

/* ---------- primary nav (desktop) ---------- */
.smt-nav__list{display:flex;align-items:center;gap:var(--s-2);list-style:none;margin:0;padding:0}
.smt-nav__empty{margin:0;font-size:var(--t-sm);color:var(--c-text-muted)}
.smt-menu-item{position:relative}
.smt-menu-item--depth-0{display:flex;align-items:center}
.smt-menu-link{
  display:inline-flex;align-items:center;
  min-height:44px;padding:0 var(--s-3);
  font-size:var(--t-sm);font-weight:500;
  color:var(--c-heading);text-decoration:none;
  border-radius:var(--r-sm);
}
.smt-menu-link:hover{color:var(--smt-blue-700);background:var(--smt-blue-50)}
.smt-menu-toggle{
  display:inline-flex;align-items:center;justify-content:center;
  width:32px;height:44px;
  margin-left:calc(var(--s-2) * -1);
  background:none;border:0;color:var(--c-heading);cursor:pointer;
}
.smt-menu-toggle__icon{transition:transform var(--dur-base) var(--ease-out)}
.smt-menu-toggle[aria-expanded="true"] .smt-menu-toggle__icon{transform:rotate(180deg)}

.smt-mega{
  position:absolute;
  top:calc(100% + 1px);
  left:50%;
  transform:translateX(-50%);
  z-index:var(--z-mega);
  width:min(var(--w-default),calc(100vw - var(--gutter) * 2));
  background:var(--smt-white);
  border:1px solid var(--c-border);
  border-radius:var(--r-lg);
  box-shadow:var(--sh-4);
}
.smt-mega__inner{padding:var(--s-6)}
.smt-mega__cols{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-5) var(--s-6);list-style:none;margin:0;padding:0}
.smt-mega__col-title{
  display:block;margin-bottom:var(--s-3);
  font-size:var(--t-xs);font-weight:600;
  letter-spacing:var(--ls-wide);text-transform:uppercase;
  color:var(--smt-blue-700);
}
.smt-mega__links{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-1)}
.smt-mega__link{
  display:block;padding:var(--s-2) var(--s-3);
  min-height:44px;
  border-radius:var(--r-sm);
  font-size:var(--t-sm);color:var(--c-text);text-decoration:none;
}
.smt-mega__link:hover{background:var(--smt-blue-50);color:var(--smt-blue-900)}
.smt-mega__link-desc{display:block;font-size:var(--t-xs);color:var(--c-text-muted)}

.smt-submenu{
  position:absolute;top:100%;left:0;z-index:var(--z-mega);
  min-width:240px;padding:var(--s-3);
  list-style:none;margin:0;
  background:var(--smt-white);
  border:1px solid var(--c-border);
  border-radius:var(--r-md);
  box-shadow:var(--sh-3);
}

.smt-burger{display:none;width:44px;height:44px;padding:0;background:none;border:0;cursor:pointer}
.smt-burger__bars,
.smt-burger__bars::before,
.smt-burger__bars::after{
  display:block;width:22px;height:2px;
  background:var(--c-heading);border-radius:2px;
  transition:transform var(--dur-base) var(--ease-out),opacity var(--dur-fast) var(--ease-out);
}
.smt-burger__bars{position:relative;margin:0 auto}
.smt-burger__bars::before,.smt-burger__bars::after{content:"";position:absolute;left:0}
.smt-burger__bars::before{top:-7px}
.smt-burger__bars::after{top:7px}
.smt-burger[aria-expanded="true"] .smt-burger__bars{background:transparent}
.smt-burger[aria-expanded="true"] .smt-burger__bars::before{transform:translateY(7px) rotate(45deg)}
.smt-burger[aria-expanded="true"] .smt-burger__bars::after{transform:translateY(-7px) rotate(-45deg)}

.smt-nav-overlay{position:fixed;inset:0;z-index:var(--z-overlay);background:rgba(7,26,43,.5)}

/* ---------- mobile nav: off-canvas below 1200 ---------- */
@media (max-width:1200px){
  .smt-burger{display:block}
  .smt-nav{
    position:fixed;
    top:0;right:0;bottom:0;
    z-index:var(--z-drawer);
    width:min(420px,92vw);
    padding:var(--s-8) var(--s-5) var(--s-10);
    background:var(--smt-white);
    box-shadow:var(--sh-4);
    overflow-y:auto;
    overscroll-behavior:contain;
    transform:translateX(100%);
    transition:transform var(--dur-base) var(--ease-out);
    visibility:hidden;
  }
  .smt-nav.is-open{transform:none;visibility:visible}
  .smt-nav__list{flex-direction:column;align-items:stretch;gap:0}
  .smt-menu-item--depth-0{flex-wrap:wrap;border-bottom:1px solid var(--c-border)}
  .smt-menu-link{flex:1;min-height:52px;font-size:var(--t-base)}
  .smt-menu-toggle{width:52px;height:52px;margin:0}
  .smt-mega,.smt-submenu{
    position:static;transform:none;width:100%;
    border:0;border-radius:0;box-shadow:none;
    background:var(--smt-bg);
  }
  .smt-mega__inner{padding:var(--s-4) var(--s-3)}
  .smt-mega__cols{grid-template-columns:1fr;gap:var(--s-5)}
  .smt-header__actions .smt-btn{display:none}
}
@media (min-width:1201px){
  .smt-nav-overlay{display:none}
}

/* ---------- cards ---------- */
.smt-card{
  display:flex;flex-direction:column;
  background:var(--c-surface);
  border:1px solid var(--c-border);
  border-radius:var(--r-lg);
  box-shadow:var(--sh-1);
  overflow:hidden;
  transition:box-shadow var(--dur-base) var(--ease-out),
             border-color var(--dur-base) var(--ease-out),
             transform var(--dur-base) var(--ease-out);
}
.smt-card:hover{box-shadow:var(--sh-3);border-color:var(--smt-blue-300);transform:translateY(-3px)}
.smt-card__media{margin:0;aspect-ratio:16/10;overflow:hidden}
.smt-card__img{width:100%;height:100%;object-fit:cover;border-radius:0}
.smt-card__body{padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-2);flex:1}
.smt-card__title{margin:0;font-size:var(--t-xl)}
.smt-card__title a{color:inherit;text-decoration:none}
.smt-card__title a:hover{color:var(--smt-blue-700);text-decoration:underline}
.smt-card__excerpt{margin:0;font-size:var(--t-sm);color:var(--c-text-muted)}
.smt-card__meta{margin:auto 0 0;padding-top:var(--s-3);display:flex;gap:var(--s-4);font-size:var(--t-xs);color:var(--c-text-muted)}

/* ---------- breadcrumbs ---------- */
.smt-breadcrumbs__list{display:flex;flex-wrap:wrap;gap:var(--s-2);list-style:none;margin:0 0 var(--s-4);padding:0;font-size:var(--t-xs);color:var(--c-text-muted)}
.smt-breadcrumbs__item + .smt-breadcrumbs__item::before{content:"/";margin-right:var(--s-2);opacity:.5}
.smt-breadcrumbs__item a{color:inherit;text-decoration:none}
.smt-breadcrumbs__item a:hover{color:var(--c-link);text-decoration:underline}

/* ---------- forms ---------- */
.smt-search__label{display:block;margin-bottom:var(--s-2);font-size:var(--t-sm);font-weight:600;color:var(--c-heading)}
.smt-search__row{display:flex;gap:var(--s-2)}
.smt-search__input{
  flex:1;min-height:48px;padding:0 var(--s-4);
  background:var(--c-surface);
  border:1.5px solid var(--c-border);
  border-radius:var(--r-md);
}
.smt-search__input:focus-visible{border-color:var(--c-accent);box-shadow:var(--sh-focus)}

/* ---------- post meta, author, nav ---------- */
.smt-post-meta{display:flex;flex-wrap:wrap;gap:var(--s-4);margin:var(--s-4) 0 0;font-size:var(--t-sm);color:var(--c-text-muted)}
.smt-author{display:flex;gap:var(--s-4);padding:var(--s-5);margin:var(--s-8) 0;background:var(--c-surface-alt);border-radius:var(--r-lg)}
.smt-author__avatar img{border-radius:var(--r-pill)}
.smt-author__name{margin:0 0 var(--s-2);font-size:var(--t-lg)}
.smt-author__bio{margin:0;font-size:var(--t-sm);color:var(--c-text-muted)}
.smt-post-nav{display:grid;gap:var(--s-4);margin:var(--s-8) 0}
@media (min-width:640px){.smt-post-nav{grid-template-columns:1fr 1fr}}
.smt-post-nav a{display:block;padding:var(--s-4);border:1px solid var(--c-border);border-radius:var(--r-md);text-decoration:none;color:var(--c-heading)}
.smt-post-nav a:hover{border-color:var(--smt-blue-300);background:var(--smt-blue-50)}
.smt-post-nav span{display:block;font-size:var(--t-xs);color:var(--c-text-muted);margin-bottom:var(--s-1)}
.smt-post-nav__next{text-align:right}

/* ---------- table of contents ---------- */
.smt-toc{padding:var(--s-4);background:var(--c-surface-alt);border-radius:var(--r-md);border:1px solid var(--c-border)}
.smt-toc__title{margin:0 0 var(--s-3);font-size:var(--t-sm);letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--smt-blue-700)}
.smt-toc__list{list-style:none;margin:0;padding:0;counter-reset:toc}
.smt-toc__list li{margin-bottom:var(--s-1)}
.smt-toc__list a{display:block;padding:var(--s-2);border-radius:var(--r-sm);font-size:var(--t-sm);color:var(--c-text);text-decoration:none;border-left:2px solid transparent}
.smt-toc__list a:hover{background:var(--smt-blue-50);color:var(--smt-blue-900)}
.smt-toc__list a.is-active{border-left-color:var(--c-accent);color:var(--smt-blue-900);font-weight:600}
.smt-toc__list .is-h3 a{padding-left:var(--s-5);font-size:var(--t-xs)}

.smt-reading-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:calc(var(--z-header) + 1);background:transparent;pointer-events:none}
.smt-reading-progress__bar{display:block;height:100%;width:0;background-image:var(--grad-brand);transition:width 60ms linear}

/* ---------- footer ---------- */
.smt-footer{padding-block:var(--s-10) var(--s-6)}
.smt-footer__grid{display:grid;gap:var(--s-8);margin-bottom:var(--s-8)}
@media (min-width:768px){.smt-footer__grid{grid-template-columns:1.4fr repeat(2,1fr)}}
@media (min-width:1024px){.smt-footer__grid{grid-template-columns:1.6fr repeat(4,1fr)}}
.smt-footer__about{margin:var(--s-4) 0 0;font-size:var(--t-sm);color:var(--c-text)}
.smt-footer__heading{font-size:var(--t-sm);letter-spacing:var(--ls-wide);text-transform:uppercase;color:#9DB2C6;margin-bottom:var(--s-4)}
.smt-footer__list,.smt-footer__legal-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-1)}
.smt-footer__list a,.smt-footer__legal-list a{display:inline-block;padding:var(--s-2) 0;min-height:40px;font-size:var(--t-sm);color:var(--c-text);text-decoration:none}
.smt-footer__list a:hover,.smt-footer__legal-list a:hover{color:var(--smt-white);text-decoration:underline}
.smt-footer__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--s-4);padding-top:var(--s-5);border-top:1px solid var(--c-border)}
.smt-footer__copy{margin:0;font-size:var(--t-xs);color:var(--c-text-muted)}
.smt-footer__legal-list{display:flex;flex-wrap:wrap;gap:var(--s-4)}

/* ---------- sticky mobile CTA ---------- */
.smt-mobile-cta{
  position:fixed;left:0;right:0;bottom:0;
  z-index:var(--z-header);
  display:none;
  gap:1px;
  background:var(--c-border);
  box-shadow:0 -4px 16px rgba(7,26,43,.12);
  padding-bottom:env(safe-area-inset-bottom);
}
.smt-mobile-cta__item{
  flex:1;
  display:flex;align-items:center;justify-content:center;
  min-height:52px;padding:0 var(--s-3);
  background:var(--smt-white);
  font-size:var(--t-sm);font-weight:600;
  color:var(--smt-blue-700);text-decoration:none;
}
.smt-mobile-cta__item--primary{background-image:var(--grad-brand);color:var(--smt-white)}
@media (max-width:767px){
  .smt-mobile-cta{display:flex}
  body{padding-bottom:52px}
}

/* ---------- empty state, pagination ---------- */
.smt-empty{max-width:var(--w-narrow);margin-inline:auto;text-align:center;padding-block:var(--s-9)}
.pagination{margin-top:var(--s-8)}
.nav-links{display:flex;flex-wrap:wrap;gap:var(--s-2);justify-content:center}
.page-numbers{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:44px;min-height:44px;padding:0 var(--s-3);
  border:1px solid var(--c-border);border-radius:var(--r-md);
  font-size:var(--t-sm);text-decoration:none;color:var(--c-heading);
}
.page-numbers:hover{background:var(--smt-blue-50);border-color:var(--smt-blue-300)}
.page-numbers.current{background-image:var(--grad-brand);color:var(--smt-white);border-color:transparent}
