:root{
  --cream:#F8F1E1;
  --cream-2:#FFFCF5;
  --navy:#1E2B40;
  --navy-soft:#57667C;
  --teal:#4C8482;
  --teal-deep:#325B59;
  --coral:#DE7A50;
  --rule:#E5D8B9;
  --shadow:rgba(30,43,64,.14);
  --font-display:'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-script:'Alex Brush', 'Segoe Script', cursive;
  --font-body:'Libre Franklin', -apple-system, 'Segoe UI', sans-serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --cream:#161B24;
    --cream-2:#1E2530;
    --navy:#F1EAD9;
    --navy-soft:#B7C0CE;
    --teal:#7FB3AE;
    --teal-deep:#5B968F;
    --coral:#EE9468;
    --rule:#303847;
    --shadow:rgba(0,0,0,.45);
  }
}
:root[data-theme="dark"]{
  --cream:#161B24;
  --cream-2:#1E2530;
  --navy:#F1EAD9;
  --navy-soft:#B7C0CE;
  --teal:#7FB3AE;
  --teal-deep:#5B968F;
  --coral:#EE9468;
  --rule:#303847;
  --shadow:rgba(0,0,0,.45);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} }
body{margin:0; background:var(--cream); color:var(--navy); font-family:var(--font-body); -webkit-font-smoothing:antialiased;}
section[id]{scroll-margin-top:84px;}
a{color:inherit;}
h1,h2,h3{font-family:var(--font-display); font-weight:600; text-wrap:balance; margin:0;}
.script{font-family:var(--font-script); color:var(--teal); font-weight:400;}
.eyebrow{font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:var(--teal-deep); font-weight:600;}
.wrap{max-width:1040px; margin:0 auto; padding:0 clamp(1.25rem,4vw,3rem);}

.topline{height:4px; background:linear-gradient(90deg, var(--teal) 0%, var(--coral) 100%);}

header.site{position:sticky; top:0; z-index:20; background:color-mix(in srgb, var(--cream) 90%, transparent); backdrop-filter:blur(6px); border-bottom:1px solid var(--rule);}
.site-inner{display:flex; align-items:center; justify-content:space-between; padding:.9rem clamp(1.25rem,4vw,3rem); gap:1rem;}
.brand{font-family:var(--font-display); font-size:1.15rem; letter-spacing:.01em; text-decoration:none; color:var(--navy);}
nav.pri{display:none; gap:1.3rem; font-size:.76rem; letter-spacing:.07em; text-transform:uppercase; font-weight:600;}
nav.pri a{text-decoration:none; color:var(--navy-soft); padding-bottom:3px; border-bottom:1px solid transparent; transition:color .15s, border-color .15s;}
nav.pri a:hover, nav.pri a:focus-visible{color:var(--navy); border-color:var(--coral);}
@media (min-width:760px){ nav.pri{display:flex;} }

.hero{padding:clamp(2.75rem,6vw,4.5rem) 0 clamp(2.5rem,5vw,4rem); text-align:center; display:flex; flex-direction:column; align-items:center;}
.emblem{width:clamp(160px,24vw,220px); height:auto; margin-bottom:1.75rem; opacity:0; animation:rise .7s ease forwards;}
h1.title{font-size:clamp(2.5rem,6vw,4rem); line-height:1.06; letter-spacing:.01em; text-transform:uppercase; opacity:0; animation:rise .6s ease .1s forwards;}
h1.title .script{display:block; font-size:1.5em; text-transform:none; letter-spacing:0; margin-top:-.08em;}
.tagline{margin:1.1rem 0 0; font-size:.86rem; letter-spacing:.14em; text-transform:uppercase; color:var(--navy-soft); font-weight:600; opacity:0; animation:rise .6s ease .18s forwards;}
.dek{max-width:46ch; margin:1.4rem auto 0; font-size:1.02rem; line-height:1.7; color:var(--navy-soft); opacity:0; animation:rise .6s ease .26s forwards;}
@keyframes rise{from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:translateY(0);}}
@media (prefers-reduced-motion:reduce){ .emblem,h1.title,.tagline,.dek{animation:none; opacity:1;} }

.trail{display:flex; align-items:center; justify-content:center; gap:clamp(1rem,4vw,2.25rem); margin-top:2.5rem; color:var(--teal);}
.trail svg{width:26px; height:26px; display:block;}
.trail-note{margin-top:1rem; font-size:.76rem; letter-spacing:.1em; text-transform:uppercase; color:var(--navy-soft); font-weight:600;}
.trail-note b{color:var(--coral);}

.pillar-nav{display:flex; flex-wrap:wrap; justify-content:center; gap:.6rem; margin-top:2.25rem;}
.pillar-chip{font-size:.78rem; letter-spacing:.05em; font-weight:600; text-decoration:none; color:var(--navy); border:1px solid var(--rule); background:var(--cream-2); border-radius:999px; padding:.5rem 1.15rem; transition:border-color .15s, transform .15s;}
.pillar-chip:hover{border-color:var(--coral); transform:translateY(-1px);}

section{padding:clamp(3rem,6vw,4.5rem) 0;}
.section-head{display:flex; justify-content:space-between; align-items:flex-end; gap:1.5rem; margin-bottom:2.25rem; border-bottom:1px solid var(--rule); padding-bottom:1.1rem;}
.section-head h2{font-size:clamp(1.6rem,3.5vw,2.1rem);}
.section-head .eyebrow{display:block; margin-bottom:.4rem;}
.section-note{font-size:.92rem; color:var(--navy-soft); max-width:34ch; text-align:right; line-height:1.55;}
@media (max-width:640px){ .section-head{flex-direction:column; align-items:flex-start;} .section-note{text-align:left;} }

.pillar-section{padding:1.1rem 0;}
.pillar-card{background:var(--cream-2); border:1px solid var(--rule); border-radius:20px; padding:2rem clamp(1.5rem,3vw,2.5rem); box-shadow:0 14px 28px -20px var(--shadow); display:grid; grid-template-columns:minmax(200px,36%) 1fr; gap:2.5rem; align-items:start;}
@media (max-width:820px){ .pillar-card{grid-template-columns:1fr; gap:1.5rem; padding:1.75rem 1.5rem;} }
.pillar-identity{display:flex; flex-direction:column; gap:.6rem;}
.chip{width:52px; height:52px; border-radius:50%; background:var(--teal); color:var(--cream-2); display:flex; align-items:center; justify-content:center; margin-bottom:.2rem;}
.chip svg{width:26px; height:26px;}
.pillar-identity h2{font-size:1.5rem; line-height:1.25;}
.pillar-identity p.desc{font-size:.92rem; line-height:1.6; color:var(--navy-soft); margin:0;}
.pillar-list{list-style:none; margin:.15rem 0 0; padding:0; display:flex; flex-direction:column;}
.pillar-list li{display:flex; gap:1.15rem; align-items:baseline; padding:.6rem 0; border-top:1px dotted var(--rule); font-size:.9rem;}
.pillar-list li:first-child{border-top:none;}
.pillar-list .tag{width:6.5rem; flex:none; font-size:.76rem; font-weight:700; letter-spacing:.05em; line-height:1.3; color:var(--coral);}
.pillar-list .ttl{flex:1;}
.pillar-list .ttl a{color:inherit; text-decoration:none; transition:color .15s;}
.pillar-list .ttl a:hover, .pillar-list .ttl a:focus-visible{color:var(--teal-deep);}

