@font-face {
    font-family: "Cormorant Garamond";
    font-style: normal;
    font-weight: 500 700;
    font-display: swap;
    src: url("../fonts/cormorant-garamond-latin-variable.woff2") format("woff2");
}

@font-face {
    font-family: Inter;
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url("../fonts/inter-latin-variable.woff2") format("woff2");
}

:root {
    --cc-navy: #081320;
    --cc-navy-soft: #0f2d3d;
    --cc-turquoise: #2fc1b6;
    --cc-turquoise-light: #c9f0eb;
    --cc-coral: #ff6b6b;
    --cc-coral-dark: #ad2e45;
    --cc-mango: #ffb86b;
    --cc-cream: #f6f3ec;
    --cc-paper: #ffffff;
    --cc-ink-muted: #415b68;
    --cc-border: #cbd5d7;
    --cc-shadow: 0 18px 50px rgba(8, 19, 32, 0.16);
    --cc-radius: 1.35rem;
    --cc-shell: min(1180px, calc(100% - 2rem));
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    background: var(--cc-cream);
    color: var(--cc-navy);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 1rem;
    line-height: 1.65;
}
img { display: block; max-width: 100%; height: auto; }
a { color: var(--cc-navy-soft); text-underline-offset: 0.2em; }
a:hover { color: var(--cc-coral-dark); }
:focus-visible { outline: 3px solid var(--cc-navy-soft); outline-offset: 4px; }
.shell { width: var(--cc-shell); margin-inline: auto; }
.skip-link { position: fixed; top: -5rem; left: 1rem; z-index: 9999; padding: 0.75rem 1rem; background: var(--cc-navy); color: white; border-radius: 0.5rem; }
.skip-link:focus { top: 1rem; }
h1, h2, h3 { margin: 0 0 0.6em; overflow-wrap: anywhere; font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif; font-weight: 600; line-height: 1.02; letter-spacing: -0.025em; }
h1 { font-size: clamp(2.35rem, 11vw, 5.7rem); }
h2 { font-size: clamp(2rem, 4vw, 3.4rem); }
h3 { font-size: clamp(1.3rem, 2vw, 1.65rem); }
p { margin: 0 0 1.1rem; }
.eyebrow, .story-card__kicker { color: var(--cc-coral-dark); font-size: 0.78rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding: 0.7rem 1.2rem; border: 2px solid var(--cc-coral); border-radius: 999px; background: var(--cc-coral); color: var(--cc-navy); font-weight: 800; text-align: center; text-decoration: none; box-shadow: 0 5px 0 var(--cc-turquoise); transition: transform 160ms ease, box-shadow 160ms ease; }
.button:hover { border-color: var(--cc-mango); background: var(--cc-mango); color: var(--cc-navy); transform: translateY(-2px); box-shadow: 0 7px 0 var(--cc-turquoise); }
.button--small { min-height: 2.75rem; padding: 0.45rem 1rem; }
.button--mango { border-color: var(--cc-mango); background: var(--cc-mango); color: var(--cc-navy); }
.button--mango:hover { color: var(--cc-navy); }
.text-link { font-weight: 800; }
.button-row { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem; }

.site-header { position: relative; z-index: 20; border-bottom: 1px solid rgba(246, 243, 236, 0.16); background: var(--cc-navy); }
.site-header__inner { display: flex; min-height: 5rem; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.65rem; padding-block: 0.8rem; }
.wordmark { display: inline-flex; min-height: 2.75rem; align-items: center; gap: 0.55rem; color: var(--cc-cream); font-family: "Cormorant Garamond", Georgia, serif; font-weight: 600; text-decoration: none; }
.wordmark__emblem { width: 3rem; height: 3rem; flex: 0 0 auto; object-fit: contain; }
.wordmark__divider { width: 1px; height: 2.35rem; background: rgba(246, 243, 236, 0.42); }
.wordmark__text { display: grid; line-height: 0.78; text-align: center; text-transform: uppercase; }
.wordmark__text > span:first-child { font-size: 1.05rem; letter-spacing: 0.13em; }
.wordmark__cay { color: var(--cc-coral); font-size: 1rem; letter-spacing: 0.34em; text-indent: 0.34em; }
.site-nav { order: 3; width: 100%; overflow-x: auto; padding-bottom: 0.2rem; -webkit-overflow-scrolling: touch; }
.site-nav__list, .footer-nav { display: flex; margin: 0; padding: 0; gap: 0.5rem; list-style: none; }
.site-nav__list { width: max-content; min-width: 100%; }
.site-nav a { display: inline-flex; min-height: 2.75rem; align-items: center; padding: 0.35rem 0.65rem; color: var(--cc-cream); font-weight: 750; text-decoration: none; white-space: nowrap; }
.site-nav a:hover { color: var(--cc-turquoise); }
.site-nav a[aria-current="page"] { color: var(--cc-turquoise); text-decoration: underline; text-decoration-thickness: 0.14em; text-underline-offset: 0.38em; }
.site-header :focus-visible, .site-footer :focus-visible { outline-color: var(--cc-mango); }

