/* ===========================================================================
   Cornerstone Designers — blog
   Shared by /blog/ and every post. Same tokens as the homepage (light and
   dark), same blueprint language, tuned for long reading: a 42rem measure,
   larger body type, generous line height.
   =========================================================================== */

:root{
  --paper:#EEF0F4;
  --paper-2:#E2E6EC;
  --ink:#0F1A3D;
  --ink-2:#363F52;
  --blue:#1E3BB0;
  --green:#1F6F52;
  --red:#98432F;
  --rule:#C3C9D3;
  --royal-deep:#132B86;
  --btn-bg:#1E3BB0;
  --btn-fg:#EEF0F4;
  --btn-hover-bg:#0F1A3D;
  --btn-hover-fg:#EEF0F4;
  color-scheme:light;

  --display:"Bricolage Grotesque",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --body:"IBM Plex Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  --gutter:clamp(1.25rem,5vw,3.5rem);
  --shell:76rem;
  --measure:42rem;
}

/* Dark: same values as the rest of the site. Change them in both places. */
:root[data-theme="dark"]{
  --paper:#0B1330;--paper-2:#141E47;--ink:#E8ECF3;--ink-2:#B7BFCE;--blue:#9DB0FF;
  --green:#62C79E;--red:#F0907A;--rule:#2A3563;
  --btn-bg:#2E54DD;--btn-fg:#FFFFFF;--btn-hover-bg:#E8ECF3;--btn-hover-fg:#0B1330;
  color-scheme:dark;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#0B1330;--paper-2:#141E47;--ink:#E8ECF3;--ink-2:#B7BFCE;--blue:#9DB0FF;
    --green:#62C79E;--red:#F0907A;--rule:#2A3563;
    --btn-bg:#2E54DD;--btn-fg:#FFFFFF;--btn-hover-bg:#E8ECF3;--btn-hover-fg:#0B1330;
    color-scheme:dark;
  }
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--body);font-size:clamp(1.0625rem,1rem + .25vw,1.125rem);line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--blue);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:2px}

.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--paper);padding:.75rem 1.25rem;z-index:100;font-family:var(--mono);font-size:.8125rem}
.skip:focus{left:0}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.shell{width:100%;max-width:var(--shell);margin-inline:auto;padding-inline:var(--gutter)}

h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.12;letter-spacing:-.02em;margin:0;text-wrap:balance}

/* --- Buttons --- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--mono);font-size:.8125rem;letter-spacing:.08em;text-transform:uppercase;
  padding:.9rem 1.4rem;border:1px solid var(--blue);text-decoration:none;cursor:pointer;
  transition:background-color .15s ease,color .15s ease,border-color .15s ease;
}
.btn-primary{background:var(--btn-bg);border-color:var(--btn-bg);color:var(--btn-fg)}
.btn-primary:hover{background:var(--btn-hover-bg);border-color:var(--btn-hover-bg);color:var(--btn-hover-fg)}
.btn-ghost{background:transparent;color:var(--blue)}
.btn-ghost:hover{background:var(--blue);color:var(--paper)}

/* --- Header --- */
.masthead{
  border-bottom:1px solid var(--rule);
  background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(8px);
  position:sticky;top:0;z-index:50;
}
.masthead > .shell{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding-block:1rem}
.wordmark{font-family:var(--display);font-weight:700;font-size:1.0625rem;letter-spacing:-.02em;color:var(--ink);text-decoration:none;white-space:nowrap}
.wordmark span{color:var(--blue)}
.masthead nav{display:none}
.masthead nav ul{display:flex;gap:1.75rem;list-style:none;margin:0;padding:0}
.masthead nav a{font-family:var(--mono);font-size:.75rem;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-2);text-decoration:none}
.masthead nav a:hover,.masthead nav a[aria-current]{color:var(--blue);text-decoration:underline}
.masthead .btn{padding:.6rem 1rem;font-size:.75rem}
@media (min-width:62rem){ .masthead nav{display:block} }
.head-actions{display:flex;align-items:center;gap:.75rem}
@media (max-width:30rem){ .masthead > .shell{gap:.75rem} .head-actions{gap:.5rem} .masthead .btn{padding:.6rem .7rem;letter-spacing:.04em} }
@media (max-width:36rem){ .head-actions .btn{display:none} }
@media (max-width:22.5rem){ .wordmark{font-size:.9375rem} } /* fits the row at 320px (WCAG 1.4.10) */

