:root { color-scheme:light; --ink:#1d2924; --muted:#4e6157; --brand:#275a43; --deep:#173e30; --line:#dce4da; --paper:#fff; font-family:"Instrument Sans", "Inter", system-ui, sans-serif; color:var(--ink); background:#fcfbf7; line-height:1.6; }
*,*::before,*::after { box-sizing:border-box; }
[hidden] { display:none!important; }
body { margin:0; }
html { scroll-padding-top:92px; }
img { display:block; max-width:100%; height:auto; }
a { color:inherit; }
input,button { font:inherit; }
button { cursor:pointer; }
:focus-visible { outline:3px solid #bf6a40; outline-offset:4px; }
h1,h2,h3,p,dl,dd { margin:0; }
h1,h2 { font-family:"Instrument Serif", Georgia, serif; font-weight:600; letter-spacing:-.04em; line-height:1.04; overflow-wrap:anywhere; }
h1 { font-size:clamp(2.9rem,7vw,6.65rem); }
.hero h1 { font-size:clamp(2.7rem,5.2vw,5rem); text-wrap:balance; }
h2 { font-size:clamp(2rem,4vw,3.45rem); }
h3 { line-height:1.28; }
p,dd { color:var(--muted); }
.wrap { width:min(100% - 64px,1200px); margin-inline:auto; }
.section { padding-block:clamp(36px,6vw,84px); }
.skip { position:fixed; z-index:12; top:8px; left:8px; padding:8px 12px; background:white; transform:translateY(-150%); }
.skip:focus { transform:none; }
.top { position:sticky; top:0; z-index:5; background:#fcfbf7; border-bottom:1px solid var(--line); }
.top-inner,.footer-inner { display:flex; justify-content:space-between; align-items:center; gap:18px; }
.top-inner { min-height:72px; }
.top nav,.footer nav { display:flex; flex-wrap:wrap; gap:clamp(12px,2vw,27px); }
.top nav a,.footer nav a { text-decoration:none; font-weight:600; }
.top nav a:hover,.footer nav a:hover,.text-link:hover { text-decoration:underline; text-underline-offset:4px; }
.brand { display:inline-flex; align-items:center; white-space:nowrap; font-weight:820; font-size:1.35rem; letter-spacing:-.05em; text-decoration:none; }
.brand > span:last-child { color:#437451; }
.brand-icon { display:grid; place-items:center; background:#e4ebbd; color:#244535; width:34px; height:34px; border-radius:10px; margin-right:8px; }
.button { display:inline-flex; justify-content:center; align-items:center; gap:10px; min-height:46px; padding:10px 18px; color:#fff; background:var(--brand); border:1px solid transparent; border-radius:9px; font-weight:720; text-decoration:none; }
.button:hover { background:#174532; }
.button-small { min-height:40px; padding:7px 13px; font-size:.88rem; }
.button-secondary { background:#fff; color:var(--deep); border-color:var(--line); }
.button-secondary:hover { background:#e6efdc; }
.hero,.subhero { background:#f1ebdf; border-bottom:1px solid #eae2d4; }
.hero-grid { display:grid; grid-template-columns:1.06fr 1fr; gap:clamp(25px,5vw,68px); align-items:center; padding-block:clamp(43px,7vw,96px); }
.lead { max-width:55ch; margin-top:18px; font-size:clamp(1rem,1.7vw,1.18rem); }
.hero-links { display:flex; align-items:center; flex-wrap:wrap; gap:20px; margin-top:26px; }
.hero-links > a:not(.button),.crumb,.text-link { color:var(--brand); font-weight:700; text-underline-offset:4px; }
.hero-covers { display:flex; align-items:center; justify-content:center; min-height:clamp(220px,33vw,410px); padding:30px 16px; border-radius:26px; background:radial-gradient(ellipse at top,#517660,#203d31 75%); overflow:hidden; }
.hero-covers a { width:31%; transition:transform .2s; }
.hero-covers a:first-child { transform:rotate(-9deg) translate(4%,9%); }
.hero-covers a:nth-child(2) { z-index:1; transform:translateY(-8%); }
.hero-covers a:nth-child(3) { transform:rotate(10deg) translate(-5%,10%); }
.hero-covers a:hover,.hero-covers a:focus-visible { z-index:2; transform:translateY(-12%) scale(1.05); }
.hero-covers img { width:100%; aspect-ratio:3/4; object-fit:contain; filter:drop-shadow(0 12px 15px #10281bc2); }
.subhero > .wrap:not(.section) { padding-block:clamp(36px,6vw,72px); }
.subhero .crumb { display:inline-block; margin-bottom:13px; }
.section-heading { margin-bottom:20px; }
.section-heading p,.guide p { margin-top:10px; }
.book-search { max-width:650px; }
.book-search label { display:block; margin-bottom:5px; font-weight:700; }
.book-search > div { display:flex; gap:7px; padding:6px; background:white; border:1px solid var(--line); border-radius:12px; }
.book-search input { min-width:0; width:100%; padding:6px 8px; border:0; background:transparent; border-radius:6px; }
.topic-list { display:flex; flex-wrap:wrap; gap:8px; margin-block:17px 25px; }
.topic-list a { padding:6px 12px; border:1px solid var(--line); border-radius:24px; background:white; font-size:.9rem; font-weight:650; text-decoration:none; }
.topic-list a:hover,.topic-list [aria-current=page] { background:#e4ebd9; border-color:#adc3ae; color:var(--deep); }
.book-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:19px; }
.book-card,.panel,.empty { border:1px solid var(--line); border-radius:15px; background:var(--paper); }
.book-card { display:flex; flex-direction:column; overflow:hidden; }
.book-cover { display:flex; flex:none; align-items:center; justify-content:center; height:clamp(155px,20vw,240px); padding:clamp(12px,1.5vw,18px); overflow:hidden; background:#f2eddf; }
.book-cover img { width:auto; max-width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 4px 5px #1f302c40); }
.book-cover-placeholder { font-size:3rem; color:var(--brand); }
.book-card-body { display:flex; flex-direction:column; flex:1; align-items:start; gap:8px; padding:16px; overflow-wrap:anywhere; }
.book-card-body h3 a { text-decoration:none; }
.book-card-body h3 a:hover { text-decoration:underline; }
.book-topic { font-size:.78rem; font-weight:750; color:var(--brand); }
.book-card-body .text-link { margin-top:auto; }
.book-detail,.guide-grid { display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.3fr); gap:clamp(24px,6vw,76px); align-items:start; }
.book-detail h1 { font-size:clamp(2.5rem,5.6vw,5.1rem); }
.detail-cover { display:grid; place-items:center; background:#e5e9d6; padding:clamp(22px,5vw,52px); border-radius:22px; }
.detail-cover img { width:auto; max-height:420px; filter:drop-shadow(0 10px 14px #203d3155); }
.book-description { margin-block:20px 24px; }
.affiliate,.offer-note { margin-top:12px; font-size:.9rem; }
.offer-note { margin-bottom:12px; }
.empty,.panel { padding:20px; }
.empty + .button { margin-top:15px; }
.contact-details { max-width:40rem; }
.contact-details p { margin-top:12px; }
.guide { background:#e9efdf; }
.guide-grid dl { display:grid; gap:13px; }
.guide-grid dl div { padding:13px 16px; border-left:2px solid #82a18a; }
.guide-grid dt { font-weight:750; }
.footer { color:#f8faf4; background:#18362a; padding-block:32px 18px; }
.footer p,.footer-legal { color:#dce9d8; }
.footer .brand > span:last-child { color:#d9efaa; }
.footer-legal { border-top:1px solid #f8faf440; margin-top:26px; padding-top:16px; font-size:.85rem; }
.footer button { padding:0; border:0; background:transparent; color:inherit; text-decoration:underline; }
.back-to-top { position:fixed; right:16px; bottom:16px; z-index:4; display:grid; place-items:center; width:46px; height:46px; color:white; background:var(--brand); border-radius:11px; font-size:1.35rem; text-decoration:none; box-shadow:0 5px 15px #173e3050; }
.analytics { position:fixed; z-index:9; bottom:16px; left:16px; width:min(425px,calc(100% - 32px)); padding:16px; font:16px/1.55 "Geist","Inter","Ubuntu Sans",system-ui,sans-serif; border:1px solid var(--line); border-radius:15px; background:white; box-shadow:0 8px 36px #173e3030; }
.analytics p { margin:7px 0 12px; }
.analytics .button-small { min-height:40px; padding:8px 14px; border-radius:10px; font-size:.87rem; line-height:1.2; }
body:has(#virtualx-local-environment) .footer { padding-bottom:62px; }
@media(max-width:1000px) { .book-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:730px) {
    .wrap { width:calc(100% - 34px); }
    .top-inner { min-height:62px; }
    .top nav { font-size:.84rem; }
    .header-action { display:none; }
    .hero-grid,.book-detail,.guide-grid { grid-template-columns:minmax(0,1fr); }
    .hero-covers { min-height:230px; }
    .hero-covers img { max-height:225px; }
    .book-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
    .footer-inner { flex-direction:column; align-items:flex-start; }
}
@media(max-width:370px) { .top-inner { flex-wrap:wrap; padding-block:8px; gap:7px; } .book-card-body { padding:11px; } }
@media(prefers-reduced-motion:reduce) { .hero-covers a { transition:none; } }
.legal-page{padding-block:clamp(34px,5vw,70px);background:#f0f3f9}
.legal-layout{display:grid;grid-template-columns:minmax(180px,235px) minmax(0,850px);grid-template-areas:"sidebar heading" "sidebar card";gap:24px clamp(20px,3vw,40px);justify-content:center;align-items:start}
.legal-heading{grid-area:heading}
.legal-heading h1{font-size:clamp(2rem,4vw,3.4rem);margin:0 0 12px;overflow-wrap:anywhere}
.legal-heading .eyebrow{margin-bottom:20px}
.legal-heading p:last-child{font-size:.95rem}
.legal-sidebar{grid-area:sidebar;position:sticky;top:96px;max-height:calc(100dvh - 116px);overflow:auto;padding:12px 6px 10px 0;color:var(--muted);font-size:.87rem}
.legal-sidebar summary{cursor:pointer;color:var(--ink);font-weight:650}
.legal-sidebar ul{padding:0 0 0 10px;margin:10px 0 0;border-left:1px solid #d6e0ee;list-style:none}
.legal-sidebar li+li{margin-top:4px}
.legal-sidebar a{display:block;padding:6px 8px;border-radius:6px;text-decoration:none;overflow-wrap:anywhere}
.legal-sidebar a:hover,.legal-sidebar a:focus-visible{background:#e3ebfc;color:#234ebc}
.legal-subsections{margin:0 0 5px 8px}
.legal-subsections summary{font-size:.78rem;color:var(--muted);font-weight:500}
.legal-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.legal-card{grid-area:card;min-width:0;padding:clamp(19px,3.5vw,36px);border:1px solid #dbe3ee;border-radius:18px;background:var(--paper);overflow-wrap:anywhere}
.legal h2{margin:27px 0 10px;font-size:clamp(1.25rem,2vw,1.58rem)}
.legal h3,.legal h4{margin:18px 0 8px;font-size:1.08rem}
.legal p{margin:10px 0}
.legal address{color:var(--muted);font-style:normal}
.legal section + section,.legal article > .grid + section{margin-top:clamp(24px,3vw,36px)}
.legal .legal-article > .grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 28px}
.legal .legal-article > .grid > section{margin:0}
.legal .legal-article > section > :last-child,.legal .legal-article > .grid > section > :last-child{margin-bottom:0}
.legal .legal-article > .grid h2,.legal .legal-article > section > h2:first-child,.legal-card > h2:first-child{margin-top:0}
.legal :is(h2,h3):target{color:#234ebc}
@media(max-width:760px){
  .legal-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"heading" "sidebar" "card";gap:16px}
  .legal-sidebar{position:static;max-height:17rem;padding:12px;border:1px solid #dbe3ee;border-radius:10px;background:var(--paper)}
}
@media(max-width:540px){.legal .legal-article > .grid{grid-template-columns:minmax(0,1fr);gap:14px}}
.legal a{color:#234ebc;text-underline-offset:3px}
.legal table{display:block;max-width:100%;overflow:auto;border-collapse:collapse}
.legal th,.legal td{padding:8px 12px;border:1px solid var(--line);text-align:left}
.legal pre{overflow:auto}

@media (prefers-reduced-motion: no-preference) {
    html { scroll-behavior: smooth; }
}