.entry-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1.25rem;}
@media (max-width:640px){ .entry-grid{grid-template-columns:1fr;} }
.entry-card{background:var(--cream-2); border:1px solid var(--rule); border-radius:16px; padding:1.5rem 1.4rem; display:flex; flex-direction:column; gap:.55rem; box-shadow:0 10px 22px -18px var(--shadow); color:inherit; text-decoration:none; transition:transform .15s ease, border-color .15s;}
a.entry-card:hover, a.entry-card:focus-visible{transform:translateY(-3px); border-color:var(--teal);}
.entry-tag{font-size:.63rem; font-weight:700; letter-spacing:.06em; color:var(--coral); text-transform:uppercase;}
.entry-title{font-family:var(--font-display); font-size:1.15rem; line-height:1.35; color:var(--navy); transition:color .15s;}
a.entry-card:hover .entry-title, a.entry-card:focus-visible .entry-title{color:var(--teal-deep);}
.entry-cta{font-size:.72rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--teal-deep);}

.book-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:1.25rem;}
@media (max-width:640px){ .book-grid{grid-template-columns:1fr;} }
.book-tile{background:var(--cream-2); border:1px solid var(--rule); border-radius:16px; padding:1.4rem 1.3rem; display:flex; flex-direction:column; gap:.35rem; box-shadow:0 10px 22px -18px var(--shadow); color:inherit; text-decoration:none; transition:transform .15s ease, border-color .15s;}
a.book-tile:hover, a.book-tile:focus-visible{transform:translateY(-3px); border-color:var(--teal);}
.book-format{font-size:.6rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--teal-deep);}
.book-title{font-family:var(--font-display); font-size:1.1rem; line-height:1.3; margin-top:.1rem; color:var(--navy); transition:color .15s;}
a.book-tile:hover .book-title, a.book-tile:focus-visible .book-title{color:var(--teal-deep);}
.book-author{font-size:.82rem; color:var(--navy-soft);}
.book-status{display:inline-block; margin-top:.2rem; font-size:.6rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--coral);}
.book-cta{margin-top:.45rem; font-size:.72rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--teal-deep);}
.pillar-list .ttl-note{display:block; font-size:.8rem; font-weight:400; color:var(--navy-soft); margin-top:.3rem; line-height:1.45;}
.pillar-list .ttl-note em{font-style:normal; color:var(--teal-deep); font-weight:700; text-transform:uppercase; font-size:.72rem; letter-spacing:.04em;}

.manifest{background:var(--cream-2); border:1px solid var(--rule); border-radius:20px; padding:1.9rem clamp(1.25rem,4vw,2.25rem);}
.manifest-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:0;}
.manifest-item{padding:.95rem 1rem; border-top:1px dotted var(--rule);}
.manifest-grid .manifest-item:nth-child(-n+2){border-top:none;}
@media (max-width:640px){ .manifest-grid .manifest-item:nth-child(-n+2){border-top:1px dotted var(--rule);} .manifest-grid .manifest-item:first-child{border-top:none;} }
.manifest-item .item-name{font-weight:700; font-size:.95rem;}
.manifest-item .item-name a{color:inherit; text-decoration:none; transition:color .15s;}
.manifest-item .item-name a:hover, .manifest-item .item-name a:focus-visible{color:var(--teal-deep);}
.mi-head{display:flex; align-items:baseline; justify-content:space-between; gap:.5rem;}
.manifest-item .item-tag{font-size:.65rem; font-weight:700; letter-spacing:.06em; color:var(--teal-deep); white-space:nowrap;}
.manifest-item .item-note{font-size:.82rem; color:var(--navy-soft); margin-top:.35rem; line-height:1.45;}
.status-row{display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.4rem;}
.status-pill{display:inline-block; font-size:.62rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--teal-deep); background:color-mix(in srgb, var(--teal) 16%, transparent); border-radius:999px; padding:.2rem .6rem;}
.manifest-item .shop-btn{display:inline-block; margin-top:.65rem;}

.featured{display:grid; grid-template-columns:1.1fr 1fr; gap:2.5rem; align-items:start;}
@media (max-width:820px){ .featured{grid-template-columns:1fr;} }
.feat-art{aspect-ratio:4/3; border-radius:20px; overflow:hidden; position:relative; display:flex; align-items:center; justify-content:center;}
.feat-art svg{width:100%; height:100%;}
.feat-copy .eyebrow{margin-bottom:.6rem; display:block;}
.feat-copy h3{font-size:clamp(1.4rem,3vw,1.9rem); margin-bottom:.75rem;}
.feat-copy p{font-size:.98rem; line-height:1.65; color:var(--navy-soft); max-width:46ch;}
.products{margin-top:1.5rem; display:flex; flex-direction:column; gap:1rem;}
.product{display:grid; grid-template-columns:auto 1fr auto; gap:1rem; align-items:center; background:var(--cream-2); border:1px solid var(--rule); border-radius:16px; padding:1rem 1.1rem;}
.product .swatch{width:44px; height:44px; border-radius:50%; background:var(--teal); color:var(--cream-2); display:flex; align-items:center; justify-content:center;}
.product .swatch svg{width:22px; height:22px;}
.product .p-name{font-weight:700; font-size:.94rem;}
.product .p-note{font-size:.82rem; color:var(--navy-soft); margin-top:.35rem; line-height:1.45;}
.shop-btn{font-size:.72rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--teal-deep); text-decoration:none; white-space:nowrap; border-bottom:1px solid var(--teal-deep); padding-bottom:2px;}
.disclosure{margin-top:1.5rem; font-size:.78rem; color:var(--navy-soft); border-top:1px dashed var(--rule); padding-top:1rem; line-height:1.6;}

.index-list{display:flex; flex-direction:column;}
.index-row{display:grid; grid-template-columns:6.5rem 1fr auto; gap:1.25rem; align-items:baseline; padding:1.15rem 1rem; border-radius:14px; text-decoration:none; color:var(--navy); transition:background .15s;}
.index-list a.index-row:hover{background:var(--cream-2);}
.index-list a.index-row:hover .idx-title{color:var(--teal-deep);}
.idx-tag{font-size:.68rem; font-weight:700; letter-spacing:.07em; color:var(--coral);}
.idx-title{font-family:var(--font-display); font-size:1.12rem; transition:color .15s;}
.idx-desc{display:block; font-family:var(--font-body); font-size:.82rem; font-weight:400; color:var(--navy-soft); margin-top:.3rem; line-height:1.45;}
.idx-arrow{font-size:.9rem; color:var(--navy-soft);}
@media (max-width:640px){ .index-row{grid-template-columns:1fr auto;} .idx-tag{grid-column:1/-1;} }

footer{border-top:1px solid var(--rule); padding:3rem 0 2.5rem; margin-top:1rem;}
.foot-grid{display:flex; justify-content:space-between; gap:2rem; flex-wrap:wrap;}
.foot-brand{font-family:var(--font-display); font-size:1.2rem;}
.foot-tag{font-size:.85rem; color:var(--navy-soft); margin-top:.4rem; max-width:30ch;}
.foot-disclosure{font-size:.78rem; color:var(--navy-soft); line-height:1.7; max-width:42ch;}
.foot-links{margin-top:1.75rem; padding-top:1.5rem; border-top:1px dotted var(--rule); display:flex; flex-wrap:wrap; gap:1.25rem; font-size:.78rem; font-weight:600;}
.foot-links a{color:var(--navy-soft); text-decoration:none; transition:color .15s;}
.foot-links a:hover, .foot-links a:focus-visible{color:var(--coral);}
.foot-bottom{margin-top:1.5rem; padding-top:1.25rem; border-top:1px dotted var(--rule); display:flex; justify-content:space-between; flex-wrap:wrap; gap:.75rem; font-size:.76rem; color:var(--navy-soft); letter-spacing:.03em; font-weight:600;}

