/* ==========================================================================
   Storage Vault - Blog single post (Medium-inspired reading layout)
   Scoped under .sv-article so nothing leaks to Elementor pages/products.
   Brand: headings Sansation, body Inter, accent teal #00DFBF, ink #191919.
   ========================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

.sv-article {
  --sv-ink:      #191919;
  --sv-body:     #2b2b2b;
  --sv-muted:    #6b7177;
  --sv-teal:     #00DFBF;   /* decorative (rules, eyebrow accent) */
  --sv-teal-ink: #008573;   /* accessible teal for links */
  --sv-grey:     #F9F9F9;
  --sv-line:     #e7e9ea;
  --sv-maxw:     720px;

  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  color: var(--sv-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* centre column */
.sv-article__inner {
  max-width: var(--sv-maxw);
  margin: 0 auto;
  padding: 56px 24px 96px;
}

/* --- header ------------------------------------------------------------- */
.sv-article__eyebrow {
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--sv-teal-ink);
  margin: 0 0 20px;
}

/* extra specificity (.sv-article .sv-article__title) so it beats the kit's
   `.elementor-kit-6 h1` rule, which otherwise forces the 3.625rem global h1 size */
.sv-article .sv-article__title {
  font-family: 'Sansation', 'Inter', sans-serif;
  font-weight: 700;
  color: var(--sv-ink);
  line-height: 1.15;
  letter-spacing: -.015em;
  font-size: clamp(1.75rem, 1.1rem + 2.6vw, 2.625rem);
  margin: 0 0 20px;
}

.sv-article__dek {
  font-size: clamp(1.15rem, 1rem + .6vw, 1.4rem);
  line-height: 1.5;
  font-weight: 400;
  color: var(--sv-muted);
  margin: 0 0 32px;
}

/* byline / meta row */
.sv-article__meta {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 0 24px;
  border-bottom: 1px solid var(--sv-line);
  margin-bottom: 44px;
}
.sv-article__avatar {
  flex: 0 0 auto;
  width: 44px; height: 44px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center 20%;
  background: var(--sv-grey);
  display: block;
}
.sv-article__byline { display: flex; flex-direction: column; line-height: 1.4; }
.sv-article__author { font-weight: 600; color: var(--sv-ink); font-size: .95rem; }
.sv-article__subline { font-size: .85rem; color: var(--sv-muted); }
.sv-article__subline .dot { margin: 0 7px; }

/* featured image */
.sv-article__hero {
  margin: 0 0 44px;
}
.sv-article__hero img {
  width: 100%; height: auto; display: block;
  border-radius: 6px;
}

/* --- body content ------------------------------------------------------- */
.sv-article__content {
  font-size: 1.25rem;
  line-height: 1.75;
  color: var(--sv-body);
  word-break: break-word;
}
.sv-article__content > *:first-child { margin-top: 0; }

.sv-article__content p {
  margin: 0 0 1.55em;
}
/* lead paragraph slightly larger, like Medium */
.sv-article__content > p:first-of-type { font-size: 1.32rem; }

.sv-article__content h2 {
  font-family: 'Sansation','Inter',sans-serif;
  font-weight: 700;
  color: var(--sv-ink);
  line-height: 1.25;
  letter-spacing: -.01em;
  font-size: clamp(1.55rem, 1.2rem + 1.3vw, 1.95rem);
  margin: 2.3em 0 .7em;
}
.sv-article__content h3 {
  font-family: 'Sansation','Inter',sans-serif;
  font-weight: 700;
  color: var(--sv-ink);
  line-height: 1.3;
  font-size: clamp(1.2rem, 1.05rem + .6vw, 1.4rem);
  margin: 1.9em 0 .55em;
}

.sv-article__content a {
  color: var(--sv-teal-ink);
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
}
.sv-article__content a:hover { color: var(--sv-ink); }

.sv-article__content strong { color: var(--sv-ink); font-weight: 700; }

.sv-article__content ul,
.sv-article__content ol {
  margin: 0 0 1.55em;
  padding-left: 0;
  list-style: none;
}
.sv-article__content li {
  position: relative;
  padding-left: 1.6em;
  margin: 0 0 .7em;
}
.sv-article__content ul li::before {
  content: "";
  position: absolute;
  left: .1em; top: .72em;
  width: 7px; height: 7px;
  background: var(--sv-teal);
  border-radius: 50%;
}
.sv-article__content ol { counter-reset: sv; }
.sv-article__content ol li { counter-increment: sv; }
.sv-article__content ol li::before {
  content: counter(sv);
  position: absolute;
  left: 0; top: .05em;
  color: var(--sv-teal-ink);
  font-weight: 700;
  font-size: .95em;
}

