/*
Theme Name: FWDHer
Theme URI: https://fwdher.com
Author: FWDHer
Description: Editorial theme for FWDHer — a private community for female founders. Includes a full-bleed splash front page, an Events page template and The Retreat feature page with an auto-animated space montage and gallery lightbox.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
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: fwdher
Tags: one-column, custom-menu, editor-style, full-width-template
*/

@font-face { font-family: "Blessed Signature"; src: url("fonts/blessed-signature.ttf") format("truetype"); font-display: swap; }
:root {
  --in-charge:#660019; --link-up:#B13D6F; --move-fwd:#DB95B3; --founder:#261409;
  --barter:#AA9955; --inspired:#F0F6DE; --cream:#FDF3EE;
}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;font-family:"Jost",system-ui,sans-serif;color:var(--founder);background:var(--cream);-webkit-font-smoothing:antialiased}
img,video{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,blockquote{font-family:"Playfair Display",Georgia,serif;font-weight:400;margin:0}
.script{font-family:"Blessed Signature","Playfair Display",cursive;color:var(--link-up)}
.eyebrow{font-size:.68rem;letter-spacing:.24em;text-transform:uppercase}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:16px 40px;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;text-decoration:none;transition:transform .3s ease,background .3s ease,color .3s ease}
.btn:hover{transform:scale(1.03)}
.btn-solid{background:var(--move-fwd);color:var(--in-charge)}
.btn-ghost{border:1px solid var(--move-fwd);color:var(--move-fwd)}
.btn-dark{background:var(--in-charge);color:var(--cream)}
.btn-outline-dark{border:1px solid var(--in-charge);color:var(--in-charge)}

/* ---- splash ---- */
.splash{height:100dvh;overflow:hidden;background:var(--in-charge);color:var(--cream);display:flex;align-items:center;justify-content:center;text-align:center;padding:24px}
@media (max-height:620px){.splash{height:auto;min-height:100dvh;overflow:auto;padding:48px 24px}}
.splash-inner{width:100%;max-width:1000px}
.logo-stage{position:relative;width:min(88vw,900px);margin:0 auto}
.logo-stage .sizer{opacity:0}
.logo-stage img.half{position:absolute;inset:0;width:100%}
.half-fwd{clip-path:inset(0 50% 0 0);transform:translateX(-60vw);opacity:0;animation:flyL 1.2s cubic-bezier(.16,1,.3,1) .2s forwards}
.half-her{clip-path:inset(0 0 0 50%);transform:translateX(60vw);opacity:0;animation:flyR 1.2s cubic-bezier(.16,1,.3,1) 1.5s forwards}
@keyframes flyL{to{transform:translateX(0);opacity:1}}
@keyframes flyR{to{transform:translateX(0);opacity:1}}
.rise{opacity:0;transform:translateY(12px);animation:rise .9s ease forwards}
@keyframes rise{to{opacity:1;transform:translateY(0)}}
.tagline{font-family:"Playfair Display",serif;font-style:italic;color:var(--move-fwd);font-size:clamp(1.3rem,2.6vw,2rem);margin:28px auto 0}
.subline{color:rgba(253,243,238,.85);margin:14px auto 0;max-width:34rem;font-size:.98rem}
.splash-cta{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:30px}
.ig{margin-top:34px}
.ig-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;max-width:520px;margin:0 auto}
.ig-grid a{aspect-ratio:1;overflow:hidden;border-radius:4px;background:rgba(253,243,238,.08)}
.ig-grid img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.ig-grid a:hover img{transform:scale(1.06)}
.ig-handle{display:inline-flex;align-items:center;gap:8px;margin-top:14px;color:var(--move-fwd);text-decoration:none;font-size:.7rem;letter-spacing:.22em;text-transform:uppercase}

/* ---- shared page chrome ---- */
.nav{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px 24px;background:rgba(38,20,9,.92);backdrop-filter:blur(8px)}
.nav-logo img{height:26px;width:auto}
.nav nav{display:flex;align-items:center;gap:22px}
.nav nav a{color:rgba(253,243,238,.85);text-decoration:none;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase}
.nav nav a:hover{color:var(--move-fwd)}
.nav .nav-cta{border:1px solid var(--move-fwd);color:var(--move-fwd);border-radius:999px;padding:9px 18px}
.foot{background:var(--founder);color:var(--cream);text-align:center;padding:56px 24px}
.foot img{height:28px;width:auto;margin:0 auto}
.foot p{color:rgba(253,243,238,.7);margin:16px 0 20px}
.foot nav{display:flex;flex-wrap:wrap;gap:22px;justify-content:center}
.foot nav a{color:rgba(253,243,238,.8);text-decoration:none;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase}
.foot small{display:block;margin-top:26px;color:rgba(253,243,238,.45)}

.page-head{max-width:820px;margin:0 auto;text-align:center;padding:96px 24px 64px}
.page-head h1{font-size:clamp(2.6rem,5vw,3.6rem);line-height:1.1;margin-top:14px}
.page-head p{color:rgba(38,20,9,.78);font-size:1.05rem;margin-top:22px}
.section{padding:96px 0}
.section.dark{background:var(--in-charge);color:var(--cream)}
.section.deep{background:var(--founder);color:var(--cream)}
.section.sage{background:var(--inspired)}
.center{text-align:center}
h2.big{font-size:clamp(2.1rem,4vw,3rem);margin-top:12px}
.lead{color:rgba(38,20,9,.75);max-width:38rem;margin:18px auto 0}
.dark .lead,.deep .lead{color:rgba(253,243,238,.78)}