a:focus-visible, .pillar-chip:focus-visible{outline:2px solid var(--coral); outline-offset:2px;}

/* Article pages */
.back-link{font-size:.82rem; font-weight:600; color:var(--navy-soft); text-decoration:none; display:inline-flex; align-items:center; gap:.35rem; transition:color .15s;}
.back-link:hover, .back-link:focus-visible{color:var(--coral);}

.article-eyebrow a{color:inherit; text-decoration:underline; text-decoration-color:transparent; transition:text-decoration-color .15s;}
.article-eyebrow a:hover, .article-eyebrow a:focus-visible{text-decoration-color:currentColor;}

.product-photo{float:right; width:260px; max-width:40%; margin:.3rem 0 1.25rem 1.75rem; border-radius:18px; overflow:hidden; box-shadow:0 14px 28px -20px var(--shadow);}
.product-photo img{width:100%; height:auto; display:block;}
@media (max-width:640px){ .product-photo{float:none; width:100%; max-width:320px; margin:0 auto 1.5rem;} }

.jump-note{margin:0 0 2rem; font-size:.92rem; color:var(--navy-soft); line-height:1.6;}
.jump-note a{display:inline-block; margin-top:.2rem; color:var(--teal-deep); font-weight:700; text-decoration:none; border-bottom:1px solid var(--teal-deep); padding:.15rem 0;}
.jump-note a:hover, .jump-note a:focus-visible{color:var(--teal); border-color:var(--teal);}

.callout-box{background:var(--cream-2); border:1px solid var(--rule); border-radius:16px; padding:1.5rem 1.75rem; margin:2.5rem 0; box-shadow:0 10px 22px -16px var(--shadow); display:flex; align-items:center; justify-content:space-between; gap:1.5rem; flex-wrap:wrap;}
.callout-box .callout-text h3{font-size:1.05rem; margin:0 0 .35rem; color:var(--navy);}
.callout-box .callout-text p{margin:0; font-size:.88rem; color:var(--navy-soft); line-height:1.5; max-width:42ch;}
.callout-box .shop-btn{flex:none; white-space:nowrap;}
@media (max-width:640px){ .callout-box{flex-direction:column; align-items:flex-start;} }

.jump-row{display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin:1.75rem 0 2.25rem;}
@media (max-width:640px){ .jump-row{grid-template-columns:1fr;} }
.jump-card{background:var(--cream-2); border:1px solid var(--rule); border-radius:14px; padding:1rem 1.15rem; display:flex; flex-direction:column; gap:.35rem; text-decoration:none; color:inherit; transition:transform .15s ease, border-color .15s;}
a.jump-card:hover, a.jump-card:focus-visible{transform:translateY(-2px); border-color:var(--teal);}
.jump-label{font-size:.66rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--coral);}
.jump-cta{font-size:.84rem; font-weight:700; color:var(--teal-deep); line-height:1.4;}

.verdict{display:flow-root; margin:1.15rem 0 1.25rem; padding:.45rem 0; border-top:1px dotted var(--rule); border-bottom:1px dotted var(--rule);}
.verdict-row{display:flex; gap:1.15rem; align-items:baseline; padding:.3rem 0;}
.verdict-label{width:6.5rem; flex:none; font-size:.7rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--coral);}
.verdict-text{font-size:.92rem; font-weight:700; color:var(--navy); line-height:1.4;}

.pack-list{padding-left:1.2rem; margin:.4rem 0 1.4rem;}
.pack-list li{margin:.3rem 0; line-height:1.55;}
.pack-list li::marker{color:var(--coral);}
.clearh h2{clear:both;}

.article{padding:clamp(2.25rem,5vw,3.25rem) clamp(1.25rem,4vw,3rem) clamp(3rem,6vw,4rem);} /* horizontal padding matches the header, so text never touches the screen edge */
.article-eyebrow{display:block; margin:1.5rem 0 .75rem;}
.article-title{font-size:clamp(1.9rem,4.2vw,2.7rem); line-height:1.14; margin:0 0 1.5rem;}
.article-subtitle{font-family:var(--font-display); font-style:italic; font-size:1.15rem; color:var(--navy-soft); margin:-1rem 0 1.75rem;}
.article-disclosure{font-size:.78rem; font-style:italic; color:var(--navy-soft); line-height:1.6; margin:0 0 2rem; padding-bottom:1.5rem; border-bottom:1px dashed var(--rule);}

.prose{max-width:64ch; font-size:1.02rem; line-height:1.75; color:var(--navy);}
.prose p{margin:0 0 1.15rem;}
.prose h2{font-size:1.5rem; margin:2.5rem 0 1rem;}
.prose a{color:var(--teal-deep); text-decoration:underline; text-decoration-color:var(--rule); text-underline-offset:3px; transition:text-decoration-color .15s;}
.prose a:hover, .prose a:focus-visible{text-decoration-color:var(--teal-deep);}

.beat{font-weight:700; font-size:1.05rem; color:var(--navy); margin:1.5rem 0;}

.article-photo{width:50%; border-radius:20px; overflow:hidden; margin:1.75rem auto .6rem; box-shadow:0 14px 28px -20px var(--shadow);}
.article-photo img{width:100%; height:auto; display:block;}
.photo-caption{font-size:.78rem; color:var(--navy-soft); font-style:italic; text-align:center; margin:0 0 1.75rem;}
@media (max-width:640px){ .article-photo{width:80%;} }

.cta-btn{display:inline-block; background:var(--teal-deep); color:var(--cream-2); font-size:.82rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; text-decoration:none; padding:.9rem 1.9rem; border-radius:999px; margin-top:.75rem; transition:background .15s, transform .15s;}
.cta-btn:hover, .cta-btn:focus-visible{background:var(--teal); transform:translateY(-1px);}
.prose .cta-btn, .prose .cta-btn:hover, .prose .cta-btn:focus-visible{color:var(--cream-2); text-decoration:none;}

.info-box{background:var(--cream-2); border:1px solid var(--rule); border-radius:16px; padding:1.5rem 1.75rem; margin:1.75rem 0 2rem; box-shadow:0 10px 22px -16px var(--shadow);}
.info-box h3{font-size:1.05rem; margin-bottom:1rem;}
.info-box dl{display:grid; grid-template-columns:auto 1fr; gap:.55rem 1.25rem; margin:0;}
.info-box dt{font-size:.66rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--teal-deep); white-space:nowrap;}
.info-box dd{margin:0; font-size:.92rem; color:var(--navy);}
@media (max-width:480px){ .info-box dl{grid-template-columns:1fr;} .info-box dd{margin-bottom:.35rem;} }

.cover-aside.book-cover{float:right; width:240px; margin:0 0 1.25rem 1.75rem;}
@media (max-width:640px){ .cover-aside.book-cover{float:none; width:200px; margin:0 auto 1.5rem;} }

.callout{border-left:3px solid var(--coral); margin:1.75rem 0; padding:.1rem 0 .1rem 1.15rem; font-family:var(--font-display); font-style:italic; font-size:1.2rem; color:var(--navy);}
.callout p{margin:0 0 .3rem;}

