/* ==========================================================
   FEEDHOUSEPULSES — Swiss International Editorial System
   Palette: Carbon Black / Racing Ivory / Burnt Red / Titanium / Warm Gray
   Card Architecture: Framed Canvas Magazine Card
   ========================================================== */
:root{
  --carbon:#141414;
  --ivory:#F6F2E8;
  --red:#B8352A;
  --titanium:#9AA0A6;
  --warmgray:#6F675C;
  --line:1px solid #141414;
  --serif:Georgia,'Times New Roman',serif;
  --sans:'Helvetica Neue',Helvetica,Arial,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{overflow-x:hidden}
body{background:var(--ivory);color:var(--carbon);font-family:var(--sans);font-size:16px;line-height:1.6}
img{max-width:100%;display:block}
a{color:var(--carbon);text-decoration:none}
a:hover{color:var(--red)}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}

/* ---------- Utility bar ---------- */
.utility-bar{background:var(--carbon);color:var(--ivory);font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.utility-bar .wrap{display:flex;justify-content:space-between;align-items:center;height:28px}
.utility-bar a{color:var(--titanium)}
.utility-bar a:hover{color:var(--ivory)}
.utility-bar .u-right span{margin-left:16px}

/* ---------- Header (non-sticky, slim) ---------- */
.site-header{background:var(--ivory);border-bottom:2px solid var(--carbon)}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:52px}
@media(min-width:768px){.header-inner{height:60px}}
.brand{display:flex;align-items:center;gap:9px;font-family:var(--serif);font-weight:700;font-size:19px;letter-spacing:.01em}
.brand svg{flex:none}
.main-nav{display:flex;gap:26px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:600}
.main-nav a{border-bottom:2px solid transparent;padding:4px 0}
.main-nav a:hover{border-color:var(--red);color:var(--carbon)}
.header-cta{background:var(--red);color:var(--ivory);font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;padding:9px 16px}
.header-cta:hover{background:var(--carbon);color:var(--ivory)}
.nav-toggle{display:none;background:none;border:var(--line);width:38px;height:38px;cursor:pointer;align-items:center;justify-content:center}
@media(max-width:860px){
  .main-nav{display:none;position:fixed;inset:0;background:var(--carbon);z-index:90;flex-direction:column;justify-content:center;align-items:center;gap:30px;font-size:18px}
  .main-nav a{color:var(--ivory)}
  .main-nav.open{display:flex}
  .nav-toggle{display:flex;z-index:99;position:relative}
  .header-cta{display:none}
}

/* ---------- Feature story ---------- */
.feature{border-bottom:var(--line);padding:44px 0 50px}
.feature-grid{display:grid;grid-template-columns:1.25fr .9fr;gap:40px;align-items:end}
.kicker{color:var(--red);font-size:12px;letter-spacing:.22em;text-transform:uppercase;font-weight:700;margin-bottom:14px}
.feature h1{font-family:var(--serif);font-size:clamp(34px,5.4vw,62px);line-height:1.04;font-weight:700}
.feature .standfirst{margin:18px 0 26px;font-size:17px;color:var(--warmgray);max-width:48ch}
.feature-media{border:var(--line);padding:10px;background:#fff}
.feature-media img{clip-path:polygon(0 0,100% 0,100% 88%,0 100%)}
.feature-meta{display:flex;gap:24px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--warmgray);border-top:var(--line);padding-top:12px;margin-top:8px}
.btn{display:inline-block;background:var(--carbon);color:var(--ivory);padding:13px 26px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:700}
.btn:hover{background:var(--red);color:var(--ivory)}
.btn-outline{background:transparent;color:var(--carbon);border:var(--line)}
.btn-outline:hover{background:var(--carbon);color:var(--ivory)}
@media(max-width:860px){.feature-grid{grid-template-columns:1fr}}

