/*
Theme Name: Marie Joseph-Charles
Theme URI: https://mariejosephcharles.com
Author: Built for Marie Joseph-Charles
Description: Dark gothic author theme in oxblood, parchment ivory and deep black. Includes a books page driven by WooCommerce products, a shop with Signed and Unsigned editions made out to a name or signature only, a MailPoet newsletter band, a contact form, and Appearance > Site Setup to install plugins and load all content in two clicks.
Version: 1.4.22
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: mjc-author
Tags: dark, one-column, custom-menu, e-commerce
*/
/* Marie Joseph-Charles: dark gothic author site. Single dark look from the brand board:
   black stage, parchment band (About), oxblood band (Newsletter). */
:root{
  --black:#0B0B0B;      /* Deep Black */
  --black-2:#141011;    /* warm raised black */
  --black-3:#1c1617;
  --ivory:#F3EDE2;      /* Parchment Ivory */
  --ivory-dim:#B8AFA2;
  --oxblood:#4A0D14;    /* Oxblood Red */
  --oxblood-2:#5d121b;
  --red:#A3333A;        /* readable oxblood tint for text and lines on black */
  --line:rgba(243,237,226,.14);
  --f-display:"Cormorant Garamond","Cormorant",Garamond,"Times New Roman",serif;
  --f-body:"EB Garamond",Garamond,Georgia,serif;
  --f-script:"Mrs Saint Delafield","Brush Script MT",cursive;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{background:var(--black);color:var(--ivory);font-family:var(--f-body);font-size:19px;line-height:1.6;-webkit-font-smoothing:antialiased;margin:0}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--black)}
img{max-width:100%}
a{color:inherit}
:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.wrap{max-width:1160px;margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.caps{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.28em;font-weight:500}
.eyebrow{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.32em;font-size:13px;color:var(--red);font-weight:600}
h1,h2,h3,h4{font-family:var(--f-display);font-weight:500;text-wrap:balance;margin:0}
p{margin:0}
[hidden]{display:none!important}


/* header */
header.site{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(11,11,11,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;align-items:center;gap:24px;min-height:68px;position:relative}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand .m{font-family:var(--f-script);color:var(--red);font-size:52px;line-height:1;transform:translateY(6px)}
.brand .n{font-family:var(--f-display);letter-spacing:.26em;text-transform:uppercase;font-size:15px;font-weight:600;white-space:nowrap}
nav.main{margin-left:auto;display:flex;align-items:center;gap:20px}
nav.main a{white-space:nowrap;text-decoration:none;font-family:var(--f-display);text-transform:uppercase;letter-spacing:.16em;font-size:13px;font-weight:600;color:var(--ivory-dim);transition:color .2s;padding-block:6px;border-bottom:1px solid transparent}
nav.main a:hover{color:var(--ivory)}
nav.main a[aria-current="page"]{color:var(--ivory);border-bottom-color:var(--red)}
nav.main a.btn-sm{color:var(--ivory);border:1px solid var(--red);padding:9px 16px}
nav.main a.btn-sm:hover{background:var(--oxblood)}
.cart-link{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--ivory);font-family:var(--f-display);text-transform:uppercase;letter-spacing:.18em;font-size:13px;font-weight:600;background:none;border:0;cursor:pointer;padding:6px 0}
.cart-link svg{width:20px;height:20px}
.cart-count{min-width:22px;height:22px;border-radius:11px;background:var(--oxblood);display:inline-grid;place-items:center;font-size:12px;letter-spacing:0;padding:0 6px;font-variant-numeric:tabular-nums}
.menu-btn{display:none;background:none;border:1px solid var(--line);color:var(--ivory);font-family:var(--f-display);letter-spacing:.2em;text-transform:uppercase;font-size:12px;padding:9px 14px;cursor:pointer}
.hdr-right{display:flex;align-items:center;gap:18px}
@media (max-width:980px){
  .menu-btn{display:block}
  .hdr-right{margin-left:auto}
  nav.main{display:none;position:absolute;left:0;right:0;top:100%;background:var(--black);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0;padding:8px max(20px,env(safe-area-inset-right,0px)) 16px max(20px,env(safe-area-inset-left,0px))}
  nav.main.open{display:flex}
  nav.main a{padding:14px 0;border-bottom:1px solid var(--line);font-size:14px}
  nav.main a[aria-current="page"]{border-bottom-color:var(--line);color:var(--red)}
  nav.main a.btn-sm{margin-top:12px;text-align:center;border-bottom:1px solid var(--red)}
}
.brand{min-width:0}
.brand .n{overflow:hidden;text-overflow:ellipsis}
@media (max-width:520px){header.site .wrap{gap:12px}.hdr-right{gap:10px}.cart-link .lbl{display:none}.menu-btn{padding:8px 10px}}
@media (max-width:440px){.brand{gap:6px}.brand .n{font-size:11px;letter-spacing:.12em}.brand .m{font-size:40px}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--f-display);text-transform:uppercase;letter-spacing:.22em;font-size:14px;font-weight:600;text-decoration:none;padding:15px 26px;border:1px solid var(--red);color:var(--ivory);background:transparent;cursor:pointer;transition:background .2s,color .2s}
.btn:hover{background:var(--oxblood)}
.btn.solid{background:var(--oxblood);border-color:var(--oxblood)}
.btn.solid:hover{background:var(--oxblood-2)}
.btn.block{width:100%}
.btn[disabled]{opacity:.45;cursor:not-allowed}

/* page banner (inner pages) */
.banner{position:relative;border-bottom:1px solid var(--line);overflow:hidden}
.banner::before{content:"";position:absolute;inset:0;background:radial-gradient(50% 120% at 15% 0%,rgba(74,13,20,.55),transparent 70%);pointer-events:none}
.banner .wrap{position:relative;padding-block:64px 56px;display:grid;gap:14px}
.banner h1{font-size:clamp(42px,6vw,76px);letter-spacing:.08em;text-transform:uppercase;line-height:1}
.banner p{color:var(--ivory-dim);max-width:62ch}
.banner .ghost{position:absolute;right:max(20px,env(safe-area-inset-right,0px));top:-30px;font-family:var(--f-script);font-size:260px;line-height:1;color:var(--red);opacity:.16;pointer-events:none}
@media (max-width:600px){.banner .wrap{padding-block:44px 40px}.banner .ghost{font-size:180px}}