.book-card{background:var(--cream-2); border:1px solid var(--rule); border-radius:20px; padding:1.9rem clamp(1.25rem,4vw,2rem); box-shadow:0 14px 28px -20px var(--shadow); margin:2.25rem 0; display:grid; grid-template-columns:116px 1fr; gap:1.75rem;}
@media (max-width:640px){ .book-card{grid-template-columns:1fr;} .book-cover{width:116px; margin:0 auto;} }
.book-cover{width:100%; aspect-ratio:2/3; border:1.5px dashed var(--rule); border-radius:12px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.5rem; color:var(--navy-soft); overflow:hidden;}
.book-cover svg{width:28px; height:28px; opacity:.55;}
.book-cover span{font-size:.6rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase;}
.book-cover.has-image{border-style:solid; border-color:var(--rule); padding:0;}
.book-cover.has-image img{width:100%; height:100%; object-fit:cover; display:block;}
.book-title{font-size:1.4rem; margin-bottom:.65rem;}
.pepper-row{display:flex; align-items:baseline; flex-wrap:wrap; gap:.55rem; margin-bottom:1.1rem;}
.pepper-icons{font-size:1.05rem; letter-spacing:.08em;}
.pepper-score{font-size:.72rem; font-weight:700; letter-spacing:.05em; color:var(--coral); text-transform:uppercase;}
.book-body p{font-size:.96rem; line-height:1.7; color:var(--navy); margin:0 0 1.05rem;}
.my-take{background:color-mix(in srgb, var(--teal) 12%, var(--cream-2)); border-radius:12px; padding:.95rem 1.15rem; font-size:.92rem; line-height:1.6; color:var(--navy); margin:0 0 1.15rem;}
.my-take b{color:var(--teal-deep);}
.book-card .shop-btn{display:inline-block;}

/* Forms */
.contact-form{max-width:480px; margin-top:1.75rem;}
.form-field{display:flex; flex-direction:column; gap:.4rem; margin-bottom:1.25rem;}
.form-field label{font-size:.7rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--teal-deep);}
.form-field input, .form-field textarea{font-family:var(--font-body); font-size:.95rem; color:var(--navy); background:var(--cream-2); border:1px solid var(--rule); border-radius:10px; padding:.75rem .9rem;}
.form-field input:focus, .form-field textarea:focus{outline:none; border-color:var(--teal); box-shadow:0 0 0 3px color-mix(in srgb, var(--teal) 18%, transparent);}
.form-field textarea{resize:vertical; min-height:140px; font-family:inherit;}
.form-honeypot{display:none;}
.form-submit{border:none; cursor:pointer; font-family:inherit;}
.form-success{background:color-mix(in srgb, var(--teal) 14%, var(--cream-2)); border:1px solid var(--rule); border-radius:16px; padding:1.5rem 1.75rem; font-size:.95rem; color:var(--navy); max-width:480px;}
.form-success strong{color:var(--teal-deep);}
.form-note{font-size:.78rem; color:var(--navy-soft); margin-top:.75rem;}

/* In-article trip photos (inside .prose) */
.trip-photo{margin:1.75rem auto 1.9rem; text-align:center;}
.trip-photo img{display:block; width:100%; height:auto; border-radius:18px; box-shadow:0 14px 28px -20px var(--shadow);}
.trip-photo figcaption{font-size:.78rem; color:var(--navy-soft); font-style:italic; line-height:1.5; margin-top:.6rem;}
.trip-photo.photo-md{width:72%;}
.trip-photo.photo-lg{width:100%;}
.trip-pair{display:flex; gap:.9rem; align-items:flex-start; margin:1.75rem 0 1.9rem;}
.trip-pair .trip-photo{margin:0; min-width:0;}
.trip-pair .trip-photo.landscape{flex:1.5 1 0;}
.trip-pair .trip-photo.portrait{flex:.5625 1 0;}
@media (max-width:640px){
  .trip-photo.photo-md{width:100%;}
  .trip-pair{flex-direction:column; align-items:center; gap:1.5rem;}
  .trip-pair .trip-photo.landscape{flex:none; width:100%;}
  .trip-pair .trip-photo.portrait{flex:none; width:64%;}
}
.trip-photo.float-right{float:right; width:240px; max-width:42%; margin:.3rem 0 1.25rem 1.75rem;}
@media (max-width:640px){ .trip-photo.float-right{float:none; width:64%; max-width:none; margin:1.75rem auto 1.9rem;} }
.trip-find{display:flex; gap:1.75rem; align-items:center; margin:.5rem 0 1.5rem;}
.trip-find .trip-photo{flex:0 0 46%; margin:0;}
.trip-find-text{flex:1 1 0; min-width:0;}
.trip-find-text p{margin:0 0 .9rem;}
@media (max-width:640px){ .trip-find{flex-direction:column; align-items:stretch; gap:1.25rem;} .trip-find .trip-photo{flex:none; width:100%;} }
.manifest-item .mi-photo{display:block; width:100%; max-width:210px; height:auto; border-radius:14px; margin:.65rem 0 .2rem; box-shadow:0 12px 24px -18px var(--shadow);}
.manifest-item .mi-sub{display:block; margin-top:.55rem; font-size:.8rem; font-weight:600; color:var(--teal-deep); text-decoration:underline; text-decoration-color:var(--rule); text-underline-offset:3px; transition:text-decoration-color .15s;}
.manifest-item .mi-sub:hover, .manifest-item .mi-sub:focus-visible{text-decoration-color:var(--teal-deep);}
.manifest-item .mi-body{display:flex; gap:1.15rem; align-items:flex-start; margin-top:.25rem;}
.manifest-item .mi-body .mi-photo{flex:0 0 38%; width:38%; max-width:none; margin:.35rem 0 0;}
.manifest-item .mi-text{flex:1 1 0; min-width:0;}
.manifest-grid .manifest-item.mi-wide{grid-column:1 / -1;}
@media (min-width:700px){ .manifest-grid .manifest-item.mi-wide{grid-column:span 2;} }
@media (max-width:480px){ .manifest-item .mi-body{display:block;} .manifest-item .mi-body::after{content:""; display:block; clear:both;} .manifest-item .mi-body .mi-photo{float:left; width:34%; max-width:none; margin:.35rem .8rem .3rem 0;} .manifest-item .mi-text{display:block;} }

/* Cruise packing article */
.prose h3{font-size:1.2rem; line-height:1.3; margin:2.1rem 0 .8rem;}
.verdict.stack .verdict-label.wide{width:9.5rem;}
@media (max-width:480px){ .verdict.stack .verdict-row{flex-direction:column; gap:.1rem;} .verdict.stack .verdict-label, .verdict.stack .verdict-label.wide{width:auto;} }
.check-group{margin:1.6rem 0 .3rem;}
.check-group .eyebrow{display:block; margin:0 0 .35rem;}
.check-list{list-style:none; padding:0; margin:0 0 .4rem;}
.check-list li{position:relative; padding-left:1.5rem; margin:.28rem 0; line-height:1.5;}
.check-list li::before{content:"\2713"; position:absolute; left:0; color:var(--coral); font-weight:700;}
.check-note{font-size:.88rem; font-style:italic; color:var(--navy-soft); margin:.2rem 0 .6rem;}
.trip-photo.hero-photo{width:100%; margin:0 0 1.75rem;}
.trip-photo.photo-portrait{width:46%;}
@media (max-width:640px){ .trip-photo.photo-portrait{width:72%;} }
.trip-photo.photo-bogg{width:50%;}
@media (max-width:640px){ .trip-photo.photo-bogg{width:80%;} }
.check-list a{font-weight:600;}
.check-sim{font-size:.8rem; font-style:italic; color:var(--navy-soft);}
.check-list .check-sub{list-style:none; padding:0; margin:.2rem 0 .1rem; font-size:.9rem;}
.check-list .check-sub li{padding-left:1.1rem; margin:.15rem 0;}
.check-list .check-sub li::before{content:"\2013"; color:var(--navy-soft); font-weight:400;}
.trip-photo.float-right.fr-wide{width:280px;}
@media (max-width:640px){ .trip-photo.float-right.fr-wide{width:72%; max-width:none;} }
.clearh h3{clear:both;}
.trip-photo.float-right.fr-wide.fr-bogg{width:250px;}
@media (max-width:640px){ .trip-photo.float-right.fr-wide.fr-bogg{width:72%;} }

