/* ============================================================
   Bones & Weavers — two-season theme
   ============================================================ */

/* ---- Season palettes ------------------------------------- */
html.season-summer {
    --shell:#F3EBDE; --bg:#FBF4EC; --edge:#EADCC9; --ink:#46422F; --ink-soft:#7C7459;
    --gold:#C29A45; --sage:#93A77E; --rose:#D98FA0; --moon:#E8C766; --field:#FFFFFF;
    --hero:radial-gradient(135% 95% at 50% -8%,#FBEAE3 0%,#FBF4EC 56%);
    --moon-glow:radial-gradient(circle,#F4D98A 0%,#E8C766 55%,rgba(232,199,102,0) 72%);
    --cta-bg:#46422F; --cta-ink:#FBF4EC; --card-bg:#FFFFFF;
}
html.season-winter {
    --shell:#0E0F17; --bg:#15161F; --edge:#2C2E40; --ink:#E9E1CE; --ink-soft:#A6A089;
    --gold:#C3A65C; --sage:#8A988C; --rose:#B0808C; --moon:#DCD6C4; --field:#1F2130;
    --hero:radial-gradient(135% 95% at 50% -8%,#1E2030 0%,#15161F 58%);
    --moon-glow:radial-gradient(circle,#F0EBDB 0%,#DCD6C4 50%,rgba(220,214,196,0) 72%);
    --cta-bg:#C3A65C; --cta-ink:#15161F; --card-bg:#1B1C28;
}

/* ---- Base ------------------------------------------------- */
* { box-sizing:border-box; margin:0; padding:0; }
html { -webkit-text-size-adjust:100%; }
body {
    background:var(--bg); color:var(--ink);
    font-family:var(--gh-font-body, 'EB Garamond', Georgia, serif); font-size:19px; line-height:1.65;
    transition:background .6s ease, color .6s ease;
    display:flex; flex-direction:column; min-height:100vh;
}
.site-main { flex:1 0 auto; }
img { max-width:100%; height:auto; display:block; }
a { color:inherit; text-decoration:none; }

.wrap { width:100%; max-width:1080px; margin:0 auto; padding:0 28px; }
.wrap-narrow { width:100%; max-width:720px; margin:0 auto; padding:0 28px; }

h1,h2,h3,h4 { font-family:var(--gh-font-heading, 'Cormorant Garamond', Georgia, serif); font-weight:500; line-height:1.12; color:var(--ink); }

.kicker { font-size:12px; letter-spacing:.34em; text-transform:uppercase; color:var(--gold); }

/* ---- Header ---------------------------------------------- */
.site-header { border-bottom:1px solid var(--edge); transition:border-color .6s; }
.header-inner { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:22px 28px; flex-wrap:wrap; }
.brand-mark { font-family:'Cormorant Garamond', serif; font-weight:500; font-size:26px; letter-spacing:.4px; color:var(--ink); }
.brand-logo { max-height:40px; width:auto; }
.site-nav { display:flex; gap:22px; flex-wrap:wrap; }
.nav-link { font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); transition:color .3s; }
.nav-link:hover { color:var(--gold); }

.season-toggle { display:inline-flex; border:1px solid var(--edge); border-radius:40px; overflow:hidden; }
.season-btn { border:none; background:transparent; cursor:pointer; padding:7px 16px;
    font-family:'EB Garamond', serif; font-size:13px; letter-spacing:.05em; color:var(--ink-soft); transition:.3s; }
.season-btn.is-on { background:var(--gold); color:var(--bg); }

/* ---- Hero ------------------------------------------------- */
.hero { background:var(--hero); transition:background .6s; padding-top:64px; text-align:center; }
.hero-inner { display:flex; flex-direction:column; align-items:center; }
.hero-title { font-weight:300; font-size:clamp(48px,8vw,76px); margin:16px 0 18px; }
.hero-title em { font-style:italic; color:var(--gold); }
.hero-sub { font-size:clamp(17px,2.4vw,21px); color:var(--ink-soft); max-width:480px; }
.hero-actions { margin-top:6px; }
.cta { display:inline-block; margin:26px 0 8px; padding:13px 30px; border-radius:40px;
    background:var(--cta-bg); color:var(--cta-ink); font-size:13px; letter-spacing:.12em; text-transform:uppercase; transition:.3s; }
.cta:hover { opacity:.88; }
.moonline { display:flex; align-items:center; justify-content:center; gap:11px; margin-top:20px;
    font-size:15px; font-style:italic; color:var(--ink-soft); }
.moon { width:15px; height:15px; border-radius:50%; background:var(--moon); position:relative; }
.moon::after { content:""; position:absolute; inset:-9px; border-radius:50%; background:var(--moon-glow); z-index:0; }

.meadow { display:block; width:100%; max-width:940px; margin:18px auto 0; }
.stem { stroke:var(--sage); stroke-width:1.3; fill:none; opacity:.85; }
.leaf { fill:var(--sage); opacity:.42; }
.pet { fill:var(--rose); opacity:.82; }
.ctr { fill:var(--gold); }
.sway { transform-box:fill-box; transform-origin:bottom center; animation:sway 7s ease-in-out infinite; }
.sway:nth-child(3) { animation-duration:9s; }
.sway:nth-child(5) { animation-duration:8s; animation-direction:alternate-reverse; }
@keyframes sway { 0%,100%{transform:rotate(-1.6deg);} 50%{transform:rotate(1.6deg);} }

/* ---- Beds ------------------------------------------------- */
.beds { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); border-bottom:1px solid var(--edge); }
.bed { display:flex; flex-direction:column; align-items:center; text-align:center;
    padding:30px 18px; border-right:1px solid var(--edge); transition:background .4s; }
.bed:last-child { border-right:none; }
.bed:hover { background:var(--hero); }
.glyph { margin-bottom:12px; }
.glyph circle { fill:var(--sage); opacity:.78; }
.glyph .gc { fill:var(--gold); opacity:1; }
.bed-name { font-family:'Cormorant Garamond', serif; font-weight:500; font-size:22px; color:var(--ink); margin-bottom:4px; }
.bed-desc { font-size:14px; font-style:italic; color:var(--ink-soft); }

/* ---- Feed / cards ---------------------------------------- */
.feed-section { padding:56px 0 64px; }
.section-heading { font-weight:400; font-style:italic; font-size:30px; text-align:center; margin-bottom:34px; color:var(--ink); }
.feed { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:30px; }
.card { background:var(--card-bg); border:1px solid var(--edge); border-radius:14px; overflow:hidden; transition:transform .3s, border-color .3s; }
.card:hover { transform:translateY(-4px); border-color:var(--gold); }
.card-image { aspect-ratio:3/2; overflow:hidden; }
.card-image img { width:100%; height:100%; object-fit:cover; }
.card-body { padding:22px 22px 26px; }
.card-tag { font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); }
.card-title { font-size:24px; font-weight:500; margin:8px 0 8px; line-height:1.16; }
.card-excerpt { font-size:15px; color:var(--ink-soft); line-height:1.55; }
.card-meta { display:block; margin-top:14px; font-size:13px; font-style:italic; color:var(--ink-soft); }

/* ---- Pagination ------------------------------------------ */
.pagination { display:flex; align-items:center; justify-content:center; gap:22px; margin-top:48px;
    font-size:13px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); }
