/* Vehicle Blinds: Guides & News (/guides/, deploy/build-guides.py). Loaded on guide pages only, after theme.css.
   Reading pages: a narrower column, calmer type than the shop pages, the site's ink borders and colours.
   Diagrams: blue = cold, amber = warm (Guides brief §6). */
.guides .gd{padding:22px 0 56px}
.gd-wrap{max-width:820px}
.gd-hero-band h1{font-size:clamp(36px,6vw,64px)}
.gd-h1,.gd-head h1{font-size:clamp(30px,5.4vw,48px);line-height:1.08;margin:6px 0 14px;overflow-wrap:break-word}
.gd-h2{font-size:clamp(24px,4vw,32px);margin:30px 0 12px}
.gd-lead{font-size:19px}
.gd-badge{display:inline-block;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;background:var(--sun);border:2px solid var(--ink);border-radius:999px;padding:3px 10px}
.gd-badge.draft{background:#fff;color:var(--muted)}
.gd-tags{display:flex;gap:6px;flex-wrap:wrap}

/* Answer box (straight under the H1), byline, key facts */
.gd-answer{background:var(--paper);border:var(--line);border-radius:18px;box-shadow:var(--pop);padding:14px 18px;margin:0 0 14px}
.gd-answer b{display:block;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--sea-d);margin-bottom:4px}
.gd-answer p{margin:0;font-size:18px;line-height:1.5}
.gd-byline{font-size:14px;color:var(--muted);margin:0 0 18px}
.gd-byline a{color:var(--sea-d)}
.gd-hero{margin:0 0 22px}
.gd-hero img{width:100%;height:auto;display:block;border:var(--line);border-radius:18px}
.gd-hero figcaption{font-size:14px;color:var(--muted);margin-top:6px}
.gd-facts{background:#e9f5fb;border:var(--line);border-radius:18px;padding:14px 18px 8px;margin:0 0 26px}
.gd-facts h2{font-size:22px;margin:0 0 6px}
.gd-facts ul{margin:0;padding-left:20px}
.gd-facts li{margin:0 0 8px}
.gd-cite{font-size:.72em;line-height:0;margin-left:1px}
.gd-cite a{color:var(--sea-d);text-decoration:none}

/* Body */
.gd-body{font-weight:600;font-size:17.5px;line-height:1.65}
.gd-body h2{font-size:clamp(25px,4.2vw,34px);line-height:1.1;margin:34px 0 12px}
.gd-body h3{font-size:22px;margin:0 0 10px}
.gd-body p{margin:0 0 16px}
.gd-body a{color:var(--sea-d)}
.gd-steps{margin:0 0 18px;padding:0;list-style:none;counter-reset:gd}
.gd-steps li{counter-increment:gd;position:relative;padding:12px 14px 12px 58px;margin:0 0 10px;background:var(--paper);border:2px solid var(--ink);border-radius:14px}
.gd-steps li:before{content:counter(gd);position:absolute;left:12px;top:10px;width:32px;height:32px;border-radius:50%;background:var(--ink);color:#fff;font:400 18px/34px "Luckiest Guy",sans-serif;text-align:center}
.gd-fig{margin:6px 0 24px;background:var(--paper);border:var(--line);border-radius:18px;padding:12px;overflow:hidden}
.gd-fig svg{display:block;width:100%;height:auto;border-radius:10px}
.gd-fig figcaption{font-size:15.5px;line-height:1.5;margin-top:10px}
.gd-fig figcaption p{margin:6px 0 0;color:var(--muted);font-size:14px}
.gd-key{margin:0;padding-left:24px}
.gd-key li{margin:0 0 4px}
.gd-panel{border:var(--line);border-radius:18px;padding:14px 18px;margin:0 0 22px;background:var(--paper)}
.gd-panel p:last-child,.gd-panel ul:last-child{margin-bottom:0}
.gd-panel ul{padding-left:20px;margin:0 0 12px}
.gd-panel li{margin:0 0 8px}
.gd-honest{background:#fff3dc;box-shadow:var(--pop)}
.gd-warn{background:#ffe4dc;border-color:#a3281a}
.gd-drive{background:#e9f5fb}

/* FAQ, sources, author, CTA */
.gd-faq h2,.gd-sources h2,.gd-related h2{font-size:clamp(24px,4vw,32px);margin:36px 0 12px}
.gd-faq .faq-list{margin:0;max-width:none}
.gd-sources ol{padding-left:22px;font-size:15px;margin:0}
.gd-sources li{margin:0 0 6px;overflow-wrap:anywhere}
.gd-sources a{color:var(--sea-d)}
.gd-sources li:target{background:var(--sand);border-radius:6px}
.gd-author,.gd-profile{display:flex;gap:16px;align-items:flex-start;background:var(--paper);border:var(--line);border-radius:18px;padding:16px 18px;margin:34px 0 0}
.gd-author h2{font-size:24px;margin:0 0 2px}
.gd-author p,.gd-profile p{margin:0 0 8px}
.gd-profile h1{font-size:clamp(30px,5vw,44px);margin:0 0 4px}
.gd-av{flex:none;width:56px;height:56px;border-radius:50%;background:var(--sea);color:#fff;border:var(--line);display:grid;place-items:center;font:400 22px/1 "Luckiest Guy",sans-serif;padding-top:3px}
.gd-av.big{width:76px;height:76px;font-size:30px}
.gd-area{font-weight:900;color:var(--sea-d)}
.gd-pen{font-size:14px;color:var(--muted)}
.gd-pen a,.gd-more{color:var(--sea-d)}
.gd-more{font-weight:900}
.gd-cta{margin:30px 0 0;background:linear-gradient(#ffd8a8,#ffe9c7);border:var(--line);border-radius:20px;box-shadow:var(--pop);padding:18px 20px}
.gd-cta h2{font-size:clamp(26px,4.4vw,36px);margin:0 0 6px}
.gd-cta p{margin:0 0 12px}
.gd-cta-btns{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 12px}
.gd-cta .btn{font-size:18px}
.gd-small{font-size:14.5px}
.gd-small a{color:var(--sea-d)}

/* Cards (hub, related, author pages) */
.gd-cards{display:grid;gap:14px}
.gd-card{display:block;text-decoration:none;background:var(--paper);border:var(--line);border-radius:18px;box-shadow:var(--pop);padding:16px 18px;transition:transform .1s,box-shadow .1s}
.gd-card:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--ink)}
.gd-card h3{font-size:clamp(22px,3.6vw,28px);line-height:1.1;margin:8px 0 6px}
.gd-card p{margin:0 0 8px;font-weight:600}
.gd-card small{color:var(--muted);font-size:13.5px}
.gd-hub-note{margin-top:22px}
.gd-authors{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:10px}
.gd-authors li{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;background:var(--paper);border:2px solid var(--ink);border-radius:14px;padding:10px 14px}
.gd-authors a{color:var(--sea-d)}
.gd-authors span{color:var(--muted)}

/* Draft banner (only on pages that aren't public yet) */
.gd-draft{background:#fff;border:3px dashed #a3281a;border-radius:14px;padding:12px 16px;margin:0 0 18px;font-size:15px}
.gd-draft ul{margin:6px 0 0;padding-left:20px}

@media (min-width:760px){ .gd-related .gd-cards,.guides .gd > .gd-wrap > .gd-cards{grid-template-columns:1fr 1fr} }
@media (max-width:480px){
  .gd-author,.gd-profile{flex-direction:column}
  .gd-steps li{padding-left:52px}
  .gd-answer p{font-size:17px}
  .gd-body{font-size:17px}
}
.gd-draft summary{display:block;font:700 15px/1.5 Nunito,system-ui,sans-serif;letter-spacing:0}
.gd-draft summary:after{content:" Show ▾";color:#a3281a;font-weight:900}
.gd-draft[open] summary:after{content:" Hide ▴"}
.gd-head{margin:0 0 4px}

/* Table: which fix does what */
.gd-tbl-h{font-size:22px;margin:4px 0 10px}
.gd-tbl-wrap{overflow-x:auto;margin:0 0 24px;border:var(--line);border-radius:16px;background:var(--paper)}
.gd-tbl{width:100%;border-collapse:collapse;font-size:15.5px;line-height:1.45}
.gd-tbl th,.gd-tbl td{text-align:left;vertical-align:top;padding:10px 12px;border-top:1px solid var(--vb-line)}
.gd-tbl thead th{border-top:0;background:var(--sun);font-weight:900;font-size:13px;text-transform:uppercase;letter-spacing:.06em}
.gd-tbl tbody th{font-weight:900}
@media (max-width:560px){
  .gd-tbl thead{display:none}
  .gd-tbl tr{display:block;padding:10px 12px;border-top:1px solid var(--vb-line)}
  .gd-tbl tbody tr:first-child{border-top:0}
  .gd-tbl th,.gd-tbl td{display:block;border:0;padding:0}
  .gd-tbl td:nth-of-type(1):before{content:"What it does: ";font-weight:900}
  .gd-tbl td:nth-of-type(2):before{content:"Best for: ";font-weight:900;color:var(--sea-d)}
}

/* Animations, in the site's playful style (Simon, 3 Nov 2026). Diagrams move on their own; the steps, panels and figures pop
   in as you scroll (shared JS adds .gd-anim to <html> and .in to each block). Nothing moves with reduced motion. */
.gd-anim-a .gd-puff,.gd-anim-a .gd-drop,.gd-anim-b .gd-bubs circle,.gd-anim-a .gd-vent,.gd-anim-a .gd-cold,.gd-anim-b .gd-in,.gd-anim-b .gd-out{transform-box:fill-box;transform-origin:center}
.gd-anim-a .gd-puff{animation:gd-drift 3.5s ease-in-out infinite;animation-delay:var(--d)}
.gd-anim-a .gd-drop{animation:gd-drip 3.2s ease-in infinite;animation-delay:var(--d)}
.gd-anim-a .gd-stars circle{animation:blink 2.4s ease-in-out infinite}
.gd-anim-a .gd-stars circle:nth-child(2n){animation-delay:1.2s}
.gd-anim-a .gd-vent{animation:gd-nudge 1.8s ease-in-out infinite}
.gd-anim-a .gd-cold{animation:gd-nudge-l 2.6s ease-in-out infinite}
.gd-anim-a .gd-flow path{stroke-dasharray:10 8;animation:gd-dash 1.6s linear infinite}
.gd-anim-b .gd-in{animation:gd-in 2.8s ease-in-out infinite}
.gd-anim-b .gd-out{animation:gd-out 2.8s ease-in-out infinite}
.gd-anim-b .gd-bubs circle{animation:bob-s 2.6s ease-in-out infinite;animation-delay:var(--d)}
@keyframes gd-drift{0%{transform:translate(0,0) scale(.7);opacity:0}25%{opacity:.9}70%{opacity:.9}100%{transform:translate(42px,-6px) scale(1.05);opacity:0}}
@keyframes gd-drip{0%,30%{transform:translateY(0) scale(.4);opacity:.2}55%{transform:translateY(0) scale(1);opacity:1}100%{transform:translateY(16px) scale(1);opacity:0}}
@keyframes gd-nudge{0%,100%{transform:translate(0,0)}50%{transform:translate(5px,-4px)}}
@keyframes gd-nudge-l{0%,100%{transform:translate(0,0)}50%{transform:translate(-6px,3px)}}
@keyframes gd-dash{to{stroke-dashoffset:-36}}
@keyframes gd-in{0%{transform:translateX(-18px);opacity:0}30%,55%{transform:translateX(0);opacity:1}70%,100%{opacity:.25}}
@keyframes gd-out{0%,45%{opacity:0;transform:translate(10px,-5px)}70%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(-8px,4px)}}
@keyframes bob-s{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes gd-pop{0%{transform:scale(.3)}60%{transform:scale(1.18)}100%{transform:scale(1)}}
@keyframes gd-wiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(-1.2deg)}75%{transform:rotate(1.2deg)}}
.gd-anim .gd-steps li,.gd-anim .gd-panel,.gd-anim .gd-fig,.gd-anim .gd-tbl-wrap,.gd-anim .gd-author,.gd-anim .gd-cta{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s cubic-bezier(.3,1.4,.5,1)}
.gd-anim .in{opacity:1!important;transform:none!important}
.gd-anim .gd-steps li.in:before{animation:gd-pop .55s cubic-bezier(.3,1.6,.5,1) .1s both}
.gd-anim .gd-honest.in{animation:gd-wiggle .6s ease-in-out .5s 1}
.gd-answer{animation:pop-in .55s cubic-bezier(.3,1.5,.5,1) both}
@keyframes pop-in{0%{transform:scale(.94);opacity:0}100%{transform:none;opacity:1}}
.gd-cta .btn:first-child{animation:bob 2.6s ease-in-out infinite}
.gd-av{transition:transform .2s}
.gd-author:hover .gd-av{transform:rotate(-8deg) scale(1.06)}
@media (prefers-reduced-motion:reduce){
  .gd-fig *,.gd-answer,.gd-cta .btn,.gd-honest,.gd-steps li:before{animation:none!important}
  .gd-anim .gd-steps li,.gd-anim .gd-panel,.gd-anim .gd-fig,.gd-anim .gd-tbl-wrap,.gd-anim .gd-author,.gd-anim .gd-cta{opacity:1;transform:none;transition:none}
}

/* Article hero illustration (deploy/guides/img/*-hero.svg, inlined): night sky, falling snow, condensation running down the
   bare window, a shine sweeping across the blind. */
.gd-hero-ill{background:#2a1c3f;border:var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--pop)}
.gd-hero-ill svg{display:block;width:100%;height:auto}
.gd-hero-ill figcaption{background:var(--paper);border-top:var(--line);padding:8px 14px;margin:0;color:var(--muted);font-size:14px}
.gd-hero-svg .gdh-stars circle{animation:blink 2.6s ease-in-out infinite}
.gd-hero-svg .gdh-stars circle:nth-child(3n){animation-delay:1.3s}
.gd-hero-svg .gdh-snow circle{transform-box:fill-box;animation:gdh-fall 4.2s linear infinite;animation-delay:var(--d)}
.gd-hero-svg .gdh-runs path{stroke-dasharray:30 200;stroke-dashoffset:30;animation:gdh-run 3s ease-in infinite;animation-delay:var(--d)}
.gd-hero-svg .gdh-shine{animation:gdh-shine 4.5s ease-in-out infinite}
.gd-hero-svg .gdh-tick{transform-box:fill-box;transform-origin:center;animation:gd-pop .6s cubic-bezier(.3,1.6,.5,1) .4s both,bob-s 2.4s ease-in-out 1s infinite}
@keyframes gdh-fall{0%{transform:translate(0,-20px);opacity:0}10%{opacity:1}100%{transform:translate(14px,60px);opacity:0}}
@keyframes gdh-run{0%{stroke-dashoffset:30;opacity:0}15%{opacity:1}100%{stroke-dashoffset:-120;opacity:.15}}
@keyframes gdh-shine{0%,30%{transform:skewX(-18deg) translateX(0)}70%,100%{transform:skewX(-18deg) translateX(420px)}}
@media (prefers-reduced-motion:reduce){.gd-hero-svg *{animation:none!important}}