/* hero (home) */
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 70% at 25% 40%,rgba(74,13,20,.55),transparent 70%);pointer-events:none}
.hero .wrap{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center;padding-block:72px 84px}
.hero-mark{position:relative;text-align:center}
.hero-mark .m{display:block;font-family:var(--f-script);color:var(--red);font-size:clamp(170px,22vw,290px);line-height:.8;height:.82em;margin-bottom:6px;text-shadow:0 0 40px rgba(163,51,58,.25)}
.hero-mark h1{font-size:clamp(34px,5.2vw,68px);letter-spacing:.16em;text-transform:uppercase;font-weight:500;line-height:1.08}
.tagline{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:20px;color:var(--red)}
.tagline::before,.tagline::after{content:"";height:1px;width:70px;background:var(--red);opacity:.8}
.tagline span{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.36em;font-size:clamp(13px,1.5vw,17px);font-weight:600}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:36px}
.hero-books{position:relative;height:440px;display:block}
.hero-books figure{position:absolute;margin:0;width:56%;box-shadow:0 30px 60px rgba(0,0,0,.7),0 0 0 1px rgba(243,237,226,.08);transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.hero-books img{display:block;width:100%;height:auto}
.hero-books .b1{left:4%;top:30px;transform:rotate(-6deg)}
.hero-books .b2{right:4%;top:0;transform:rotate(5deg)}
.hero-books:hover .b1{transform:rotate(-9deg) translateX(-12px)}
.hero-books:hover .b2{transform:rotate(8deg) translateX(12px)}
@media (max-width:860px){
  .hero .wrap{grid-template-columns:1fr;padding-block:48px 56px;gap:28px}
  .hero-books{height:340px;max-width:420px;width:100%;margin:0 auto}
}

/* sections */
section{border-bottom:1px solid var(--line)}
.sec{padding-block:88px}
.sec-head{display:grid;gap:14px;margin-bottom:52px;max-width:720px}
.sec-head h2{font-size:clamp(36px,5vw,58px);line-height:1.05;letter-spacing:.04em}
.sec-head p{color:var(--ivory-dim);font-size:19px}
.sec-foot{margin-top:44px}
@media (max-width:600px){.sec{padding-block:60px}.sec-head{margin-bottom:36px}}

/* home: bookshelf strip */
.shelf{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:22px}
.shelf a{display:grid;gap:12px;text-decoration:none}
.shelf img{display:block;width:100%;aspect-ratio:2/3;object-fit:cover;box-shadow:0 18px 36px rgba(0,0,0,.6),0 0 0 1px rgba(243,237,226,.08);transition:transform .3s}
.shelf a:hover img{transform:translateY(-6px)}
.shelf .t{font-family:var(--f-display);font-size:17px;line-height:1.25}
.shelf .s{color:var(--ivory-dim);font-size:14px;font-family:var(--f-display);letter-spacing:.14em;text-transform:uppercase}
@media (max-width:980px){.shelf{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:480px){.shelf{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}}

/* book feature rows */
.series{display:grid;gap:72px}
.book{display:grid;grid-template-columns:300px minmax(0,1fr);gap:56px;align-items:start}
.book .cover{position:relative}
.book .cover img{display:block;width:100%;height:auto;box-shadow:0 24px 50px rgba(0,0,0,.65),0 0 0 1px rgba(243,237,226,.08)}
.book .cover .num{position:absolute;top:-20px;left:-14px;font-family:var(--f-script);color:var(--red);font-size:88px;line-height:1;pointer-events:none}
.book-body{min-width:0;display:grid;gap:18px}
.book-body h3{font-size:clamp(34px,4vw,48px);letter-spacing:.03em;line-height:1.05}
.book-body .lede{font-family:var(--f-display);font-style:italic;font-size:24px;line-height:1.4;color:var(--ivory)}
.blurb{display:grid;gap:14px;color:var(--ivory-dim);max-width:62ch}
details.more summary{list-style:none;cursor:pointer;font-family:var(--f-display);text-transform:uppercase;letter-spacing:.22em;font-size:13px;font-weight:600;color:var(--red);display:inline-flex;gap:8px;align-items:center}
details.more summary::-webkit-details-marker{display:none}
details.more summary::after{content:"+";font-size:18px;letter-spacing:0}
details.more[open] summary::after{content:"\2212"}
details.more[open] summary .lbl::before{content:"Show less"}
details.more:not([open]) summary .lbl::before{content:"Read the full description"}
details.more .blurb{margin-top:14px}
.price-line{display:flex;flex-wrap:wrap;gap:10px 28px;font-size:16px;color:var(--ivory-dim)}
.price-line b{color:var(--ivory);font-weight:500;font-family:var(--f-display);letter-spacing:.14em;text-transform:uppercase;font-size:13px;margin-right:8px}
.buy{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.buy .btn{padding:13px 20px;font-size:13px}
.retail{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;font-size:15px}
.retail .lab{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.2em;font-size:12px;font-weight:600;color:var(--ivory-dim);margin-right:6px}
.retail a{display:inline-flex;align-items:center;gap:6px;color:var(--ivory);text-decoration:none;border:1px solid var(--line);padding:7px 12px;font-family:var(--f-display);font-size:15px;letter-spacing:.04em;transition:border-color .2s}
.retail a:hover{border-color:var(--red)}
.retail a small{color:var(--ivory-dim);font-size:12px;letter-spacing:.12em;text-transform:uppercase}
@media (max-width:760px){.book{grid-template-columns:1fr;gap:28px}.book .cover{max-width:240px}}

.subhead{display:flex;align-items:baseline;gap:20px;margin:96px 0 40px}
.subhead h2{font-size:clamp(28px,3.4vw,40px);letter-spacing:.06em;white-space:nowrap}
.subhead::after{content:"";flex:1;height:1px;background:var(--line)}
@media (max-width:520px){.subhead h2{white-space:normal}}

/* anthologies */
.anth{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:56px;align-items:start}
.anth-shelf{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.anth-shelf .vol{display:grid;gap:10px;align-content:start}
.anth-shelf img{display:block;width:100%;aspect-ratio:2/3;object-fit:cover;box-shadow:0 18px 36px rgba(0,0,0,.6),0 0 0 1px rgba(243,237,226,.08)}
.anth-shelf .t{font-family:var(--f-display);font-size:15px;letter-spacing:.14em;text-transform:uppercase;text-align:center}
.anth-shelf .links{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 12px;font-size:14px}
.anth-shelf .links a{color:var(--ivory-dim);text-decoration:none;border-bottom:1px solid var(--line)}
.anth-shelf .links a:hover{color:var(--ivory);border-color:var(--red)}
@media (max-width:860px){.anth{grid-template-columns:1fr;gap:36px}}
@media (max-width:440px){.anth-shelf{gap:10px}.anth-shelf .links{flex-direction:column;align-items:center}}

/* coming soon */
.soon{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}
.soon article{display:grid;grid-template-rows:auto 1fr;gap:20px}
.soon .c{position:relative;aspect-ratio:2/3;overflow:hidden;box-shadow:0 0 0 1px rgba(243,237,226,.08)}
.soon .c img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.85)}
.soon .c .tag{position:absolute;left:0;top:18px;background:var(--oxblood);color:var(--ivory);font-family:var(--f-display);text-transform:uppercase;letter-spacing:.22em;font-size:12px;font-weight:600;padding:7px 14px}
.soon h3{font-size:30px;letter-spacing:.03em;margin-bottom:8px}
.soon p{color:var(--ivory-dim);font-size:17px}
@media (max-width:860px){.soon{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.soon{grid-template-columns:1fr}.soon .c{max-width:300px}}

/* about: parchment band */
.about{background:var(--ivory);color:var(--black)}
.about .wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:64px;align-items:center}
.about .photo{position:relative;isolation:isolate}
.about .photo img{display:block;width:100%;height:auto;filter:grayscale(1) contrast(1.05);mix-blend-mode:multiply}
.about .photo::after{content:"";position:absolute;inset:14px -14px -14px 14px;border:1px solid var(--oxblood);z-index:-1}
.about .eyebrow{color:var(--oxblood)}
.about h2{font-size:clamp(36px,5vw,56px);margin:12px 0 26px;letter-spacing:.04em}
.about .txt{display:grid;gap:18px;max-width:62ch;font-size:19px;color:#2a2422}
.about .txt .q{font-family:var(--f-display);font-style:italic;font-size:27px;line-height:1.35;color:var(--oxblood)}
.about .txt h3{margin:6px 0 -8px;font-family:var(--f-display);text-transform:uppercase;letter-spacing:.24em;font-size:14px;font-weight:600;color:var(--black)}
.about .sig{width:260px;max-width:70%;margin-top:8px;filter:invert(1);opacity:.85}
.about .btn{color:var(--black);border-color:var(--oxblood);justify-self:start}
.about .btn:hover{background:var(--oxblood);color:var(--ivory)}
@media (max-width:860px){.about .wrap{grid-template-columns:1fr;gap:44px}.about .photo{max-width:340px}}

/* newsletter: oxblood band */
.news{background:var(--oxblood)}
.news .wrap{display:grid;grid-template-columns:auto minmax(0,1fr);gap:56px;align-items:center}
.seal{width:190px;height:190px;border-radius:50%;background:#2d070c;border:1px solid rgba(243,237,226,.25);display:grid;place-items:center}
.seal span{font-family:var(--f-script);font-size:150px;line-height:1;color:var(--red);transform:translate(4px,18px);filter:brightness(1.25)}
.news h2{font-size:clamp(34px,4.6vw,54px);letter-spacing:.04em;margin:10px 0 14px}
.news .eyebrow{color:var(--ivory);opacity:.8}
.news p.sub{color:#e6d6cf;max-width:58ch}
.news ul{margin:18px 0 0;padding:0;list-style:none;display:grid;gap:6px;color:#e6d6cf;font-size:17px}
.news ul li::before{content:"\2726";color:var(--ivory);margin-right:12px;font-size:12px;vertical-align:2px}
form.nl{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) auto;gap:10px;margin-top:28px;max-width:720px}
.field{display:grid;gap:6px;min-width:0}
.field label{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.2em;font-size:12px;font-weight:600;color:var(--ivory-dim)}
.news .field label{color:#e6d6cf}
input,textarea,select{font:inherit;font-size:17px;color:var(--ivory);background:var(--black-2);border:1px solid var(--line);padding:13px 14px;width:100%;border-radius:0}
.news input{background:rgba(11,11,11,.35);border-color:rgba(243,237,226,.3)}
input::placeholder,textarea::placeholder{color:rgba(243,237,226,.45)}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--red)}
.news input:focus{border-color:var(--ivory)}
form.nl .btn{align-self:end;background:var(--black);border-color:var(--black)}
form.nl .btn:hover{background:#000}
.consent{grid-column:1/-1;display:flex;gap:10px;align-items:flex-start;font-size:15px;color:#e6d6cf}
.consent input{width:18px;height:18px;margin-top:4px;flex:none;accent-color:var(--black)}
.ok{margin-top:24px;padding:16px 18px;border:1px solid rgba(243,237,226,.35);max-width:720px;font-size:17px}
@media (max-width:860px){.news .wrap{grid-template-columns:1fr;gap:32px}.seal{width:140px;height:140px}.seal span{font-size:110px;transform:translate(3px,14px)}form.nl{grid-template-columns:1fr}form.nl .btn{justify-self:start}}

/* socials: icon cards */
.social-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:14px}
.social{display:flex;align-items:center;gap:16px;padding:18px;border:1px solid var(--line);background:var(--black-2);text-decoration:none;transition:border-color .2s,background .2s;min-width:0}
.social:hover{border-color:var(--red);background:var(--black-3)}
.social .ic{flex:none;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--oxblood);color:var(--ivory)}
.social .ic svg{width:24px;height:24px}
.social .tx{display:grid;min-width:0}
.social .p{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.2em;font-size:13px;font-weight:600;color:var(--ivory-dim)}
.social .h{font-family:var(--f-display);font-size:20px;line-height:1.25;color:var(--ivory);overflow-wrap:anywhere}
.social .d{font-size:14px;color:var(--ivory-dim)}

/* contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:72px}
form.ct{display:grid;gap:16px}
form.ct textarea{min-height:170px;resize:vertical}
form.ct .btn{justify-self:start}
.mail{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:22px 0 0}
.mail code{font-family:var(--f-display);font-size:24px;letter-spacing:.04em;color:var(--ivory);user-select:all;word-break:break-all}
.copy{background:none;border:1px solid var(--line);color:var(--ivory-dim);font-family:var(--f-display);text-transform:uppercase;letter-spacing:.2em;font-size:11px;font-weight:600;padding:7px 12px;cursor:pointer}
.copy:hover{color:var(--ivory);border-color:var(--red)}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr;gap:56px}}

/* shop */
.shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 32px}
.product{display:grid;grid-template-rows:auto 1fr;gap:18px;min-width:0}
.product .pc{position:relative;background:var(--black-2);padding:26px 26px 0;display:flex;justify-content:center;align-items:flex-end;aspect-ratio:4/5;overflow:hidden;border:1px solid var(--line)}
.product .pc img{width:72%;height:auto;display:block;box-shadow:0 20px 40px rgba(0,0,0,.7);transform:translateY(8%);transition:transform .35s}
.product:hover .pc img{transform:translateY(3%)}
.product .pc .ser{position:absolute;top:14px;left:14px;font-family:var(--f-display);text-transform:uppercase;letter-spacing:.2em;font-size:11px;font-weight:600;color:var(--ivory-dim)}
.product .pb{display:grid;gap:12px;align-content:start}
.product h3{font-size:28px;letter-spacing:.02em;line-height:1.1}
.product .pr{font-family:var(--f-display);font-size:22px;font-variant-numeric:tabular-nums}
.seg{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line)}
.seg input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.seg label{display:grid;gap:0;text-align:center;padding:10px 6px;cursor:pointer;font-family:var(--f-display);letter-spacing:.14em;text-transform:uppercase;font-size:13px;font-weight:600;color:var(--ivory-dim);transition:background .2s,color .2s}
.seg label small{font-size:13px;letter-spacing:.04em;text-transform:none;font-weight:400;font-variant-numeric:tabular-nums}
.seg label+input+label{border-left:1px solid var(--line)}
.seg input:checked+label{background:var(--oxblood);color:var(--ivory)}
.seg input:focus-visible+label{outline:2px solid var(--red);outline-offset:-2px}
.inscr{font-size:16px;padding:10px 12px}
.addrow{display:grid;grid-template-columns:88px minmax(0,1fr);gap:10px}
.qty{display:grid;grid-template-columns:28px 1fr 28px;border:1px solid var(--line);align-items:center}
.qty button{background:none;border:0;color:var(--ivory);font-size:20px;cursor:pointer;height:100%}
.qty output{text-align:center;font-variant-numeric:tabular-nums}
.addrow .btn{padding:13px 10px;font-size:13px}
.added{font-size:15px;color:var(--ivory-dim);min-height:1.4em}
.ship-note{display:flex;flex-wrap:wrap;gap:12px 40px;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:56px;color:var(--ivory-dim);font-size:16px}
.ship-note b{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.2em;font-size:12px;font-weight:600;color:var(--ivory);display:block}
@media (max-width:980px){.shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.shop-grid{grid-template-columns:1fr}.product .pc{aspect-ratio:auto;padding-top:22px;height:340px}.product .pc img{width:auto;height:110%}}

/* cart drawer */
.scrim{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:80}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,100%);background:var(--black-2);border-left:1px solid var(--line);z-index:90;display:grid;grid-template-rows:auto 1fr auto;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) 0}
.drawer header{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;border-bottom:1px solid var(--line)}
.drawer h2{font-size:28px;letter-spacing:.08em;text-transform:uppercase}
.x{background:none;border:1px solid var(--line);color:var(--ivory);width:38px;height:38px;cursor:pointer;font-size:20px}
.lines{overflow:auto;padding:8px 24px}
.line{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:14px;padding:16px 0;border-bottom:1px solid var(--line);align-items:start}
.line img{width:64px;aspect-ratio:2/3;object-fit:cover}
.line .lt{font-family:var(--f-display);font-size:19px;line-height:1.2}
.line .lv{font-size:14px;color:var(--ivory-dim)}
.line .lq{display:flex;align-items:center;gap:10px;margin-top:8px;font-size:14px}
.line .lq button{background:none;border:1px solid var(--line);color:var(--ivory);width:26px;height:26px;cursor:pointer}
.line .rm{background:none;border:0;color:var(--ivory-dim);text-decoration:underline;cursor:pointer;font:inherit;font-size:13px;padding:0;margin-left:6px}
.line .lp{font-variant-numeric:tabular-nums;font-family:var(--f-display);font-size:18px}
.empty{padding:40px 0;color:var(--ivory-dim);text-align:center;display:grid;gap:18px;justify-items:center}
.drawer footer{padding:20px 24px 24px;border-top:1px solid var(--line);display:grid;gap:14px}
.sum{display:flex;justify-content:space-between;font-family:var(--f-display);font-size:22px;font-variant-numeric:tabular-nums}
.sum small{font-family:var(--f-body);font-size:14px;color:var(--ivory-dim)}

