:root {
  --oak-primary: #5a3828;
  --oak-secondary: #476451;
  --oak-accent: #b7793f;
  --oak-velvet: #7b2f3b;
  --oak-background: #f6efdf;
  --oak-surface: #fffaf0;
  --oak-surface-soft: #e7eadc;
  --oak-text: #24211d;
  --oak-muted: #71685e;
  --oak-border: rgba(90, 56, 40, 0.2);
  --oak-radius-small: 8px;
  --oak-radius-medium: 18px;
  --oak-radius-large: 34px;
  --oak-radius-organic: 48% 52% 44% 56% / 58% 42% 58% 42%;
  --oak-shadow-soft: 0 16px 44px rgba(52, 39, 29, 0.09);
  --oak-shadow-elevated: 0 28px 70px rgba(52, 39, 29, 0.16);
  --oak-container: 1180px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--oak-text);
  background:
    radial-gradient(circle at 15% 10%, rgba(183, 121, 63, 0.16), transparent 24rem),
    linear-gradient(180deg, var(--oak-background), #fbf6ea 45%, var(--oak-surface-soft));
  line-height: 1.7;
  overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
img { max-width: 100%; display: block; object-fit: cover; }
a { color: inherit; text-underline-offset: 0.22em; }
:focus-visible { outline: 3px solid var(--oak-accent); outline-offset: 4px; }
.skip-link { position: fixed; top: 10px; left: 10px; z-index: 200; transform: translateY(-140%); background: var(--oak-text); color: white; padding: 10px 14px; border-radius: var(--oak-radius-small); }
.skip-link:focus { transform: translateY(0); }
.oak-header {
  position: sticky;
  top: 0;
  z-index: 100;
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  gap: 18px;
  align-items: center;
  padding: 18px clamp(18px, 4vw, 46px);
  border-bottom: 1px solid transparent;
  background: rgba(246, 239, 223, 0.84);
  backdrop-filter: blur(18px);
  transition: padding 0.25s ease, box-shadow 0.25s ease;
}
.oak-header.is-compact { padding-top: 10px; padding-bottom: 10px; box-shadow: var(--oak-shadow-soft); border-color: var(--oak-border); }
.brand-mark { display: inline-flex; align-items: center; gap: 12px; font-family: Georgia, "Times New Roman", serif; font-size: 1.15rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.brand-mark img, .oak-footer img { width: 42px; height: 42px; border-radius: 50%; }
.primary-nav { display: flex; justify-content: center; gap: 18px; font-size: 0.9rem; }
.primary-nav a, .header-cta { text-decoration: none; }
.primary-nav a { color: var(--oak-muted); }
.primary-nav a:hover { color: var(--oak-primary); }
.header-cta, .primary-button, .secondary-button, .cookie-banner button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 11px 18px;
  border-radius: 999px;
  border: 1px solid var(--oak-primary);
  background: var(--oak-primary);
  color: #fffaf0;
  font-weight: 750;
  text-decoration: none;
  cursor: pointer;
}
.secondary-button { color: var(--oak-primary); background: transparent; }
.text-link { color: var(--oak-primary); font-weight: 750; }
.menu-toggle { display: none; width: 46px; height: 46px; border: 1px solid var(--oak-border); border-radius: 50%; background: var(--oak-surface); }
.menu-toggle span { display: block; width: 20px; height: 2px; margin: 5px auto; background: var(--oak-primary); }
.section-space { max-width: var(--oak-container); margin: 0 auto; padding: 88px 24px; }
.hero-section {
  position: relative;
  max-width: 1280px;
  margin: 0 auto;
  padding: 92px 24px 74px;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(300px, 0.8fr);
  gap: clamp(32px, 6vw, 82px);
  align-items: center;
}
.woodgrain-field, .criteria-rings::before, .security-section::before, .final-cta::before {
  content: "";
  position: absolute;
  pointer-events: none;
  border-radius: 50%;
  background: repeating-radial-gradient(circle, rgba(90,56,40,.18) 0 2px, transparent 3px 24px);
}
.woodgrain-field { width: 540px; height: 540px; left: -220px; top: 50px; opacity: .55; }
.eyebrow { margin: 0 0 12px; color: var(--oak-velvet); font-size: .76rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
h1, h2, h3 { font-family: Georgia, "Times New Roman", serif; line-height: 1.08; font-weight: 700; margin: 0 0 18px; }
h1 { font-size: clamp(3rem, 7vw, 6.7rem); max-width: 11ch; }
h2 { font-size: clamp(2.1rem, 4vw, 4rem); }
h3 { font-size: clamp(1.35rem, 2vw, 2rem); }
.hero-intro, .section-heading p, .internal-hero p { max-width: 720px; font-size: 1.12rem; color: var(--oak-muted); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 18px; align-items: center; margin: 30px 0; }
.hero-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 34px 0 0; }
.hero-metrics div { border-left: 1px solid var(--oak-border); padding-left: 16px; }
.hero-metrics dt { font-family: Georgia, "Times New Roman", serif; font-size: 2.4rem; color: var(--oak-primary); }
.hero-metrics dd { margin: 0; color: var(--oak-muted); font-size: .92rem; }
.hero-image-wrap { position: relative; }
.hero-image-wrap img { width: 100%; min-height: 600px; border-radius: var(--oak-radius-organic); box-shadow: var(--oak-shadow-elevated); border: 12px solid rgba(255,250,240,.8); }
.floating-note { position: absolute; left: -32px; bottom: 38px; max-width: 240px; padding: 18px; background: rgba(255,250,240,.92); border: 1px solid var(--oak-border); border-radius: var(--oak-radius-medium); box-shadow: var(--oak-shadow-soft); font-size: .9rem; }
.trust-strip { max-width: var(--oak-container); margin: 0 auto; padding: 18px 24px; display: grid; grid-template-columns: repeat(4, 1fr); border-block: 1px solid var(--oak-border); color: var(--oak-primary); font-weight: 750; }
.trust-strip span { padding: 10px 18px; border-left: 1px solid var(--oak-border); }
.trust-strip span:first-child { border-left: 0; }
.chapter-flow { display: grid; grid-template-columns: 1.2fr .9fr 1fr; gap: 0; margin-top: 44px; }
.review-chapter { position: relative; padding: 32px; background: rgba(255,250,240,.62); border-left: 1px solid var(--oak-border); min-height: 430px; }
.offset-chapter { margin-top: 60px; background: rgba(231,234,220,.78); }
.chapter-number, .rank-number, .giant-rank, .highlight-spread span, .benefits-band span, .criteria-list span, .ring-steps span, .tab-panel span { font-family: Georgia, "Times New Roman", serif; color: var(--oak-accent); font-weight: 700; }
.chapter-number { font-size: 3.4rem; }
.chapter-glyph { position: absolute; right: 24px; top: 8px; font-family: Georgia, "Times New Roman", serif; font-size: 8rem; color: rgba(123,47,59,.08); }
.css-orbit { display: block; width: 58px; height: 58px; border: 1px solid var(--oak-accent); border-radius: 50%; box-shadow: inset 0 0 0 12px rgba(183,121,63,.1); margin: 16px 0; }
.ranking-catalogue { display: grid; gap: 22px; }
.ranking-card, .ranking-row { border-top: 1px solid var(--oak-border); padding: 28px 0; }
.ranking-card { display: grid; grid-template-columns: 90px minmax(260px, .82fr) 1fr; gap: 26px; align-items: stretch; }
.featured-ranking { background: linear-gradient(115deg, rgba(255,250,240,.86), rgba(231,234,220,.7)); padding: 30px; border-radius: var(--oak-radius-large); box-shadow: var(--oak-shadow-soft); }
.ranking-card img { height: 100%; min-height: 350px; border-radius: 40% 60% 42% 58% / 54% 46% 54% 46%; }
.ranking-pair { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: 24px; }
.ranking-pair .ranking-card {
  position: relative;
  grid-template-columns: 1fr;
  gap: 18px;
  padding: 24px;
  background: rgba(255,250,240,.68);
  border: 1px solid var(--oak-border);
  border-radius: var(--oak-radius-large);
}
.ranking-pair .rank-number {
  position: absolute;
  z-index: 2;
  top: 20px;
  left: 20px;
  padding: 8px 12px;
  border-radius: var(--oak-radius-small);
  background: rgba(255,250,240,.88);
  box-shadow: var(--oak-shadow-soft);
  font-size: clamp(2.6rem, 4vw, 4.8rem);
}
.ranking-pair img { min-height: 280px; height: 320px; width: 100%; border-radius: var(--oak-radius-medium); }
.ranking-pair .ranking-copy { width: 100%; max-width: 100%; }
.rank-number { font-size: clamp(3rem, 6vw, 5.7rem); line-height: .9; }
.ranking-badge, .category-label { color: var(--oak-velvet); font-weight: 800; text-transform: uppercase; font-size: .76rem; letter-spacing: .1em; }
.score { display: flex; gap: 12px; align-items: baseline; color: var(--oak-primary); font-weight: 800; }
.score span { font-size: 2rem; font-family: Georgia, "Times New Roman", serif; }
.ranking-row { display: grid; grid-template-columns: 86px 210px 1fr; gap: 26px; align-items: start; }
.ranking-row img { height: 190px; width: 100%; border-radius: var(--oak-radius-medium); }
.soft-row { background: rgba(231,234,220,.45); padding-inline: 22px; border-radius: var(--oak-radius-medium); }
.top-five { display: grid; grid-template-columns: .72fr 1.28fr; gap: 32px; }
.highlight-spread { display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; }
.highlight-spread article { position: relative; min-height: 220px; padding: 18px; display: flex; flex-direction: column; justify-content: end; overflow: hidden; border-radius: var(--oak-radius-medium); background: var(--oak-primary); color: white; }
.highlight-spread img { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .52; }
.highlight-spread h3, .highlight-spread p, .highlight-spread span { position: relative; margin-bottom: 6px; }
.highlight-main { grid-column: span 3; grid-row: span 2; }
.highlight-spread article:not(.highlight-main) { grid-column: span 3; }
.criteria-rings, .security-section, .final-cta { position: relative; overflow: hidden; }
.criteria-rings { display: grid; grid-template-columns: 360px 1fr; gap: 50px; align-items: center; }
.criteria-rings::before { width: 440px; height: 440px; left: 8px; top: 68px; }
.ring-core { position: relative; z-index: 1; padding: 54px 24px; }
.criteria-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; position: relative; z-index: 1; }
.criteria-list article { padding: 22px; border: 1px solid var(--oak-border); border-radius: var(--oak-radius-organic); background: rgba(255,250,240,.76); }
.leader-feature { display: grid; grid-template-columns: 90px .7fr 1fr 280px; gap: 26px; align-items: start; background: rgba(255,250,240,.52); border-block: 1px solid var(--oak-border); }
.giant-rank { font-size: 5.5rem; writing-mode: vertical-rl; }
.leader-feature > img { min-height: 680px; border-radius: 48% 52% 46% 54% / 62% 38% 62% 38%; }
.leader-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; margin: 24px 0; }
.leader-aside { padding: 22px; background: var(--oak-secondary); color: #fffaf0; border-radius: var(--oak-radius-medium); }
.support-section { display: grid; grid-template-columns: 1fr .7fr 260px; gap: 26px; align-items: center; background: linear-gradient(90deg, var(--oak-velvet), #61323b); color: #fffaf0; max-width: none; padding-inline: max(24px, calc((100vw - var(--oak-container)) / 2)); }
.support-section img { height: 420px; width: 100%; border-radius: var(--oak-radius-organic); }
.support-section aside { display: grid; gap: 12px; padding: 18px; border-left: 1px solid rgba(255,250,240,.35); }
.style-gallery { display: grid; grid-template-columns: repeat(6, 1fr); gap: 18px; }
.style-gallery article { padding: 22px; background: rgba(255,250,240,.74); border: 1px solid var(--oak-border); border-radius: var(--oak-radius-medium); }
.style-gallery img { width: 100%; height: 240px; border-radius: var(--oak-radius-organic); margin-bottom: 16px; }
.wide-style { grid-column: span 4; }
.tall-style { grid-column: span 2; grid-row: span 2; }
.compact-style, .text-style { grid-column: span 2; }
.benefits-band { max-width: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; background: var(--oak-surface); border-block: 1px solid var(--oak-border); padding-inline: max(24px, calc((100vw - var(--oak-container)) / 2)); }
.benefits-band article { padding: 28px; border-left: 1px solid var(--oak-border); }
.device-tabs { display: grid; grid-template-columns: 250px 1fr; min-height: 350px; border: 1px solid var(--oak-border); border-radius: var(--oak-radius-large); overflow: hidden; background: var(--oak-surface); }
.tab-list { display: grid; background: var(--oak-surface-soft); }
.tab-list button { border: 0; border-bottom: 1px solid var(--oak-border); background: transparent; color: var(--oak-primary); font: inherit; font-weight: 850; text-align: left; padding: 24px; cursor: pointer; }
.tab-list button[aria-selected="true"] { background: var(--oak-primary); color: white; }
.tab-panel { position: relative; padding: 48px; background: radial-gradient(circle at 86% 20%, rgba(183,121,63,.18), transparent 16rem), var(--oak-surface); }
.tab-panel span { font-size: 5rem; }
.security-section { max-width: none; padding-inline: max(24px, calc((100vw - var(--oak-container)) / 2)); background: #202722; color: #fffaf0; }
.security-section::before { width: 520px; height: 520px; right: -90px; top: 18px; opacity: .35; }
.security-notes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 28px 0; }
.security-notes span { padding: 18px; border: 1px solid rgba(183,121,63,.55); border-radius: var(--oak-radius-small); }
.dark-disclaimer { max-width: 850px; color: #e5d7c0; }
.ring-steps { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.ring-steps li { min-height: 190px; padding: 24px; border-radius: 50%; border: 1px solid var(--oak-border); display: grid; place-items: center; text-align: center; background: radial-gradient(circle, transparent 44%, rgba(183,121,63,.16) 45% 46%, transparent 47%), var(--oak-surface); }
.faq-list details { border-top: 1px solid var(--oak-border); padding: 18px 0; }
.faq-list summary { cursor: pointer; font-weight: 850; font-size: 1.1rem; }
.update-grid, .contact-section { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.update-grid article, .contact-form { padding: 24px; border: 1px solid var(--oak-border); background: rgba(255,250,240,.72); border-radius: var(--oak-radius-medium); }
.contact-section { grid-template-columns: .85fr 1.15fr; align-items: start; }
.contact-form { display: grid; gap: 14px; }
.contact-form label { display: grid; gap: 6px; font-weight: 750; }
input, textarea { width: 100%; border: 1px solid var(--oak-border); border-radius: var(--oak-radius-small); padding: 13px 14px; font: inherit; background: #fffefa; color: var(--oak-text); }
[aria-invalid="true"] { border-color: var(--oak-velvet); box-shadow: 0 0 0 3px rgba(123,47,59,.13); }
.checkbox-line { display: flex !important; grid-template-columns: none; align-items: center; gap: 10px; font-weight: 500 !important; }
.checkbox-line input { width: auto; }
.form-message { color: var(--oak-velvet); font-weight: 750; }
.form-message.is-success { color: var(--oak-secondary); }
.final-cta { max-width: var(--oak-container); margin: 20px auto 90px; padding: 56px 32px; background: linear-gradient(135deg, #fff3d6, #dec097); border-radius: var(--oak-radius-large); text-align: center; }
.final-cta::before { width: 360px; height: 360px; right: -80px; top: -90px; }
.final-cta > span { font-family: Georgia, "Times New Roman", serif; font-size: 9rem; color: rgba(90,56,40,.12); line-height: .7; }
.oak-footer { display: grid; grid-template-columns: 1fr 1fr 1.5fr; gap: 28px; padding: 54px max(24px, calc((100vw - var(--oak-container)) / 2)); background: #211d19; color: #fff8e9; }
.oak-footer nav { display: grid; gap: 8px; align-content: start; }
.footer-disclosure { font-size: .92rem; color: #e2d2bb; }
.cookie-banner { position: fixed; z-index: 150; left: 18px; right: 18px; bottom: 18px; display: grid; grid-template-columns: 1fr auto auto; gap: 12px; align-items: center; max-width: 900px; margin: 0 auto; padding: 16px; background: rgba(255,250,240,.96); border: 1px solid var(--oak-border); border-radius: var(--oak-radius-medium); box-shadow: var(--oak-shadow-elevated); }
.cookie-banner[hidden] { display: none; }
.cookie-banner button:last-child { background: transparent; color: var(--oak-primary); }
.back-to-top { position: fixed; right: 18px; bottom: 18px; z-index: 120; width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--oak-border); background: var(--oak-primary); color: white; opacity: 0; pointer-events: none; transition: opacity .2s ease; }
.back-to-top.is-visible { opacity: 1; pointer-events: auto; }
.internal-hero { max-width: var(--oak-container); margin: 0 auto; padding: 100px 24px 42px; }
.article-page { background: linear-gradient(180deg, rgba(255,250,240,.4), rgba(231,234,220,.45)); }
.long-form, .legal-document { max-width: 880px; margin: 0 auto; padding: 20px 24px 90px; }
.long-form h2, .legal-document h2 { margin-top: 34px; }
.long-form p, .legal-document p, .long-form li { color: var(--oak-muted); }
.article-cta { margin-top: 42px; padding: 30px; background: var(--oak-surface); border: 1px solid var(--oak-border); border-radius: var(--oak-radius-large); }
.reveal { opacity: 0; transform: translateY(22px); transition: opacity .6s ease, transform .6s ease; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .reveal { opacity: 1; transform: none; }
}
@media (max-width: 1100px) {
  .oak-header { grid-template-columns: auto auto auto; }
  .primary-nav {
    position: fixed;
    inset: 73px 14px auto;
    display: none;
    max-height: calc(100vh - 92px);
    overflow: auto;
    padding: 20px;
    background: var(--oak-surface);
    border: 1px solid var(--oak-border);
    border-radius: var(--oak-radius-medium);
    box-shadow: var(--oak-shadow-elevated);
  }
  .primary-nav.is-open { display: grid; justify-content: stretch; }
  .menu-toggle { display: block; }
}
@media (max-width: 900px) {
  h1 { max-width: 100%; }
  .hero-section, .top-five, .criteria-rings, .leader-feature, .support-section, .contact-section, .device-tabs, .oak-footer { grid-template-columns: 1fr; }
  .hero-image-wrap img, .leader-feature > img { min-height: 420px; }
  .floating-note { position: static; margin-top: -20px; }
  .trust-strip, .hero-metrics, .chapter-flow, .benefits-band, .security-notes, .ring-steps, .update-grid { grid-template-columns: 1fr 1fr; }
  .ranking-pair { grid-template-columns: 1fr; }
  .review-chapter, .offset-chapter { margin-top: 0; min-height: auto; }
  .ranking-card, .ranking-row { grid-template-columns: 1fr; }
  .ranking-card img, .ranking-row img { min-height: 260px; height: 260px; }
  .wide-style, .tall-style, .compact-style, .text-style { grid-column: span 3; }
  .giant-rank { writing-mode: horizontal-tb; }
}
@media (max-width: 620px) {
  .header-cta { display: none; }
  .brand-mark span { font-size: .98rem; overflow-wrap: anywhere; }
  .hero-section, .section-space, .internal-hero { padding-inline: 16px; }
  .trust-strip, .hero-metrics, .chapter-flow, .ranking-pair, .benefits-band, .security-notes, .ring-steps, .update-grid, .criteria-list, .highlight-spread, .style-gallery { grid-template-columns: 1fr; }
  .highlight-main, .highlight-spread article:not(.highlight-main), .wide-style, .tall-style, .compact-style, .text-style { grid-column: auto; }
  .cookie-banner { grid-template-columns: 1fr; }
  .ring-steps li { border-radius: var(--oak-radius-medium); min-height: 130px; }
  .tab-list { grid-template-columns: repeat(2, 1fr); }
  .tab-list button { padding: 16px; }
  .tab-panel { padding: 28px; }
  .soft-row { padding-inline: 14px; }
}