.series{display:grid;gap:56px;margin-top:56px}
.series article{display:grid;gap:40px;align-items:center}
@media(min-width:820px){.series article{grid-template-columns:1fr 1fr}.series article:nth-child(even) figure{order:2}}
.series figure{margin:0;aspect-ratio:4/3;overflow:hidden;border-radius:8px;background:rgba(38,20,9,.08)}
.series figure img{width:100%;height:100%;object-fit:cover}
.series h3{font-size:clamp(1.7rem,3vw,2.2rem);margin-top:10px}
.series p{color:rgba(38,20,9,.75);max-width:30rem;margin-top:16px}
.series .when{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;margin-top:20px}
.series .btn{margin-top:26px;padding:14px 34px}
.teaser{display:grid;gap:48px;align-items:center}
@media(min-width:820px){.teaser{grid-template-columns:1fr 1fr}}
.teaser figure{margin:0;aspect-ratio:4/3;overflow:hidden;border-radius:8px}
.teaser figure img{width:100%;height:100%;object-fit:cover}
.recaps{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:56px}
.recaps figure{margin:0}
.recaps .ph{aspect-ratio:4/5;overflow:hidden;background:rgba(38,20,9,.08)}
.recaps img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.recaps figure:hover img{transform:scale(1.05)}
.recaps figcaption{margin-top:14px}
.recaps .t{font-family:"Playfair Display",serif;font-size:1.25rem}
.recaps .m{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(38,20,9,.6);margin-top:5px}

/* ---- retreat ---- */
.retreat-hero{background:var(--in-charge);color:var(--cream);text-align:center;padding:120px 24px}
.retreat-hero h1{font-size:clamp(3rem,7vw,4.6rem);line-height:1.05;margin-top:18px}
.retreat-hero .quote{font-family:"Playfair Display",serif;font-style:italic;color:var(--move-fwd);font-size:clamp(1.4rem,3vw,2rem);max-width:40rem;margin:32px auto 0;line-height:1.5}
.three{display:grid;gap:40px;margin-top:56px}
@media(min-width:820px){.three{grid-template-columns:repeat(3,1fr)}}
.three h3{font-size:1.5rem}
.three p{color:rgba(38,20,9,.75);margin-top:16px}
.pull{max-width:48rem;margin:56px auto 0;text-align:center;font-family:"Playfair Display",serif;font-style:italic;font-size:clamp(1.2rem,2.3vw,1.6rem);line-height:1.6;color:rgba(38,20,9,.85)}
.montage{display:grid;gap:20px;margin-top:26px}
@media(min-width:820px){.montage{grid-template-columns:1.6fr 1fr}}
.montage .col{display:grid;gap:20px}
.mframe{position:relative;overflow:hidden;border-radius:8px;background:rgba(38,20,9,.35);border:0;padding:0;cursor:pointer;aspect-ratio:4/3;width:100%}
@media(min-width:820px){.montage .col .mframe{aspect-ratio:auto;height:100%}}
.mframe img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.1s ease}
.mframe img.on{opacity:1;animation:kb 5.4s linear forwards}
@keyframes kb{from{transform:scale(1.14)}to{transform:scale(1)}}
.mcap{position:absolute;left:0;right:0;bottom:0;padding:16px 20px;text-align:left;font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--cream);background:linear-gradient(to top,rgba(38,20,9,.75),transparent);opacity:0;transition:opacity .3s ease}
.mframe:hover .mcap{opacity:1}
.reel{border-radius:8px;overflow:hidden;margin-top:56px}
.incl{list-style:none;padding:0;margin:48px 0 0;display:grid;gap:1px;background:rgba(38,20,9,.15);border:1px solid rgba(38,20,9,.15);border-radius:8px;overflow:hidden}
@media(min-width:640px){.incl{grid-template-columns:1fr 1fr}}
.incl li{background:var(--cream);padding:26px 30px;color:rgba(38,20,9,.85)}
.rooms{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));margin-top:56px}
.room{display:flex;flex-direction:column;justify-content:space-between;border:1px solid rgba(38,20,9,.25);border-radius:8px;padding:30px;background:rgba(253,243,238,.7);text-decoration:none;transition:border-color .3s ease}
.room:hover{border-color:var(--in-charge)}
.room h3{font-size:1.4rem}
.room p{font-size:.9rem;color:rgba(38,20,9,.75);margin-top:14px}
.room span{margin-top:28px;font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--in-charge)}
.quote-block{max-width:52rem;margin:0 auto;text-align:center}
.quote-block blockquote{font-style:italic;font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.5;margin:0}
.scarcity{max-width:38rem;margin:64px auto 0;color:rgba(253,243,238,.85);font-size:1.05rem}

/* ---- lightbox ---- */
.lb{position:fixed;inset:0;z-index:100;display:none;flex-direction:column;background:rgba(38,20,9,.96);backdrop-filter:blur(4px)}
.lb.open{display:flex}
.lb-bar{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;color:rgba(253,243,238,.75);font-size:.68rem;letter-spacing:.24em;text-transform:uppercase}
.lb-stage{position:relative;flex:1;display:flex;align-items:center;justify-content:center;padding:0 16px 40px}
.lb-stage img{max-height:100%;max-width:100%;object-fit:contain;border-radius:8px}
.lb button{background:rgba(38,20,9,.4);border:1px solid rgba(253,243,238,.25);color:var(--cream);border-radius:999px;padding:12px 16px;cursor:pointer;font-size:1rem;line-height:1}
.lb-prev{position:absolute;left:12px}
.lb-next{position:absolute;right:12px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.half-fwd,.half-her,.rise{opacity:1!important;transform:none!important}.mframe img{opacity:1}}