/* checkout */
.co{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:64px;align-items:start}
.co form{display:grid;gap:34px}
.co fieldset{border:0;padding:0;margin:0;display:grid;gap:14px}
.co legend{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.24em;font-size:15px;font-weight:600;margin-bottom:14px;padding:0}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.row3{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}
.choice{display:flex;gap:14px;align-items:center;padding:16px;border:1px solid var(--line);cursor:pointer}
.choice:has(input:checked){border-color:var(--red);background:var(--black-2)}
.choice input{width:18px;height:18px;accent-color:var(--red);flex:none}
.choice .ct{flex:1;display:grid}
.choice .ct small{color:var(--ivory-dim);font-size:14px}
.choice .cp{font-family:var(--f-display);font-variant-numeric:tabular-nums}
.paybox{border:1px dashed rgba(243,237,226,.3);padding:20px;color:var(--ivory-dim);font-size:16px;display:grid;gap:8px}
.paybox b{color:var(--ivory);font-family:var(--f-display);letter-spacing:.14em;text-transform:uppercase;font-size:13px}
.summary{position:sticky;top:96px;background:var(--black-2);border:1px solid var(--line);padding:26px}
.summary h2{font-size:24px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px}
.totals{display:grid;gap:8px;padding-top:16px;font-variant-numeric:tabular-nums}
.totals div{display:flex;justify-content:space-between;color:var(--ivory-dim)}
.totals .grand{color:var(--ivory);font-family:var(--f-display);font-size:24px;padding-top:12px;border-top:1px solid var(--line);margin-top:6px}
@media (max-width:900px){.co{grid-template-columns:1fr;gap:40px}.summary{position:static;order:-1}}
@media (max-width:520px){.row2,.row3{grid-template-columns:1fr}}