/* Pinterest save controls (designated graphic + approved photos only) */
.pin-row{margin:-1.1rem 0 1.75rem;}
.pin-save-link{display:inline-flex; align-items:center; gap:.4rem; font-size:.78rem; font-weight:600; letter-spacing:.02em; color:var(--teal-deep); text-decoration:none; border-bottom:1px solid transparent; padding-bottom:1px; transition:border-color .15s;}
.pin-save-link:hover, .pin-save-link:focus-visible{border-bottom-color:var(--teal-deep);}
.pin-save-link .pin-icon{width:.95rem; height:.95rem; color:var(--coral); flex:none;}
.pin-host{position:relative;}
.pin-img-btn{position:absolute; top:.6rem; right:.6rem; z-index:2; display:inline-flex; align-items:center; gap:.3rem; padding:.3rem .6rem .3rem .5rem; border-radius:999px; background:rgba(255,255,255,.94); color:var(--navy); font-size:.72rem; font-weight:700; letter-spacing:.02em; text-decoration:none; box-shadow:0 2px 8px -2px rgba(0,0,0,.35); opacity:0; transition:opacity .15s;}
.pin-img-btn .pin-icon{width:.85rem; height:.85rem; color:var(--coral);}
.pin-host:hover .pin-img-btn, .pin-img-btn:focus-visible{opacity:1;}
@media (hover:none){ .pin-img-btn{opacity:.92;} }
@media (hover:none){ .pin-img-btn{min-height:36px; padding:.45rem .8rem .45rem .65rem;} }
.foot-links a.foot-pin{display:inline-flex; align-items:center; margin-left:auto; color:var(--navy-soft);}
.foot-links a.foot-pin:hover, .foot-links a.foot-pin:focus-visible{color:var(--coral);}

/* Worth Reading reviews: comfortable editorial reading rhythm */
.content-note{font-size:.9rem; color:var(--navy-soft); border-left:3px solid var(--coral); padding:.15rem 0 .15rem .9rem; margin:0 0 1.4rem;}
.content-note strong{color:var(--navy);}

/* ============================================================
   SHARED ARTICLE TYPOGRAPHY & SPACING (applies to every article)
   One system for pages/, worth-packing/ and all future articles.
   Tune the spacing here only - do not add per-article spacing.
   ============================================================ */
.prose{max-width:66ch; font-size:1.04rem; line-height:1.74;}
.prose p{margin:0 0 1.05rem;}
.prose > :first-child{margin-top:0;}
.prose h2{font-size:1.5rem; line-height:1.25; margin:2.3rem 0 .75rem;}
.prose h3{font-size:1.2rem; line-height:1.3; margin:1.8rem 0 .6rem;}
.prose h2 + p, .prose h3 + p{margin-top:0;}
.prose > a.shop-btn{display:inline-block; margin:.1rem 0 1.1rem;}
.beat{margin:1.2rem 0;}
.book-body p{line-height:1.7; margin:0 0 1rem;}
@media (max-width:640px){
  .prose{font-size:1rem; line-height:1.68;}
  .prose p{margin-bottom:.9rem;}
  .prose h2{font-size:1.32rem; margin:1.8rem 0 .55rem;}
  .prose h3{font-size:1.1rem; margin:1.45rem 0 .45rem;}
  .prose > a.shop-btn{margin-bottom:.9rem;}
  .beat{margin:1rem 0;}
  .callout{margin:1.25rem 0;}
  .verdict{margin:.85rem 0 1rem;}
  .trip-photo{margin-top:1.2rem; margin-bottom:1.4rem;}
  .trip-photo.float-right, .trip-photo.float-right.fr-wide, .trip-photo.float-right.fr-wide.fr-bogg{margin-top:1.2rem; margin-bottom:1.4rem;}
  .jump-row{margin:1.25rem 0 1.5rem;}
  .article-disclosure{margin-bottom:1.5rem; padding-bottom:1.1rem;}
  .pin-row{margin-bottom:1.4rem;}
  .book-body p{margin-bottom:.9rem;}
}
@media (max-width:640px){
  .shop-btn, .callout-box .shop-btn{white-space:normal; line-height:1.5;}
  .callout-box .callout-text{max-width:100%;}
  .callout-box .callout-text p{max-width:none;}
}

/* Come Run With Me journal */
.journal-intro{margin:0 0 .5rem;}
.journal-intro p{margin-bottom:.4rem;}
.journal-tabs{display:flex; align-items:center; gap:1.1rem; margin:1.75rem 0 0; padding:0; border-bottom:1px solid var(--rule); scroll-margin-top:84px;}
.journal-tabs[hidden]{display:none;}
.journal-tabs button{font:inherit; font-size:.88rem; font-weight:600; letter-spacing:.02em; color:var(--navy-soft); background:none; border:0; border-bottom:2px solid transparent; margin:0 0 -1px; padding:.55rem 0 .65rem; cursor:pointer; transition:color .15s, border-color .15s;}
.journal-tabs button:hover{color:var(--teal-deep);}
.journal-tabs button[aria-selected="true"]{color:var(--navy); border-bottom-color:var(--coral);}
.journal-tabs button:focus-visible{outline:2px solid var(--teal); outline-offset:3px; border-radius:3px;}
.journal-tabs-sep{color:var(--rule); user-select:none;}
.journal-entry{padding:2.4rem 0 .6rem; border-top:1px solid var(--rule); scroll-margin-top:84px; max-width:66ch;}
.journal-entry:first-child{border-top:0; padding-top:1.9rem;}
.journal-entry-date{margin:0 0 .35rem; font-size:.76rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--teal-deep);}
.journal-entry-date a{color:inherit; text-decoration:none; border-bottom:1px solid transparent; transition:border-color .15s;}
.journal-entry-date a:hover, .journal-entry-date a:focus-visible{border-bottom-color:currentColor;}
.journal-entry-title{font-size:clamp(1.5rem,3.3vw,2rem); line-height:1.2; margin:0 0 1.15rem;}
.journal-body h3{font-size:1.3rem; line-height:1.28; margin:2rem 0 .6rem;}
.journal-body .info-box h3{font-size:1.05rem; margin:0 0 1rem;}
.journal-note{font-size:.84rem; font-style:italic; color:var(--navy-soft); margin:-.5rem 0 1.5rem; line-height:1.55;}
@media (max-width:640px){
  .journal-tabs{gap:.8rem; margin-top:1.4rem;}
  .journal-tabs button{font-size:.82rem;}
  .journal-entry{padding-top:1.9rem;}
  .journal-body h3{font-size:1.15rem; margin:1.6rem 0 .5rem;}
}

