/*
Theme Name: Glapion Publishing
Description: Glapion Publishing author storefront, with WooCommerce cart and checkout.
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 8.0
Author: Glapion Publishing
License: GPL-2.0-or-later
*/


:root {
  --ink: #142432;
  --ink-soft: #1d3344;
  --cream: #f5f7f9;
  --muted: #b7c5d0;
  --gold: #efbd68;
  --cyan: #efbd68;
  --violet: #a98bff;
  --ember: #ff927b;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 110px; }
body { margin: 0; background: var(--ink); color: var(--cream); font: 1rem/1.7 Arial, Helvetica, sans-serif; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; height: auto; }
a:focus-visible { outline: 3px solid #cf963d; outline-offset: 7px; border-radius: 2px; }
.skip-link { position: fixed; top: -100px; left: 16px; background: white; color: var(--ink); padding: 12px 20px; z-index: 50; }
.skip-link:focus { top: 10px; }
.site-header { display: flex; align-items: center; justify-content: space-between; gap: 32px; min-height: 90px; padding: 18px clamp(24px,5vw,80px); background: #142432f5; border-bottom: 1px solid #efbd682d; position: sticky; top: 0; z-index: 20; backdrop-filter: blur(16px); }
.brand { display: inline-flex; align-items: center; gap: 14px; font-family: Georgia, "Times New Roman", serif; font-size: 1.25rem; line-height: 1.1; letter-spacing: .12em; }
.brand i { display: block; color: var(--gold); font-family: Arial, Helvetica, sans-serif; font-size: .75rem; font-style: normal; letter-spacing: .32em; margin-top: 7px; }
.star-mark { width: 32px; height: 32px; fill: var(--gold); flex: none; }
nav { display: flex; align-items: center; gap: 28px; font-size: .875rem; }
nav a { transition: color 150ms; }
nav a:hover { color: var(--gold); }
.nav-cta { border: 1px solid #efbd6870; padding: 10px 18px; }
.hero { display: grid; grid-template-columns: minmax(0,1.16fr) minmax(300px,.84fr); gap: 65px; position: relative; overflow: hidden; min-height: 780px; padding: 85px clamp(28px,8vw,130px) 110px; background: radial-gradient(ellipse at 75% 45%, #284757 0%, transparent 52%), #142432; }
.hero-orbit { position: absolute; border: 1px solid #efbd6823; border-radius: 50%; pointer-events: none; width: 960px; height: 720px; right: -310px; top: 5%; transform: rotate(-26deg) scaleY(.62); }
.orbit-two { width: 1200px; right: -440px; transform: rotate(23deg) scaleY(.42); }
.hero-copy { align-self: center; position: relative; z-index: 1; }
.eyebrow { font-size: .8125rem; font-weight: 700; letter-spacing: .19em; text-transform: uppercase; color: var(--gold); margin: 0 0 22px; line-height: 1.6; }
h1,h2,h3,blockquote { font-family: Georgia, "Times New Roman", serif; font-weight: 400; }
h1 { font-size: clamp(3.2rem,5.8vw,6.2rem); letter-spacing: -.045em; line-height: 1.04; margin: 0; }
h1 em { color: var(--gold); font-weight: 400; }
.hero-lede { font-size: 1.125rem; color: #c9d5df; margin: 28px 0 0; max-width: 590px; line-height: 1.85; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 28px; margin-top: 34px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 16px; padding: 16px 23px; font-size: .875rem; font-weight: 700; line-height: 1.4; transition: background 160ms, transform 160ms; }
.button-primary { color: #142432; background: var(--gold); }
.button:hover { transform: translateY(-2px); background: #ffd594; }
.button svg,.book-link svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.text-link { font-size: .875rem; border-bottom: 1px solid #efbd6870; padding: 8px 0; }
.hero-visual { width: 90%; max-width: 365px; justify-self: center; align-self: center; position: relative; z-index: 1; margin-bottom: 20px; }
.book-halo { display: none; }
.featured-book { box-shadow: -18px 30px 70px #040e1880; transform: perspective(1100px) rotateY(-7deg) rotateZ(2deg); }
.featured-book img { width: 100%; }
.hero-note { position: absolute; bottom: -28px; right: -25px; background: var(--ink); border: 1px solid #efbd6877; padding: 13px 18px; box-shadow: 0 10px 30px #040e1840; }
.hero-note span { display: block; font-size: .75rem; color: var(--muted); }
.hero-note strong { display: block; font-family: Georgia, serif; font-size: 1.125rem; font-weight: 400; color: var(--gold); }
.genre-rail { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; position: absolute; bottom: 30px; left: clamp(28px,8vw,130px); right: 28px; color: var(--muted); font-size: .8125rem; }
.genre-rail b { font-weight: 400; color: var(--gold); }
.books-section { background: var(--cream); color: var(--ink); padding: 96px clamp(28px,8vw,130px) 110px; }
.section-heading { display: grid; grid-template-columns: 1.2fr .8fr; align-items: end; gap: 65px; max-width: 1300px; margin: 0 auto 64px; }
.section-heading h2,.author-copy h2,.start-section h2 { font-size: clamp(2.5rem,4.1vw,4.4rem); line-height: 1.08; letter-spacing: -.035em; margin: 0; }
.section-heading > p { margin: 0; color: #516270; }
.books-section .eyebrow,.start-section .eyebrow { color: #825918; }
.book-list { max-width: 1300px; margin: auto; border-top: 1px solid #14243235; }
.book-row { display: grid; grid-template-columns: 35px minmax(180px,.62fr) minmax(0,1.38fr); gap: clamp(26px,4vw,62px); padding: 60px 0; border-bottom: 1px solid #14243235; scroll-margin-top: 20px; }
.book-number { font-family: Georgia, serif; font-size: 1.25rem; color: #647585; }
.cover-frame { align-self: start; box-shadow: 0 18px 36px #14243224; }
.cover-frame img { width: 100%; }
.book-copy { align-self: center; }
.book-meta { display: flex; flex-wrap: wrap; gap: 6px 20px; color: #5c6c79; font-size: .75rem; margin-bottom: 20px; }
.heroine { font-size: .875rem; font-weight: 700; color: #825918; margin: 0 0 10px; }
.book-copy h3 { font-size: clamp(2.1rem,3.5vw,3.6rem); letter-spacing: -.035em; line-height: 1.12; margin: 0; }
.book-copy blockquote { border-left: 2px solid #b7873f; font-size: clamp(1.125rem,1.6vw,1.45rem); line-height: 1.55; margin: 22px 0; padding-left: 20px; }
.book-copy > p:not(.heroine) { color: #516270; font-size: 1rem; line-height: 1.8; margin: 0; }
.book-copy ul { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 22px 0; list-style: none; }
.book-copy li { font-size: .8125rem; border: 1px solid #14243230; padding: 6px 12px; border-radius: 2px; }
.book-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; }
.book-link { display: inline-flex; align-items: center; gap: 12px; font-size: .875rem; font-weight: 700; border-bottom: 1px solid #b7873f; padding: 7px 0; }
.book-link:hover { color: #825918; }
.direct-section { background: #e7edf2; color: var(--ink); padding: 85px clamp(28px,8vw,130px) 95px; }
.direct-section .eyebrow { color: #825918; }
.direct-section .section-heading { margin-bottom: 28px; }
.direct-announcement { border-top: 1px solid #14243230; padding-top: 20px; margin: 0 auto 34px; max-width: 1300px; color: #405465; font-size: .875rem; }
.series-bundle { display: grid; grid-template-columns: .95fr 1.05fr; gap: 40px; align-items: center; padding: 36px; background: var(--ink); color: var(--cream); margin: 0 auto 30px; max-width: 1300px; }
.bundle-art { display: flex; align-items: center; gap: 12px; min-width: 0; }
.bundle-art img { width: calc((100% - 24px)/3); height: auto; box-shadow: 0 12px 22px #0005; }
.bundle-copy .eyebrow { color: var(--gold); }
.bundle-copy h3 { margin: 0; font-size: clamp(1.8rem,2.6vw,2.9rem); line-height: 1.15; letter-spacing: -.025em; }
.bundle-copy > p:not(.eyebrow) { margin: 16px 0 0; }
.bundle-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 12px; font-family: Georgia,serif; font-size: 2.6rem; color: var(--gold); line-height: 1.3; }
.bundle-price span { font: .875rem/1.5 Arial,Helvetica,sans-serif; color: var(--cream); }
.bundle-saving { font-size: .875rem; color: #d2dde5; }
.bundle-copy .edition-status { color: var(--muted); }
.direct-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 26px; max-width: 1300px; margin: auto; }
.direct-card { background: #f9fbfc; border: 1px solid #14243224; padding: 26px; scroll-margin-top: 20px; }
.direct-card > img { width: auto; height: 210px; max-width: 100%; object-fit: contain; object-position: left; margin: 0 0 25px; box-shadow: 5px 10px 18px #14243221; }
.direct-card .eyebrow { margin-bottom: 10px; }
.direct-card h3 { margin: 0 0 22px; font-size: clamp(1.55rem,2.2vw,2.2rem); line-height: 1.2; letter-spacing: -.02em; }
.edition-prices { padding: 0; margin: 0 0 18px; }
.edition-prices > div { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 5px 12px; border-top: 1px solid #14243224; padding: 12px 0; font-size: .875rem; }
.edition-prices dd { margin: 0; font-weight: 700; white-space: nowrap; }
.edition-prices small { display: block; font-size: .75rem; color: #596b78; margin-top: 3px; }
.edition-status { color: #596b78; font-size: .8125rem; }
.membership-section { background: #1d3344; color: var(--cream); padding: 95px clamp(28px,8vw,130px); }
.membership-layout { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(260px,.65fr); gap: 55px; align-items: center; max-width: 1300px; margin: auto; }
.membership-copy h2 { font-family: Georgia,serif; font-size: clamp(2.5rem,4.1vw,4.4rem); line-height: 1.08; letter-spacing: -.035em; margin: 0; }
.membership-intro { max-width: 640px; color: #d0dce5; font-size: 1.0625rem; line-height: 1.8; margin: 26px 0; }
.membership-benefits { list-style: none; padding: 0; margin: 30px 0 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 28px; }
.membership-benefits li { padding: 14px 0; border-top: 1px solid #efbd6840; font-size: 1rem; }
.membership-pass { padding: 32px; border: 1px solid #efbd6870; background: #142432; }
.membership-pass .eyebrow { margin-bottom: 18px; }
.membership-price { font-family: Georgia,serif; color: var(--gold); font-size: 4.5rem; line-height: 1; margin: 0; }
.membership-price span { display: block; margin-top: 14px; font: .875rem/1.6 Arial,Helvetica,sans-serif; color: #d0dce5; }
.membership-renewal { font-weight: 700; margin: 25px 0 10px; }
.membership-renewal + p { color: #c4d1dc; font-size: .9375rem; line-height: 1.75; }
.membership-status { margin: 24px 0 0; padding-top: 20px; border-top: 1px solid #efbd6850; font-size: .875rem; color: var(--gold); }
.quote-break { background: var(--ink); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 85px 28px; text-align: center; }
.quote-break p { font-family: Georgia, serif; font-size: clamp(2.2rem,4.8vw,4.6rem); letter-spacing: -.03em; line-height: 1.15; margin: 0; max-width: 1000px; }
.quote-break span { color: var(--gold); font-size: .8125rem; letter-spacing: .12em; margin-top: 26px; }
.author-section { background: var(--ink-soft); display: grid; grid-template-columns: minmax(200px,.7fr) minmax(0,1.3fr); gap: clamp(40px,7vw,105px); padding: 100px clamp(28px,9vw,145px); }
.author-monogram { display: flex; align-items: center; justify-content: center; aspect-ratio: 1/1.15; align-self: center; border: 1px solid #efbd6855; background: #142432; font-family: Georgia, serif; }
.author-monogram span,.author-monogram i { font-size: clamp(5rem,12vw,11rem); line-height: 1; letter-spacing: -.12em; font-style: normal; }
.author-monogram i { color: var(--gold); }
.author-copy h2 { margin-bottom: 28px; }
.author-copy > p:not(.eyebrow) { font-size: 1rem; line-height: 1.85; color: #c1ced8; }
.author-copy .author-lede { font-family: Georgia, serif; font-size: clamp(1.2rem,1.7vw,1.5rem) !important; color: #eef2f6 !important; line-height: 1.6 !important; }
.signature-quote { border-top: 1px solid #c1ced833; margin-top: 30px; padding-top: 24px; }
.signature-quote span { display: block; color: var(--gold); font-size: .8125rem; margin-bottom: 8px; }
.signature-quote strong { font-family: Georgia, serif; font-size: 1.45rem; font-weight: 400; line-height: 1.4; display: block; }
.start-section { background: var(--cream); color: var(--ink); padding: 95px 28px; text-align: center; }
.start-section h2 { max-width: 850px; margin: auto; }
.start-section > p:not(.eyebrow) { color: #516270; max-width: 680px; margin: 28px auto; }
.start-section small { display: block; color: #52616d; font-size: .8125rem; line-height: 1.7; max-width: 670px; margin: 28px auto 0; }
footer { display: flex; align-items: center; justify-content: space-between; gap: 36px; padding: 42px clamp(28px,8vw,130px); background: var(--ink); }
.footer-identity p { font-size: .75rem; color: var(--muted); margin: 16px 0 0; }
footer nav { flex-wrap: wrap; font-size: .875rem; }

@media (max-width: 1000px) {
  .membership-layout { grid-template-columns: 1fr; gap: 35px; }
  .membership-pass { max-width: 500px; }
  .direct-grid { grid-template-columns: 1fr; }
  .direct-card { display: grid; grid-template-columns: 140px minmax(0,1fr); gap: 26px; }
  .direct-card > img { height: auto; width: 140px; margin: 0; }
  .hero { gap: 38px; padding-top: 65px; min-height: 680px; }
  .hero-visual { width: 95%; }
  .section-heading { gap: 36px; }
  .book-row { grid-template-columns: 24px minmax(170px,.7fr) minmax(0,1.3fr); gap: 25px; }
  footer { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 760px) {
  .membership-section { padding: 64px 26px; }
  .membership-benefits { grid-template-columns: 1fr; }
  .series-bundle { grid-template-columns: 1fr; padding: 24px; gap: 26px; }
  .bundle-art { max-width: 400px; }
  .direct-section { padding: 64px 26px; }
  html { scroll-padding-top: 145px; }
  .site-header { flex-direction: column; gap: 15px; padding: 17px 22px; align-items: flex-start; }
  .site-header nav { width: 100%; justify-content: space-between; flex-wrap: wrap; gap: 10px 18px; }
  .nav-cta { border: 0; padding: 0; color: var(--gold); }
  .hero { grid-template-columns: 1fr; gap: 48px; padding: 55px 26px 110px; }
  .hero-copy { max-width: 600px; }
  h1 { font-size: clamp(3rem,8.8vw,4.6rem); }
  .hero-visual { width: 65%; max-width: 315px; }
  .genre-rail { left: 26px; gap: 10px; }
  .section-heading { grid-template-columns: 1fr; gap: 24px; margin-bottom: 40px; }
  .books-section { padding: 65px 26px; }
  .book-row { grid-template-columns: 25px 1fr; padding: 38px 0; gap: 24px; }
  .cover-frame { max-width: 270px; grid-column: 2; }
  .book-copy { grid-column: 1 / -1; }
  .author-section { grid-template-columns: 1fr; padding: 64px 26px; gap: 35px; }
  .author-monogram { max-width: 245px; width: 100%; aspect-ratio: 1.3; }
  .author-monogram span,.author-monogram i { font-size: 6rem; }
  .start-section { padding: 64px 26px; }
  .quote-break { padding: 65px 26px; }
  footer { padding: 35px 26px; }
}
@media (max-width: 380px) {
  .direct-card { grid-template-columns: 1fr; }
  .site-header nav { flex-wrap: wrap; justify-content: flex-start; column-gap: 20px; row-gap: 6px; }
  .hero-visual { width: 76%; }
  .hero-note { right: -14px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}

.gp-star{font-size:2.5rem;color:var(--gold);line-height:1}.gp-coming-soon{text-align:center;padding:12px 24px;background:#efbd68;color:#142432;font-size:.9375rem}
.gp-buy-form{display:flex;flex-direction:column;gap:12px;margin-top:24px}.gp-buy-form label{font-weight:700}.gp-buy-form select{font:inherit;padding:12px;width:100%;background:white;color:#142432;border:1px solid #8195a4;border-radius:0}.gp-buy-form button{justify-content:center;font:inherit;border:0;cursor:pointer}.gp-buy-form button:disabled{background:#dbe0e5;color:#445564;cursor:default}.gp-bundle{margin-top:64px}.direct-card{display:flex;flex-direction:column}.direct-card-copy{display:flex;flex-direction:column;flex:1}.direct-card-copy>.gp-buy-form{margin-top:auto;padding-top:16px}.direct-card-copy>p:not(.eyebrow):not(.edition-status){line-height:1.65}.direct-card h3{min-height:2.5em}.edition-status{font-size:.875rem}
.gp-page{background:#f5f7f9;color:#142432;min-height:60vh;padding:50px clamp(20px,7vw,110px)}.gp-page>article{max-width:1250px;margin:auto}.gp-page h1{font:clamp(2.4rem,5vw,4rem)/1.12 Georgia,serif;margin:0 0 30px;letter-spacing:-.03em}.gp-page h2{font:2rem/1.25 Georgia,serif}.gp-page h3{font:1.4rem/1.3 Georgia,serif}.gp-page a{color:#254d6b;text-decoration:underline}.gp-page input,.gp-page textarea,.gp-page select{font:inherit;color:#142432;background:#fff;border:1px solid #8799a7;border-radius:0;padding:10px;max-width:100%}.gp-page input[type=checkbox],.gp-page input[type=radio]{width:auto;min-width:18px;min-height:18px}.gp-page label{font-size:1rem}.gp-page .woocommerce a.button,.gp-page .woocommerce button.button,.gp-page .woocommerce input.button{background:#142432;color:white;border-radius:0;text-decoration:none;line-height:1.5;padding:12px 22px}.gp-page .woocommerce button.button.alt,.gp-page .woocommerce a.button.alt{background:#efbd68;color:#142432}.gp-page .woocommerce #payment{background:#e8edf1}.gp-page .woocommerce table.shop_table{border-radius:0;background:white}.gp-page .woocommerce-cart-form__cart-item img{width:58px!important;max-height:86px;object-fit:contain}.gp-page .woocommerce .quantity input{min-width:70px}.gp-page .woocommerce .product-name{font-size:1rem}.gp-page .woocommerce .form-row input.input-text{padding:12px}.gp-payment-note{padding:16px;border-left:3px solid #bd872f;background:#fff}.woocommerce-error,.woocommerce-info,.woocommerce-message{font-size:1rem}.woocommerce-info{background:#eaf0f4}.woocommerce ul.products li.product a img{aspect-ratio:2/3;object-fit:contain}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #a8670f;outline-offset:4px}
@media(max-width:1000px){.direct-card{display:grid;grid-template-columns:140px minmax(0,1fr)}.direct-card h3{min-height:0}.direct-card-copy>.gp-buy-form{margin-top:16px}}@media(max-width:540px){.direct-card{display:flex}.direct-card>img{width:165px;height:auto;max-width:100%;margin-bottom:24px}.gp-page{padding:32px 18px}.gp-page .woocommerce table.shop_table{font-size:.9375rem}.gp-page .woocommerce .col2-set .col-1,.gp-page .woocommerce .col2-set .col-2{float:none;width:100%}.genre-rail{flex-wrap:wrap}.hero{padding-bottom:130px}}