/* footer */
footer.site{padding-block:56px 40px;text-align:center}
footer.site .m{font-family:var(--f-script);color:var(--red);font-size:90px;line-height:.8;display:block;height:64px}
footer.site .n{margin-top:12px;font-size:16px}
footer.site .t{color:var(--red);font-family:var(--f-display);text-transform:uppercase;letter-spacing:.32em;font-size:12px;font-weight:600;margin-top:8px}
.ficons{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:28px}
.ficons a{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--ivory-dim);transition:color .2s,border-color .2s,background .2s}
.ficons a:hover{color:var(--ivory);border-color:var(--red);background:var(--oxblood)}
.ficons svg{width:20px;height:20px}
footer.site nav{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 26px;margin:28px 0}
footer.site nav a{text-decoration:none;font-family:var(--f-display);text-transform:uppercase;letter-spacing:.2em;font-size:12px;font-weight:600;color:var(--ivory-dim)}
footer.site nav a:hover{color:var(--ivory)}
footer.site small{color:var(--ivory-dim);font-size:14px}

.added .rm{background:none;border:0;color:var(--ivory);text-decoration:underline;cursor:pointer;font:inherit;padding:0}
@media (max-width:1180px) and (min-width:981px){.brand .n{font-size:13px;letter-spacing:.16em}nav.main{gap:16px}nav.main a{letter-spacing:.12em}}