/* Worth Packing: every entry has a permanent anchor (#disney-stroller etc.) */
.manifest-item[id]{scroll-margin-top:96px;}
.manifest-item:target{background:color-mix(in srgb, var(--teal) 9%, transparent); border-radius:12px;}
.anchor-alias{display:block; height:0; scroll-margin-top:96px;}
.manifest-item.is-target{background:color-mix(in srgb, var(--teal) 9%, transparent); border-radius:12px;}
.prose h2[id], .prose h3[id]{scroll-margin-top:84px;}
.manifest-item .mi-links{display:flex; flex-wrap:wrap; gap:0 1.1rem;}
@media (max-width:640px){ .info-box .cta-btn{display:block; text-align:center; white-space:normal; line-height:1.4; padding:.85rem 1.25rem; border-radius:18px;} }
.cta-row{display:flex; flex-wrap:wrap; gap:.6rem .9rem; margin-top:.75rem;}
.cta-row .cta-btn{margin-top:0;}
.cta-btn.alt{background:transparent; color:var(--teal-deep); border:2px solid var(--teal-deep); padding:calc(.9rem - 2px) calc(1.9rem - 2px);}
.cta-btn.alt:hover, .cta-btn.alt:focus-visible{background:color-mix(in srgb, var(--teal) 12%, transparent); color:var(--teal-deep); transform:translateY(-1px);}
.info-box .cta-row .cta-btn.alt{color:var(--teal-deep);}
@media (max-width:640px){ .info-box .cta-row{display:block;} .info-box .cta-row .cta-btn{margin-bottom:.6rem; padding-left:1.25rem; padding-right:1.25rem;} .info-box .cta-btn.alt{padding:calc(.85rem - 2px) calc(1.25rem - 2px);} }
.cta-btn.cta-lg{font-size:1rem; padding:1.1rem 2.4rem; margin:.5rem 0 .5rem;}
@media (max-width:640px){ .cta-btn.cta-lg{display:block; text-align:center; white-space:normal; line-height:1.4; font-size:.95rem; padding:1rem 1.25rem; border-radius:20px;} }
/* Stand-alone shop button on its own line in an article (Lotus Best Of): wraps cleanly on phones */
@media (max-width:640px){ .cta-wrap .cta-btn{display:block; text-align:center; white-space:normal; line-height:1.4; font-size:.8rem; padding:.95rem 1.25rem; border-radius:20px;} }

/* Pinterest: Worth Packing card Save link */
.manifest-item .pin-card-btn{display:inline-flex; align-items:center; gap:.3rem; margin-left:auto; font-size:.72rem; font-weight:600; letter-spacing:.02em; color:var(--teal-deep); text-decoration:none; border-bottom:1px solid transparent; transition:border-color .15s;}
.manifest-item .pin-card-btn:hover, .manifest-item .pin-card-btn:focus-visible{border-bottom-color:var(--teal-deep);}
.manifest-item .pin-card-btn .pin-icon{width:.85rem; height:.85rem; color:var(--coral);}
/* Pinterest: on touch screens the photo Save button is a small icon-only circle, so it covers as little of the photo as possible */
@media (hover:none){
  .pin-img-btn{width:36px; height:36px; min-height:0; padding:0; justify-content:center; gap:0; top:.5rem; right:.5rem;}
  .pin-img-btn span{display:none;}
  .pin-img-btn .pin-icon{width:1.1rem; height:1.1rem;}
}

/* Component: WorthPackingCTA (wording and destination live in assets/site.js; this is only its look) */
.wp-cta{margin:2.25rem 0 0; padding:1.15rem 1.4rem;}
.wp-cta .callout-text h3{font-size:1.05rem; margin:0 0 .3rem;}
.wp-cta .callout-text p{max-width:62ch; font-size:.86rem; line-height:1.55;}
@media (max-width:640px){ .wp-cta{margin-top:1.75rem; padding:1rem 1.1rem; gap:.9rem;} }

/* Affiliate buttons in articles: a small boxed link so shopping links stand out a little (automatic for any Amazon .shop-btn or a .cta-line) */
.article a.shop-btn[href*="link.amazon"], .article a.shop-btn[href*="amazon.com/"], .article a.shop-btn[href*="amzn."], .article .cta-line a{
  display:inline-block; font-size:.74rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; text-decoration:none; line-height:1.4;
  color:var(--teal-deep); background:color-mix(in srgb, var(--teal) 9%, var(--cream-2)); border:1.5px solid var(--teal-deep); border-radius:999px;
  padding:.5rem 1.1rem; margin-top:.35rem; white-space:normal; transition:background .15s, color .15s;
}
.article a.shop-btn[href*="link.amazon"]:hover, .article a.shop-btn[href*="link.amazon"]:focus-visible,
.article a.shop-btn[href*="amazon.com/"]:hover, .article a.shop-btn[href*="amzn."]:hover, .article .cta-line a:hover, .article .cta-line a:focus-visible{
  background:var(--teal-deep); color:var(--cream-2);
}
.article .cta-line{margin:.35rem 0 1.1rem;}
.article .cta-line a{text-transform:uppercase;}
.article .cta-line a, .article .cta-line a:hover{text-decoration:none;}
@media (max-width:640px){ .article a.shop-btn[href*="link.amazon"], .article .cta-line a{padding:.5rem 1rem;} }