/* Phone menu: below 62rem the header links fold into a <details> Menu button (menu.js tidies up). */
.menu{flex:none}
.menu > summary{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;list-style:none;cursor:pointer;color:var(--ink-2);border:1px solid var(--rule)}
.menu > summary::-webkit-details-marker{display:none}
.menu > summary:hover,.menu[open] > summary{color:var(--blue);border-color:var(--blue)}
.menu svg{width:1.15rem;height:1.15rem}
.menu .i-close,.menu[open] .i-open{display:none}
.menu[open] .i-close{display:block}
.masthead .menu nav{display:block;position:absolute;left:0;right:0;top:100%;background:var(--paper);border-block:1px solid var(--rule);box-shadow:0 18px 30px -18px rgb(0 0 0 / .3)}
.masthead .menu ul{display:grid;gap:0;max-width:var(--shell);margin-inline:auto;padding:.25rem var(--gutter) .75rem}
.masthead .menu li + li{border-top:1px solid var(--rule)}
.masthead .menu a{display:block;padding:.95rem 0;font-size:.8125rem;color:var(--ink)}
@media (min-width:62rem){ .menu{display:none} }

.theme-toggle{display:none;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;flex:none;padding:0;background:transparent;color:var(--ink-2);border:1px solid var(--rule);border-radius:0;cursor:pointer}
.js .theme-toggle{display:inline-flex}
.theme-toggle:hover{color:var(--blue);border-color:var(--blue)}
.theme-toggle svg{width:1.15rem;height:1.15rem}
.theme-toggle .sun{display:none}
.theme-toggle[aria-pressed="true"] .sun{display:block}
.theme-toggle[aria-pressed="true"] .moon{display:none}

/* --- Breadcrumb + labels --- */
.crumbs{font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin:0 0 1.75rem}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.crumbs li + li::before{content:"/";margin-right:.5rem;color:var(--rule)}
.crumbs a{color:var(--ink-2);text-decoration:none}
.crumbs a:hover{color:var(--blue);text-decoration:underline}
.meta{font-family:var(--mono);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);margin:0}

/* --- Blog index --- */
.index-head{padding-block:clamp(3rem,7vw,5rem) clamp(2rem,4vw,3rem)}
.index-head h1{font-size:clamp(2.2rem,1.5rem + 3vw,3.6rem);letter-spacing:-.03em;max-width:18ch;margin-bottom:1.25rem}
.index-head p{color:var(--ink-2);max-width:46ch;font-size:1.15rem;margin:0}
.posts{list-style:none;margin:0 0 clamp(3rem,7vw,5rem);padding:0;border-top:1px solid var(--rule)}
.posts li{border-bottom:1px solid var(--rule);padding:1.75rem 0;display:grid;gap:.5rem}
@media (min-width:52rem){ .posts li{grid-template-columns:14rem 1fr;gap:.5rem 2.5rem} .posts .meta{padding-top:.35rem} }
.posts h2{font-size:clamp(1.25rem,1.1rem + .6vw,1.6rem)}
.posts h2 a{color:var(--ink);text-decoration:none}
.posts h2 a:hover{color:var(--blue);text-decoration:underline}
.posts p{margin:.5rem 0 0;color:var(--ink-2);max-width:60ch}

/* --- Article --- */
.post{padding-block:clamp(2.5rem,6vw,4.5rem) 0}
.post-head{max-width:var(--measure);margin-bottom:2.25rem}
.post-head h1{font-size:clamp(2rem,1.4rem + 2.6vw,3.1rem);letter-spacing:-.03em;margin:.9rem 0 1.1rem}
.post-head .lede{font-size:1.2rem;line-height:1.55;color:var(--ink-2);margin:0}
.byline{margin-top:1.5rem;font-size:.9375rem;color:var(--ink-2)}
.byline strong{color:var(--ink);font-weight:600}

.toc{max-width:var(--measure);border:1px solid var(--rule);background:var(--paper-2);padding:1.25rem 1.5rem;margin:0 0 2.5rem}
.toc h2{font-family:var(--mono);font-weight:500;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);margin:0 0 .75rem}
.toc ol{margin:0;padding-left:1.25rem;display:grid;gap:.35rem;font-size:.9375rem}

.prose{max-width:var(--measure)}
.prose > *{margin:0 0 1.25em}
.prose h2{font-size:clamp(1.45rem,1.25rem + .8vw,1.85rem);margin:2.4em 0 .7em;scroll-margin-top:5.5rem}
.prose h3{font-size:1.2rem;margin:1.9em 0 .5em;scroll-margin-top:5.5rem}
.prose p,.prose li{color:var(--ink-2)}
.prose strong{color:var(--ink)}
.prose ul,.prose ol{padding-left:1.35rem}
.prose li{margin:.35em 0}
.prose blockquote{margin:1.75em 0;padding:.25em 0 .25em 1.25rem;border-left:3px solid var(--blue);color:var(--ink)}
.prose blockquote p{color:var(--ink)}
.prose code{font-family:var(--mono);font-size:.9em;background:var(--paper-2);padding:.1em .35em}
.prose hr{border:0;border-top:1px solid var(--rule);margin:2.5em 0}
.table-wrap{overflow-x:auto;margin:1.75em 0;border:1px solid var(--rule)}
.prose table{border-collapse:collapse;width:100%;font-size:.9375rem;min-width:30rem}
.prose th,.prose td{text-align:left;padding:.7rem .9rem;border-bottom:1px solid var(--rule);vertical-align:top}
.prose th{font-family:var(--mono);font-weight:500;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background:var(--paper-2)}
.prose tr:last-child td{border-bottom:0}
.prose td{color:var(--ink-2)}