/* ===== book pages ===== */
.tlink{text-decoration:none;color:inherit;background-image:linear-gradient(var(--red),var(--red));background-size:0 1px;background-repeat:no-repeat;background-position:0 100%;transition:background-size .3s}
.tlink:hover{background-size:100% 1px}
a.cover,a.pc{display:block;text-decoration:none;color:inherit}
a.pc{display:flex}
.anth-shelf a.t{text-decoration:none;display:block}
.bp{border-bottom:1px solid var(--line);position:relative;overflow:hidden}
.bp::before{content:"";position:absolute;inset:0;background:radial-gradient(45% 60% at 20% 20%,rgba(74,13,20,.5),transparent 70%);pointer-events:none}
.bp .wrap{position:relative;padding-block:36px 88px}
.crumbs{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-family:var(--f-display);text-transform:uppercase;letter-spacing:.18em;font-size:12px;font-weight:600;color:var(--ivory-dim);margin-bottom:40px}
.crumbs a{text-decoration:none;color:var(--ivory-dim)}
.crumbs a:hover{color:var(--ivory)}
.crumbs [aria-current]{color:var(--ivory)}
.crumbs span[aria-hidden]{color:var(--red)}
.bp-grid{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:64px;align-items:start}
.bp-cover{position:sticky;top:100px}
.bp-cover img{display:block;width:100%;height:auto;box-shadow:0 30px 60px rgba(0,0,0,.7),0 0 0 1px rgba(243,237,226,.08)}
.bp-cover .num{position:absolute;top:-26px;left:-18px;font-family:var(--f-script);color:var(--red);font-size:110px;line-height:1;pointer-events:none;z-index:1}
.bp-main{min-width:0;display:grid;gap:22px;align-content:start}
.bp-main h1{font-size:clamp(42px,5.6vw,72px);letter-spacing:.03em;line-height:1.02}
.bp-main .lede{font-family:var(--f-display);font-style:italic;font-size:clamp(22px,2.4vw,28px);line-height:1.35;max-width:36ch}
.buybox{display:grid;gap:12px;max-width:460px;padding:22px;background:var(--black-2);border:1px solid var(--line)}
.bb-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.buybox .pr{font-family:var(--f-display);font-size:30px;font-variant-numeric:tabular-nums}
.bb-note{font-size:14px;color:var(--ivory-dim)}
.added .rm,.buybox .added .rm{background:none;border:0;color:var(--ivory);text-decoration:underline;cursor:pointer;font:inherit;padding:0}
.bp-desc{display:grid;gap:14px;color:var(--ivory-dim);max-width:64ch;padding-top:8px}
.bp-desc h2{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.24em;font-size:14px;font-weight:600;color:var(--ivory)}
.share{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding-top:18px;border-top:1px solid var(--line)}
.share .lab{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.2em;font-size:12px;font-weight:600;color:var(--ivory-dim)}
.share code{font-family:var(--f-display);font-size:17px;color:var(--ivory);user-select:all;overflow-wrap:anywhere;min-width:0}
.more-shelf{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:980px){.more-shelf{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:860px){.bp-grid{grid-template-columns:1fr;gap:36px}.bp-cover{position:relative;top:0;max-width:280px}.bp .wrap{padding-block:28px 60px}}
@media (max-width:480px){.more-shelf{grid-template-columns:repeat(2,minmax(0,1fr))}.buybox{padding:16px}}

/* ===== Her handwritten M as the mark (from her signature) ===== */
.brand .m,.hero-mark .m,footer.site .m,.banner .ghost,.seal span{
  font-size:0!important;line-height:0;color:transparent;text-shadow:none;
  background-color:var(--red);
  -webkit-mask:url(assets/img/marie-m.svg) center/contain no-repeat;mask:url(assets/img/marie-m.svg) center/contain no-repeat;
  aspect-ratio:1.068;transform:none}
.hero-mark .m{display:block;width:min(250px,48%);height:auto;margin:0 auto 22px;filter:drop-shadow(0 0 28px rgba(163,51,58,.35))}
footer.site .m{display:block;width:84px;height:auto;margin:0 auto}
.banner .ghost{width:230px;height:auto;top:14px;opacity:.18}
.seal span{display:block;width:58%;height:auto;filter:none;background-color:#C4464E;transform:translateX(4%)}
@media (max-width:600px){.banner .ghost{width:150px}}

/* ===== Header: her full handwritten "Marie Joseph-Charles" ===== */
.brand .m{display:none}
.brand .n{display:block;font-size:0!important;color:transparent;width:210px;aspect-ratio:3.32;height:auto;
  background-color:var(--ivory);
  -webkit-mask:url(assets/img/marie-full-sig.svg) left center/contain no-repeat;mask:url(assets/img/marie-full-sig.svg) left center/contain no-repeat}
.brand:hover .n{background-color:#fff}
@media (max-width:1180px) and (min-width:981px){.brand .n{width:180px}}
@media (max-width:520px){.brand .n{width:170px}}
@media (max-width:380px){.brand .n{width:145px}}
/* ===== Publisher mark (Stories of Darkness and Passion) in the hero and the newsletter seal ===== */
.hero-mark .m,.seal span{-webkit-mask-image:url(assets/img/publisher-m.svg);mask-image:url(assets/img/publisher-m.svg);aspect-ratio:1.099}
.hero-mark .m{width:min(270px,50%)}
.seal span{width:62%;transform:none}
/* ===== Book shadows: tight contact shadow instead of the wide boxy halo ===== */
.hero-books figure,.bp-cover img,.book .cover img{box-shadow:0 2px 4px rgba(0,0,0,.55),0 10px 22px -6px rgba(0,0,0,.6),0 0 0 1px rgba(243,237,226,.08)}
.hero-books::after{content:"";position:absolute;left:10%;right:10%;bottom:-6px;height:44px;border-radius:50%;background:radial-gradient(closest-side,rgba(0,0,0,.75),rgba(0,0,0,0));filter:blur(6px);z-index:-1}
.hero-books{isolation:isolate}
.shelf img,.anth-shelf img,.product .pc img{box-shadow:0 2px 4px rgba(0,0,0,.5),0 8px 18px -6px rgba(0,0,0,.55),0 0 0 1px rgba(243,237,226,.08)}
/* ===== Home: Option B. The catch is the headline, novels as buy cards, anthologies in their own row ===== */
.hero.pitch .wrap{grid-template-columns:1.1fr .9fr}
.pitch-txt{text-align:left}
.catch{font-family:var(--f-display);font-style:italic;font-weight:500;color:var(--ivory);font-size:clamp(46px,6.4vw,84px);line-height:1.05;letter-spacing:0;text-transform:none;margin:16px 0 18px}
.pitch-sub{color:var(--ivory-dim);font-size:21px;max-width:30ch;margin:0}
.pitch .hero-cta{justify-content:flex-start}
.hero-books.three figure{width:46%}
.hero-books.three .b1{left:0;top:40px;transform:rotate(-8deg)}
.hero-books.three .b3{left:27%;top:0;z-index:2;transform:none}
.hero-books.three .b2{right:0;left:auto;top:40px;transform:rotate(8deg)}
.hero-books.three:hover .b1{transform:rotate(-10deg) translateX(-10px)}
.hero-books.three:hover .b2{transform:rotate(10deg) translateX(10px)}
.novels-head{margin-bottom:28px}
.novel-cards{display:grid;gap:44px;max-width:860px}
.novel-card{display:grid;grid-template-columns:150px 1fr;gap:26px;align-items:start}
.novel-card img{display:block;width:100%;aspect-ratio:2/3;object-fit:cover;box-shadow:0 2px 4px rgba(0,0,0,.55),0 10px 22px -6px rgba(0,0,0,.6),0 0 0 1px rgba(243,237,226,.08);transition:transform .3s}
.novel-card a:hover img{transform:translateY(-4px)}
.novel-card h3{font-size:30px;margin:0 0 8px;font-weight:500}
.novel-card h3 a{text-decoration:none}
.novel-card p{color:var(--ivory-dim);margin:0 0 16px;font-size:18px}
.novel-buy{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.novel-buy .more{color:var(--ivory-dim);font-size:16px}
.novel-buy .more:hover{color:var(--ivory)}
.anth-sec{padding-block:56px 72px}
.anth-head{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;margin-bottom:24px}
.anth-head h2{font-size:clamp(26px,3vw,34px);letter-spacing:.04em}
.anth-head p{color:var(--ivory-dim);margin:0}
.anth-row{display:grid;grid-template-columns:repeat(3,minmax(0,150px));gap:22px}
.anth-row a{display:grid;gap:8px;text-decoration:none;color:var(--ivory-dim);font-family:var(--f-display);letter-spacing:.14em;text-transform:uppercase;font-size:13px;text-align:center}
.anth-row a:hover{color:var(--ivory)}
.anth-row img{display:block;width:100%;aspect-ratio:2/3;object-fit:cover;box-shadow:0 2px 4px rgba(0,0,0,.5),0 8px 18px -6px rgba(0,0,0,.55),0 0 0 1px rgba(243,237,226,.08)}
@media (max-width:980px){.hero.pitch .wrap{grid-template-columns:1fr}.pitch .hero-books{order:-1}}
@media (max-width:700px){.novel-card{grid-template-columns:110px 1fr;gap:16px}.novel-card h3{font-size:23px}.novel-card p{font-size:16px}.anth-row{grid-template-columns:repeat(3,1fr);gap:12px}}
@media (max-width:700px){.novel-buy .btn{white-space:nowrap;padding-inline:16px;letter-spacing:.12em}}
/* ===== Newsletter as a plain nav link; book cards show price as text with one link ===== */
nav.main a.btn-sm{border:0;padding:6px 0;border-bottom:1px solid transparent;color:var(--ivory-dim)}
nav.main a.btn-sm:hover{background:none;color:var(--ivory);border-bottom-color:var(--red)}
.novel-buy{gap:10px 16px;font-size:17px}
.novel-buy .price{color:var(--ivory-dim)}
.novel-buy .see{color:var(--ivory);font-family:var(--f-display);text-transform:uppercase;letter-spacing:.16em;font-size:14px;font-weight:600;text-decoration:none;border-bottom:1px solid var(--red);padding-bottom:3px}
.novel-buy .see:hover{color:#fff;border-color:var(--ivory)}
@media (max-width:980px){nav.main a.btn-sm{margin-top:0;text-align:left;border-bottom:1px solid var(--line)}}
/* ===== Links page (link-in-bio) ===== */
.lk-body{background:radial-gradient(80% 50% at 50% 0%,rgba(74,13,20,.55),transparent 70%),var(--black);min-height:100vh}
.lk{max-width:440px;margin:0 auto;padding:44px 20px 40px;display:grid;gap:14px;justify-items:center;text-align:center}
.lk-seal{width:112px;height:112px;margin-bottom:6px}
.lk-name{margin:0}
.lk-name .n{display:block;width:250px;aspect-ratio:3.32;font-size:0;color:transparent;background-color:var(--ivory);-webkit-mask:url(assets/img/marie-full-sig.svg) center/contain no-repeat;mask:url(assets/img/marie-full-sig.svg) center/contain no-repeat}
.lk-catch{font-family:var(--f-display);font-style:italic;font-size:24px;color:var(--ivory-dim);margin:0 0 10px}
.lk-btn{display:block;width:100%;padding:16px 18px;border:1px solid var(--red);color:var(--ivory);text-decoration:none;font-family:var(--f-display);text-transform:uppercase;letter-spacing:.16em;font-size:14px;font-weight:600;transition:background .2s}
.lk-btn:hover{background:var(--oxblood)}
.lk-btn.solid{background:var(--oxblood);border-color:var(--oxblood)}
.lk-btn.solid:hover{background:var(--oxblood-2)}
.lk-books{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:100%;margin:2px 0 6px}
.lk-books img{display:block;width:100%;aspect-ratio:2/3;object-fit:cover;box-shadow:0 2px 4px rgba(0,0,0,.55),0 10px 22px -6px rgba(0,0,0,.6),0 0 0 1px rgba(243,237,226,.08);transition:transform .25s}
.lk-books a:hover img{transform:translateY(-4px)}
/* 1.4.11: profile boxes, two across, the same weight as the buttons above */
.lk-icons{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;width:100%;margin-top:12px}
.lk-icons a{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid rgba(243,237,226,.22);color:var(--ivory);text-decoration:none;font-family:var(--f-display);text-transform:uppercase;letter-spacing:.12em;font-size:13px;font-weight:600;transition:background .2s,border-color .2s}
.lk-icons a:hover{border-color:var(--red);background:var(--oxblood)}
.lk-icons a:last-child:nth-child(odd){grid-column:1/-1;justify-content:center}
.lk-icons .ic{display:grid;place-items:center;color:var(--ivory-dim);flex:none}
.lk-icons a:hover .ic{color:var(--ivory)}
.lk-icons svg{width:22px;height:22px}
.lk-foot{color:var(--ivory-dim);opacity:.6;letter-spacing:.12em;margin-top:14px}

/* ===== WordPress additions ===== */
h1,h2,h3{line-height:1.12}
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--ivory);color:var(--black);padding:10px 16px}
.skip:focus{left:16px;top:16px}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden}
.admin-bar header.site{top:32px}
@media (max-width:782px){.admin-bar header.site{top:46px}}
/* Below 600px WordPress lets the admin bar scroll away, so the sticky header goes to the very top (it left a gap for logged-in users). */
@media screen and (max-width:600px){.admin-bar header.site{top:env(safe-area-inset-top,0px)}}
.qty input{border:0;background:transparent;text-align:center;padding:10px 0;-moz-appearance:textfield;appearance:textfield;font-variant-numeric:tabular-nums}
.qty input::-webkit-outer-spin-button,.qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.about-title{font-size:clamp(40px,5.4vw,62px);margin:12px 0 26px;letter-spacing:.04em}
.about .txt h3.wp-block-heading{margin:6px 0 -8px}

/* page content */
.entry > * + *{margin-top:1.1em}
.entry > p,.entry > ul,.entry > ol,.entry > blockquote{max-width:68ch}
.entry h2{font-size:clamp(30px,3.6vw,42px);letter-spacing:.03em;margin-top:1.6em}
.entry h3{font-size:26px;margin-top:1.4em}
.entry a:not(.btn):not(.social):not(.button){color:var(--ivory);text-decoration-color:var(--red);text-underline-offset:3px}
.entry ul,.entry ol{padding-left:1.2em}
.entry .wp-block-shortcode,.entry .wp-block-html{max-width:none}
.page-body{padding-top:64px}
.post-item{padding:28px 0;border-bottom:1px solid var(--line)}
.post-item h2{margin:0 0 6px;font-size:32px}
.post-item h2 a{text-decoration:none}
.post-item .meta{color:var(--ivory-dim);font-size:15px;margin-bottom:10px}

/* ===== WooCommerce ===== */
.woocommerce-notices-wrapper:empty{display:none}
.woocommerce-message,.woocommerce-info,.woocommerce-error{list-style:none;margin:0 0 32px;padding:16px 20px;border:1px solid var(--line);border-left:3px solid var(--red);background:var(--black-2);color:var(--ivory);display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;justify-content:space-between}
.woocommerce-error li{list-style:none}
.woocommerce-message .button,.woocommerce-info .button{order:2}
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #respond input#submit,.wc-block-components-button{display:inline-flex;align-items:center;justify-content:center;font-family:var(--f-display);text-transform:uppercase;letter-spacing:.2em;font-size:13px;font-weight:600;text-decoration:none;padding:13px 22px;border:1px solid var(--red);color:var(--ivory);background:transparent;border-radius:0;cursor:pointer;line-height:1.2}
.woocommerce a.button:hover,.woocommerce button.button:hover{background:var(--oxblood);color:var(--ivory)}
.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce #place_order,.checkout-button{background:var(--oxblood)!important;border-color:var(--oxblood)!important;color:var(--ivory)!important}
.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover,.woocommerce #place_order:hover{background:var(--oxblood-2)!important}
.woocommerce button.button:disabled,.woocommerce button.button:disabled[disabled]{opacity:.5;color:var(--ivory)}
.woocommerce table.shop_table{width:100%;border-collapse:collapse;border:1px solid var(--line);font-size:17px}
.woocommerce table.shop_table th{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.18em;font-size:12px;font-weight:600;color:var(--ivory-dim);text-align:left;padding:14px 16px;border-bottom:1px solid var(--line)}
.woocommerce table.shop_table td{padding:16px;border-bottom:1px solid var(--line);vertical-align:middle}
.woocommerce table.shop_table img{width:64px;height:auto}
.woocommerce table.shop_table .product-name a{font-family:var(--f-display);font-size:20px;text-decoration:none}
.woocommerce table.shop_table a.remove{font-size:22px;text-decoration:none;color:var(--ivory-dim)}
.woocommerce table.shop_table .quantity input{width:72px;text-align:center}
.woocommerce table.shop_table td.actions{text-align:right}
.woocommerce table.shop_table td.actions .coupon{float:left;display:flex;gap:8px}
.woocommerce table.shop_table td.actions .coupon input{width:180px}
.variation,dl.variation{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;margin:6px 0 0;font-size:14px;color:var(--ivory-dim)}
dl.variation dt{font-weight:500}
dl.variation dd{margin:0}
dl.variation p{margin:0}
.cart-collaterals{display:flex;justify-content:flex-end;margin-top:40px}
.cart_totals{width:min(460px,100%);background:var(--black-2);border:1px solid var(--line);padding:24px}
.cart_totals h2,#order_review_heading,.woocommerce-billing-fields h3,.woocommerce-shipping-fields h3,.woocommerce-additional-fields h3,.woocommerce-column__title,.woocommerce-order-details__title{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.2em;font-size:18px;font-weight:600;margin:0 0 16px}
.cart_totals table.shop_table{border:0}
.cart_totals .wc-proceed-to-checkout{margin-top:18px}
.cart_totals .wc-proceed-to-checkout a{width:100%}
#shipping_method{list-style:none;padding:0;margin:0;display:grid;gap:6px}
#shipping_method input{accent-color:var(--red)}
.woocommerce form .form-row{display:grid;gap:6px;margin:0 0 14px}
.woocommerce form .form-row label{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.18em;font-size:12px;font-weight:600;color:var(--ivory-dim)}
.woocommerce form .form-row .required{color:var(--red);text-decoration:none}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select{width:100%}
.woocommerce-checkout .col2-set{display:grid;gap:32px}
.woocommerce-checkout form.checkout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:28px 56px;align-items:start}
.woocommerce-checkout form.checkout > *{grid-column:1}
.woocommerce-checkout form.checkout #order_review_heading{grid-column:2;grid-row:1;margin:0}
.woocommerce-checkout form.checkout #order_review{grid-column:2;grid-row:2 / span 4;background:var(--black-2);border:1px solid var(--line);padding:24px;position:sticky;top:96px}
/* 1.2.0: the billing block spans the heading row, so the order summary starts beside it instead of below it;
   WooCommerce's 48% float widths on .col-1/.col-2 are cleared so the fields use the full column. */
.woocommerce-checkout form.checkout #customer_details{grid-row:1 / span 2}
.woocommerce-checkout form.checkout > *,.woocommerce-checkout .col2-set > *{min-width:0}
.woocommerce-checkout form.checkout > wc-order-attribution-inputs{display:none}
.woocommerce-checkout .col2-set .col-1,.woocommerce-checkout .col2-set .col-2{float:none;width:auto;max-width:none}
#wc-square-digital-wallet{max-width:420px;margin:0 auto 28px}
.woocommerce-checkout #payment{margin-top:20px}
.woocommerce-checkout #payment ul.payment_methods{list-style:none;padding:0;margin:0 0 16px;display:grid;gap:10px}
.woocommerce-checkout #payment .payment_box{background:var(--black-3);padding:14px;margin-top:10px;font-size:15px;color:var(--ivory-dim)}
.woocommerce-checkout #place_order{width:100%;margin-top:12px;padding:16px}
.woocommerce-privacy-policy-text{font-size:14px;color:var(--ivory-dim)}
.select2-container .select2-selection--single{height:auto;background:var(--black-2);border:1px solid var(--line);border-radius:0;padding:9px 6px}
.select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--ivory)}
.select2-dropdown{background:var(--black-2);color:var(--ivory);border-color:var(--line)}
.select2-results__option--highlighted{background:var(--oxblood)!important}
@media (max-width:900px){
	.woocommerce-checkout form.checkout{grid-template-columns:minmax(0,1fr)}
	.woocommerce-checkout form.checkout #order_review_heading,.woocommerce-checkout form.checkout #order_review{grid-column:1;grid-row:auto;position:static}
	.woocommerce-checkout form.checkout #customer_details{grid-row:auto}
}
@media (max-width:700px){
	.woocommerce table.shop_table_responsive thead{display:none}
	.woocommerce table.shop_table_responsive tr{display:block;border-bottom:1px solid var(--line);padding:8px 0}
	.woocommerce table.shop_table_responsive td{display:flex;justify-content:space-between;gap:12px;border:0;padding:8px 12px;text-align:right}
	.woocommerce table.shop_table_responsive td::before{content:attr(data-title);font-family:var(--f-display);text-transform:uppercase;letter-spacing:.16em;font-size:12px;color:var(--ivory-dim);text-align:left}
	.woocommerce table.shop_table_responsive td.product-remove::before,.woocommerce table.shop_table_responsive td.product-thumbnail::before,.woocommerce table.shop_table_responsive td.actions::before{display:none}
	.woocommerce table.shop_table td.actions .coupon{float:none;margin-bottom:10px}
	/* shipping choices read top to bottom instead of squeezing beside their label */
	.woocommerce table.shop_table_responsive tr.woocommerce-shipping-totals td,.woocommerce-page table.shop_table_responsive tr.woocommerce-shipping-totals td{display:block;text-align:left!important}
	.woocommerce table.shop_table_responsive tr.woocommerce-shipping-totals td::before,.woocommerce-page table.shop_table_responsive tr.woocommerce-shipping-totals td::before{float:none!important;display:block;margin-bottom:6px}
	.woocommerce .woocommerce-shipping-destination,.woocommerce .woocommerce-shipping-calculator{text-align:left}
	/* coupon box above its button, both full width */
	.woocommerce-cart .coupon{flex-wrap:wrap}
	.woocommerce table.cart td.actions .coupon input#coupon_code.input-text{flex:1 1 100%;width:100%}
	.woocommerce table.cart td.actions .coupon button{flex:1 1 100%;width:100%}
	/* footer links big enough to tap */
	footer.site nav{gap:4px 14px}
	footer.site nav a{display:inline-block;padding:12px 6px}
}
/* single product */
.single-product div.product{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:56px;align-items:start}
.single-product div.product .woocommerce-product-gallery{grid-column:1}
.single-product div.product .summary{grid-column:2}
.single-product div.product .woocommerce-tabs,.single-product div.product .related,.single-product div.product .upsells{grid-column:1 / -1}
.single-product .product_title{font-size:clamp(36px,4.6vw,54px)}
.single-product .summary .price{font-family:var(--f-display);font-size:26px;margin:10px 0 18px}
.single-product .variations{margin-bottom:16px}
.single-product .variations th{text-align:left;padding-right:14px;font-family:var(--f-display);text-transform:uppercase;letter-spacing:.18em;font-size:12px}
.single-product .woocommerce-variation-price{margin:10px 0;font-family:var(--f-display);font-size:22px}
.single-product .mjc-inscr{display:grid;gap:6px;margin:0 0 14px}
.single-product .mjc-inscr label{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.18em;font-size:12px;color:var(--ivory-dim)}
.single-product form.cart .quantity input{width:80px;text-align:center}
.single-product form.cart .single_variation_wrap .woocommerce-variation-add-to-cart{display:flex;gap:10px}
.single-product .product_meta{margin-top:20px;font-size:14px;color:var(--ivory-dim)}
.woocommerce-tabs ul.tabs{list-style:none;padding:0;display:flex;gap:20px;border-bottom:1px solid var(--line)}
.woocommerce-tabs ul.tabs a{text-decoration:none;font-family:var(--f-display);text-transform:uppercase;letter-spacing:.18em;font-size:13px}
.related ul.products{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:20px}
.related ul.products a{text-decoration:none}
@media (max-width:760px){.single-product div.product{grid-template-columns:1fr}.single-product div.product .summary{grid-column:1}}
.woo-sec{padding-block:64px}