.hero { position: relative; min-height: 36rem; overflow: hidden; background: var(--cc-navy); color: var(--cc-cream); }
.hero::before { position: absolute; z-index: 1; inset: 0; background: linear-gradient(180deg, rgba(8, 19, 32, 0.96) 0%, rgba(8, 19, 32, 0.83) 58%, rgba(8, 19, 32, 0.3) 100%); content: ""; }
.hero__banner { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 67% center; }
.hero__grid { position: relative; z-index: 2; display: grid; min-height: 36rem; grid-template-columns: 1fr; align-items: center; padding-block: clamp(4rem, 9vw, 7rem); }
.hero__copy { max-width: 44rem; }
.hero h1 { max-width: 11ch; color: var(--cc-cream); }
.hero .eyebrow { color: var(--cc-mango); }
.hero__lede { max-width: 38rem; color: rgba(246, 243, 236, 0.84); font-size: clamp(1.08rem, 2vw, 1.35rem); }
.hero .text-link { color: var(--cc-cream); }
.hero .text-link:hover { color: var(--cc-turquoise); }

.section { padding-block: clamp(4rem, 8vw, 7rem); }
.section-heading { display: flex; align-items: flex-start; flex-direction: column; justify-content: space-between; gap: 1rem; margin-bottom: 2.2rem; }
.story-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
.story-card, .list-card { overflow: hidden; border: 1px solid var(--cc-border); border-radius: var(--cc-radius); background: var(--cc-paper); box-shadow: 0 10px 28px rgba(8, 19, 32, 0.1); }
.story-card__cover { display: grid; min-height: 20rem; place-items: center; overflow: hidden; background: linear-gradient(145deg, var(--cc-turquoise), var(--cc-navy)); text-decoration: none; }
.story-card:nth-child(3n+2) .story-card__cover { background: linear-gradient(145deg, var(--cc-coral), var(--cc-navy-soft)); }
.story-card:nth-child(3n+3) .story-card__cover { background: linear-gradient(145deg, var(--cc-mango), var(--cc-coral)); }
.story-card__cover img { width: 100%; height: 100%; object-fit: cover; }
.story-card__monogram { color: var(--cc-cream); font-family: "Cormorant Garamond", Georgia, serif; font-size: 7rem; font-weight: 700; text-shadow: 0.15em 0.15em 0 rgba(8, 19, 32, 0.16); }
.story-card__body, .list-card { padding: 1.5rem; }
.series-metadata { display: flex; max-width: 100%; flex-wrap: wrap; align-items: center; margin: 0 0 1rem; gap: 0.5rem; }
.content-rating, .content-genre { display: flex; width: fit-content; max-width: 100%; min-height: 1.75rem; align-items: center; margin: 0 0 1rem; padding: 0.15rem 0.65rem; border: 1px solid var(--cc-turquoise); border-radius: 999px; background: var(--cc-turquoise-light); color: var(--cc-navy); font-size: 0.76rem; font-weight: 800; line-height: 1.35; overflow-wrap: anywhere; }
.series-metadata .content-rating, .series-metadata .content-genre { margin: 0; }
.content-genre { border-color: var(--cc-navy-soft); background: #e8f7fa; }
.content-rating--teen { border-color: #c87018; background: #fff0d6; }
.content-rating--adult { border-color: var(--cc-coral-dark); background: #ffe3e3; }
.story-card h2 a, .story-card h3 a, .list-card h2 a, .list-card h3 a { color: var(--cc-navy); text-decoration: none; }
.story-card p:last-child, .list-card p:last-child { margin-bottom: 0; }
.section--color { background: var(--cc-navy-soft); color: var(--cc-cream); }
.section--color .eyebrow { color: var(--cc-mango); }
.rhythm-grid { display: grid; grid-template-columns: 1fr; margin: 2.5rem 0 0; padding: 0; gap: 1.5rem; list-style: none; counter-reset: none; }
.rhythm-grid li { padding: 1.6rem; border: 2px solid var(--cc-turquoise); border-radius: var(--cc-radius); background: var(--cc-cream); color: var(--cc-navy); box-shadow: 6px 6px 0 var(--cc-turquoise); }
.rhythm-grid li > span { display: inline-grid; width: 3.2rem; height: 3.2rem; margin-bottom: 1.4rem; place-items: center; border-radius: 50%; background: var(--cc-mango); color: var(--cc-navy); font-weight: 900; }
.cta-panel { display: flex; align-items: flex-start; flex-direction: column; justify-content: space-between; gap: 2rem; padding: clamp(2rem, 6vw, 4rem); border: 1px solid rgba(47, 193, 182, 0.38); border-radius: calc(var(--cc-radius) * 1.3); background: linear-gradient(135deg, var(--cc-navy), var(--cc-navy-soft)); color: var(--cc-cream); box-shadow: var(--cc-shadow); }
.cta-panel .eyebrow { color: var(--cc-mango); }
.cta-panel h2 { max-width: 18ch; margin-bottom: 0; }

.page-header { max-width: 52rem; margin-bottom: 2.5rem; }
.page-header--wide { max-width: 68rem; }
.content-list { display: grid; gap: 1rem; }
.list-card--row { display: flex; align-items: flex-start; flex-direction: column; justify-content: space-between; gap: 1rem; }
.part-list { display: grid; margin: 1.5rem 0 0; padding: 0; gap: 0.75rem; list-style: none; }
.part-list a { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.1rem 1.25rem; border: 1px solid var(--cc-border); border-radius: 1rem; background: white; color: var(--cc-navy); text-decoration: none; }
.part-list a:hover { border-color: var(--cc-turquoise); transform: translateY(-1px); }
.part-list a span:first-child { display: grid; }
.story-hero { padding-block: clamp(3rem, 7vw, 6rem); background: linear-gradient(145deg, var(--cc-turquoise-light), var(--cc-cream)); }
.story-hero__grid { display: grid; grid-template-columns: 1fr; align-items: center; gap: 2rem; }
.story-hero__cover { display: grid; width: min(100%, 24rem); aspect-ratio: 2 / 3; margin-inline: auto; place-items: center; overflow: hidden; border-radius: var(--cc-radius); background: linear-gradient(145deg, var(--cc-turquoise), var(--cc-navy)); box-shadow: var(--cc-shadow); }
.story-hero__cover img { width: 100%; height: 100%; object-fit: cover; }
.story-hero__summary { color: var(--cc-ink-muted); font-size: 1.2rem; }
.prose { max-width: 720px; overflow-wrap: anywhere; font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif; font-size: clamp(1.18rem, 1.8vw, 1.34rem); font-weight: 500; line-height: 1.72; }
.prose > * + * { margin-top: 1.35em; }
.prose h2, .prose h3 { margin-top: 2em; }
.reader-shell { width: min(820px, calc(100% - 2rem)); margin-inline: auto; padding-block: clamp(3rem, 7vw, 6rem); }
.reader__header { max-width: 720px; margin: 0 auto 3rem; }
.reader__header h1 { font-size: clamp(2.2rem, 11vw, 4.8rem); }
.reader__content { margin-inline: auto; }
.reader__content > p:first-of-type::first-letter { float: left; margin: 0.08em 0.12em 0 0; color: var(--cc-coral-dark); font-size: 4.5em; font-weight: 800; line-height: 0.78; }
.reader__footer { max-width: 720px; margin: 3rem auto 0; padding-top: 1.5rem; border-top: 1px solid var(--cc-border); }
.reader-nav { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.75rem; }
.reader-nav__part, .reader-nav__back { display: flex; min-width: 0; min-height: 3rem; align-items: center; border-radius: 0.9rem; text-decoration: none; }
.reader-nav__part { flex-direction: column; align-items: flex-start; justify-content: center; padding: 0.8rem 1rem; border: 1px solid var(--cc-border); background: white; }
.reader-nav__part:hover { border-color: var(--cc-turquoise); background: var(--cc-turquoise-light); }
.reader-nav__part span { color: var(--cc-coral-dark); font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: 0.72rem; font-weight: 850; letter-spacing: 0.11em; text-transform: uppercase; }
.reader-nav__part strong { max-width: 100%; overflow-wrap: anywhere; color: var(--cc-navy); font-size: 1.08rem; line-height: 1.3; }
.reader-nav__back { justify-content: center; padding: 0.65rem 1rem; font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-weight: 800; }
.reader-nav__empty { display: none; }
.chapter-cay-access-notice { margin: 2rem 0; padding: 1.5rem; border: 2px solid var(--cc-navy-soft); border-radius: var(--cc-radius); background: var(--cc-turquoise-light); font-family: Inter, sans-serif; }
.purchase-panel { display: grid; min-width: 0; margin: 2.5rem 0 0; padding: clamp(1.35rem, 5vw, 2.5rem); gap: 1.25rem; border: 2px solid var(--cc-turquoise); border-radius: var(--cc-radius); background: linear-gradient(135deg, white, var(--cc-turquoise-light)); box-shadow: 6px 6px 0 var(--cc-mango); font-family: Inter, ui-sans-serif, system-ui, sans-serif; }
.purchase-panel h2 { margin-bottom: 0.35rem; font-size: clamp(1.8rem, 7vw, 2.7rem); }
.purchase-panel p:last-child { margin-bottom: 0; }
.purchase-panel__action { display: grid; min-width: 0; align-content: center; justify-items: start; gap: 0.65rem; }
.purchase-panel__price { color: var(--cc-navy); font-size: 1.45rem; font-weight: 850; }
.purchase-panel__pending { color: var(--cc-ink-muted); font-weight: 750; }
.chapter-cay-commerce-note { clear: both; margin: 1.25rem 0; padding: 1rem; border: 1px solid var(--cc-turquoise); border-radius: 1rem; background: var(--cc-turquoise-light); color: var(--cc-navy); font-family: Inter, ui-sans-serif, system-ui, sans-serif; }
.chapter-cay-commerce-note p { margin: 0.35rem 0 0; }
.chapter-cay-empty-state { grid-column: 1 / -1; max-width: 52rem; padding: clamp(1.5rem, 5vw, 2.5rem); border: 1px dashed var(--cc-turquoise); border-radius: var(--cc-radius); background: #edf9f7; }
.chapter-cay-empty-state p { max-width: 44rem; color: var(--cc-ink-muted); }
.chapter-cay-recovery-actions { margin-top: 1.5rem; }
.wp-block-woocommerce-empty-cart-block .chapter-cay-recovery-actions { justify-content: center; }
.shop-shell .woocommerce { padding: 0; }
.woocommerce button.button, .woocommerce a.button, .woocommerce input.button { border-radius: 999px; background: var(--cc-navy); color: white; }
.woocommerce input.input-text, .woocommerce select { min-height: 2.75rem; }
.wc-block-components-checkbox,
.wc-block-components-checkbox > label,
.wc-block-components-checkout-place-order-button { min-height: 2.75rem; }
.wc-block-components-checkbox > label { display: flex; align-items: center; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] { min-width: 1.5rem; width: 1.5rem; height: 1.5rem; }
.wc-block-components-checkout-place-order-button { min-height: 2.75rem !important; }
.woocommerce .woocommerce-info { border-top-color: var(--cc-turquoise); border-radius: 1rem; background: #edf9f7; }
.woocommerce .woocommerce-info::before { color: var(--cc-turquoise); }
.wp-block-woocommerce-coming-soon .wp-block-heading { font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif !important; }
.woocommerce ul.products { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product { width: auto !important; margin: 0 !important; padding: 1rem; border: 1px solid var(--cc-border); border-radius: var(--cc-radius); background: white; }
.woocommerce-account.logged-in .woocommerce { display: grid; grid-template-columns: 1fr; gap: 2rem; }
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { float: none; width: 100%; }
.woocommerce-MyAccount-navigation ul { display: grid; margin: 0; padding: 0; gap: 0.5rem; list-style: none; }
.woocommerce-MyAccount-navigation a { display: flex; min-height: 2.75rem; align-items: center; padding: 0.55rem 0.9rem; border: 1px solid var(--cc-border); border-radius: 0.8rem; background: white; font-family: Inter, sans-serif; font-weight: 750; text-decoration: none; }
.woocommerce-MyAccount-navigation .is-active a { border-color: var(--cc-navy); background: var(--cc-navy); color: white; }
.chapter-cay-library { display: grid; gap: 2.25rem; font-family: Inter, ui-sans-serif, system-ui, sans-serif; }
.chapter-cay-library__header h2 { margin-bottom: 0.35rem; }
.chapter-cay-library__eyebrow { margin-bottom: 0.45rem; color: var(--cc-coral-dark); font-size: 0.76rem; font-weight: 850; letter-spacing: 0.12em; text-transform: uppercase; }
.chapter-cay-library__section { display: grid; gap: 1rem; }
.chapter-cay-library__section-heading h3 { margin-bottom: 0.2rem; }
.chapter-cay-library__section-heading p { margin-bottom: 0; color: var(--cc-ink-muted); }
.chapter-cay-library__section-empty, .chapter-cay-library__empty { margin: 0; padding: 1.25rem; border: 1px dashed var(--cc-turquoise); border-radius: 1rem; background: #edf9f7; }
.chapter-cay-library__grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
.chapter-cay-library__card { position: relative; min-width: 0; padding: 1.25rem; border: 1px solid var(--cc-border); border-radius: 1rem; background: white; box-shadow: 0 8px 24px rgba(8, 19, 32, 0.08); }
.chapter-cay-library__card h4 { margin: 0 0 0.75rem; overflow-wrap: anywhere; font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif; font-size: 1.45rem; line-height: 1.08; }
.chapter-cay-library__card h4 a { color: var(--cc-navy); text-decoration: none; }
.chapter-cay-library__badge { display: inline-flex; min-height: 1.75rem; align-items: center; margin: 0 0 0.8rem; padding: 0.15rem 0.6rem; border-radius: 999px; background: var(--cc-turquoise-light); color: var(--cc-navy); font-size: 0.75rem; font-weight: 800; }
.chapter-cay-library__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-bottom: 0; }

.site-footer { padding-block: 3.5rem; border-top: 1px solid rgba(47, 193, 182, 0.35); background: var(--cc-navy); color: rgba(246, 243, 236, 0.82); }
.site-footer__grid { display: grid; grid-template-columns: 1fr; align-items: start; gap: 2rem; }
.wordmark--footer, .site-footer a { color: white; }
.site-footer p { max-width: 34rem; margin-top: 0.8rem; }
.footer-nav { flex-wrap: wrap; gap: 0.5rem 1rem; }
.footer-nav a { display: inline-flex; min-height: 2.75rem; align-items: center; padding-block: 0.2rem; font-weight: 750; }
.footer-nav a[aria-current="page"] { color: var(--cc-turquoise); text-decoration-thickness: 0.14em; }
.site-footer__legal { white-space: nowrap; }

@media (min-width: 640px) {
    .story-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .chapter-cay-library__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .reader-nav { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: stretch; }
    .reader-nav__part--next { align-items: flex-end; text-align: right; }
    .reader-nav__empty { display: block; }
}

@media (min-width: 700px) {
    .site-header__inner { flex-wrap: nowrap; gap: 1.5rem; padding-block: 0; }
    .site-nav { order: 0; width: auto; overflow: visible; padding-bottom: 0; }
    .site-nav__list { width: auto; min-width: 0; gap: 1rem; }
    .site-nav a { padding-inline: 0.35rem; }
    .section-heading, .cta-panel, .list-card--row { align-items: center; flex-direction: row; gap: 2rem; }
    .story-hero__grid { grid-template-columns: minmax(14rem, 0.62fr) minmax(0, 1.38fr); gap: clamp(2rem, 7vw, 6rem); }
    .story-hero__cover { aspect-ratio: 2 / 3; }
    .rhythm-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .purchase-panel { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
    .purchase-panel__action { justify-items: end; text-align: right; }
    .woocommerce-account.logged-in .woocommerce { grid-template-columns: minmax(13rem, 0.34fr) minmax(0, 1fr); }
}

@media (min-width: 900px) {
    .hero::before { background: linear-gradient(90deg, rgba(8, 19, 32, 0.98) 0%, rgba(8, 19, 32, 0.88) 42%, rgba(8, 19, 32, 0.12) 78%); }
    .hero__banner { object-position: center; }
    .hero__copy { width: 58%; }
    .story-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .site-footer__grid { grid-template-columns: 1.5fr 1fr auto; }
}

@media (max-width: 479px) {
    .wordmark { gap: 0.42rem; }
    .wordmark__emblem { width: 2.55rem; height: 2.55rem; }
    .wordmark__divider { height: 2rem; }
    .wordmark__text > span:first-child { font-size: 0.86rem; }
    .wordmark__cay { font-size: 0.84rem; }
    .button--small { padding-inline: 0.8rem; font-size: 0.9rem; }
    .part-list a { align-items: flex-start; flex-direction: column; gap: 0.35rem; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
}