/* ---------- Race strip ---------- */
.race-strip{background:var(--carbon);color:var(--ivory);border-bottom:3px solid var(--red)}
.race-strip .wrap{display:flex;overflow-x:auto;gap:0}
.strip-item{flex:1 0 220px;padding:14px 18px;border-right:1px solid #2c2c2c;font-size:12px}
.strip-item b{display:block;color:var(--red);font-size:11px;letter-spacing:.18em;text-transform:uppercase;margin-bottom:3px}
.strip-item a{color:var(--ivory)}
.strip-item a:hover{color:var(--red)}

/* ---------- Section heads ---------- */
.section{padding:56px 0;border-bottom:var(--line)}
.section-head{display:flex;align-items:baseline;justify-content:space-between;border-bottom:3px solid var(--carbon);padding-bottom:10px;margin-bottom:34px}
.section-head h2{font-family:var(--serif);font-size:clamp(24px,3vw,34px)}
.section-head .index-no{font-family:var(--serif);font-size:clamp(40px,6vw,72px);color:var(--titanium);line-height:1;font-weight:700}

/* ---------- Framed Canvas Magazine Cards ---------- */
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
@media(max-width:900px){.card-grid{grid-template-columns:1fr}}
.mag-card{position:relative;display:block}
.mag-card .canvas{border:var(--line);padding:9px;background:#fff}
.mag-card .canvas img{filter:grayscale(18%);transition:filter .3s}
.mag-card:hover .canvas img{filter:grayscale(0)}
.mag-card .badge{position:absolute;top:-11px;left:14px;background:var(--red);color:var(--ivory);font-size:10px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;padding:5px 10px;z-index:2}
.mag-card .float-box{background:var(--ivory);border:var(--line);margin:-34px 14px 0;position:relative;padding:18px 18px 16px}
.mag-card h3{font-family:var(--serif);font-size:20px;line-height:1.25;margin-bottom:8px}
.mag-card p{font-size:13.5px;color:var(--warmgray);margin-bottom:12px}
.mag-card .card-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--titanium);padding-top:10px;font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.mag-card .read-time{color:var(--warmgray)}
.mag-card .card-foot .go{color:var(--red);font-weight:700}
.mag-card:hover h3{color:var(--red)}

/* ---------- Rankings ---------- */
.rank-table{width:100%;border-collapse:collapse}
.rank-table th{text-align:left;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--warmgray);border-bottom:2px solid var(--carbon);padding:0 14px 10px}
.rank-table td{border-bottom:1px solid var(--titanium);padding:16px 14px;vertical-align:middle}
.rank-no{font-family:var(--serif);font-size:44px;font-weight:700;color:var(--carbon);line-height:1;width:70px}
.rank-table tr:first-child .rank-no,.rank-table tbody tr:nth-child(1) .rank-no{color:var(--red)}
.rank-name{font-family:var(--serif);font-size:19px;font-weight:700}
.rank-meta{font-size:12px;color:var(--warmgray)}
.rank-stat{font-size:13px;font-weight:700;white-space:nowrap}
.rank-link{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--red);font-weight:700;white-space:nowrap}
@media(max-width:720px){.hide-m{display:none}}

/* ---------- Deep dive ---------- */
.deepdive-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:44px;align-items:start}
.big-number{font-family:var(--serif);font-size:clamp(90px,15vw,190px);line-height:.85;color:var(--titanium);font-weight:700}
.deepdive-grid h2{font-family:var(--serif);font-size:clamp(26px,3.4vw,42px);margin:14px 0 16px}
.deepdive-grid .lede{color:var(--warmgray);margin-bottom:22px}
.spec-strip{display:grid;grid-template-columns:repeat(4,1fr);border:var(--line);margin:26px 0}
.spec-strip div{padding:14px;border-right:var(--line)}
.spec-strip div:last-child{border-right:none}
.spec-strip b{display:block;font-family:var(--serif);font-size:24px}
.spec-strip span{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--warmgray)}
@media(max-width:860px){.deepdive-grid{grid-template-columns:1fr}.spec-strip{grid-template-columns:repeat(2,1fr)}.spec-strip div:nth-child(2){border-right:none}}