/* Component: KindleUnlimitedCTA (wording and links live in assets/site.js; this is only its look) */
.ku-cta{background:var(--cream-2); border:1px solid var(--rule); border-radius:16px; padding:1.2rem 1.5rem; margin:2.25rem 0 0; box-shadow:0 10px 22px -16px var(--shadow);}
.ku-cta h3{font-size:1.1rem; margin:0 0 .45rem; color:var(--navy);}
.ku-cta p{margin:0 0 .45rem; font-size:.9rem; line-height:1.6; color:var(--navy-soft); max-width:64ch;}
.ku-actions{display:flex; flex-wrap:wrap; align-items:center; gap:.7rem 1.5rem; margin-top:.85rem;}
.ku-link{font-size:.86rem; font-weight:600; color:var(--teal-deep); text-decoration:underline; text-decoration-color:var(--rule); text-underline-offset:3px; transition:text-decoration-color .15s;}
.ku-link:hover, .ku-link:focus-visible{text-decoration-color:var(--teal-deep);}
.ku-btn{display:inline-block; background:var(--teal-deep); color:var(--cream-2); font-size:.74rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; text-decoration:none; line-height:1.4; padding:.6rem 1.2rem; border-radius:999px; transition:background .15s, transform .15s;}
.ku-btn:hover, .ku-btn:focus-visible{background:var(--teal); transform:translateY(-1px);}
.ku-cta .ku-note{margin:.8rem 0 0; font-size:.72rem; font-style:italic; color:var(--navy-soft);}
.ku-cta.ku-compact{margin:1.1rem 0 0; padding:.95rem 1.2rem; box-shadow:none;}
.ku-cta.ku-compact h3{font-size:1rem; margin-bottom:.3rem;}
.ku-cta.ku-compact p{font-size:.84rem; line-height:1.5; margin-bottom:.3rem;}
.ku-cta.ku-compact .ku-actions{margin-top:.6rem;}
.pillar-card > .ku-cta{grid-column:2;}
@media (max-width:820px){ .pillar-card > .ku-cta{grid-column:1;} }
@media (max-width:640px){
  .ku-cta{padding:1.05rem 1.1rem; margin-top:1.75rem;}
  .ku-actions{flex-direction:column; align-items:stretch; gap:.7rem;}
  .ku-btn{text-align:center; padding:.7rem 1rem;}
  .ku-link{text-align:center;}
}
/* KindleUnlimitedCTA, compact homepage variant: full width under the Pages list on larger screens, text on the left and the two links on the right */
.ku-cta.ku-compact{padding:.85rem 1.15rem;}
.ku-cta.ku-compact h3{font-size:.98rem;}
.ku-cta.ku-compact p{font-size:.82rem; line-height:1.5;}
@media (min-width:821px){
  .pillar-card > .ku-cta.ku-compact{grid-column:1 / -1; display:grid; grid-template-columns:1fr auto; column-gap:2.25rem; align-items:center; margin-top:.4rem;}
  .ku-cta.ku-compact > h3, .ku-cta.ku-compact > p{grid-column:1;}
  .ku-cta.ku-compact > .ku-actions{grid-column:2; grid-row:1 / span 4; flex-direction:column; align-items:flex-start; gap:.75rem; margin:0;}
}
.info-box[id]{scroll-margin-top:84px;}
.info-box.jump-checklist{margin:1.25rem 0 1.75rem; padding:1rem 1.35rem;}
.info-box.jump-checklist h3{margin-bottom:.65rem;}
.info-box.jump-checklist .cta-btn{margin-top:0;}
@media (max-width:640px){ .info-box.jump-checklist{padding:.95rem 1.1rem;} .info-box.jump-checklist .cta-btn{display:block; text-align:center;} }
/* Disney checklist jump box: one compact row - the question on the left, the button right beside it */
.info-box.jump-checklist{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.7rem 1.5rem; padding:.8rem 1.3rem; margin:1rem 0 1.5rem;}
.info-box.jump-checklist h3{margin:0; flex:1 1 18rem;}
.info-box.jump-checklist .cta-btn{margin:0; flex:none; padding:.7rem 1.4rem;}
@media (max-width:640px){ .info-box.jump-checklist{padding:.85rem 1rem; gap:.6rem;} .info-box.jump-checklist h3{flex-basis:100%;} .info-box.jump-checklist .cta-btn{display:block; width:100%; text-align:center;} }

/* Completed-book journals (What I Just Finished Reading / Listening To) */
.bj-intro{margin:0 0 .25rem;}
.bj-intro p{margin-bottom:.7rem;}
.bj-links{display:flex; flex-wrap:wrap; gap:.4rem 1.4rem; margin:.9rem 0 0; font-size:.84rem;}
.bj-links a{font-weight:600; color:var(--teal-deep); text-decoration:none; border-bottom:1px solid currentColor;}
.bj-links a:hover, .bj-links a:focus-visible{color:var(--coral);}
.bj-section{margin:2.4rem 0 0; scroll-margin-top:84px;}
.bj-section > h2{font-size:clamp(1.55rem,3.2vw,2rem); margin:0 0 .3rem;}
.bj-weeknote{margin:0 0 1.25rem; font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--teal-deep);}
.bj-empty{font-size:.92rem; font-style:italic; color:var(--navy-soft); margin:.2rem 0 0;}
.bj-week{margin:2rem 0 .9rem; padding-top:.9rem; border-top:1px solid var(--rule); font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--teal-deep);}
.bj-week:first-child{margin-top:.4rem;}
.book-snap{background:var(--cream-2); border:1px solid var(--rule); border-radius:16px; padding:1.4rem 1.6rem 1.35rem; margin:0 0 1.25rem; box-shadow:0 10px 22px -18px var(--shadow); max-width:68ch; scroll-margin-top:84px;}
.book-snap .snap-title{font-size:clamp(1.3rem,2.8vw,1.6rem); line-height:1.22; margin:0 0 .65rem;}
.book-snap .snap-author{font-family:var(--font-body); font-size:.62em; font-weight:500; color:var(--navy-soft); letter-spacing:.01em; white-space:nowrap;}
.snap-verdict{display:flex; flex-wrap:wrap; align-items:baseline; gap:.3rem .7rem; margin:0 0 .85rem; font-size:.98rem; font-weight:600; color:var(--navy);}
.snap-label{font-size:.64rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--coral);}
.snap-meta{display:grid; grid-template-columns:auto 1fr; gap:.4rem 1.1rem; margin:0 0 .95rem;}
.snap-meta dt{font-size:.64rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--teal-deep); padding-top:.2rem; white-space:nowrap;}
.snap-meta dd{margin:0; font-size:.92rem; line-height:1.55; color:var(--navy);}
.book-snap .snap-text p{margin:0 0 .8rem; font-size:.97rem; line-height:1.7;}
.book-snap .snap-text p.beat{font-family:var(--font-display); font-size:1.12rem; font-weight:700; color:var(--navy); margin:0 0 .35rem;}
.book-snap .snap-text p.beat + p:not(.beat){margin-top:.55rem;}
.snap-link{margin:1.1rem 0 0;}
details.cw{margin:.2rem 0 1rem; border:1px dashed var(--rule); border-radius:12px; background:color-mix(in srgb, var(--coral) 5%, transparent);}
details.cw > summary{cursor:pointer; list-style:none; padding:.7rem 1rem; font-size:.84rem; font-weight:600; color:var(--navy-soft); display:flex; align-items:center; gap:.5rem;}
details.cw > summary::-webkit-details-marker{display:none;}
details.cw > summary::before{content:"+"; display:inline-flex; align-items:center; justify-content:center; width:1.15rem; height:1.15rem; flex:none; border-radius:50%; border:1px solid currentColor; font-size:.85rem; line-height:1;}
details.cw[open] > summary::before{content:"\2212";}
details.cw > summary:hover, details.cw > summary:focus-visible{color:var(--coral);}
details.cw > summary:focus-visible{outline:2px solid var(--teal); outline-offset:2px; border-radius:10px;}
details.cw .cw-body{padding:.1rem 1rem .6rem;}
details.cw .cw-body p{font-size:.9rem; line-height:1.6; margin:0 0 .75rem; color:var(--navy);}
.prose details.cw{margin:.4rem 0 1.5rem;}
@media (max-width:640px){
  .book-snap{padding:1.15rem 1.1rem 1.1rem; border-radius:14px;}
  .snap-meta{grid-template-columns:1fr; gap:.1rem 0;}
  .snap-meta dt{padding-top:.5rem;}
  .snap-meta dt:first-child{padding-top:0;}
}

/* Plain bulleted list inside article text (e.g. the BookCon 2027 changes) */
.prose ul.bullet-list{margin:0 0 1.4rem; padding-left:1.35rem; list-style:disc;}
.prose ul.bullet-list li{margin:0 0 .5rem; padding-left:.2rem; font-size:1rem; line-height:1.65;}
.prose ul.bullet-list li::marker{color:var(--coral);}
@media (max-width:640px){ .book-snap .snap-author{display:block; margin-top:.2rem; font-size:.7em;} }