.sv-article__content blockquote {
  margin: 1.8em 0;
  padding: .2em 0 .2em 1.4em;
  border-left: 3px solid var(--sv-teal);
  font-size: 1.35rem;
  line-height: 1.5;
  font-style: italic;
  color: var(--sv-ink);
}

.sv-article__content img { max-width: 100%; height: auto; border-radius: 6px; }

/* --- end rule ----------------------------------------------------------- */
.sv-article__end {
  margin: 56px 0 0;
  padding-top: 8px;
  text-align: center;
}
.sv-article__end span {
  display: inline-block;
  letter-spacing: .5em;
  color: var(--sv-line);
  font-size: 1.1rem;
}

@media (max-width: 640px) {
  .sv-article__inner { padding: 36px 20px 64px; }
  .sv-article__content { font-size: 1.18rem; }
  .sv-article__content > p:first-of-type { font-size: 1.22rem; }
}

/* ==========================================================================
   Blog listing page (.sv-bloglist) - Medium-style story index
   Compound selectors on headings so they beat `.elementor-kit-6 h1/h2`.
   ========================================================================== */
.sv-bloglist {
  --sv-ink:#191919; --sv-body:#2b2b2b; --sv-muted:#6b7177;
  --sv-teal:#00DFBF; --sv-teal-ink:#008573; --sv-line:#e7e9ea;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  color:var(--sv-body);
  -webkit-font-smoothing:antialiased;
}
.sv-bloglist__inner { max-width:760px; margin:0 auto; padding:72px 24px 96px; }

.sv-bloglist__head { padding-bottom:36px; margin-bottom:12px; border-bottom:1px solid var(--sv-line); }
.sv-bloglist__eyebrow { font-size:.78rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--sv-teal-ink); margin:0 0 16px; }
.sv-bloglist .sv-bloglist__title {
  font-family:'Sansation','Inter',sans-serif; font-weight:700; color:var(--sv-ink);
  line-height:1.1; letter-spacing:-.02em;
  font-size:clamp(2.25rem,1.6rem + 2.8vw,3.25rem); margin:0 0 16px;
}
.sv-bloglist__intro { font-size:clamp(1.05rem,1rem + .4vw,1.25rem); line-height:1.55; color:var(--sv-muted); margin:0; max-width:46ch; }

.sv-bloglist__grid { display:flex; flex-direction:column; }

.sv-blogcard { border-bottom:1px solid var(--sv-line); }
.sv-blogcard__link { display:block; text-decoration:none; color:inherit; padding:34px 0; transition:opacity .15s ease; }
.sv-blogcard__link:hover { opacity:.72; }
.sv-blogcard__eyebrow { font-size:.72rem; font-weight:600; letter-spacing:.11em; text-transform:uppercase; color:var(--sv-teal-ink); margin:0 0 10px; }
.sv-bloglist .sv-blogcard__title {
  font-family:'Sansation','Inter',sans-serif; font-weight:700; color:var(--sv-ink);
  line-height:1.22; letter-spacing:-.01em;
  font-size:clamp(1.4rem,1.2rem + .9vw,1.75rem); margin:0 0 10px;
}
.sv-blogcard__dek {
  font-size:1.08rem; line-height:1.5; color:var(--sv-muted); margin:0 0 18px;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.sv-blogcard__meta { display:flex; align-items:center; gap:10px; font-size:.85rem; color:var(--sv-muted); }
.sv-blogcard__avatar { width:32px; height:32px; border-radius:50%; object-fit:cover; object-position:center 20%; background:#f2f3f4; flex:0 0 auto; }
.sv-blogcard__author { font-weight:600; color:var(--sv-ink); }
.sv-blogcard__sub::before { content:"\00b7"; margin:0 8px; color:var(--sv-line); }

.sv-bloglist__empty { font-size:1.15rem; color:var(--sv-muted); padding:40px 0; }

@media (max-width:640px){
  .sv-bloglist__inner { padding:48px 20px 64px; }
}