/* ===== journal ===== */
.post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.post-card{display:grid;grid-template-rows:auto 1fr;gap:16px;min-width:0}
.post-card .pimg{display:block;aspect-ratio:3/2;overflow:hidden;background:var(--black-2);border:1px solid var(--line)}
.post-card .pimg img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}
.post-card:hover .pimg img{transform:scale(1.03)}
.post-card .pimg.noimg{display:grid;place-items:center;text-decoration:none}
.post-card .pimg.noimg span{display:block;width:30%;aspect-ratio:1.068;font-size:0;color:transparent;background:var(--red);opacity:.5;-webkit-mask:url(assets/img/marie-m.svg) center/contain no-repeat;mask:url(assets/img/marie-m.svg) center/contain no-repeat}
.post-card .pbody{display:grid;gap:8px;align-content:start}
.post-card h3{font-size:26px;line-height:1.15}
.post-card p{color:var(--ivory-dim);font-size:17px}
.post-body{max-width:760px}
.post-hero{margin:0 0 36px}
.post-hero img{width:100%;height:auto;display:block}
.post-body .share{margin-top:40px}
.pager .nav-links{display:flex;gap:10px;margin-top:40px;flex-wrap:wrap}
.pager .page-numbers{border:1px solid var(--line);padding:8px 14px;text-decoration:none;font-family:var(--f-display)}
.pager .page-numbers.current{background:var(--oxblood);border-color:var(--oxblood)}
.empty-note{color:var(--ivory-dim)}
@media (max-width:900px){.post-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.post-grid{grid-template-columns:1fr}}
/* Signed copy: name to make it out to, or "Signature only" (1.1.1) */
.signopt{display:grid;gap:6px}
.sigonly{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer;color:var(--ivory-dim);font-size:16px;line-height:1.3}
.sigonly input{width:18px;height:18px;margin:0;accent-color:var(--red);flex:none}
.sigonly:has(input:checked){color:var(--ivory)}
.inscr:disabled{opacity:.45;cursor:not-allowed}
.single-product .mjc-inscr .sigonly{font-family:inherit;text-transform:none;letter-spacing:0;font-size:16px}
/* WooCommerce's notice icon is placed for its own padding and sat on top of the first word; the red left border already marks the notice. */
.woocommerce-message::before,.woocommerce-info::before,.woocommerce-error::before{display:none}
/* 1.2.0: checkout tick boxes (newsletter opt-in, ship to a different address) sit beside their words, not centered above them */
.woocommerce form label.woocommerce-form__label-for-checkbox{display:flex;align-items:center;justify-content:flex-start;gap:12px;cursor:pointer;text-align:left}
.woocommerce form label.woocommerce-form__label-for-checkbox input[type=checkbox]{width:18px;height:18px;padding:0;margin:0;flex:none;accent-color:var(--red)}
.woocommerce-checkout .woocommerce-billing-fields label.woocommerce-form__label-for-checkbox{font-family:inherit;text-transform:none;letter-spacing:0;font-size:16px;color:var(--ivory-dim);margin:4px 0 8px}
#ship-to-different-address label{margin:0}
#shipping_method{list-style:none;margin:0;padding:0;display:grid;gap:10px}
#shipping_method li{display:flex;align-items:flex-start;gap:10px;margin:0;text-align:left}
#shipping_method li input[type=radio]{width:16px;height:16px;padding:0;margin:4px 0 0;flex:none}
#shipping_method li label{display:inline}
.woocommerce-cart .coupon{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.woocommerce table.cart td.actions .coupon input#coupon_code.input-text{width:200px;max-width:100%}

/* 1.3.0: store rules from the Desk (sold out, waiting list, bundles, signed hint, coming-soon date) */
.signhint{color:var(--ivory-dim);font-size:15px;line-height:1.4;margin:0 0 2px}
.soldout{display:grid;gap:10px;margin:6px 0 4px}
.soldout p{margin:0}
.soldout .so-tag{display:inline-block;background:var(--oxblood);color:var(--ivory);font-family:var(--f-display);text-transform:uppercase;letter-spacing:.18em;font-size:12px;font-weight:600;padding:5px 10px;margin-right:8px}
.soldout .small{color:var(--ivory-dim);font-size:15px}
.soldout .ok{margin-top:0}
.soldout .err{color:#E4878D;font-size:15px}
.wl-row{display:flex;flex-wrap:wrap;gap:10px}
.wl-row input[type=email]{flex:1 1 220px;min-height:46px;padding:10px 12px;background:transparent;border:1px solid rgba(243,237,226,.35);color:var(--ivory);font:inherit}
.wl-row .btn{flex:0 0 auto}
.wl-row .hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.bundle-note{margin:10px 0 0;padding:10px 12px;border-left:2px solid var(--red);color:var(--ivory-dim);font-size:15px;line-height:1.45}
.bundle-note b{color:var(--ivory);font-weight:600}
.soon-date{margin-top:6px;color:var(--red);font-family:var(--f-display);text-transform:uppercase;letter-spacing:.16em;font-size:13px}
@media (max-width:560px){.wl-row .btn{width:100%}}

/* 1.4.0: the M in the circle replaces the M from her signature everywhere (Marie, 27 Oct 2026) */
footer.site .m,.banner .ghost,.post-card .pimg.noimg span{
  background:url(assets/img/seal-m.svg) center/contain no-repeat!important;-webkit-mask:none!important;mask:none!important;aspect-ratio:1!important}
footer.site .m{width:96px}
.banner .ghost{width:200px;opacity:.22}
.post-card .pimg.noimg span{width:34%;opacity:.85}
@media (max-width:600px){.banner .ghost{width:130px}}
/* 1.4.0: her red-background portrait shows in colour */
.about .photo img{filter:none;mix-blend-mode:normal}

/* 1.4.2: links inside a page banner line (page not found) */
.banner p a{color:var(--ivory);text-decoration:underline;text-decoration-color:var(--red);text-underline-offset:3px}
.banner p a:hover{color:#fff;text-decoration-color:var(--ivory)}

/* 1.4.5 Shop: browse grid. Covers without the large box, title right under the cover. */
.shop-grid{gap:56px 40px}
.product{grid-template-rows:auto auto;gap:16px}
.product .pc{background:none;border:0;padding:0;aspect-ratio:auto;height:auto;justify-content:flex-start;align-items:flex-start;overflow:visible}
.product .pc img{width:100%;max-width:240px;transform:none}
.product:hover .pc img{transform:translateY(-4px)}
.product .pb{gap:10px}
.product h3{font-size:24px}
.product .pr{font-size:19px;color:var(--ivory-dim)}
.product .btn{justify-self:start;margin-top:4px}
@media (max-width:600px){.product .pc{height:auto;padding:0}.product .pc img{width:62%;height:auto;max-width:220px}}

/* 1.4.6 Trailers: embedded YouTube player, 16:9, click to play (autoplay off). */
.yt{position:relative;width:100%;max-width:640px;aspect-ratio:16/9;background:#000;border:1px solid var(--line);margin-top:18px}
.yt iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.bp-trailer{margin-top:32px}
.bp-trailer h2{margin-bottom:4px}
.book-body .yt,.anth .yt{max-width:560px}

/* 1.4.14: bigger tap targets on phones (retail buttons, breadcrumbs) */
@media (max-width:700px){.retail a{min-height:40px;padding:9px 14px}.crumbs a{display:inline-block;padding:10px 0}}

/* 1.4.16: "Read the full description" button sits under the whole text when open */
.more-btn{background:none;border:0;padding:0;cursor:pointer;font-family:var(--f-display);text-transform:uppercase;letter-spacing:.22em;font-size:13px;font-weight:600;color:var(--red);display:inline-flex;gap:8px;align-items:center;justify-self:start;text-align:left}
.more-btn::after{content:"+";font-size:18px;letter-spacing:0}
.more-btn[aria-expanded="true"]::after{content:"\2212"}
.yt-btn{display:none}
/* 1.4.16: compact book cards on phones: small cover beside the title, blurb folded to four lines, trailer behind a button */
@media (max-width:760px){
.book{grid-template-columns:108px minmax(0,1fr);gap:0 18px;align-items:start}
.book .cover{max-width:none;grid-row:1/span 3;grid-column:1}
.book .cover .num{display:none}
.book>.book-body{display:contents}
.book>.book-body>*{grid-column:1/-1;margin-top:18px}
.book>.book-body>.eyebrow,.book>.book-body>h3,.book>.book-body>.lede{grid-column:2;margin-top:0}
.book>.book-body>h3{font-size:26px;margin-top:4px}
.book>.book-body>.lede{font-size:18px;margin-top:8px}
.book.has-more:not(.open)>.book-body>.blurb:not(.more-text) p{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.book>.book-body>.more-btn{margin-top:10px}
.price-line{gap:6px 20px;font-size:15px}
.yt-btn{display:inline-flex;justify-self:start;background:none;border:1px solid var(--line);color:var(--ivory);padding:10px 16px;font-family:var(--f-display);text-transform:uppercase;letter-spacing:.18em;font-size:13px;cursor:pointer}
.yt-btn::before{content:"\25B6";margin-right:10px;color:var(--red);letter-spacing:0}
.book>.book-body>.yt{display:none;margin-top:12px}
.book>.book-body>.yt.show{display:block}
.retail a{font-size:14px}
}

/* 1.4.22: Anthologies block on phones (Adam, 8 Nov 2026). The 1.4.16 phone book-card rules now apply only to novel cards,
   so the anthology text runs full width, the Buy from Marie button sits like the novels' button, and the three volumes are centred. */
@media (max-width:760px){
.anth{gap:28px}
.anth .book-body{gap:14px}
.anth .lede{font-size:18px}
.anth-shelf{gap:14px;justify-items:center}
.anth-shelf .vol{width:100%;justify-items:center;text-align:center}
.anth-shelf .t{font-size:13px;letter-spacing:.1em;white-space:nowrap}
.anth-shelf .links{flex-direction:column;align-items:center;gap:6px;font-size:13px}
}