.pagination a { color:var(--ink); border-bottom:1px solid var(--gold); padding-bottom:2px; }

/* ---- Article --------------------------------------------- */
.article { padding-top:56px; }
.article-header { text-align:center; }
.article-tag { font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); }
.article-title { font-weight:400; font-size:clamp(36px,6vw,58px); margin:14px 0 16px; }
.article-excerpt { font-size:21px; font-style:italic; color:var(--ink-soft); max-width:600px; margin:0 auto; }
.article-meta { margin-top:18px; font-size:14px; color:var(--ink-soft); display:flex; gap:8px; justify-content:center; flex-wrap:wrap; }
.article-meta .dot { opacity:.5; }
.article-image { margin:44px auto; max-width:1000px; }
.article-image img { width:100%; border-radius:14px; }
.article-image figcaption { text-align:center; font-size:13px; font-style:italic; color:var(--ink-soft); margin-top:10px; }

.article-content { font-size:19px; }
.article-content p { margin:0 0 24px; }
.article-content h2 { font-size:34px; font-weight:500; margin:46px 0 16px; }
.article-content h3 { font-size:26px; font-weight:500; margin:36px 0 12px; }
.article-content a { color:var(--ink); border-bottom:1px solid var(--gold); }
.article-content blockquote { margin:30px 0; padding:6px 0 6px 26px; border-left:3px solid var(--gold);
    font-style:italic; font-size:23px; color:var(--ink-soft); }
.article-content ul, .article-content ol { margin:0 0 24px 24px; }
.article-content li { margin-bottom:8px; }
.article-content img { border-radius:12px; margin:30px auto; }
.article-content hr { border:none; border-top:1px solid var(--edge); margin:44px 0; }
.article-content figcaption { text-align:center; font-size:13px; font-style:italic; color:var(--ink-soft); }
.article-content code { background:var(--field); padding:2px 6px; border-radius:5px; font-size:.85em; }
.article-content pre { background:var(--field); padding:18px; border-radius:10px; overflow:auto; margin:0 0 24px; }

