/* Shared Bookworld recovery layer: same header/footer and readable internal pages on every route. */
:root { --bw-navy:#10264c; --bw-blue:#4967a7; --bw-mint:#55cdb8; --bw-ink:#182b49; --bw-muted:#52647c; --bw-line:#dce5ed; --bw-paper:#f7f9fb; }
.site-header.approved-header { position:relative; z-index:30; overflow:visible; }
.internal-page .site-header.approved-header { height:auto; min-height:92px; padding:9px 4vw 14px; gap:26px; flex-wrap:wrap; background:#fff; }
.internal-page .approved-header .commerce-nav { flex-basis:100%; justify-content:space-between; gap:10px; }
.approved-header .brand-image { flex:0 0 176px; width:176px; }
.approved-header .brand-image img { width:100%; height:56px; object-fit:contain; }
.approved-header .header-search { flex:1 1 360px; max-width:680px; }
.approved-header .header-actions { display:flex; align-items:center; gap:18px; }
.approved-header .header-actions>a,.approved-header .header-actions>button { display:grid; position:relative; justify-items:center; align-content:center; gap:2px; padding:3px 5px; border:0; background:transparent; color:var(--bw-navy); font:500 18px/1 var(--sans); text-decoration:none; cursor:pointer; }
.approved-header .header-actions small { color:var(--bw-navy); font:600 10px/1.2 var(--sans); }
.approved-header .header-actions b { position:absolute; top:0; right:-2px; min-width:15px; height:15px; padding:1px 4px; border-radius:50%; background:#55cdb8; color:#10264c; font:700 9px/1.35 var(--sans); text-align:center; }
.approved-header .commerce-nav { position:relative; z-index:31; overflow:visible; align-items:center; }
.approved-header .commerce-nav > a,
.approved-header .commerce-nav > .nav-group > summary { min-height:40px; display:flex; align-items:center; padding:7px 9px; border-radius:7px; color:var(--bw-navy); font:700 13px/1.2 var(--sans); text-decoration:none; white-space:nowrap; cursor:pointer; }
.approved-header .commerce-nav > a:hover,
.approved-header .commerce-nav > a:focus-visible,
.approved-header .commerce-nav > .nav-group > summary:hover,
.approved-header .commerce-nav > .nav-group > summary:focus-visible,
.approved-header .commerce-nav > .nav-group[open] > summary { background:#eff6fa; outline:none; }
.approved-header .nav-group { position:static; }
.approved-header .nav-group > summary { list-style:none; }
.approved-header .nav-group > summary::-webkit-details-marker { display:none; }
.approved-header .nav-group > summary::after { content:'⌄'; margin-left:6px; color:#6a7b92; }
.approved-header .nav-popover { position:absolute; z-index:40; top:calc(100% + 3px); left:0; width:min(1160px,96vw); max-height:min(72vh,720px); overflow:auto; padding:25px 29px 27px; border:1px solid #e3e9ef; border-radius:14px; background:#fff; box-shadow:0 18px 45px #10264c24; color:var(--bw-ink); }
.approved-header .nav-group:not([open]) > .nav-popover { display:none; }
.approved-header .nav-menu-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-bottom:14px; margin-bottom:18px; border-bottom:1px solid var(--bw-line); color:var(--bw-muted); font:600 13px/1.4 var(--sans); }
.approved-header .nav-menu-heading a { color:var(--bw-navy); font:700 13px/1.4 var(--sans); white-space:nowrap; }
.approved-header .nav-subject-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px 30px; }
.approved-header .nav-department { min-width:0; padding-right:14px; border-right:1px solid #edf0f4; }
.approved-header .nav-department:nth-child(3n) { border-right:0; }
.approved-header .nav-column-heading { display:flex; align-items:baseline; justify-content:space-between; gap:8px; margin:0 0 9px; color:var(--bw-navy); font:700 15px/1.35 var(--sans); text-decoration:none; }
.approved-header .nav-column-heading span { color:#8491a1; font:500 10px/1 var(--sans); }
.approved-header .nav-subject-link,.approved-header .nav-filter-link { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:33px; color:#344b6a; font:500 13px/1.35 var(--sans); text-decoration:none; }
.approved-header .nav-subject-link:hover,.approved-header .nav-filter-link:hover { color:#10264c; text-decoration:underline; text-underline-offset:3px; }
.approved-header .nav-subject-link span,.approved-header .nav-filter-link span { color:#8793a2; font:500 10px/1.2 var(--sans); }
.approved-header .nav-link-unavailable { color:#7d8794; cursor:not-allowed; }
.approved-header .nav-destination-note { font-size:10px!important; white-space:nowrap; }
.approved-header .nav-children-groups,.approved-header .nav-exam-columns { display:grid; grid-template-columns:1fr 1.5fr; gap:36px; }
.approved-header .nav-exam-columns { grid-template-columns:1fr 1fr; }
.approved-header .nav-children-groups h3,.approved-header .nav-exam-columns h3 { margin:0 0 10px; color:var(--bw-navy); font:700 15px/1.35 var(--sans); }
.approved-header .nav-age-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3px 16px; }
.approved-header .nav-interest-list,.approved-header .nav-exam-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; }
.approved-header .nav-menu-empty { display:flex; align-items:center; justify-content:space-between; gap:20px; color:var(--bw-muted); font:500 14px/1.5 var(--sans); }
.approved-header .nav-menu-empty p { margin:0; }
.approved-header .nav-menu-empty a { color:var(--bw-navy); font-weight:700; }
.nav-toggle { display:none; }

/* Homepage category carousel: sizing follows its own available container. */
.refined-moods { container-type:inline-size; }
.refined-moods .mood-carousel { display:grid; grid-template-columns:minmax(0,1fr) 42px; gap:12px; align-items:center; }
.refined-moods .mood-category-track { display:flex; width:100%; min-width:0; gap:clamp(12px, 1.4vw, 22px); overflow-x:auto; overflow-y:hidden; padding:4px 2px 6px; scrollbar-width:none; -ms-overflow-style:none; scroll-snap-type:x mandatory; scroll-behavior:smooth; overscroll-behavior-x:contain; touch-action:pan-x; }
.refined-moods .mood-category-track::-webkit-scrollbar { display:none; }
.refined-moods .mood-category-track .mood-tile { display:flex; flex:0 0 calc((100% - 5 * clamp(12px, 1.4vw, 22px))/6); min-width:0; height:auto; min-height:0; flex-direction:column; align-items:stretch; gap:7px; overflow:visible; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; color:var(--bw-navy); text-align:center; text-decoration:none; scroll-snap-align:start; }
.refined-moods .mood-category-track .mood-tile img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:contain; }
.refined-moods .mood-category-track .mood-tile span { display:flex; min-height:2.4em; align-items:flex-start; justify-content:center; padding:0 3px; color:var(--bw-navy); font:600 13px/1.2 var(--sans); }
.mood-controls button:focus-visible,.mood-next:focus-visible,.mood-category-track .mood-tile:focus-visible { outline:3px solid #4967a7; outline-offset:3px; }
.mood-next[hidden] { display:none!important; }
@container (max-width:1450px) { .refined-moods .mood-category-track { gap:16px; } .refined-moods .mood-category-track .mood-tile { flex-basis:calc((100% - 4 * 16px)/5); } }
@container (max-width:900px) { .refined-moods .mood-category-track { gap:14px; } .refined-moods .mood-category-track .mood-tile { flex-basis:calc((100% - 3 * 14px)/4); } }
@container (max-width:560px) { .refined-moods .mood-category-track { gap:12px; } .refined-moods .mood-category-track .mood-tile { flex-basis:calc((100% - 2 * 12px)/3); } }

/* One shared footer for homepage and all internal routes. */
footer { grid-template-columns:minmax(220px,1.5fr) repeat(2,minmax(130px,.8fr)) minmax(220px,1.3fr); gap:30px 48px; align-items:start; padding:46px max(5vw,24px) 22px; background:#10264c!important; color:#f7f9fc; }
footer .footer-brand { min-width:0; }
footer .footer-logo { display:block; width:min(270px,100%); overflow:visible; }
/* The approved PNG has a large transparent canvas around its mark; scale and offset that canvas to reveal the original, undistorted artwork. */
footer .footer-logo img { position:static; display:block; width:100%; max-width:100%; height:auto; }
footer p { max-width:285px; margin:12px 0 0; color:#d3deed; font:400 15px/1.55 var(--sans); }
footer h4 { margin:0 0 13px; color:#fff; font:700 16px/1.3 var(--sans); }
footer a { color:#e4ebf5; font:500 15px/1.55 var(--sans); text-decoration:none; }
footer div>a { display:block; margin:7px 0; }
footer a:hover { color:#fff; text-decoration:underline; text-underline-offset:3px; }
footer a:focus-visible,footer button:focus-visible,footer input:focus-visible { outline:2px solid #88dfcf; outline-offset:3px; }
footer .email { display:flex; min-height:42px; margin-top:13px; border-bottom:1px solid #d3deed; }
footer .email input { min-width:0; color:#fff; font:400 16px/1.4 var(--sans); }
footer .email input::placeholder { color:#c0cee0; opacity:1; }
footer .email button { color:#8be0d0; cursor:pointer; }
footer .copyright { grid-column:1/-1; padding-top:16px; color:#cfdaea; font:400 12px/1.5 var(--sans); }

/* Internal pages borrow the homepage's navy, mint and quiet paper surfaces. */
.internal-page { min-height:100vh; background:#fff; color:#182b49; font-family:var(--sans); }
.internal-page > .approved-header { border-bottom:1px solid #dce8ef; }
.internal-page .directory,.internal-page .catalogue,.internal-page .product,.internal-page .breadcrumb,.internal-page .search-hero { color:#182b49; }
.internal-page .search-hero { padding:clamp(42px,6.2vw,78px) clamp(24px,8vw,120px) clamp(38px,5vw,62px); border-bottom:1px solid #dce8ef; background:linear-gradient(112deg,#eef8fc 0%,#f6fbfd 52%,#e5f6f1 100%); }
.internal-page .search-hero h1 { max-width:950px; font-size:clamp(34px,4.2vw,58px); line-height:1.08; letter-spacing:-.045em; }
.internal-page .search-hero h1 i { font-style:normal; font-weight:600; }
.internal-page .big-search { display:flex; align-items:center; gap:8px; width:min(760px,100%); max-width:760px; margin:26px 0 0; padding:5px 6px 5px 17px; border:1px solid #d4e0e9; border-radius:999px; background:#fff; box-shadow:0 6px 18px #10264c0b; }
.internal-page .big-search:focus-within { border-color:#8bb4cb; box-shadow:0 0 0 3px #d9eff2; }
.internal-page .big-search input { min-width:0; min-height:44px; padding:8px 4px; border:0; outline:0; background:transparent; color:#203958; font:400 16px/1.4 var(--sans); }
.internal-page .big-search input::placeholder { color:#74849a; opacity:1; }
.internal-page .big-search button { flex:0 0 auto; min-height:42px; padding:0 22px; border:0; border-radius:999px; background:#10264c; color:#fff; font:600 14px/1 var(--sans); }
.internal-page .big-search button:hover { background:#2846a5; }
.internal-page .button.dark { border-color:#10264c; border-radius:999px; background:#10264c; color:#fff; }
.internal-page .button.dark:hover { border-color:#2846a5; background:#2846a5; }
.internal-page .directory { background:#fff; }
.internal-page .directory-list { border-top-color:#dce5ed; }
.internal-page .directory-list a { border-bottom-color:#dce5ed; }
.internal-page .catalogue .filters { border-top:1px solid #e1e8ef; }
.internal-page .filters details { border-top-color:#e1e8ef; }
.internal-page .filters input { accent-color:#2846a5; }
.internal-page .product { background:#fff; }
.internal-page .buy-box { border-color:#d9e3ec; }
.internal-page .buy-box .eyebrow { color:#657b98; }
.internal-page .peek { background:#10264c; color:#f7f9fc; }
.internal-page .peek .eyebrow { color:#b8c9df; }
.internal-page .peek p:not(.eyebrow) { color:#d3deed; }
.internal-page .peek-pages span { background:#eaf4f6; color:#17365c; box-shadow:8px 8px 0 #74b9ae; }
.internal-page .results-top select,.internal-page .catalogue input:focus-visible { outline-color:#779fca; }
.internal-page .api-pagination button:hover:not(:disabled) { border-color:#9bbbd2; background:#eef8f7; }
.internal-page .directory { max-width:1440px; margin:0 auto; padding:clamp(40px,6vw,82px) clamp(24px,6vw,92px); }
.internal-page .directory h1,.internal-page .product-info h1,.internal-page .search-hero h1 { max-width:950px; color:#10264c; font:700 clamp(34px,4.2vw,58px)/1.08 var(--sans); letter-spacing:-.045em; }
.internal-page .directory>p:not(.eyebrow) { max-width:740px; margin:16px 0 32px; color:#52647c; font:400 17px/1.6 var(--sans); }
.internal-page .eyebrow { color:#657b98; font:600 11px/1.4 var(--mono); letter-spacing:.12em; text-transform:uppercase; }
.internal-page .directory-list { border-top:1px solid #dce5ed; }
.internal-page .directory-list a { min-height:70px; padding:14px 16px; grid-template-columns:52px 1fr 28px; color:#10264c; text-decoration:none; transition:background .16s,padding .16s; }
.internal-page .directory-list a:hover { padding-left:22px; background:#eff8f7; }
.internal-page .directory-list h2 { color:#10264c; font:600 21px/1.3 var(--sans); letter-spacing:-.02em; }
.internal-page .directory-list span { color:#75869d; font:500 12px/1 var(--mono); }
.internal-page .catalogue { gap:32px; background:#fff; }
.internal-page .catalogue .filters { padding:18px; border:1px solid #e1e8ef; border-radius:12px; background:#f8fafc; }
.internal-page .catalogue .filters summary,.internal-page .catalogue .filters label,.internal-page .results-top p { color:#344b6a; font:500 14px/1.45 var(--sans); }
.internal-page .results-top select,.internal-page .catalogue input { min-height:40px; border:1px solid #cfd9e5; border-radius:7px; color:#203958; background:#fff; font:500 14px/1.3 var(--sans); }
.internal-page .results-grid { gap:30px 20px; }
.internal-page .fixture-card h3,.internal-page .api-book-card h3 { color:#10264c; font:600 17px/1.35 var(--sans); }
.internal-page .api-book-card .api-price { font-size:18px; }
.internal-page .api-book-card small,.internal-page .api-book-card p { color:#52647c; font:400 14px/1.5 var(--sans); }
.internal-page .breadcrumb { color:#63758e; font:500 13px/1.5 var(--sans); }
.internal-page .product-info h1 { margin:0 0 12px; }
.internal-page .product-info .subtitle { color:#405675; font:500 19px/1.45 var(--sans); }
.internal-page .publisher,.internal-page .specs dd,.internal-page .stock { color:#405675; font:400 15px/1.5 var(--sans); }
.internal-page .specs dt { color:#718198; font:500 11px/1.4 var(--mono); }
.internal-page .buy-box strong { color:#10264c; font:700 28px/1.25 var(--sans); }
.internal-page .product-body { background:#f0f7f8; color:#203958; }
.internal-page .peek { background:#10264c; }
.internal-page .product-subject-link { color:#3b5878; font:500 13px/1.45 var(--sans); letter-spacing:0; }
.taxonomy-tree { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 22px; }
.taxonomy-item { min-width:0; }
.taxonomy-item>a,.taxonomy-destination-pending { display:grid; grid-template-columns:34px minmax(0,1fr) auto 20px; gap:12px; align-items:center; min-height:62px; padding:12px 15px; border:1px solid #e0e8ef; border-radius:9px; color:#10264c; background:#fff; text-decoration:none; transition:background .16s,border-color .16s,transform .16s; }
.taxonomy-destination-pending { grid-template-columns:34px minmax(0,1fr) auto; color:#63758e; background:#f8fafc; }
.taxonomy-destination-pending>small { color:#7c8998; font:400 12px/1.3 var(--sans); }
.taxonomy-item>a:hover { transform:translateY(-1px); border-color:#bdd7d5; background:#f0f8f7; }
.taxonomy-item>a>span { color:#8795a8; font:500 11px/1 var(--mono); }
.taxonomy-item>a strong { min-width:0; font:600 16px/1.35 var(--sans); }
.taxonomy-item>a small { color:#708199; font:400 12px/1.3 var(--sans); white-space:nowrap; }
.taxonomy-item>a b { color:#4967a7; font-size:17px; }
.taxonomy-children { display:grid; grid-template-columns:1fr; gap:5px; margin:6px 0 8px 18px; padding-left:12px; border-left:2px solid #d9ecea; }
.taxonomy-children .taxonomy-item>a,.taxonomy-children .taxonomy-destination-pending { min-height:48px; padding:9px 12px; grid-template-columns:25px minmax(0,1fr) auto 18px; }
.taxonomy-children .taxonomy-item>a strong { font-size:14px; }
.taxonomy-empty { max-width:760px; padding:27px; border:1px solid #dfe8ef; border-radius:13px; background:#f7fafb; }
.taxonomy-empty h2 { margin:0 0 8px; color:#10264c; font:700 21px/1.3 var(--sans); }
.taxonomy-empty p { margin:0 0 20px; color:#52647c; font:400 15px/1.6 var(--sans); }
@media(max-width:1450px){.approved-header .nav-popover{left:0;width:min(1000px,96vw)}.approved-header .nav-subject-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 22px}}
@media(max-width:980px){
  footer{grid-template-columns:repeat(2,minmax(0,1fr));gap:23px 20px}footer .footer-brand{grid-column:1/-1}
  .approved-header .brand-image{flex-basis:150px;width:150px}.approved-header .brand-image img{height:49px}
  .approved-header .nav-toggle{display:block;order:2;margin-left:auto;padding:8px 11px;border:1px solid #dce5ed;border-radius:8px;background:#fff;color:#10264c;font:600 20px/1 var(--sans);cursor:pointer}
  .approved-header .commerce-nav,.approved-home .approved-header .commerce-nav{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:2px;width:100%;max-height:calc(100vh - 90px);overflow:auto;padding:12px 5vw 18px;border:1px solid #e3e9ef;border-radius:0 0 14px 14px;background:#fff;box-shadow:0 16px 25px #10264c1a}
  .approved-header .commerce-nav[hidden]{display:none!important}
  .approved-header .commerce-nav>a,.approved-header .commerce-nav>.nav-group>summary{width:100%;justify-content:space-between;min-height:45px;padding:10px 12px;font-size:15px}
  .approved-header .nav-group{position:relative;border-bottom:1px solid #edf0f4}
  .approved-header .nav-popover{position:static;width:100%;max-height:none;overflow:visible;padding:8px 14px 17px;border:0;border-radius:0;background:#f8fafc;box-shadow:none}
  .approved-header .nav-subject-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 18px}
  .approved-header .nav-department{padding-right:8px}
  .approved-header .nav-subject-grid,.approved-header .nav-children-groups,.approved-header .nav-exam-columns{grid-template-columns:minmax(0,1fr);gap:12px}
  .approved-header .nav-age-list,.approved-header .nav-interest-list,.approved-header .nav-exam-list{grid-template-columns:minmax(0,1fr);gap:0}
  .approved-header .nav-subject-link,.approved-header .nav-filter-link{min-width:0;white-space:normal;overflow-wrap:anywhere}
  .internal-page .catalogue{grid-template-columns:205px minmax(0,1fr);gap:20px}
}

/* Final approved artwork and API-fed shelf states. */
.refined-india { background-image:url("assets/homepage/india-reads-final-approved-bg.jpg"); }
.refined-india .india-reads-copy { margin-left:0; }
.refined-hundred > .hundred-mark { display:block; align-self:center; width:126px; height:126px; object-fit:contain; }
.api-loading,.api-empty-state { color:#415b79; font-size:14px; line-height:1.5; }
.book-carousel-wrap > .api-empty-state { margin:20px 0; }
.reader-carousel .api-empty-state { min-width:0; flex:1; align-self:center; margin:12px 6px; }
.reader-cover-track > .api-loading,.reader-cover-track > .api-empty-state { flex:0 0 100%; margin:0; padding:14px 24px; text-align:center; }
.india-cover-track > .api-loading,.india-cover-track > .api-empty-state { flex:1 0 100%; margin:18px 12px; }
@media(max-width:700px) { .refined-hundred > .hundred-mark { width:92px; height:92px; } }
@media(max-width:700px){
  .approved-header .brand-image{flex-basis:112px;width:112px;height:39px}.approved-header .brand-image img{height:39px}
  .approved-header .nav-toggle{order:2}.approved-header .header-actions{display:flex!important;gap:8px!important}.approved-header .header-actions small{display:none}.approved-header .header-actions>a,.approved-header .header-actions>button{padding:4px}.approved-header .header-search{order:4;flex-basis:100%;max-width:none}
  .approved-header .nav-subject-grid,.approved-header .nav-children-groups,.approved-header .nav-exam-columns{grid-template-columns:1fr;gap:12px}
  .approved-header .nav-department{padding:0 0 10px;border:0;border-bottom:1px solid #e5eaf0}
  .approved-header .nav-interest-list,.approved-header .nav-exam-list,.approved-header .nav-age-list{grid-template-columns:minmax(0,1fr);gap:0}
  .approved-header .nav-menu-heading{align-items:flex-start;flex-direction:column;gap:7px;margin-bottom:10px;padding-bottom:10px}
  .refined-moods{margin:12px 5vw;padding:18px 15px 16px}.refined-moods .mood-heading{grid-template-columns:1fr;grid-template-areas:"eyebrow" "title" "copy" "controls";row-gap:0;margin-bottom:12px}.refined-moods .mood-heading .eyebrow{grid-area:eyebrow}.refined-moods .mood-heading h2{grid-area:title;font-size:24px}.refined-moods .mood-heading>p:not(.eyebrow){grid-area:copy;font-size:13px}.refined-moods .mood-controls{grid-area:controls;justify-self:end;margin-top:-34px}.refined-moods .mood-carousel{grid-template-columns:minmax(0,1fr) 38px;gap:7px}.refined-moods .mood-category-track{gap:7px}.refined-moods .mood-category-track .mood-tile{gap:6px}.refined-moods .mood-category-track .mood-tile span{font-size:11px}
  .internal-page .directory{padding:42px 6vw}.internal-page .directory>p:not(.eyebrow){font-size:16px;margin:13px 0 24px}.taxonomy-tree{grid-template-columns:1fr;gap:9px}.taxonomy-item>a{grid-template-columns:28px minmax(0,1fr) auto 18px;padding:11px}.taxonomy-item>a strong{font-size:15px}.taxonomy-item>a small{font-size:11px}
  .internal-page .catalogue{display:block;padding:25px 5vw}.internal-page .catalogue .filters{display:block;margin-bottom:20px}.internal-page .results-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 13px}.internal-page .product{padding:22px 6vw 50px}.internal-page .product-info h1{font-size:36px}.internal-page .product-body{padding:42px 7vw}.internal-page .product-body h2,.internal-page .peek h2{font-size:32px}
  footer{grid-template-columns:repeat(2,minmax(0,1fr));gap:23px 20px;padding:34px 7vw 18px}footer .footer-brand{grid-column:1/-1}footer .footer-logo{width:min(240px,100%)}footer p,footer a{font-size:14px}footer h4{font-size:15px}footer .copyright{font-size:12px}
}