/* The short answer box at the top of a post */
.prose .answer{border:1px solid var(--rule);border-left:3px solid var(--blue);background:var(--paper-2);padding:1.1rem 1.35rem}
.prose .answer p{margin:0;color:var(--ink)}

/* Mid-article and end-of-article calls to action */
.cta-inline{max-width:var(--measure);margin:2.5em 0;padding:1.35rem 1.5rem;border:1px solid var(--rule);background:var(--paper-2)}
.cta-inline p{margin:0 0 .9rem;color:var(--ink)}
.cta-inline .prices{font-family:var(--mono);font-size:.9rem;color:var(--ink-2)}
.cta-inline .actions{display:flex;flex-wrap:wrap;gap:.6rem}

.post-end{max-width:var(--measure);margin:3.5rem 0 0;display:grid;gap:1.25rem}
.cta-end{background:var(--royal-deep);color:#EEF0F4;padding:clamp(1.5rem,4vw,2.25rem)}
.cta-end h2{color:#FFFFFF;font-size:clamp(1.4rem,1.2rem + .8vw,1.8rem);margin-bottom:.75rem}
.cta-end p{color:#DCE1E9;margin:0 0 1.25rem}
.cta-end a{color:#FFFFFF}
.cta-end .actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.cta-end .btn-primary{background:#E4E8EE;border-color:#E4E8EE;color:#0F1A3D}
.cta-end .btn-primary:hover{background:#FFFFFF;border-color:#FFFFFF;color:#0F1A3D}
.cta-end .phone{font-family:var(--mono);color:#FFFFFF}
.cta-end .phone-alt{font-size:.875em;opacity:.8}
.nowrap{white-space:nowrap}

.author{border:1px solid var(--rule);padding:1.25rem 1.5rem;display:grid;gap:.25rem}
.author .name{font-family:var(--display);font-weight:600;font-size:1.1rem;color:var(--ink)}
.author .role{font-family:var(--mono);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--blue)}
.author p{margin:.5rem 0 0;color:var(--ink-2);font-size:.9375rem}

.related{border-top:1px solid var(--rule);margin-top:clamp(3rem,6vw,4.5rem);padding-block:clamp(2.5rem,5vw,3.5rem)}
.related h2{font-family:var(--mono);font-weight:500;font-size:.75rem;letter-spacing:.13em;text-transform:uppercase;color:var(--blue);margin-bottom:1.25rem}
.related ul{list-style:none;margin:0;padding:0;display:grid;gap:0;border:1px solid var(--rule)}
@media (min-width:52rem){ .related ul{grid-template-columns:repeat(3,1fr)} }
.related li{padding:1.25rem 1.4rem;border-top:1px solid var(--rule)}
.related li:first-child{border-top:0}
@media (min-width:52rem){ .related li{border-top:0;border-left:1px solid var(--rule)} .related li:first-child{border-left:0} }
.related a{font-family:var(--display);font-weight:600;color:var(--ink);text-decoration:none;font-size:1.05rem;line-height:1.25}
.related a:hover{color:var(--blue);text-decoration:underline}
.related .meta{margin-bottom:.5rem}

/* --- Footer --- */
.colophon{background:#132B86;color:#DCE1E9}
.colophon > .shell{padding-block:2rem;display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:.75rem}
.colophon p{margin:0;max-width:none}
.colophon a{color:#FFFFFF}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.001ms !important;animation-duration:.001ms !important}
}
@media print{ .masthead,.cta-inline,.cta-end,.related,.theme-toggle{display:none} }

/* --- Service pages and cluster links --- */
.head-cta{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.5rem}
.service-link{border:1px solid var(--rule);border-left:3px solid var(--blue);padding:1rem 1.35rem;display:grid;gap:.35rem}
.service-link a{font-family:var(--display);font-weight:600;font-size:1.1rem;color:var(--ink);text-decoration:none}
.service-link a:hover{color:var(--blue);text-decoration:underline}
.how-we-write{margin-top:1rem !important;font-size:.9375rem !important;max-width:60ch !important}