/* Koenig editor wide / full-width cards */
.kg-width-wide { position:relative; max-width:1040px; }
.kg-width-full { position:relative; max-width:100vw; }
.article-content .kg-width-wide,
.article-content .kg-width-full { left:50%; transform:translateX(-50%); }
.kg-width-full img { border-radius:0; }

.article-footer { margin-top:48px; padding-top:30px; border-top:1px solid var(--edge); }
.article-tags { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:26px; }
.pill { font-size:12px; letter-spacing:.06em; padding:6px 14px; border:1px solid var(--edge); border-radius:30px; color:var(--ink-soft); }
.article-author { display:flex; align-items:center; gap:16px; }
.author-avatar { width:54px; height:54px; border-radius:50%; object-fit:cover; }
.author-avatar.large { width:84px; height:84px; margin:0 auto 16px; }
.author-name { font-family:'Cormorant Garamond', serif; font-size:22px; }
.author-bio { font-size:15px; color:var(--ink-soft); margin-top:2px; }

.read-more { padding:64px 0; border-top:1px solid var(--edge); margin-top:64px; }

/* ---- Archive / error ------------------------------------- */
.archive-header { text-align:center; padding:64px 0 8px; }
.archive-title { font-weight:400; font-size:clamp(38px,7vw,64px); margin:12px 0 10px; }
.archive-desc { font-size:18px; color:var(--ink-soft); max-width:560px; margin:0 auto; }
.error-page { text-align:center; padding:110px 0; }
.error-code { font-weight:300; font-size:96px; color:var(--gold); }
.error-message { font-size:20px; color:var(--ink-soft); margin:6px 0 28px; }

/* ---- Footer ---------------------------------------------- */
.site-footer { background:var(--hero); border-top:1px solid var(--edge); transition:background .6s; margin-top:auto; }
.footer-inner { padding:64px 28px 56px; text-align:center; }
.loom-title { font-weight:400; font-style:italic; font-size:32px; margin-bottom:6px; }
.loom-sub { font-size:16px; color:var(--ink-soft); margin-bottom:20px; }
.loom-form { display:inline-flex; gap:10px; flex-wrap:wrap; justify-content:center; }
.loom-input { background:var(--field); border:1px solid var(--edge); border-radius:40px; padding:12px 20px;
    font-family:'EB Garamond', serif; font-size:16px; color:var(--ink); width:250px; }
.loom-input::placeholder { color:var(--ink-soft); opacity:.7; }
.loom-input:focus { outline:2px solid var(--gold); outline-offset:1px; }
.loom-btn { border:none; border-radius:40px; background:var(--cta-bg); color:var(--cta-ink);
    padding:12px 28px; font-size:13px; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; }
.loom-message { width:100%; font-size:14px; color:var(--rose); margin-top:8px; }
.loom-success { display:none; font-size:15px; font-style:italic; color:var(--ink-soft); margin-top:12px; }
.loom-success.is-visible { display:block; }
.loom-note { font-size:15px; font-style:italic; color:var(--ink-soft); }

.footer-meta { margin-top:44px; }
.footer-nav { display:flex; gap:20px; justify-content:center; flex-wrap:wrap; margin-bottom:14px; }
.footer-nav a { font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); }
.footer-nav a:hover { color:var(--gold); }
.footer-tag { font-family:'Cormorant Garamond', serif; font-style:italic; font-size:18px; color:var(--ink-soft); }
.footer-copy { font-size:13px; color:var(--ink-soft); margin-top:8px; opacity:.8; }

/* ---- Reveal ---------------------------------------------- */
.hero-inner > * { opacity:0; transform:translateY(14px); animation:rise .9s ease forwards; }
.hero-inner > *:nth-child(1){animation-delay:.05s;}
.hero-inner > *:nth-child(2){animation-delay:.2s;}
.hero-inner > *:nth-child(3){animation-delay:.35s;}
.hero-inner > *:nth-child(4){animation-delay:.5s;}
@keyframes rise { to { opacity:1; transform:none; } }

/* ---- Responsive ------------------------------------------ */
@media (max-width:640px) {
    body { font-size:18px; }
    .header-inner { justify-content:center; }
    .bed { border-right:none; border-bottom:1px solid var(--edge); }
    .beds .bed:last-child { border-bottom:none; }
}
@media (prefers-reduced-motion:reduce) {
    .sway, .hero-inner > * { animation:none; opacity:1; transform:none; }
    body, .hero, .site-footer { transition:none; }
}
