/* Fonts (lighthouse-performance decision 6): the official Google Fonts files of DM Sans and Playfair Display, served
   from this site (assets/fonts/README.md). One variable file per subset covers every weight; Latin is preloaded by the
   layout, Latin Extended (the rupee sign) loads when a page uses it. Upright only, as before: <em> stays slanted by
   the browser. */
@font-face { font-family: "DM Sans"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("../../fonts/dm-sans-latin-ext-v17.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "DM Sans"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("../../fonts/dm-sans-latin-v17.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Playfair Display"; font-style: normal; font-weight: 600 800; font-display: swap; src: url("../../fonts/playfair-display-latin-ext-v40.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Playfair Display"; font-style: normal; font-weight: 600 800; font-display: swap; src: url("../../fonts/playfair-display-latin-v40.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* Metric-matched fallbacks: until a font arrives, Arial and Georgia Bold are scaled to its widths and line metrics, so
   the swap moves nothing (measured on the files above against the Windows fonts on 2026-10-31). They cover only the
   fonts' own characters; anything else (an arrow, Devanagari) goes to the system font as before. */
@font-face { font-family: "DM Sans Fallback"; font-weight: 100 500; src: local("Arial"), local("ArialMT"); size-adjust: 105%; ascent-override: 94.48%; descent-override: 29.52%; line-gap-override: 0%; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "DM Sans Fallback"; font-weight: 600 1000; src: local("Arial Bold"), local("Arial-BoldMT"); size-adjust: 101%; ascent-override: 98.22%; descent-override: 30.69%; line-gap-override: 0%; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Playfair Display Fallback"; font-weight: 100 1000; src: local("Georgia Bold"), local("Georgia-Bold"); size-adjust: 89.2%; ascent-override: 121.3%; descent-override: 28.14%; line-gap-override: 0%; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }

:root {
  color-scheme: light;
  --theme-color-background: #fbfbf9;
  --theme-color-surface: #ffffff;
  --theme-color-surface-muted: #f4f3ee;
  --theme-color-text: #1e293b;
  --theme-color-text-muted: #6b675f;
  --theme-color-primary: #b45309;
  --theme-color-primary-contrast: #ffffff;
  --theme-color-border: #e7e5df;
  --theme-color-danger: #b91c1c;
  --theme-color-success: #047857;
  --theme-font-body: "DM Sans", "DM Sans Fallback", system-ui, sans-serif;
  --theme-font-heading: "Playfair Display", "Playfair Display Fallback", Georgia, serif;
  --theme-font-mono: ui-monospace, monospace;
  --theme-space-1: .25rem; --theme-space-2: .5rem; --theme-space-3: .75rem;
  --theme-space-4: 1rem; --theme-space-6: 1.5rem; --theme-space-8: 2rem;
  --theme-radius-sm: .5rem; --theme-radius-md: .875rem; --theme-radius-lg: 1.5rem;
  --theme-shadow-sm: 0 1px 3px rgb(15 23 42 / .08);
  --theme-shadow-md: 0 18px 42px -22px rgb(15 23 42 / .35);
  /* Full width (home-full-width decision 1): one side gutter for the header, the page, the footer and the banner. */
  --theme-gutter: clamp(1rem, 2.5vw, 4rem);
  /* Reading width for pages that are not lists of cards (book page, cart). */
  --theme-reading-width: 80rem;
  --theme-motion-fast: 160ms; --theme-motion-normal: 300ms;
}
*,*::before,*::after{box-sizing:border-box}html{scroll-padding-top:10rem}html:focus-within{scroll-behavior:smooth}@media(max-width:42rem){html{scroll-padding-top:8rem}}body{min-width:320px;margin:0;background:var(--theme-color-background);color:var(--theme-color-text);font-family:var(--theme-font-body);line-height:1.6;-webkit-font-smoothing:antialiased}img{max-width:100%}a{color:var(--theme-color-primary)}h1,h2,h3,h4{font-family:var(--theme-font-heading);line-height:1.15}button,input{font:inherit}a,button,input{transition:color var(--theme-motion-fast),background var(--theme-motion-fast),border-color var(--theme-motion-fast),box-shadow var(--theme-motion-fast),transform var(--theme-motion-fast)}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #b45309;outline-offset:3px}.site-visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.public-header{position:sticky;z-index:20;top:0;border-bottom:1px solid rgb(231 229 223 / .9);background:rgb(251 251 249 / .94);backdrop-filter:blur(14px)}.public-header__inner,.public-page,.public-footer__inner{width:100%;box-sizing:border-box;padding-inline:var(--theme-gutter);margin-inline:auto}.public-header__inner{min-height:5rem;display:flex;align-items:center;gap:1.25rem}.public-brand{display:flex;align-items:center;gap:.7rem;color:#0f172a;font-family:var(--theme-font-heading);font-size:1.15rem;font-weight:800;text-decoration:none}.public-brand__mark{display:grid;width:2.5rem;aspect-ratio:1;place-items:center;border-radius:.75rem;background:#0f172a;color:#f59e0b;font-size:1.35rem;box-shadow:var(--theme-shadow-sm)}.public-navigation-wrap{display:flex!important;align-items:center;gap:1rem;margin-left:auto}.public-navigation{display:flex;align-items:center;gap:.1rem}.public-navigation a{padding:.55rem .7rem;border-radius:.6rem;color:#44403c;font-size:.875rem;font-weight:600;text-decoration:none}.public-navigation a:hover,.public-navigation a[aria-current=page]{background:#fff7ed;color:#9a3412}.public-header-search{display:flex}.public-header-search input{width:10rem;border:1px solid var(--theme-color-border);border-radius:.65rem 0 0 .65rem;padding:.5rem .65rem;background:#fff}.public-header-search button{border:0;border-radius:0 .65rem .65rem 0;background:#0f172a;color:#fff;padding:.5rem .7rem;font-weight:700}.public-menu-toggle{display:none;margin-left:auto;border:1px solid var(--theme-color-border);border-radius:.6rem;background:#fff;padding:.5rem .7rem}.public-menu-toggle__label{margin-right:.4rem}
.public-page{min-height:70vh;padding-block:1.5rem 4rem}.public-breadcrumbs{margin-bottom:1rem}.public-breadcrumbs ol{display:flex;flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none;color:var(--theme-color-text-muted);font-size:.8rem}.public-breadcrumbs li:not(:last-child)::after{content:"/";margin-left:.45rem;color:#a8a29e}.public-breadcrumbs a{text-decoration:none}.public-hero{position:relative;overflow:hidden;margin-bottom:2rem;border-radius:var(--theme-radius-lg);padding:clamp(2rem,5vw,3.75rem);background:linear-gradient(120deg,#0f172a,#1e293b 68%,#78350f);color:#fff;box-shadow:var(--theme-shadow-md)}.public-hero::after{position:absolute;content:"";width:18rem;aspect-ratio:1;right:-5rem;top:-9rem;border-radius:50%;background:rgb(245 158 11 / .13)}.public-hero h1{position:relative;margin:.25rem 0 .75rem;font-size:clamp(2rem,5vw,3.5rem);color:#fffbeb}.public-hero p{position:relative;max-width:44rem;margin:0;color:#d6d3d1}.public-eyebrow{position:relative;color:#fbbf24;font-family:var(--theme-font-mono);font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.public-home-hero{display:grid;grid-template-columns:1.35fr .8fr;gap:clamp(2rem,5vw,5rem);align-items:center;margin:.5rem 0 3rem;padding:clamp(2rem,6vw,5rem);border-radius:var(--theme-radius-lg);background:linear-gradient(125deg,#0f172a,#292524);color:white;box-shadow:var(--theme-shadow-md)}.public-home-hero h1{max-width:12ch;margin:.5rem 0 1rem;color:#fffbeb;font-size:clamp(2.5rem,7vw,5rem)}.public-home-hero p{max-width:40rem;color:#d6d3d1}.public-home-hero__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}.public-home-search{border:1px solid rgb(255 255 255 / .12);border-radius:var(--theme-radius-md);padding:1.25rem;background:rgb(255 255 255 / .08)}.public-home-search label{display:block;margin-bottom:.55rem;font-weight:700}.public-home-search div{display:flex}.public-home-search input{min-width:0;width:100%;border:0;border-radius:.65rem 0 0 .65rem;padding:.8rem}.public-home-search button{border:0;border-radius:0 .65rem .65rem 0;background:#d97706;color:white;padding:.8rem 1rem;font-weight:700}
.site-button{display:inline-flex;justify-content:center;align-items:center;border:1px solid transparent;border-radius:.7rem;padding:.7rem 1rem;font-weight:700;text-decoration:none}.site-button--primary{background:#b45309;color:#fff}.site-button--primary:hover{background:#92400e}.site-button--secondary{border-color:#d6d3d1;background:#fff;color:#1c1917}.site-section-header{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin:3rem 0 1.25rem}.site-section-header h2{margin:0;font-size:clamp(1.7rem,3vw,2.4rem)}.site-section-header a{font-size:.875rem;font-weight:700;text-decoration:none}.site-card{background:var(--theme-color-surface)}
.public-search-panel,.public-section,.public-placeholder,.public-discovery-card,.public-discovery-profile,.public-book-detail__hero,.public-book-detail__main,.public-book-detail__panel{border:1px solid var(--theme-color-border);border-radius:var(--theme-radius-md);background:var(--theme-color-surface);box-shadow:var(--theme-shadow-sm)}.public-search-panel{display:grid;gap:.8rem;margin-bottom:1.5rem;padding:1.25rem}.public-search-panel h2{margin:0}.public-search-form label{display:block;margin-bottom:.45rem;color:var(--theme-color-text-muted);font-size:.85rem;font-weight:700}.public-search-form__controls{display:flex;gap:.6rem}.public-search-form input{min-width:0;flex:1;border:1px solid #d6d3d1;border-radius:.7rem;padding:.7rem .8rem}.public-search-form a{align-self:center;font-weight:700;text-decoration:none}.public-section,.public-placeholder{padding:1.5rem}.public-section h2,.public-placeholder h1,.public-placeholder h2{margin:0 0 .35rem}.public-section p,.public-placeholder p{margin:0;color:var(--theme-color-text-muted)}.site-empty-state{text-align:center;padding:3rem}

.public-discovery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr));gap:1.25rem}.public-discovery-card{display:grid;gap:.75rem;padding:1.4rem}.public-discovery-card:hover{border-color:#f59e0b;box-shadow:var(--theme-shadow-md)}.public-discovery-card--media,.public-discovery-profile{grid-template-columns:6rem minmax(0,1fr)}.public-discovery-card h2,.public-discovery-card p,.public-discovery-profile h2,.public-discovery-profile p{margin:0}.public-discovery-card p,.public-discovery-profile p{color:var(--theme-color-text-muted)}.public-discovery-card a{font-weight:700;text-decoration:none}.public-discovery-card img,.public-discovery-card__asset,.public-discovery-profile img,.public-discovery-profile__asset{display:grid;width:100%;aspect-ratio:1;place-items:center;border-radius:.75rem;background:#fff7ed;object-fit:cover;color:#9a3412;text-align:center}.public-discovery-profile{display:grid;gap:1.5rem;margin-bottom:1.5rem;padding:1.5rem}.public-discovery-profile>div{display:grid;align-content:start;gap:.55rem}
.public-discovery-card--media{align-items:center}
.public-discovery-card--media>div:not(.public-discovery-card__asset){display:grid;align-content:start;justify-items:start;gap:.4rem;min-width:0}.public-home-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:.8rem}.public-home-links a{display:flex;justify-content:space-between;gap:1rem;border:1px solid var(--theme-color-border);border-radius:.75rem;background:#fff;padding:1rem;color:#1e293b;text-decoration:none}.public-home-links a:hover{border-color:#f59e0b}.public-home-links span{color:var(--theme-color-text-muted);font-size:.8rem}
.public-book-detail{display:grid;gap:1.25rem;max-width:var(--theme-reading-width)}.public-book-detail__toolbar a{font-weight:700;text-decoration:none}.public-book-detail__hero{display:grid;grid-template-columns:minmax(12rem,18rem) 1fr;gap:2.5rem;padding:clamp(1.25rem,4vw,2.5rem)}.public-book-detail__cover{margin:0}.public-book-detail__cover img,.public-book-detail__cover-placeholder{display:grid;width:100%;aspect-ratio:2/3;place-items:center;border-radius:.7rem;background:#f4f3ee;object-fit:cover;box-shadow:var(--theme-shadow-md);text-align:center}.public-book-detail__title-block{display:grid;align-content:start;gap:1rem}.public-book-detail__status{justify-self:start;border-radius:999px;background:#fff7ed;padding:.3rem .65rem;color:#9a3412;font-size:.72rem;font-weight:800;text-transform:uppercase}.public-book-detail h1,.public-book-detail h2,.public-book-detail p{margin:0}.public-book-detail h1{font-size:clamp(2rem,5vw,3.5rem)}.public-book-detail__subtitle,.public-muted{color:var(--theme-color-text-muted)}.public-book-detail__facts,.public-book-detail__availability{display:grid;gap:.6rem;margin:0}.public-book-detail__facts div,.public-book-detail__availability div{display:grid;gap:.1rem;border-top:1px solid #efede8;padding-top:.6rem}.public-book-detail dt,.public-book-detail dd{margin:0}.public-book-detail dt{color:var(--theme-color-text-muted);font-size:.72rem;font-weight:700;text-transform:uppercase}.public-book-detail__content{display:grid;grid-template-columns:1fr minmax(16rem,22rem);gap:1.25rem;align-items:start}.public-book-detail__main,.public-book-detail__panel{display:grid;align-content:start;gap:.75rem;padding:1.5rem}.public-book-detail__aside{display:grid;gap:1rem}.public-book-detail__list{display:grid;gap:.7rem;margin:0;padding:0;list-style:none}.public-book-detail__list li{display:grid;border-top:1px solid #efede8;padding-top:.6rem}.public-book-detail__list span,.public-book-detail__list em{color:var(--theme-color-text-muted);font-size:.8rem}.public-book-detail__list em{font-style:normal;font-weight:700}
.public-pagination{display:flex;align-items:center;justify-content:center;gap:.6rem;margin-top:2rem}.public-pagination a,.public-pagination span,.public-pagination strong{border:1px solid var(--theme-color-border);border-radius:.6rem;background:#fff;padding:.55rem .75rem;text-decoration:none}.public-pagination span{color:#a8a29e}.public-footer{border-top:1px solid #293548;background:#020617;color:#a8a29e}.public-footer__inner{display:grid;grid-template-columns:2fr 1fr auto;gap:2rem;align-items:start;padding-block:3rem}.public-footer__brand{color:#fef3c7;font-family:var(--theme-font-heading);font-size:1.35rem;font-weight:800;text-decoration:none}.public-footer p{max-width:34rem;margin:.5rem 0 0}.public-footer nav{display:grid;gap:.35rem}.public-footer nav a{color:#d6d3d1;text-decoration:none}
@media(max-width:64rem){.public-menu-toggle{display:block}.public-navigation-wrap[hidden]{display:none!important}.public-navigation-wrap{position:absolute;top:calc(100% + 1px);left:0;right:0;display:grid!important;margin:0;padding:1rem;background:#fff;box-shadow:var(--theme-shadow-md)}.public-navigation{display:grid}.public-header-search input{width:100%}.public-header-search{width:100%}.public-home-hero{grid-template-columns:1fr}.public-footer__inner{grid-template-columns:1fr 1fr}.public-footer__inner>span{grid-column:1/-1}}
@media(max-width:42rem){.public-page{padding-block:1rem 3rem}.public-header__inner{min-height:4.25rem}.public-brand>span:last-child{max-width:11rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.public-search-form__controls{display:grid}.public-book-detail__hero,.public-book-detail__content,.public-discovery-card--media,.public-discovery-profile{grid-template-columns:1fr}.public-book-detail__cover{max-width:14rem}.public-discovery-card img,.public-discovery-card__asset,.public-discovery-profile img,.public-discovery-profile__asset{max-width:7rem}.public-footer__inner{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html,html:focus-within{scroll-behavior:auto}*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.public-book-card:hover{transform:none}}


/* Sets and editions (ADR 008) */
.public-book-card__badge{justify-self:start;border-radius:999px;background:#fff7ed;padding:.25rem .6rem;color:#9a3412;font-size:.72rem;font-weight:800}
.public-book-detail__set-line{color:var(--theme-color-text-muted);font-weight:700}
.public-book-detail__set-line a,.public-book-detail__list a{color:var(--theme-color-primary)}
.public-book-detail__notice{border-left:4px solid #f59e0b;border-radius:var(--theme-radius-sm);background:#fffbeb;padding:.75rem 1rem;color:#78350f}
.public-book-detail__notice a{color:#9a3412;font-weight:700}
.public-set-facts{display:flex;flex-wrap:wrap;gap:.75rem 2rem;margin:0}
.public-set-facts div{display:grid;gap:.15rem}
.public-set-facts dt{color:var(--theme-color-text-muted);font-size:.72rem;font-weight:700;text-transform:uppercase}
.public-set-facts dd{margin:0;overflow-wrap:anywhere}
.public-brand__mark--logo{display:block;width:2.75rem;height:2.75rem;border-radius:0;background:none;box-shadow:none;object-fit:contain}
.public-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .6rem;margin:1rem 0}.public-price__amount{color:#0f172a;font-family:var(--theme-font-heading);font-size:1.6rem;font-weight:800}.public-price__mrp{color:#78716c;font-size:.9rem}.public-price__discount{border-radius:999px;background:#fff7ed;padding:.1rem .5rem;color:#9a3412;font-size:.8rem;font-weight:700}.public-price__stock{font-size:.85rem;font-weight:700}.public-price__stock--in-stock{color:#166534}.public-price__stock--low-stock{color:#b45309}.public-price__stock--out-of-stock{color:#b42318}.public-price__saving,.public-price__note{flex-basis:100%;margin:0;color:#57534e;font-size:.85rem}.public-price--compact{margin:.4rem 0}.public-price--compact .public-price__amount{font-size:1.1rem}.public-book-detail__set-offer{border:1px solid var(--theme-color-border);border-radius:.75rem;background:#fffbeb;padding:.75rem 1rem}.public-book-detail__set-offer p{margin:0}
.public-delivery{display:grid;gap:.6rem;margin:1rem 0;border:1px solid var(--theme-color-border);border-radius:.75rem;background:#fff;padding:.85rem 1rem}.public-delivery__title{margin:0;font-size:1rem}.public-delivery__form{display:flex;gap:.5rem}.public-delivery__form input{width:9rem;min-height:2.75rem;border:1px solid var(--theme-color-border);border-radius:.6rem;padding:.45rem .7rem}.public-delivery__form button{min-height:2.75rem;border:0;border-radius:.6rem;background:#0f172a;color:#fff;padding:.45rem 1.1rem;font-weight:700;cursor:pointer}.public-delivery__form button:hover{background:#b45309}.public-delivery__result{margin:0;padding:0;list-style:none;font-size:.92rem}.public-delivery__result--no{color:#b42318}
.public-shopper a{padding:.55rem .7rem;border-radius:.6rem;color:#44403c;font-size:.875rem;font-weight:700;text-decoration:none}.public-shopper a:hover{background:#fff7ed;color:#9a3412}.public-flash{margin:0 0 1rem;border-radius:.75rem;padding:.75rem 1rem;font-weight:600}.public-flash--success{background:#ecfdf5;color:#166534}.public-flash--info{background:#eff6ff;color:#1e3a8a}.public-flash--warning{background:#fffbeb;color:#92400e}.public-flash--error{background:#fef2f2;color:#991b1b}.public-form-errors{margin:0 0 1rem;border-left:4px solid #b42318;border-radius:.5rem;background:#fef2f2;padding:.75rem 1rem;color:#7a271a}.public-form-errors p{margin:0;font-weight:700}.public-form-errors ul{margin:.3rem 0 0;padding-left:1.2rem}.public-account{display:grid;gap:1.25rem;max-width:40rem}.public-form{display:grid;gap:.45rem;border:1px solid var(--theme-color-border);border-radius:1rem;background:#fff;padding:1.25rem}.public-form h2{margin:0 0 .25rem;font-size:1.2rem}.public-form label{font-weight:700;font-size:.9rem}.public-form input,.public-form select{width:100%;border:1px solid var(--theme-color-border);border-radius:.6rem;background:#fff;padding:.6rem .7rem}.public-form button{justify-self:start;border:0;border-radius:.65rem;background:#0f172a;color:#fff;padding:.6rem 1.1rem;font-weight:700;cursor:pointer}.public-form button:hover{background:#b45309}.public-consent{display:flex;gap:.5rem;align-items:flex-start;font-weight:400!important}.public-consent input{width:auto!important;margin-top:.3rem}.public-address-list{display:grid;gap:.75rem;margin:0;padding:0;list-style:none}.public-address{border:1px solid var(--theme-color-border);border-radius:1rem;background:#fff;padding:1rem 1.25rem}.public-address p{margin:0 0 .5rem}.public-address__default{border-radius:999px;background:#fff7ed;padding:.05rem .5rem;color:#9a3412;font-size:.75rem;font-weight:700}.public-address__actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.public-address__actions form{margin:0}.public-address__actions button{border:0;background:none;padding:0;color:var(--theme-color-primary);font:inherit;text-decoration:underline;cursor:pointer}
.public-section.public-account{border:0;background:none;box-shadow:none;padding:0}
.public-shopper{display:flex;gap:.1rem}.public-shopper__count{display:inline-grid;min-width:1.3rem;place-items:center;border-radius:999px;background:#b45309;color:#fff;padding:0 .3rem;font-size:.72rem}.public-buy{display:flex;gap:.5rem;align-items:center;margin:.75rem 0}.public-buy select{min-height:2.75rem;border:1px solid var(--theme-color-border);border-radius:.6rem;background:#fff;padding:.45rem .75rem}.public-buy button{min-height:2.75rem}.public-book-detail__title-block>.public-price,.public-book-detail__title-block>.public-buy,.public-book-detail__title-block>.public-delivery{margin:0}.public-buy button,.public-button,.public-shop button{display:inline-block;border:0;border-radius:.65rem;background:#0f172a;color:#fff;padding:.65rem 1.2rem;font-weight:700;text-decoration:none;cursor:pointer}.public-buy button:hover,.public-button:hover,.public-shop button:hover{background:#b45309;color:#fff}.public-shop{display:grid;gap:1.25rem;max-width:48rem;border:0!important;background:none!important;box-shadow:none!important;padding:0!important}.public-cart{display:grid;gap:.5rem;margin:0;padding:0;list-style:none}.public-cart__line{display:grid;grid-template-columns:1fr auto auto auto;gap:.75rem;align-items:center;border:1px solid var(--theme-color-border);border-radius:.85rem;background:#fff;padding:.75rem 1rem}.public-form .public-cart__line{border:0;border-bottom:1px solid var(--theme-color-border);border-radius:0;padding:.5rem 0}.public-cart__qty{display:flex;gap:.4rem;align-items:center}.public-cart__qty select{border:1px solid var(--theme-color-border);border-radius:.5rem;padding:.3rem}.public-cart__total{font-weight:700}.public-shop .public-cart__remove,.public-shop .public-button--quiet{background:none;color:var(--theme-color-primary);padding:0;font-weight:600;text-decoration:underline}.public-shop .public-cart__remove:hover,.public-shop .public-button--quiet:hover{background:none;color:#9a3412}.public-cart__summary{display:flex;justify-content:space-between;align-items:center;gap:1rem}.public-choice{display:flex!important;gap:.6rem;align-items:flex-start;border:1px solid var(--theme-color-border);border-radius:.7rem;padding:.6rem .8rem;font-weight:400!important}.public-choice input{width:auto!important;margin-top:.35rem}.public-totals{display:grid;grid-template-columns:1fr auto;gap:.3rem 1rem;margin:.5rem 0 1rem}.public-totals dd{margin:0;text-align:right}.public-timeline{margin:0;padding-left:1.2rem}.public-timeline li{margin-bottom:.6rem}@media(max-width:42rem){.public-cart__line{grid-template-columns:1fr auto}.public-shopper{display:none}}

/* Brand name: the short form replaces the full one on phones. */
.brand-name--short { display: none; }
@media (max-width: 42rem) { .brand-name--full { display: none; } .brand-name--short { display: inline; } }

/* ---------------------------------------------------------------- header (two rows)
   Row 1: brand (full name, one line), search, cart and account. Row 2: navigation.
   Phones: the name has row 1 to itself; menu, search, cart and account share row 2. */
.public-header__inner{display:grid;grid-template-columns:auto minmax(12rem,28rem) auto;grid-template-areas:"brand search shopper" "nav nav nav";align-items:center;justify-content:space-between;column-gap:1.5rem;min-height:0;padding-top:.8rem}
.public-brand{grid-area:brand;min-width:0}
.public-brand__name{font-size:1.25rem;white-space:nowrap;max-width:none!important;overflow:visible!important}
.public-header-search{grid-area:search;display:flex!important;width:100%}
.public-header-search input{flex:1;min-width:0;width:auto!important}
.public-header-search button{display:inline-flex;align-items:center;gap:.35rem}
.public-header-search button .public-icon{display:none}
.public-shopper{grid-area:shopper;display:flex!important;align-items:center;gap:.15rem}
.public-shopper__link{position:relative;display:inline-flex!important;align-items:center;gap:.4rem;white-space:nowrap}
.public-shopper__count{margin-left:.1rem}
.public-icon{width:1.3rem;height:1.3rem;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.public-menu-toggle{grid-area:menu;display:none!important}
.public-navigation-wrap{grid-area:nav;display:block!important;position:static!important;margin:.65rem 0 0!important;padding:0!important;border-top:1px solid var(--theme-color-border);background:none!important;box-shadow:none!important}
.public-navigation-wrap[hidden]{display:none!important}
.public-navigation{display:flex!important;flex-wrap:wrap;gap:.15rem;padding-block:.35rem}
/* Menu links as on the canvas (home-full-width decision 25): no pill; the current page in amber with an amber underline,
   hover with a light amber underline. Phones (below) mark the current page in amber only. */
.public-navigation{gap:0 clamp(1rem,2vw,2rem)}
.public-navigation a{border-radius:0;padding:.7rem 0;background:none!important;color:#44403c;font-size:.9375rem;font-weight:500;box-shadow:inset 0 -2px 0 transparent}
.public-navigation a:hover{color:#9a3412;box-shadow:inset 0 -2px 0 #fcd9b0}
.public-navigation a[aria-current=page]{color:#b45309;font-weight:600;box-shadow:inset 0 -2px 0 #b45309}
.public-header a:focus-visible,.public-header button:focus-visible,.public-header input:focus-visible{outline:3px solid #b45309;outline-offset:2px}
/* Dark areas keep the bright amber focus outline: the darker one is hard to see on navy. */
:is(.public-hero,.public-home-hero,.public-showcase,.public-footer) :is(a,button,input):focus-visible{outline-color:#f59e0b}

/* Very wide screens (home-full-width decision 12): one row, brand, navigation, search, cart and account. */
@media(min-width:112.5rem){
  .public-header__inner{grid-template-columns:auto minmax(0,1fr) minmax(16rem,28rem) auto;grid-template-areas:"brand nav search shopper";padding-block:.8rem}
  .public-navigation-wrap{margin:0!important;border-top:0}
  .public-navigation{justify-content:flex-end;flex-wrap:nowrap;padding-block:0}
}

/* Tablets and small laptops: icons only for cart and account, so the search box keeps its room. */
@media(max-width:64rem){
  .public-header__inner{grid-template-columns:auto minmax(9rem,1fr) auto;column-gap:1rem}
  .public-brand__name{font-size:1.05rem}
  .public-shopper__label{display:none}
  .public-shopper__link{padding:.5rem .55rem!important}
}

/* Phones. */
@media(max-width:42rem){
  .public-header__inner{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"brand brand brand" "menu search shopper" "nav nav nav";row-gap:.55rem;column-gap:.5rem;padding-block:.6rem}
  .public-brand{gap:.5rem}
  .public-brand__mark,.public-brand__mark--logo{width:2.1rem!important;height:2.1rem!important}
  .public-brand__name{font-size:clamp(.74rem,4.2vw,1.1rem)}
  .public-header__inner>*{min-width:0}
  .public-menu-toggle{display:inline-flex!important;align-items:center;gap:.35rem;margin:0}
  .public-menu-toggle__label{display:none}
  .public-header-search button{padding:.5rem .6rem}
  .public-header-search__label{display:none}
  .public-header-search button .public-icon{display:block}
  .public-navigation-wrap{margin:0!important}
  /* With script, closed from the first paint until the menu button opens it (lighthouse-performance decision 4). */
  html.js .public-menu-toggle[aria-expanded=false]~.public-navigation-wrap{display:none!important}
  .public-navigation{display:grid!important;padding-block:.25rem}
  .public-navigation a{padding:.65rem .5rem;box-shadow:none!important}
  .public-navigation a:hover,.public-navigation a[aria-current=page]{color:#9a3412}
}

/* Account menu (signed in): your account, orders, addresses, sign out. */
.public-account-menu{position:relative}
.public-account-menu>summary{list-style:none;cursor:pointer;padding:.55rem .7rem;border-radius:.6rem;color:#44403c;font-size:.875rem;font-weight:700}
.public-account-menu>summary::-webkit-details-marker{display:none}
.public-account-menu>summary:hover,.public-account-menu[open]>summary{background:#fff7ed;color:#9a3412}
.public-icon--small{width:1rem;height:1rem}
.public-account-menu__panel{position:absolute;z-index:40;top:calc(100% + .35rem);right:0;display:grid;min-width:13rem;border:1px solid var(--theme-color-border);border-radius:.8rem;background:#fff;padding:.4rem;box-shadow:var(--theme-shadow-md)}
.public-account-menu__who{margin:0;border-bottom:1px solid var(--theme-color-border);padding:.45rem .6rem .55rem;color:#78716c;font-size:.8rem}
.public-account-menu__panel a,.public-account-menu__panel button{display:block;width:100%;border:0;border-radius:.5rem;background:none;padding:.55rem .6rem;color:#292524;font:inherit;font-size:.9rem;text-align:left;text-decoration:none;cursor:pointer}
.public-account-menu__panel a:hover,.public-account-menu__panel button:hover{background:#fff7ed;color:#9a3412}
.public-account-menu__panel form{margin:0;border-top:1px solid var(--theme-color-border);padding-top:.3rem}
@media(max-width:64rem){.public-account-menu>summary{padding:.5rem .55rem}.public-account-menu>summary .public-icon--small{display:none}}

/* Card running text: format, size, pages (only what is known). */
.public-book-card__details{margin:.15rem 0 .35rem;color:#78716c;font-size:.82rem;font-weight:600;letter-spacing:.01em}
.public-book-card__dot{display:inline-block;margin:0 .2em;font-size:1.5em;line-height:0;vertical-align:-.12em;font-weight:900}
/* Catalog profiles: logos fit, initials in the empty image box, readable bios. */
.public-discovery-card .public-discovery-logo,.public-discovery-profile .public-discovery-logo{background:#fff;object-fit:contain;padding:.4rem}.public-discovery-card__asset span,.public-discovery-profile__asset span{font-size:1.6rem;font-weight:700;letter-spacing:.04em}.public-discovery-profile__text{line-height:1.6;max-width:65ch}
/* Cart page: each line shows the cover, the book's key facts and the price; the summary sits beside the lines. */
.public-shop.public-shop--cart{grid-template-columns:minmax(0,1fr) 20rem;align-items:start;max-width:var(--theme-reading-width)}
.public-shop--cart .public-cart__line{grid-template-columns:5.5rem minmax(0,1fr) auto;align-items:start;gap:1rem 1.25rem;padding:1rem 1.25rem}
.public-cart__cover{display:grid;place-items:center;overflow:hidden;aspect-ratio:2/3;border-radius:.4rem;background:#f5f5f4;box-shadow:0 1px 3px rgb(15 23 42 / .15);text-decoration:none}
.public-cart__cover img{display:block;width:100%;height:100%;object-fit:cover}
.public-cart__cover span{padding:.25rem;color:var(--theme-color-text-muted);font-size:.7rem;text-align:center}
.public-cart__info{display:grid;align-content:start;gap:.3rem;min-width:0}
.public-cart__title{color:#0f172a;font-size:1.05rem;font-weight:700;line-height:1.3;text-decoration:none}
.public-cart__title:hover{color:#9a3412;text-decoration:underline}
.public-cart__by,.public-cart__facts,.public-cart__stock,.public-cart__info .public-delivery__result--no{margin:0}
.public-cart__by{color:#44403c;font-size:.9rem}
.public-cart__facts{color:var(--theme-color-text-muted);font-size:.85rem}
.public-cart__stock{font-size:.85rem;font-weight:700}
.public-cart__info .public-price__stock--in-stock{color:#166534}.public-cart__info .public-price__stock--low-stock{color:#b45309}
.public-cart__controls{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.45rem}
.public-cart__controls label{color:var(--theme-color-text-muted);font-size:.85rem}
.public-cart__controls select{min-height:2.25rem;border:1px solid var(--theme-color-border);border-radius:.5rem;background:#fff;padding:.25rem .5rem}
.public-cart__price{display:grid;justify-items:end;gap:.25rem;text-align:right}
.public-cart__price .public-cart__total{color:#0f172a;font-size:1.1rem}
.public-cart__each,.public-cart__mrp{color:var(--theme-color-text-muted);font-size:.82rem}
.public-shop--cart .public-cart__summary{display:grid;gap:.75rem;position:sticky;top:11rem;border:1px solid var(--theme-color-border);border-radius:.85rem;background:#fff;padding:1.25rem}
.public-cart__subtotal,.public-cart__note,.public-cart__summary .public-delivery__result--no{margin:0}
.public-cart__subtotal{font-size:1.05rem}
.public-cart__subtotal strong{font-size:1.2rem}
.public-cart__note{color:var(--theme-color-text-muted);font-size:.85rem}
.public-cart__checkout{text-align:center}
@media(max-width:60rem){.public-shop.public-shop--cart{grid-template-columns:minmax(0,1fr)}.public-shop--cart .public-cart__summary{position:static}}
@media(max-width:42rem){.public-shop--cart .public-cart__line{grid-template-columns:4.5rem minmax(0,1fr)}.public-shop--cart .public-cart__price{grid-column:2;justify-items:start;text-align:left}}
/* Profile pictures: a square the width of the column (the width/height attributes are only a hint); initials centred in it. */
.public-discovery-profile img{height:auto;aspect-ratio:1}.public-discovery-profile>.public-discovery-profile__asset,.public-discovery-profile__asset,.public-discovery-card__asset{display:flex;align-items:center;justify-content:center}
/* No intro text: the heading and the book count sit beside the picture, not at its top. */
.public-discovery-profile--compact{align-items:center}.public-discovery-profile--compact>div{align-content:center}
/* Cards that follow each other keep a gap between them. */
.public-page>.public-section+.public-section,.public-page>.public-section+.public-placeholder,.public-page>.public-placeholder+.public-section,.public-page>.public-placeholder+.public-placeholder{margin-top:1rem}

/* Book grid and card (public-home-ux decisions 3, 5, 6). Cards fill the row inside the page's own bounds: with a
   13rem minimum and a 1.25rem gap that is 5 columns from about 1240px, 4 on smaller laptops, 3 on a tablet and 1 on
   a phone. */
.public-catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,13rem),1fr));gap:1.5rem 1.25rem;margin-top:1.25rem}
.public-book-card{--cover-inset:.875rem;display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1px solid var(--theme-color-border);border-radius:var(--theme-radius-md);background:var(--theme-color-surface);box-shadow:var(--theme-shadow-sm);transition:border-color var(--theme-motion-fast),box-shadow var(--theme-motion-fast)}
.public-book-card:hover{border-color:#f59e0b;box-shadow:var(--theme-shadow-md)}
/* The cover sits on a 7:11 panel of itself, faded; contain, so no cover is cropped or stretched. */
.public-book-card__cover{position:relative;display:block;aspect-ratio:7/11;overflow:hidden;background:#fbfaf7}
.public-book-card__backdrop{position:absolute;top:-8%;left:-8%;width:116%;height:116%;object-fit:cover;opacity:.18;filter:blur(10px)}
.public-book-card__image{position:absolute;top:var(--cover-inset);left:var(--cover-inset);width:calc(100% - 2 * var(--cover-inset));height:calc(100% - 2 * var(--cover-inset));object-fit:contain;filter:drop-shadow(0 1px 1px rgb(15 23 42 / .1)) drop-shadow(0 10px 14px rgb(15 23 42 / .22))}
.public-book-card__cover-placeholder{position:absolute;inset:var(--cover-inset);display:grid;place-content:center;gap:.25rem;border-radius:.55rem;background:linear-gradient(145deg,#f5f5f4,#e7e5e4);color:#92400e;text-align:center}
.public-book-card__cover-placeholder span{display:block;font-size:.8125rem;letter-spacing:.12em;text-transform:uppercase}
.public-book-card__body{display:flex;flex:1;flex-direction:column;gap:.5rem;min-width:0;padding:1rem 1.1rem 1.1rem}
.public-book-card__badge{align-self:flex-start}
/* Two lines at most, and room for two kept, so the rows line up; the full title is in the title attribute. */
.public-book-card__title{display:-webkit-box;min-height:2.5em;margin:0;overflow:hidden;font-size:1.0625rem;line-height:1.25;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}
.public-book-card__title a{color:#0f172a;text-decoration:none}
.public-book-card__title a:hover{color:#9a3412}
.public-book-card__by{margin:0;overflow:hidden;color:var(--theme-color-text-muted);font-size:.875rem;text-overflow:ellipsis;white-space:nowrap}
.public-book-card__by span{color:#292524;font-weight:600}
.public-book-card__actions{display:flex;align-items:flex-end;justify-content:space-between;gap:.5rem;margin-top:auto;padding-top:.25rem}
.public-book-card__actions .public-price{flex:1 1 auto;min-width:0}
.public-book-card__tools{display:flex;flex:none;gap:.4rem}
.public-book-card__icon,.public-book-card__quick{border:1px solid var(--theme-color-border);border-radius:.6rem;background:#fff;color:#44403c;cursor:pointer;text-decoration:none}
.public-book-card__icon{display:grid;width:2.5rem;height:2.5rem;padding:0;place-items:center}
.public-book-card__quick{display:flex;flex:1;align-items:center;justify-content:center;gap:.5rem;min-height:2.75rem;color:#1e293b;font:inherit;font-size:.9375rem;font-weight:700}
.public-book-card__icon:hover,.public-book-card__quick:hover{border-color:#f59e0b;color:#9a3412}
.public-book-card__icon svg,.public-book-card__quick svg{width:1.15rem;height:1.15rem;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.public-book-card template{display:none}
@media(max-width:42rem){.public-book-card{--cover-inset:1rem}}

/* Home book rows, New Arrivals and Best Sellers (home-full-width decision 8): exactly one full row each. The grid's
   13rem minimum and 1.25rem gap give n columns from n × 13rem + (n − 1) × 1.25rem = 14.25n − 1.25rem, so each
   container query shows the first n cards from there; the page loads 33 (one row at 8K). One column stacks 3 and
   two columns show 2. Keep these numbers in step with .public-catalog-grid. */
.public-catalog-grid--one-row{container-type:inline-size}
.public-catalog-grid--one-row>:nth-child(n+4){display:none}
@container (min-width:27.25rem){.public-catalog-grid--one-row>:nth-child(n+3){display:none}}
@container (min-width:41.5rem){.public-catalog-grid--one-row>:nth-child(-n+3){display:flex}}
@container (min-width:55.75rem){.public-catalog-grid--one-row>:nth-child(-n+4){display:flex}}
@container (min-width:70rem){.public-catalog-grid--one-row>:nth-child(-n+5){display:flex}}
@container (min-width:84.25rem){.public-catalog-grid--one-row>:nth-child(-n+6){display:flex}}
@container (min-width:98.5rem){.public-catalog-grid--one-row>:nth-child(-n+7){display:flex}}
@container (min-width:112.75rem){.public-catalog-grid--one-row>:nth-child(-n+8){display:flex}}
@container (min-width:127rem){.public-catalog-grid--one-row>:nth-child(-n+9){display:flex}}
@container (min-width:141.25rem){.public-catalog-grid--one-row>:nth-child(-n+10){display:flex}}
@container (min-width:155.5rem){.public-catalog-grid--one-row>:nth-child(-n+11){display:flex}}
@container (min-width:169.75rem){.public-catalog-grid--one-row>:nth-child(-n+12){display:flex}}
@container (min-width:184rem){.public-catalog-grid--one-row>:nth-child(-n+13){display:flex}}
@container (min-width:198.25rem){.public-catalog-grid--one-row>:nth-child(-n+14){display:flex}}
@container (min-width:212.5rem){.public-catalog-grid--one-row>:nth-child(-n+15){display:flex}}
@container (min-width:226.75rem){.public-catalog-grid--one-row>:nth-child(-n+16){display:flex}}
@container (min-width:241rem){.public-catalog-grid--one-row>:nth-child(-n+17){display:flex}}
@container (min-width:255.25rem){.public-catalog-grid--one-row>:nth-child(-n+18){display:flex}}
@container (min-width:269.5rem){.public-catalog-grid--one-row>:nth-child(-n+19){display:flex}}
@container (min-width:283.75rem){.public-catalog-grid--one-row>:nth-child(-n+20){display:flex}}
@container (min-width:298rem){.public-catalog-grid--one-row>:nth-child(-n+21){display:flex}}
@container (min-width:312.25rem){.public-catalog-grid--one-row>:nth-child(-n+22){display:flex}}
@container (min-width:326.5rem){.public-catalog-grid--one-row>:nth-child(-n+23){display:flex}}
@container (min-width:340.75rem){.public-catalog-grid--one-row>:nth-child(-n+24){display:flex}}
@container (min-width:355rem){.public-catalog-grid--one-row>:nth-child(-n+25){display:flex}}
@container (min-width:369.25rem){.public-catalog-grid--one-row>:nth-child(-n+26){display:flex}}
@container (min-width:383.5rem){.public-catalog-grid--one-row>:nth-child(-n+27){display:flex}}
@container (min-width:397.75rem){.public-catalog-grid--one-row>:nth-child(-n+28){display:flex}}
@container (min-width:412rem){.public-catalog-grid--one-row>:nth-child(-n+29){display:flex}}
@container (min-width:426.25rem){.public-catalog-grid--one-row>:nth-child(-n+30){display:flex}}
@container (min-width:440.5rem){.public-catalog-grid--one-row>:nth-child(-n+31){display:flex}}
@container (min-width:454.75rem){.public-catalog-grid--one-row>:nth-child(-n+32){display:flex}}
@container (min-width:469rem){.public-catalog-grid--one-row>:nth-child(-n+33){display:flex}}
/* Phones (decision 10): one book per row, never two side by side, 3 stacked. */
@media(max-width:40rem){.public-catalog-grid--one-row{grid-template-columns:minmax(0,1fr)}.public-catalog-grid--one-row>:nth-child(-n+3){display:flex}.public-catalog-grid--one-row>:nth-child(n+4){display:none}}
/* Home hero, compact, with option A's accent (decision 11). */
.public-home-hero{gap:clamp(1.5rem,4vw,4rem);margin:.25rem 0 2.5rem;padding:clamp(1.75rem,4vw,3.5rem)}
.public-home-hero h1{max-width:16ch;margin:.5rem 0 .75rem;font-size:clamp(2rem,4.5vw,3.25rem)}
.public-home-hero h1 em{color:#fcd34d;font-style:italic}
.public-home-hero .public-eyebrow::before{display:inline-block;width:1.5rem;height:2px;margin-right:.6rem;background:#f59e0b;content:"";vertical-align:middle}
.public-home-hero p{max-width:34rem;color:#cbd5e1}
.public-home-hero__actions{margin-top:1.25rem}
/* Home author and publisher cards are links as a whole (decision 10). */
.public-discovery-card--link{color:inherit;text-decoration:none}
.public-discovery-card--link h2{font-size:1.25rem}
.public-discovery-card--link:focus-visible,.public-home-links a:focus-visible{outline:2px solid #f59e0b;outline-offset:2px}

/* Quick view (public-home-ux decision 7): one centred window; the cover beside the title, the details underneath. */
html.public-quick-view-open{overflow:hidden}
.public-quick-view{width:min(47.5rem,calc(100% - 2rem));max-width:none;max-height:calc(100dvh - 2rem);padding:0;overflow:auto;border:1px solid var(--theme-color-border);border-radius:var(--theme-radius-md);background:var(--theme-color-surface);color:var(--theme-color-text);box-shadow:var(--theme-shadow-md)}
.public-quick-view::backdrop{background:rgb(15 23 42 / .45)}
.public-quick-view__inner{display:flex;flex-direction:column;gap:1.1rem;padding:clamp(1rem,3vw,1.75rem)}
.public-quick-view__bar{display:flex;justify-content:flex-end;gap:.4rem;margin:-.4rem -.4rem -.75rem 0}
.public-quick-view__control{display:grid;width:2.5rem;height:2.5rem;padding:0;place-items:center;border:1px solid var(--theme-color-border);border-radius:.6rem;background:#fff;color:#44403c;cursor:pointer}
.public-quick-view__control:hover{border-color:#f59e0b;color:#9a3412}
.public-quick-view__control svg{width:1.15rem;height:1.15rem;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.public-quick-view__body{display:flex;flex-direction:column;gap:1.1rem}
.public-quick-view__top{display:flex;align-items:flex-start;gap:clamp(1rem,3vw,1.75rem)}
.public-quick-view__cover{flex:0 0 clamp(6.5rem,26%,11.875rem);min-width:0}
.public-quick-view__cover img{display:block;width:100%;height:auto;aspect-ratio:7/11;object-fit:contain;object-position:center top;filter:drop-shadow(0 1px 1px rgb(15 23 42 / .1)) drop-shadow(0 10px 14px rgb(15 23 42 / .22))}
.public-quick-view__cover .public-book-card__cover-placeholder{position:static;aspect-ratio:7/11}
.public-quick-view__head{display:flex;flex:1 1 auto;flex-direction:column;align-items:flex-start;gap:.4rem;min-width:0}
.public-quick-view__title{margin:0;color:#0f172a;font-size:clamp(1.25rem,1.05rem + 1vw,1.75rem);line-height:1.2;overflow-wrap:anywhere}
.public-quick-view__subtitle{margin:0;color:#57534e;font-family:var(--theme-font-heading);font-size:1rem;font-style:italic;line-height:1.4}
.public-quick-view__by{margin:.15rem 0 0;color:var(--theme-color-text-muted);font-size:.9375rem}
.public-quick-view__by span{color:#292524;font-weight:600}
/* The description only uses the room beside the cover: its box adds no height of its own (size containment), takes
   what is left in the column and is cut to whole lines by quick-view.js. The title, authors, price and cart button
   always show in full; the cover sets the row's height unless they need more. */
.public-quick-view__top{align-items:stretch}
.public-quick-view__cover{align-self:flex-start}
.public-quick-view__description{flex:1 1 0;align-self:stretch;min-height:0;margin:.35rem 0 0;overflow:hidden;contain:size}
.public-quick-view__description p{display:-webkit-box;max-width:40rem;margin:0;overflow:hidden;color:#44403c;font-size:.9375rem;line-height:1.55;-webkit-box-orient:vertical}
.public-quick-view .public-price{margin:.4rem 0 0}
.public-quick-view__details{display:flex;flex-direction:column;gap:.75rem;padding-top:.9rem;border-top:1px solid #efede8}
.public-quick-view__details .public-book-card__details{margin:0;font-size:.9375rem}
.public-quick-view__facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,9.5rem),1fr));gap:.6rem 1.5rem;margin:0}
.public-quick-view__facts dt{color:var(--theme-color-text-muted);font-size:.8125rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.public-quick-view__facts dd{margin:.15rem 0 0;color:#292524;font-size:.9375rem;overflow-wrap:anywhere}

/* Cart button on cards and in Quick view (public-home-ux decisions 8 and 16): cart+ adds, the bin removes. */
.public-cart-toggle{margin:0}
.public-cart-toggle[hidden]{display:none!important}
.public-book-card__icon--add{border-color:#0f172a;background:#0f172a;color:#fff}
.public-book-card__icon--add:hover{border-color:#1e293b;background:#1e293b;color:#fff}
.public-quick-view__cart{margin-top:.5rem}
.public-cart-button{display:inline-flex;min-height:2.75rem;align-items:center;justify-content:center;gap:.5rem;padding:0 1.1rem;border:1px solid #0f172a;border-radius:.6rem;background:#0f172a;color:#fff;font:inherit;font-size:.9375rem;font-weight:700;white-space:nowrap;cursor:pointer}
.public-cart-button--add:hover{background:#1e293b}
.public-cart-button svg{width:1.15rem;height:1.15rem;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.public-book-card__icon--remove,.public-cart-button.public-cart-button--remove{border-color:#b45309;background:#fff7ed;color:#9a3412}
.public-book-card__icon--remove:hover,.public-cart-button.public-cart-button--remove:hover{border-color:#9a3412;background:#fff7ed;color:#7c2d12}
.public-cart-button[aria-busy=true],.public-cart-toggle[aria-busy=true] button{opacity:.6;cursor:progress}
/* The status line shows briefly at the bottom of the screen; empty, it stays in place for screen readers but is not seen. */
.public-cart-status{position:fixed;z-index:30;left:50%;bottom:1.25rem;max-width:calc(100% - 2rem);margin:0;padding:.65rem 1rem;border-radius:.6rem;background:#0f172a;color:#fff;font-size:.9375rem;box-shadow:var(--theme-shadow-md);transform:translateX(-50%);pointer-events:none}
.public-cart-status:empty{padding:0;box-shadow:none;background:none}

/* Card price row (Task 05 fix): the price, MRP and % off on one line, availability and the icons on the next, as on
   the canvas; the price tag's own box gives way so its parts share the actions row. */
.public-book-card__actions{flex-wrap:wrap;align-items:center;gap:.35rem .5rem}
.public-book-card__actions .public-price{display:contents}
.public-book-card__actions .public-price__amount{font-size:1.1rem}
.public-book-card__actions .public-price__stock{flex:1 0 calc(100% - 6rem)}
.public-book-card__actions .public-book-card__tools{margin-left:auto}
.public-home-links span{flex:none;white-space:nowrap}

/* ---------------------------------------------------------------- showcase banner (home-full-width decisions 2 to 4)
   Full bleed under the header, content on the shared gutter. --n whole covers fill the row: about 11.25rem (180px)
   or more each with a 1.5rem gap, so n covers from n × 11.25rem + (n − 1) × 1.5rem = 12.75n − 1.5rem (2 by default,
   37 at 8K; showcase.js clones enough covers for 37). Without the script the row scrolls and snaps. */
.public-showcase{margin-top:clamp(1rem,2.5vw,2rem);padding-block:clamp(1.75rem,3vw,3rem) clamp(1.25rem,2.5vw,2.5rem);background:linear-gradient(125deg,#0f172a,#292524);color:#fff;overflow:hidden}
.public-showcase__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.75rem 1.5rem;padding-inline:var(--theme-gutter)}
.public-showcase .public-eyebrow::before{display:inline-block;width:1.5rem;height:2px;margin-right:.6rem;background:#f59e0b;content:"";vertical-align:middle}
.public-showcase h1{margin:.6rem 0 0;color:#fffbeb;font-size:clamp(1.75rem,1.2rem + 1.6vw,3rem);line-height:1.1;text-wrap:balance}
.public-showcase h1 em{color:#fcd34d;font-style:italic}
.public-showcase__actions{display:flex;align-items:center;gap:.5rem}
.public-showcase__actions a{display:inline-flex;align-items:center;gap:.3rem;min-height:2.75rem;padding:0 .5rem;color:#fcd34d;font-size:.9375rem;font-weight:700;text-decoration:none;white-space:nowrap}
.public-showcase__pause,.public-showcase__arrow{display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:999px;cursor:pointer}
.public-showcase__pause{border:1px solid rgb(255 255 255 / .3);background:transparent;color:#fff}
.public-showcase__pause[hidden],.public-showcase__arrow[hidden]{display:none}
.public-showcase__pause svg,.public-showcase__arrow svg{width:1.15rem;height:1.15rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.public-showcase__pause svg[hidden]{display:none}
.public-showcase__stage{position:relative;margin-top:clamp(1.25rem,2.5vw,2.5rem);padding-inline:var(--theme-gutter)}
.public-showcase__viewport{--g:1.5rem;container-type:inline-size;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-block:.4rem 1.4rem}
.public-showcase__viewport::-webkit-scrollbar{display:none}
.public-showcase.is-enhanced .public-showcase__viewport{overflow:hidden}
.public-showcase__track{--n:2;display:flex;gap:var(--g);margin:0;padding:0;list-style:none;transition:transform 600ms ease}
.public-showcase__track>li{flex:none;width:calc((100% - (var(--n) - 1) * var(--g)) / var(--n));scroll-snap-align:start}
.public-showcase__track a{display:block;aspect-ratio:7/11;overflow:hidden;border-radius:.4rem;background:#1e293b;box-shadow:0 2px 4px rgb(0 0 0 / .3),0 18px 32px -12px rgb(0 0 0 / .65);color:#e2e8f0;text-decoration:none}
.public-showcase__track img{display:block;width:100%;height:100%;object-fit:cover}
.public-showcase__placeholder{display:grid;height:100%;place-items:center;padding:1rem;font-family:var(--theme-font-heading);font-size:1rem;line-height:1.3;text-align:center}
.public-showcase__arrow{position:absolute;top:calc(50% - 1.875rem);border:0;background:#fff;color:#0f172a;box-shadow:0 4px 12px rgb(0 0 0 / .35)}
.public-showcase__arrow--prev{left:var(--theme-gutter)}
.public-showcase__arrow--next{right:var(--theme-gutter)}
@media(prefers-reduced-motion:reduce){.public-showcase__track{transition:none}}
@container (min-width:36.75rem){.public-showcase__track{--n:3}}
@container (min-width:49.5rem){.public-showcase__track{--n:4}}
@container (min-width:62.25rem){.public-showcase__track{--n:5}}
@container (min-width:75rem){.public-showcase__track{--n:6}}
@container (min-width:87.75rem){.public-showcase__track{--n:7}}
@container (min-width:100.5rem){.public-showcase__track{--n:8}}
@container (min-width:113.25rem){.public-showcase__track{--n:9}}
@container (min-width:126rem){.public-showcase__track{--n:10}}
@container (min-width:138.75rem){.public-showcase__track{--n:11}}
@container (min-width:151.5rem){.public-showcase__track{--n:12}}
@container (min-width:164.25rem){.public-showcase__track{--n:13}}
@container (min-width:177rem){.public-showcase__track{--n:14}}
@container (min-width:189.75rem){.public-showcase__track{--n:15}}
@container (min-width:202.5rem){.public-showcase__track{--n:16}}
@container (min-width:215.25rem){.public-showcase__track{--n:17}}
@container (min-width:228rem){.public-showcase__track{--n:18}}
@container (min-width:240.75rem){.public-showcase__track{--n:19}}
@container (min-width:253.5rem){.public-showcase__track{--n:20}}
@container (min-width:266.25rem){.public-showcase__track{--n:21}}
@container (min-width:279rem){.public-showcase__track{--n:22}}
@container (min-width:291.75rem){.public-showcase__track{--n:23}}
@container (min-width:304.5rem){.public-showcase__track{--n:24}}
@container (min-width:317.25rem){.public-showcase__track{--n:25}}
@container (min-width:330rem){.public-showcase__track{--n:26}}
@container (min-width:342.75rem){.public-showcase__track{--n:27}}
@container (min-width:355.5rem){.public-showcase__track{--n:28}}
@container (min-width:368.25rem){.public-showcase__track{--n:29}}
@container (min-width:381rem){.public-showcase__track{--n:30}}
@container (min-width:393.75rem){.public-showcase__track{--n:31}}
@container (min-width:406.5rem){.public-showcase__track{--n:32}}
@container (min-width:419.25rem){.public-showcase__track{--n:33}}
@container (min-width:432rem){.public-showcase__track{--n:34}}
@container (min-width:444.75rem){.public-showcase__track{--n:35}}
@container (min-width:457.5rem){.public-showcase__track{--n:36}}
@container (min-width:470.25rem){.public-showcase__track{--n:37}}