/* ---------- Article pages ---------- */
.article-head{padding:50px 0 34px;border-bottom:var(--line)}
.article-head h1{font-family:var(--serif);font-size:clamp(30px,4.6vw,52px);line-height:1.08;max-width:20ch}
.article-body{padding:44px 0 64px;max-width:760px}
.article-body h2{font-family:var(--serif);font-size:26px;margin:36px 0 12px;border-top:3px solid var(--carbon);padding-top:14px}
.article-body h3{font-size:17px;margin:24px 0 8px;text-transform:uppercase;letter-spacing:.08em}
.article-body p{margin-bottom:16px}
.article-body ul,.article-body ol{margin:0 0 18px 22px}
.article-body li{margin-bottom:8px}
.article-body figure{border:var(--line);padding:9px;background:#fff;margin:26px 0}
.article-body figcaption{font-size:12px;color:var(--warmgray);padding-top:8px}
.pullstat{border-left:6px solid var(--red);padding:8px 0 8px 20px;margin:26px 0;font-family:var(--serif);font-size:22px}
.proscons{display:grid;grid-template-columns:1fr 1fr;gap:0;border:var(--line);margin:26px 0}
.proscons>div{padding:18px}
.proscons>div:first-child{border-right:var(--line)}
.proscons h4{font-size:12px;letter-spacing:.18em;text-transform:uppercase;margin-bottom:10px}
.proscons .pros h4{color:#2d6a4f}.proscons .cons h4{color:var(--red)}
.proscons ul{margin-left:18px;font-size:14px}
@media(max-width:640px){.proscons{grid-template-columns:1fr}.proscons>div:first-child{border-right:none;border-bottom:var(--line)}}

/* ---------- Disclaimers ---------- */
.content-disclaimer{border:var(--line);background:#fff;padding:14px 16px;margin:0 0 28px;font-size:13px;line-height:1.6;color:var(--warmgray)}
.content-disclaimer strong{color:var(--carbon);font-size:11px;letter-spacing:.16em;text-transform:uppercase;display:block;margin-bottom:4px}
.footer-disclaimer{border-top:1px solid #2c2c2c;padding-top:20px;margin-bottom:20px;font-size:12px;line-height:1.7;color:var(--titanium)}
.footer-disclaimer strong{color:var(--ivory);letter-spacing:.12em;text-transform:uppercase;font-size:11px}
.footer-disclaimer a{display:inline;text-decoration:underline;margin:0}

/* ---------- Legal / prose ---------- */
.prose{max-width:800px;padding:44px 0 70px}
.prose h1{font-family:var(--serif);font-size:clamp(30px,4vw,44px);margin-bottom:10px}
.prose h2{font-family:var(--serif);font-size:22px;margin:32px 0 10px}
.prose p{margin-bottom:14px}
.prose ul{margin:0 0 16px 22px}
.prose li{margin-bottom:6px}
.updated{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--warmgray);margin-bottom:28px}
.cookie-table{width:100%;border-collapse:collapse;margin:20px 0;font-size:13.5px}
.cookie-table th,.cookie-table td{border:1px solid var(--titanium);padding:10px 12px;text-align:left;vertical-align:top}
.cookie-table th{background:var(--carbon);color:var(--ivory);font-size:11px;letter-spacing:.14em;text-transform:uppercase}

/* ---------- Contact ---------- */
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:44px;padding:44px 0 70px}
@media(max-width:860px){.contact-grid{grid-template-columns:1fr}}
.form-field{margin-bottom:18px}
.form-field label{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;margin-bottom:6px}
.form-field input,.form-field textarea{width:100%;border:var(--line);background:#fff;padding:12px;font-family:var(--sans);font-size:15px}
.form-field input:focus,.form-field textarea:focus{outline:2px solid var(--red)}
.form-field .err{display:none;color:var(--red);font-size:12px;margin-top:5px}
.form-field.invalid input,.form-field.invalid textarea{border-color:var(--red);border-width:2px}
.form-field.invalid .err{display:block}
.form-success{display:none;border:2px solid #2d6a4f;color:#2d6a4f;padding:14px;margin-bottom:18px;font-weight:700}
.map-frame{border:var(--line);padding:9px;background:#fff;margin-top:24px}
.map-frame iframe{width:100%;height:260px;border:0;display:block}
.info-block{border:var(--line);padding:22px;margin-bottom:20px}
.info-block h3{font-family:var(--serif);font-size:19px;margin-bottom:8px}
.info-block p{font-size:14px;color:var(--warmgray)}

/* ---------- Footer ---------- */
.site-footer{background:var(--carbon);color:var(--titanium);padding:50px 0 34px;font-size:13px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:34px;margin-bottom:36px}
@media(max-width:860px){.footer-grid{grid-template-columns:1fr 1fr}}
.site-footer h4{color:var(--ivory);font-size:11px;letter-spacing:.2em;text-transform:uppercase;margin-bottom:14px}
.site-footer a{color:var(--titanium);display:block;margin-bottom:8px}
.site-footer a:hover{color:var(--red)}
.footer-brand{font-family:var(--serif);color:var(--ivory);font-size:20px;font-weight:700;margin-bottom:10px}
.footer-legal{border-top:1px solid #2c2c2c;padding-top:20px;font-size:12px;line-height:1.7}

/* ---------- Cookie banner ---------- */
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:200;background:var(--carbon);color:var(--ivory);border-top:3px solid var(--red);padding:16px 0;display:none}
.cookie-banner.visible{display:block}
.cookie-inner{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between}
.cookie-inner p{font-size:13px;max-width:62ch;color:var(--titanium)}
.cookie-inner p a{color:var(--ivory);text-decoration:underline}
.cookie-actions{display:flex;gap:10px;flex-wrap:wrap}
.cookie-actions button{cursor:pointer;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;padding:10px 16px;border:1px solid var(--ivory);background:none;color:var(--ivory)}
.cookie-actions .accept{background:var(--red);border-color:var(--red)}
.cookie-actions button:hover{background:var(--ivory);color:var(--carbon)}