.source-page { color:var(--navy); background:var(--cream); }
.source-hero { position:relative; overflow:hidden; padding:clamp(4rem,8vw,7.5rem) 5vw clamp(3.5rem,7vw,6rem); color:#fff; background:var(--navy); }
.source-hero::after { content:"USA"; position:absolute; right:-.04em; bottom:-.25em; color:rgba(255,255,255,.035); font:800 clamp(12rem,35vw,34rem)/1 "Libre Franklin",sans-serif; letter-spacing:-.08em; pointer-events:none; }
.source-crumbs,.source-kicker { position:relative; z-index:1; font-size:.72rem; font-weight:700; letter-spacing:.11em; text-transform:uppercase; }
.source-crumbs { display:flex; gap:.6rem; margin-bottom:2.5rem; color:#aebdd0; }
.source-kicker { color:#ff8c7d; }
.source-hero-grid { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1.2fr) minmax(18rem,.55fr); gap:clamp(2rem,7vw,7rem); align-items:end; }
.source-hero h1 { max-width:14ch; margin:1rem 0 1.3rem; font:800 clamp(3.2rem,7.5vw,7rem)/.93 "Libre Franklin",sans-serif; letter-spacing:-.065em; }
.source-hero h1 span { color:#ff8c7d; }
.source-lead { max-width:45rem; color:#c7d0dc; font-size:clamp(1.05rem,2vw,1.3rem); line-height:1.65; }
.source-actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:2rem; }
.source-card { padding:1.5rem; border:1px solid rgba(255,255,255,.18); background:rgba(255,255,255,.07); }
.source-card strong { display:block; margin-bottom:1rem; color:#fff; font-size:1.2rem; }
.source-card ol { display:grid; gap:.75rem; margin:0; padding:0; counter-reset:source; list-style:none; }
.source-card li { display:flex; gap:.75rem; padding-top:.75rem; border-top:1px solid rgba(255,255,255,.14); color:#d4dbe5; counter-increment:source; }
.source-card li::before { content:"0" counter(source); color:#ff8c7d; font-weight:800; }
.source-section { padding:clamp(4rem,8vw,7rem) 5vw; border-top:1px solid #d7d3c8; }
.source-head { display:grid; grid-template-columns:minmax(0,1fr) minmax(16rem,.55fr); gap:2rem; align-items:end; margin-bottom:2.5rem; }
.source-head h2 { max-width:15ch; margin:.7rem 0 0; font:800 clamp(2.4rem,5vw,4.5rem)/1 "Libre Franklin",sans-serif; letter-spacing:-.055em; }
.source-head>p { color:#536576; line-height:1.65; }
.route-grid,.requirement-grid,.quality-grid { display:grid; gap:1rem; }
.route-grid { grid-template-columns:repeat(3,1fr); }
.requirement-grid { grid-template-columns:repeat(2,1fr); }
.quality-grid { grid-template-columns:repeat(4,1fr); counter-reset:quality; }
.route,.requirement,.quality { padding:1.5rem; border:1px solid #c9c6bb; background:#fff; }
.route span,.requirement span { color:var(--red); font-size:.75rem; font-weight:800; letter-spacing:.08em; }
.route h3,.requirement h3,.quality h3 { margin:2.5rem 0 .7rem; font:800 1.35rem/1.15 "Libre Franklin",sans-serif; }
.route p,.requirement p,.quality p { color:#536576; line-height:1.6; }
.route ul { display:grid; gap:.45rem; margin:1rem 0 0; padding-left:1.1rem; color:#304b61; }
.requirement { display:grid; grid-template-columns:auto 1fr; gap:1rem; }
.requirement b { display:grid; place-items:center; width:2rem; height:2rem; border-radius:50%; color:#fff; background:var(--red); }
.requirement h3 { margin:.05rem 0 .4rem; }
.source-dark { color:#fff; background:var(--navy2); }
.source-dark .source-kicker { color:#ff8c7d; }
.source-dark .source-head>p,.source-dark .quality p { color:#bac6d1; }
.quality { min-height:16rem; border-color:rgba(255,255,255,.14); background:rgba(255,255,255,.045); counter-increment:quality; }
.quality::before { content:"0" counter(quality); color:#ff8c7d; font-weight:800; }
.compare { overflow-x:auto; border:1px solid #c9c6bb; }
.compare table { width:100%; min-width:43rem; border-collapse:collapse; background:#fff; }
.compare th,.compare td { padding:1rem 1.1rem; border-bottom:1px solid #d8d5cb; text-align:left; vertical-align:top; }
.compare tr:last-child td { border-bottom:0; }
.compare th { color:#607182; font-size:.73rem; letter-spacing:.07em; text-transform:uppercase; }
.compare td:first-child { font-weight:800; }
.source-note { margin-top:1rem; color:#5a6a79; font-size:.9rem; line-height:1.6; }
.source-faq { display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:clamp(2rem,7vw,7rem); }
.source-faq h2 { margin:.7rem 0; font:800 clamp(2.5rem,5vw,4.5rem)/1 "Libre Franklin",sans-serif; letter-spacing:-.055em; }
.source-faq details { border-top:1px solid #c9c6bb; }
.source-faq details:last-child { border-bottom:1px solid #c9c6bb; }
.source-faq summary { display:flex; justify-content:space-between; gap:1rem; padding:1.35rem 0; cursor:pointer; font-weight:800; }
.source-faq summary::after { content:"+"; color:var(--red); }
.source-faq details[open] summary::after { content:"−"; }
.source-faq details p { margin:-.4rem 0 1.4rem; color:#536576; line-height:1.65; }
.source-cta { margin:clamp(3rem,7vw,6rem) 5vw; padding:clamp(2rem,5vw,4rem); color:#fff; background:var(--red); }
.source-cta h2 { max-width:17ch; margin:0 0 1rem; font:800 clamp(2.3rem,5vw,4.5rem)/1 "Libre Franklin",sans-serif; letter-spacing:-.055em; }
.source-cta p { max-width:45rem; margin-bottom:1.5rem; color:#fff1ec; line-height:1.65; }
@media(max-width:900px){.source-hero-grid,.source-head,.source-faq{grid-template-columns:1fr}.route-grid{grid-template-columns:1fr}.quality-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.source-hero{padding-top:3rem}.source-hero h1{max-width:none;font-size:clamp(2.9rem,13vw,4rem);overflow-wrap:break-word}.source-actions{display:grid}.source-actions .button{text-align:center}.requirement-grid,.quality-grid{grid-template-columns:1fr}.source-section{padding:4rem 5vw}.quality{min-height:auto}}
