.fr { --navy:#13294b; --ink:#10233f; --muted:#51607a; --gold:#F5A623; --line:#e3e8ef; color:var(--ink); background:#fff; font-family:Inter,system-ui,sans-serif; }
.fr * { box-sizing:border-box; }
.fr-container { max-width:1160px; margin-inline:auto; padding-inline:24px; }
.fr a { text-decoration:none; }
.fr a:focus-visible, .fr button:focus-visible, .fr input:focus-visible, .fr select:focus-visible { outline:3px solid var(--gold); outline-offset:4px; }
.fr-eyebrow { display:flex; align-items:center; gap:12px; margin:0 0 20px; font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.17em; }
.fr-eyebrow::before { content:''; width:30px; height:2px; background:var(--gold); flex-shrink:0; }
.fr-hero { background:linear-gradient(110deg,#f8f6f0,#f0f4f8); padding:76px 0 66px; overflow:hidden; border-bottom:1px solid var(--line); }
.fr-hero-grid { display:grid; grid-template-columns:1.25fr .85fr; gap:65px; align-items:center; }
.fr h1, .fr h2 { font-family:'Instrument Serif',Georgia,serif; font-weight:400; letter-spacing:-.025em; }
.fr h1 { font-size:clamp(3.5rem,6.5vw,5.75rem); line-height:1.03; margin:0 0 24px; }
.fr h1 em { font-weight:400; color:#8b5a12; }
.fr-lead { max-width:490px; color:var(--muted); line-height:1.85; font-size:1.04rem; margin:0 0 30px; }
.fr-actions { display:flex; flex-wrap:wrap; align-items:center; gap:22px; }
.fr-btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; border:1px solid transparent; padding:14px 22px; border-radius:8px; font:600 .87rem/1.4 Inter,system-ui,sans-serif; cursor:pointer; transition:background .15s,box-shadow .15s; }
.fr-btn-navy { background:var(--navy); color:white; }
.fr-btn-navy:hover { background:#203f6b; box-shadow:0 5px 14px #13294b20; }
.fr-btn-gold { background:var(--gold); color:var(--navy); }
.fr-btn-gold:hover { background:#ffba46; }
.fr-btn-outline { border-color:var(--line); color:var(--navy); background:#fff; }
.fr-text-link { color:var(--navy); font-size:.85rem; font-weight:650; }
.fr-text-link:hover, .fr-detail-link:hover { text-decoration:underline; text-underline-offset:4px; }
.fr-hero-notes { display:flex; flex-wrap:wrap; gap:20px; color:var(--muted); font-size:.75rem; margin-top:25px; }
.fr-hero-notes i { color:#94702f; margin-right:5px; }
.fr-book-scene { position:relative; max-width:355px; width:100%; margin:0 auto; padding:12px 0 20px; }
.fr-book-scene::before { content:''; position:absolute; inset:20px -12px 25px 12px; background:#d8e1e9; border-radius:7px 15px 15px 7px; transform:rotate(5deg); }
.fr-book { position:relative; background:linear-gradient(150deg,#193b64,#0b2545); min-height:405px; border-left:7px solid var(--gold); border-radius:5px 13px 13px 5px; padding:30px; box-shadow:0 20px 38px #0b25452a; color:white; }
.fr-book img { display:block; width:145px; height:auto; background:white; padding:9px; border-radius:3px; margin-bottom:32px; }
.fr-book-kicker { color:#ebc789; font-size:.62rem; font-weight:600; letter-spacing:.14em; }
.fr-book p { font-family:'Instrument Serif',Georgia,serif; font-size:2.6rem; line-height:1.15; margin:15px 0; }
.fr-book-rule { width:36px; height:3px; background:var(--gold); margin:22px 0; }
.fr-book-footer { color:#c2d0df; font-size:.7rem; }
.fr-book-sticker { position:absolute; bottom:0; right:-20px; display:flex; align-items:center; gap:14px; background:#fff; padding:17px 23px; border-radius:10px; box-shadow:0 7px 24px #0b25451a; font-size:.65rem; color:var(--muted); }
.fr-book-sticker > i { color:#a66b10; font-size:1.8rem; }
.fr-book-sticker strong { display:block; color:var(--ink); font-size:.85rem; margin-top:4px; }
.fr-library { padding-top:65px; padding-bottom:75px; scroll-margin-top:90px; }
.fr-section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:25px; margin-bottom:26px; }
.fr-section-heading .fr-eyebrow { margin-bottom:12px; }
.fr h2 { font-size:clamp(2.25rem,4vw,3.1rem); line-height:1.12; margin:0; }
.fr-section-heading > p { text-align:right; font-size:.85rem; line-height:1.7; margin:0; }
.fr-section-heading > p span { color:var(--muted); font-size:.75rem; }
.fr-filters { display:flex; align-items:flex-end; flex-wrap:wrap; gap:14px; padding:20px; background:#f6f8fa; border:1px solid var(--line); border-radius:12px; margin-bottom:30px; }
.fr-filters label { display:block; font-size:.72rem; font-weight:650; margin-bottom:8px; }
.fr-search { flex:1 1 260px; }
.fr-category { flex:0 1 190px; }
.fr-filters input, .fr-filters select { font-family:inherit; font-size:.84rem; color:var(--ink); border:1px solid #d7dfe9; border-radius:7px; padding:13px 14px; height:49px; width:100%; background:#fff; }
.fr-input-wrap { position:relative; }
.fr-input-wrap i { position:absolute; top:17px; left:15px; color:#8492a6; font-size:.8rem; }
.fr-input-wrap input { padding-left:39px; }
.fr-filters > .fr-text-link { padding-bottom:15px; }
.fr-results { color:var(--muted); font-size:.85rem; margin-bottom:20px; }
.fr-resource-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.fr-resource-card { display:flex; flex-direction:column; border:1px solid var(--line); border-radius:14px; overflow:hidden; background:white; box-shadow:0 4px 15px #10233f06; }
.fr-card-art { height:180px; position:relative; overflow:hidden; }
.fr-card-art > img { width:100%; height:100%; object-fit:cover; }
.fr-free-badge { position:absolute; bottom:14px; left:18px; background:#fff; color:var(--navy); padding:7px 10px; border-radius:5px; font-size:.61rem; font-weight:750; letter-spacing:.1em; box-shadow:0 2px 8px #0001; }
.fr-card-art-generic { display:flex; flex-direction:column; justify-content:flex-start; align-items:flex-start; background:radial-gradient(circle at 90% 100%,#284e76 0,#13294b 60%); color:white; padding:20px; }
.fr-art-brand { font-size:.8rem; font-weight:700; letter-spacing:.05em; }
.fr-card-art-generic > i { position:absolute; right:25px; bottom:25px; font-size:5rem; color:#f5a623; opacity:.85; transform:rotate(8deg); }
.fr-art-caption { font-family:'Instrument Serif',Georgia,serif; font-size:1.7rem; margin-top:16px; max-width:70%; }
.fr-card-body { padding:23px; display:flex; flex:1; flex-direction:column; }
.fr-card-category { font-size:.62rem; font-weight:700; text-transform:uppercase; letter-spacing:.12em; color:#66758b; margin:0 0 12px; }
.fr-resource-card h3 { font-size:1.16rem; line-height:1.45; font-weight:700; margin:0 0 12px; overflow-wrap:anywhere; }
.fr-resource-card h3 a { color:var(--ink); }
.fr-resource-card h3 a:hover { text-decoration:underline; text-underline-offset:4px; }
.fr-caption { color:var(--muted); font-size:.84rem; line-height:1.8; margin:0 0 20px; overflow-wrap:anywhere; }
.fr-file-meta { display:flex; align-items:center; gap:9px; font-size:.7rem; color:#66758b; margin-top:auto; margin-bottom:16px; }
.fr-download { width:100%; }
.fr-card-course { border-top:1px solid var(--line); background:#faf9f5; padding:20px 23px; }
.fr-next-label { color:#806229; font-size:.62rem; text-transform:uppercase; letter-spacing:.09em; font-weight:700; margin:0 0 8px; }
.fr-course-name { font-size:.8rem; font-weight:600; line-height:1.6; margin:0 0 12px; }
.fr-course-actions { display:flex; flex-direction:column; gap:12px; }
.fr-buy-link { display:flex; flex-wrap:wrap; align-items:center; gap:8px; color:var(--navy); font-weight:700; font-size:.8rem; }
.fr-buy-link span { font-size:.75rem; margin-left:auto; }
.fr-buy-link:hover { text-decoration:underline; }
.fr-detail-link { display:inline-block; color:var(--muted); font-size:.75rem; text-decoration:underline!important; text-underline-offset:3px; }
.fr-empty { grid-column:1 / -1; background:#f7f9fb; border:1px dashed #d3dce7; text-align:center; padding:55px 24px; border-radius:12px; }
.fr-empty > i { color:#7a8da5; font-size:2rem; margin-bottom:20px; }
.fr-empty h3 { font-size:1.25rem; font-weight:650; margin-bottom:12px; }
.fr-empty p { color:var(--muted); margin-bottom:24px; }
.fr-pagination { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:20px; font-size:.8rem; margin-top:30px; }
.fr-learning { background:#f3f6fa; padding:65px 0 70px; scroll-margin-top:90px; }
.fr-learning-intro { color:var(--muted); max-width:730px; line-height:1.85; font-size:.9rem; margin:-4px 0 30px; }
.fr-offer-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.fr-offer { display:flex; flex-direction:column; padding:28px; background:#fff; border:1px solid var(--line); border-radius:12px; }
.fr-offer h3 { font-weight:700; font-size:1.2rem; line-height:1.55; margin:0 0 24px; }
.fr-price { display:flex; align-items:baseline; flex-wrap:wrap; gap:10px; margin:auto 0 20px; }
.fr-price strong { font-size:1.6rem; font-weight:750; }
.fr-price span { color:var(--muted); font-size:.72rem; }
.fr-offer > .fr-detail-link { text-align:center; margin-top:16px; }
.fr-advisor { background:var(--navy); border-radius:14px; padding:32px 36px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:24px; color:#fff; margin-top:34px; }
.fr-advisor h3 { font-family:'Instrument Serif',Georgia,serif; font-weight:400; font-size:2rem; margin:0 0 8px; }
.fr-advisor p { color:#c6d0de; font-size:.85rem; line-height:1.7; max-width:620px; margin:0; }
.fr-btn-outline-light { color:#fff; border-color:#8090a7; background:transparent; }
.fr-btn-outline-light:hover { background:#ffffff12; }
@media(max-width:1020px) { .fr-hero-grid { gap:40px; } .fr-resource-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .fr-offer { padding:22px; } }
@media(max-width:760px) { .fr-hero { padding:45px 0; } .fr-hero-grid { grid-template-columns:1fr; } .fr-book-scene { max-width:285px; margin-top:10px; padding-bottom:45px; } .fr-book { min-height:350px; padding:25px; } .fr-book-sticker { right:-10px; } .fr-section-heading { align-items:flex-start; flex-direction:column; } .fr-section-heading > p { text-align:left; } .fr-library { padding-top:42px; padding-bottom:45px; } .fr-resource-grid,.fr-offer-grid { grid-template-columns:1fr; } .fr-card-art { height:205px; } .fr-category { flex:1 1 180px; } .fr-filters > button { flex:1 1 150px; } .fr-learning { padding:44px 0; } .fr-advisor { padding:26px; } }
@media(prefers-reduced-motion:reduce) { .fr-btn { transition:none; } }