/* BookCon Planning Journal (Latest Update + expandable Previous Updates) */
.bc-section{margin:2.6rem 0 0; scroll-margin-top:84px;}
.bc-section[hidden]{display:none;}
.bc-section-title{font-size:clamp(1.55rem,3.2vw,2rem); margin:0 0 .2rem;}
.bc-section-note{margin:0 0 1.1rem; font-size:.84rem; color:var(--navy-soft);}
.journal-body h4{font-size:1.3rem; line-height:1.28; margin:2rem 0 .6rem; clear:both;}
.journal-body h5{font-size:1.1rem; line-height:1.3; margin:1.6rem 0 .5rem; clear:both;}
.journal-body ul.bullet-list{margin:0 0 1.4rem; padding-left:1.35rem; list-style:disc;}
.journal-body ul.bullet-list li{margin:0 0 .5rem; padding-left:.2rem; line-height:1.65;}
.journal-body ul.bullet-list li::marker{color:var(--coral);}
#bookcon-entries > .journal-entry{border-top:0; padding-top:1.1rem;}
details.bc-prev{background:var(--cream-2); border:1px solid var(--rule); border-radius:14px; box-shadow:0 10px 22px -20px var(--shadow);}
.journal-entry.bc-archived{max-width:72ch; margin:0 0 .85rem; padding:0; border-top:0;}
#bookcon-entries > .journal-entry, .journal-entry.bc-archived{scroll-margin-top:84px;}
details.bc-prev > summary{list-style:none; cursor:pointer; display:grid; grid-template-columns:1fr auto; gap:.15rem 1rem; align-items:center; padding:1rem 1.25rem; position:relative;}
details.bc-prev > summary::-webkit-details-marker{display:none;}
details.bc-prev .bc-prev-date{grid-column:1; font-size:.72rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:var(--teal-deep);}
details.bc-prev .bc-prev-title{grid-column:1; font-size:1.2rem; line-height:1.28; margin:0;}
details.bc-prev .bc-prev-hint{grid-column:2; grid-row:1 / span 2; font-size:.68rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--coral); white-space:nowrap; display:inline-flex; align-items:center; gap:.45rem;}
details.bc-prev .bc-prev-hint::after{content:"+"; display:inline-flex; align-items:center; justify-content:center; width:1.15rem; height:1.15rem; border-radius:50%; border:1px solid currentColor; font-size:.85rem; line-height:1;}
details.bc-prev[open] .bc-prev-hint{font-size:0;}
details.bc-prev[open] .bc-prev-hint::after{content:"\2212"; font-size:.85rem;}
details.bc-prev > summary:hover .bc-prev-title, details.bc-prev > summary:focus-visible .bc-prev-title{color:var(--teal-deep);}
details.bc-prev > summary:focus-visible{outline:2px solid var(--teal); outline-offset:2px; border-radius:12px;}
details.bc-prev > .journal-body{padding:.2rem 1.25rem 1.1rem; border-top:1px solid var(--rule);}
details.bc-prev > .journal-body > :first-child{margin-top:1.1rem;}
@media (max-width:640px){
  .journal-body h4{font-size:1.15rem; margin:1.6rem 0 .5rem;}
  details.bc-prev > summary{grid-template-columns:1fr; padding:.9rem 1rem;}
  details.bc-prev .bc-prev-hint{grid-column:1; grid-row:auto; margin-top:.35rem;}
  details.bc-prev[open] .bc-prev-hint{font-size:.68rem;}
  details.bc-prev[open] .bc-prev-hint::after{content:"\2212";}
  details.bc-prev > .journal-body{padding:.2rem 1rem 1rem;}
}

/* Short affiliate note under product headings / inside product cards (so a visitor who lands on a #link still sees it) */
.anchor-disclosure{font-size:.78rem; font-style:italic; color:var(--navy-soft); line-height:1.6; margin:-.2rem 0 1rem; max-width:62ch;}
.manifest-item .anchor-disclosure{margin:.1rem 0 .7rem;}

/* Worth Reading: category squares + series library */
.cat-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(.5rem,1.6vw,1rem); max-width:720px; margin:0 auto;}
a.cat-square{aspect-ratio:1/1; min-width:0; overflow-wrap:anywhere; background:var(--cream-2); border:1px solid var(--rule); border-radius:14px; padding:clamp(.45rem,1.6vw,.9rem) clamp(.3rem,1vw,.6rem); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:clamp(.2rem,.8vw,.4rem); box-shadow:0 10px 22px -18px var(--shadow); color:inherit; text-decoration:none; transition:transform .15s ease, border-color .15s;}
a.cat-square:hover, a.cat-square:focus-visible{transform:translateY(-3px); border-color:var(--teal);}
.cat-square .cat-title{font-family:var(--font-display); font-size:clamp(.78rem,2.5vw,1.2rem); line-height:1.2; color:var(--navy); transition:color .15s;}
a.cat-square:hover .cat-title, a.cat-square:focus-visible .cat-title{color:var(--teal-deep);}
.cat-square .cat-count{font-size:clamp(.46rem,1.3vw,.6rem); font-weight:700; letter-spacing:.04em; line-height:1.35; text-transform:uppercase; color:var(--coral);}
.cat-square .cat-cta{margin-top:.2rem; font-size:clamp(.5rem,1.4vw,.66rem); font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--teal-deep);}
/* phones: two boxes over two boxes, centered */
@media (max-width:640px){
  .cat-grid{grid-template-columns:repeat(2,minmax(0,1fr)); gap:.9rem; max-width:340px; margin:0 auto;}
  a.cat-square{padding:.8rem .6rem; gap:.35rem;}
  .cat-square .cat-title{font-size:1.1rem;}
  .cat-square .cat-count{font-size:.58rem;}
  .cat-square .cat-cta{font-size:.66rem;}
}
.series-list{display:grid; gap:1.25rem; margin-top:1rem;}
a.series-card{background:var(--cream-2); border:1px solid var(--rule); border-radius:16px; padding:1.4rem 1.5rem; display:flex; flex-direction:column; gap:.4rem; box-shadow:0 10px 22px -18px var(--shadow); color:inherit; text-decoration:none; max-width:68ch; transition:transform .15s ease, border-color .15s;}
a.series-card:hover, a.series-card:focus-visible{transform:translateY(-3px); border-color:var(--teal);}
.sc-genre{font-size:.6rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--coral);}
.sc-title{font-family:var(--font-display); font-size:1.4rem; line-height:1.25; color:var(--navy); transition:color .15s;}
a.series-card:hover .sc-title, a.series-card:focus-visible .sc-title{color:var(--teal-deep);}
.sc-author{font-size:.85rem; color:var(--navy-soft);}
.sc-overview{font-size:.95rem; line-height:1.65; margin-top:.2rem;}
.sc-foot{display:flex; flex-wrap:wrap; justify-content:space-between; gap:.4rem 1rem; margin-top:.6rem; font-size:.7rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase;}
.sc-count{color:var(--navy-soft);} .sc-cta{color:var(--teal-deep);}
.sc-genre-line{font-size:.72rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--coral);}

/* Places: Disney World article directory */
.dir-list li{align-items:flex-start;}
.dir-list .dir-desc{display:block; font-size:.84rem; line-height:1.55; color:var(--navy-soft); margin-top:.3rem; font-weight:400;}
.pillar-list .ttl a.dir-link{display:inline-block; margin-top:.5rem; font-size:.72rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--teal-deep); border-bottom:1px solid currentColor; padding-bottom:1px;}
.pillar-list .ttl a.dir-link:hover, .pillar-list .ttl a.dir-link:focus-visible{color:var(--coral);}
.dir-list .ttl > a:first-child{font-weight:600;}
@media (max-width:640px){ .dir-list li{flex-direction:column; gap:.3rem;} .dir-list .tag{width:auto;} }
