/* Swift Support Pro - readability layer
 * Deep Field tokens, news-grade typography and hierarchy.
 * Loaded after the theme and the dark layer, so it wins on type and rhythm.
 */

:root{
  --ssp-measure: 44rem;
  --ssp-measure-wide: 68rem;
  --ssp-lh-body: 1.75;
  --ssp-lh-head: 1.12;
  --ssp-gap-sm: 8px;
  --ssp-gap-md: 16px;
  --ssp-gap-lg: 32px;
  --ssp-gap-xl: 80px;
}

/* ---------- Reading base ---------- */

.ssp-theme body,
body.ssp-theme{
  font-family:"Public Sans",sans-serif;
  font-size:18px;
  line-height:var(--ssp-lh-body);
  color:#B9C6DE;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

.ssp-theme .entry-content{
  font-size:1.125rem;
  line-height:var(--ssp-lh-body);
  color:#B9C6DE;
}

.ssp-theme .entry-content > *{
  max-width:var(--ssp-measure);
  margin-left:auto;
  margin-right:auto;
}

/* Wide elements are allowed to break the measure. */
.ssp-theme .entry-content > .wp-block-image,
.ssp-theme .entry-content > .wp-block-table,
.ssp-theme .entry-content > figure,
.ssp-theme .entry-content > .ssp-pros-cons,
.ssp-theme .entry-content > .ssp-verdict,
.ssp-theme .entry-content > .ssp-keyfacts{
  max-width:var(--ssp-measure-wide);
}

.ssp-theme .entry-content p{
  margin:0 auto 1.5em;
}

/* ---------- Headings ---------- */

.ssp-theme h1,.ssp-theme h2,.ssp-theme h3,
.ssp-theme h4,.ssp-theme h5,.ssp-theme h6,
.ssp-theme .entry-title,
.ssp-theme .site-title{
  font-family:"Work Sans",sans-serif;
  font-weight:700;
  line-height:var(--ssp-lh-head);
  color:#FFFFFF;
  letter-spacing:-0.011em;
  text-wrap:balance;
}

.ssp-theme .entry-title,
.ssp-theme h1.entry-title{
  font-size:clamp(2.05rem,1.35rem + 2.5vw,3.05rem);
  margin:0 0 .55em;
}

.ssp-theme .entry-content h2{
  font-size:clamp(1.55rem,1.2rem + 1.35vw,2.1rem);
  margin:2.4em auto .7em;
  padding-top:1.6rem;
  border-top:1px solid #25324D;
}

.ssp-theme .entry-content h3{
  font-size:clamp(1.24rem,1.1rem + .5vw,1.45rem);
  margin:2em auto .6em;
}

.ssp-theme .entry-content h4{
  font-size:1.1rem;
  margin:1.7em auto .5em;
}

/* Scroll anchors clear any sticky header. */
.ssp-theme [id]{scroll-margin-top:96px;}

/* ---------- Links ---------- */

.ssp-theme a{
  color:#7BA6FF;
  text-decoration:none;
  transition:color .15s ease,border-color .15s ease;
}
.ssp-theme a:hover,.ssp-theme a:focus{color:#FFFFFF;}

/* In running copy, links are underlined. Colour alone is not enough. */
.ssp-theme .entry-content p > a,
.ssp-theme .entry-content li > a{
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
  text-decoration-color:rgba(123,166,255,.45);
}
.ssp-theme .entry-content p > a:hover,
.ssp-theme .entry-content li > a:hover{
  text-decoration-color:#FFFFFF;
}

/* Visible keyboard focus everywhere. */
.ssp-theme a:focus-visible,
.ssp-theme button:focus-visible,
.ssp-theme input:focus-visible,
.ssp-theme textarea:focus-visible,
.ssp-theme select:focus-visible{
  outline:2px solid #7BA6FF;
  outline-offset:2px;
  border-radius:6px;
}

/* ---------- Lists, quotes, tables, code ---------- */

.ssp-theme .entry-content ul,
.ssp-theme .entry-content ol{
  margin:0 auto 1.5em;
  padding-left:1.35em;
}
.ssp-theme .entry-content li{margin-bottom:.6em;}
.ssp-theme .entry-content li::marker{color:#7BA6FF;}

.ssp-theme .entry-content blockquote{
  margin:2em auto;
  padding:.2em 0 .2em 1.4em;
  border-left:3px solid #2E63F6;
  color:#FFFFFF;
  font-size:1.2rem;
  line-height:1.55;
}

.ssp-theme .wp-block-table{margin:2.25em auto;}
.ssp-theme .wp-block-table table{
  width:100%;
  border-collapse:collapse;
  font-size:.97rem;
}
.ssp-theme .wp-block-table th,
.ssp-theme .wp-block-table td{
  padding:.85rem 1rem;
  border:none;
  border-bottom:1px solid #25324D;
  text-align:left;
  vertical-align:top;
}
.ssp-theme .wp-block-table thead th{
  font-family:"Work Sans",sans-serif;
  font-weight:700;
  color:#FFFFFF;
  border-bottom:1px solid #2E63F6;
  white-space:nowrap;
}
.ssp-theme .wp-block-table tbody tr:hover{background:#121C30;}
.ssp-theme .wp-block-table figcaption{
  color:#8494B0;
  font-size:.85rem;
  margin-top:.75rem;
}
/* Tables scroll rather than squash on small screens. */
.ssp-theme .wp-block-table{overflow-x:auto;}

.ssp-theme code,.ssp-theme kbd{
  background:#121C30;
  border:1px solid #25324D;
  border-radius:6px;
  padding:.12em .4em;
  font-size:.9em;
}
.ssp-theme pre{
  background:#060D18;
  border:1px solid #25324D;
  border-radius:6px;
  padding:1.2rem 1.4rem;
  overflow-x:auto;
}

.ssp-theme figure img,
.ssp-theme .wp-block-image img{
  border-radius:6px;
  height:auto;
}
.ssp-theme figcaption,
.ssp-theme .wp-element-caption{
  color:#8494B0;
  font-size:.85rem;
  line-height:1.6;
  margin-top:.7rem;
  text-align:left;
}

/* ---------- Article furniture ---------- */

.ssp-theme .entry-meta,
.ssp-theme .entry-footer{
  font-size:.9rem;
  color:#8494B0;
  letter-spacing:.01em;
}
.ssp-theme .entry-meta a,
.ssp-theme .entry-footer a{color:#8494B0;}
.ssp-theme .entry-meta a:hover,
.ssp-theme .entry-footer a:hover{color:#FFFFFF;}

.ssp-theme .ssp-reading-time{
  display:inline-block;
  margin-left:.7rem;
  padding-left:.7rem;
  border-left:1px solid #25324D;
}

.ssp-reading .entry-header{margin-bottom:1.1rem;}
.ssp-reading .entry-meta{margin-bottom:2.2rem;}
.ssp-reading .post-thumbnail{margin-bottom:2.4rem;}

/* ---------- Index and archive: lead story, then a clean list ---------- */

.ssp-index .site-main article{
  padding:var(--ssp-gap-lg) 0;
  border-bottom:1px solid #25324D;
  margin-bottom:0;
}
.ssp-index .site-main article:last-of-type{border-bottom:none;}

.ssp-index .site-main article .entry-title{
  font-size:clamp(1.35rem,1.15rem + .8vw,1.75rem);
  margin-bottom:.4em;
}
.ssp-index .site-main article .entry-title a{color:#FFFFFF;}
.ssp-index .site-main article .entry-title a:hover{color:#7BA6FF;}

/* The first item on the index reads as the lead. */
.ssp-index .site-main article:first-of-type{padding-top:0;}
.ssp-index .site-main article:first-of-type .entry-title{
  font-size:clamp(1.85rem,1.35rem + 1.9vw,2.6rem);
}

.ssp-index .site-main article .entry-summary,
.ssp-index .site-main article .entry-content{
  font-size:1.02rem;
  color:#B9C6DE;
  max-width:38rem;
}

/* ---------- Spacing rhythm ---------- */

.ssp-theme .site-main{padding-block:clamp(2.5rem,1.5rem + 3vw,5rem);}
.ssp-theme .blog-gen-container-wrapper,
.ssp-theme .section-wrapper{padding-inline:max(20px,4vw);}

/* ---------- Skip link ---------- */

.ssp-theme .skip-link:focus{
  background:#2E63F6;
  color:#FFFFFF;
  padding:.75rem 1.25rem;
  border-radius:6px;
  font-weight:700;
  z-index:100000;
}

/* ---------- Small screens ---------- */

@media (max-width:768px){
  .ssp-theme body{font-size:17px;}
  .ssp-theme .entry-content{font-size:1.0625rem;}
  .ssp-theme .entry-content h2{margin-top:2em;padding-top:1.3rem;}
  /* Comfortable tap targets. */
  .ssp-theme .main-navigation a,
  .ssp-theme .menu-item a{padding-block:.7rem;}
}

/* ---------- Respect user preferences ---------- */

@media (prefers-reduced-motion:reduce){
  .ssp-theme *,
  .ssp-theme *::before,
  .ssp-theme *::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
}
