/*
Theme Name: Honey & Emma Reunion
Theme URI: https://example.com
Author: Reunion Committee
Description: Classic, neutral family reunion theme with a yearly-changing header, countdown, event calendar, event pages, newsletter and Facebook sections. Fully compatible with Themify Builder (use the "Full Width (Themify Builder)" page template).
Version: 1.10.0
Requires at least: 5.8
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: her
*/

:root{
  --navy:#1f2a37; --navy-2:#2e3b4b; --cream:#f7f4ee; --stone:#e6e1d6;
  --gold:#b08d57; --gold-dark:#8f6f3f; --ink:#2b2b2b; --muted:#6b6b6b; --white:#fff;
  --serif:Georgia,"Times New Roman",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --max:1140px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font:17px/1.65 var(--sans)}
img{max-width:100%;height:auto}
a{color:var(--gold-dark)}
a:hover{color:var(--navy)}
h1,h2,h3,h4{font-family:var(--serif);color:var(--navy);line-height:1.2;margin:0 0 .6em}
.container{max-width:var(--max);margin:0 auto;padding:0 20px}
.section{padding:64px 0}
.section--white{background:var(--white)}
.section--navy{background:var(--navy);color:#e9e5db}
.section--navy h2,.section--navy h3{color:#fff}
.section-title{text-align:center;font-size:2rem;margin-bottom:.4em}
.section-title:after{content:"";display:block;width:60px;height:2px;background:var(--gold);margin:14px auto 0}
.section-sub{text-align:center;color:var(--muted);max-width:620px;margin:0 auto 36px}
.section--navy .section-sub{color:#c9c4b8}

.btn,.wp-block-button__link,input[type=submit]{display:inline-block;background:var(--gold);color:#fff;border:0;padding:14px 30px;font:600 .95rem var(--sans);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;border-radius:2px;cursor:pointer;transition:background .2s}
.btn:hover,.wp-block-button__link:hover,input[type=submit]:hover{background:var(--gold-dark);color:#fff}
.btn--ghost{background:transparent;border:2px solid #fff}
.btn--ghost:hover{background:#fff;color:var(--navy)}

/* Header */
.site-header{background:var(--white);border-bottom:1px solid var(--stone);position:sticky;top:0;z-index:50}
.site-header .container{display:flex;align-items:center;justify-content:space-between;min-height:76px;gap:20px}
.site-title{font:700 1.35rem var(--serif);color:var(--navy);text-decoration:none}
.site-title small{display:block;font:600 .7rem var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-dark)}
.custom-logo{max-height:56px;width:auto}
.main-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:26px}
.main-nav a{color:var(--navy);text-decoration:none;font:600 .85rem var(--sans);letter-spacing:.08em;text-transform:uppercase;padding:8px 0;border-bottom:2px solid transparent}
.main-nav a:hover,.main-nav .current-menu-item>a,.main-nav .current_page_item>a{border-color:var(--gold)}
.nav-toggle{display:none;background:none;border:1px solid var(--stone);padding:8px 12px;font-size:1.3rem;color:var(--navy);cursor:pointer}

/* Hero */

/* Countdown */
.countdown{display:flex;justify-content:center;gap:18px;flex-wrap:wrap}
.countdown__box{background:rgba(255,255,255,.08);border:1px solid rgba(176,141,87,.6);min-width:110px;padding:20px 10px;text-align:center}
.countdown__num{display:block;font:700 2.6rem var(--serif);color:#fff;line-height:1}
.countdown__label{display:block;margin-top:8px;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.countdown__done{font:1.6rem var(--serif);text-align:center}

/* Grid */

/* Calendar */

/* Event list & cards */
.event-meta{color:var(--muted);font-size:.88rem;margin:0}
.event-detail-box{background:var(--white);border:1px solid var(--stone);padding:24px;margin-bottom:24px}
.event-detail-box dt{font:700 .75rem var(--sans);letter-spacing:.15em;text-transform:uppercase;color:var(--gold-dark);margin-top:12px}
.event-detail-box dd{margin:2px 0 0}

/* Newsletter / Facebook */

/* Content */
.page-hero{background:var(--navy);color:#fff;text-align:center;padding:56px 20px}
.page-hero h1{color:#fff;margin:0;font-size:2.4rem}
.entry{max-width:820px;margin:0 auto;padding:48px 20px}
.entry-wide{max-width:var(--max)}
.entry img{border-radius:2px}
.wp-block-gallery,.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.gallery-item{margin:0!important;width:auto!important}
.gallery img{width:100%;aspect-ratio:1/1;object-fit:cover;border:0!important}

/* Footer */
.site-footer{background:var(--navy);color:#c9c4b8;padding:48px 0 24px;text-align:center}
.site-footer a{color:var(--gold)}
.footer-nav ul{list-style:none;margin:0 0 18px;padding:0;display:flex;gap:22px;justify-content:center;flex-wrap:wrap}
.footer-brand{font:1.3rem var(--serif);color:#fff;margin-bottom:6px}
.copyright{font-size:.85rem;margin-top:18px;border-top:1px solid var(--navy-2);padding-top:18px}

.screen-reader-text{position:absolute;left:-9999px}
.alignwide{max-width:var(--max)}

@media(max-width:860px){
  .nav-toggle{display:block}
  .main-nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--white);border-bottom:1px solid var(--stone)}
  .main-nav.open{display:block}
  .main-nav ul{flex-direction:column;gap:0;padding:8px 20px}
  .main-nav a{display:block;padding:12px 0}
  .countdown__box{min-width:76px;padding:14px 6px}
  .countdown__num{font-size:1.8rem}
}

/* ===== v1.1 ===== */
.grid-2{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:start}
@media(max-width:860px){.grid-2{grid-template-columns:1fr}}

/* Header banner: the graphic carries the title, so only an RSVP button sits below it */
.hero{background:#f6efe5;text-align:center}
.hero__img{display:block;width:100%;max-width:1600px;height:auto;margin:0 auto}
.hero__cta{padding:6px 20px 40px}
.hero__cta .btn{padding:16px 44px;font-size:1rem}

/* Calendar */
.hcal{max-width:920px;margin:0 auto;background:var(--white);border-radius:6px;box-shadow:0 2px 18px rgba(31,42,55,.08);padding:28px 28px 20px}
.hcal__head{display:flex;align-items:center;justify-content:center;gap:28px;margin-bottom:18px}
.hcal__month{margin:0;font-size:1.7rem;min-width:220px;text-align:center}
.hcal__nav{width:40px;height:40px;border:1px solid var(--stone);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--navy);text-decoration:none}
.hcal__nav:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.hcal table{width:100%;border-collapse:collapse;table-layout:fixed}
.hcal th{font:600 .7rem var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-dark);padding:8px 0;border-bottom:1px solid var(--stone);text-align:center}
.hcal td{height:84px;vertical-align:top;padding:6px 4px;border-bottom:1px solid #f0ebe0;text-align:center}
.hcal .d{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;border-radius:50%;font-size:.85rem;color:var(--ink)}
.hcal td.today .d{border:1px solid var(--navy)}
.hcal td.has .d{background:var(--gold);color:#fff;font-weight:700}
.hcal td a.ev{display:block;margin-top:4px;font-size:.72rem;line-height:1.25;color:var(--navy);text-decoration:none;font-weight:600}
.hcal td a.ev:hover{color:var(--gold-dark)}

/* Upcoming events */
.sec-h{font-size:1.5rem;font-weight:400;margin-bottom:18px}
.upcoming{list-style:none;margin:0;padding:0;border-top:1px solid #c9c3b6}
.upcoming li{display:flex;gap:18px;align-items:center;padding:16px 0;border-bottom:1px solid #c9c3b6}
.udate{flex:0 0 56px;border:1px solid var(--gold);text-align:center;padding:5px 0;color:var(--ink)}
.udate span{display:block;font:.72rem var(--sans);letter-spacing:.12em}
.udate b{display:block;font:400 1.65rem/1.1 var(--serif)}
.upcoming h3{font:400 1.05rem var(--sans);margin:0}
.upcoming h3 a{color:var(--ink);text-decoration:none}
.upcoming h3 a:hover{color:var(--gold-dark)}
.upcoming p{margin:2px 0 0;color:var(--muted);font-size:.9rem}

/* Stay in the loop */
.loop{background:#2b2b2b;color:#b9b4a9;padding:46px 0;text-align:center}
.loop h2{color:#fff;font-weight:400;font-size:1.5rem;margin-bottom:4px}
.loop p{margin:0 0 20px}
.loop .loop__msg{color:var(--gold);margin-bottom:16px}
.loop form{display:flex;flex-direction:column;gap:10px;max-width:680px;margin:0 auto;position:relative}
.loop input[type=email],.loop input[type=text]{flex:1;padding:14px;border:0;border-radius:0;background:#f9f7f3;font-size:1rem}
.loop input[type=submit]{background:var(--gold);color:#2b2b2b;font-weight:400;letter-spacing:.14em;border-radius:0;padding:14px 32px}
.loop input[type=submit]:hover{background:#c6a56a;color:#2b2b2b}
@media(min-width:700px){.loop form{flex-direction:row}}

/* Facebook feed */
.fb-box{border:1px solid #cfc9bd;background:#fbf9f5;min-height:88px;display:flex;align-items:center;justify-content:center;color:#8a867d;padding:16px;text-align:center}
.fb-box iframe{max-width:100%}
.fb-join{margin-top:18px;text-align:center}

.credit,.copyright a{font-weight:600}

@media(max-width:860px){
  .hcal{padding:18px 10px 10px}
  .hcal td{height:52px}
  .hcal td a.ev{display:none}
  .hcal__month{font-size:1.3rem;min-width:150px}
  .hero__cta{padding-bottom:28px}
}
.yec-wrap{max-width:920px;margin:0 auto;background:var(--white);border-radius:6px;box-shadow:0 2px 18px rgba(31,42,55,.08);padding:28px}
@media(max-width:860px){.yec-wrap{padding:16px 10px}}

/* ===== v1.2: big calendar page ===== */
.cal-page{padding:32px 0 56px}
.cal-page__inner{max-width:none;margin:0 auto;padding:0 24px}
.cal-intro{padding-bottom:0}
.see-cal{margin-top:18px}
.see-cal a{font-weight:600;text-decoration:none}


/* ===== v1.3 ===== */
/* Bigger calendar page: nearly full screen width, tall day boxes, larger text */
.yec-wrap.yec-big{max-width:1800px;margin:0 auto;padding:36px 40px;font-size:1.08rem}
.yec-big table{width:100%!important;table-layout:fixed}
.yec-big th{font-size:1.05rem;padding:14px 6px}
.yec-big td{height:170px!important;min-height:170px;vertical-align:top;padding:10px 8px;font-size:1rem}
.yec-big td a,.yec-big td span,.yec-big td div{font-size:.95rem}
.yec-big h2,.yec-big h3{font-size:2rem}
.yec-big button,.yec-big .button,.yec-big input[type=search],.yec-big input[type=text]{font-size:1.05rem}
@media(max-width:1100px){.yec-big td{height:130px!important;min-height:130px}}
@media(max-width:860px){
  .cal-page__inner{padding:0 8px}
  .yec-wrap.yec-big{padding:14px 8px}
  .yec-big td{height:auto!important;min-height:70px;padding:4px}
  .yec-big h2,.yec-big h3{font-size:1.4rem}
}

/* Home: this month's family events */
.month-list{max-width:900px}
.home-content{max-width:none}

/* Facebook feed plugin */
.fb-box--live{display:block;background:transparent;border:0;min-height:0;padding:0}
.fb-wrap:not(.fb-wrap--cards) .fb-box--live{max-width:500px;margin:0 auto}
.fb-box--live iframe{display:block;margin:0 auto;max-width:100%}

/* ===== v1.4 ===== */
/* Newsletter Sign Up button: shortcode, plus any "newsletter"/"subscribe" link in page content */
.nl-btn-wrap{text-align:center;margin:24px 0}
.home-content{padding:0 20px}
.home-content a[href*="newsletter" i]:not(.btn),.home-content a[href*="subscribe" i]:not(.btn),
.entry a[href*="newsletter" i]:not(.btn),.entry a[href*="subscribe" i]:not(.btn){display:table;margin-left:auto!important;margin-right:auto!important;background:var(--gold);color:#fff;padding:14px 32px;font:600 .95rem var(--sans);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;border-radius:2px;margin:20px 0}
.home-content a[href*="newsletter" i]:hover,.home-content a[href*="subscribe" i]:hover{background:var(--gold-dark);color:#fff}
/* Facebook grid: full container width */
.fb-wrap--cards .fb-box--live{max-width:none}
.fb-wrap--cards iframe{width:100%!important}

/* ===== v1.5 ===== */
/* Centered newsletter buttons, wherever they are placed */
.nl-btn,.nl-btn-wrap{text-align:center}
.nl-btn{display:table;margin:24px auto}
.home-content p:has(> a[href*="newsletter" i]),.home-content p:has(> a[href*="subscribe" i]){text-align:center}

/* Calendar pages: everything in the page content fills the screen, including embedded calendars */
.her-calendar-page .entry,.her-calendar-page .cal-intro{max-width:1800px;width:100%;padding-left:24px;padding-right:24px}
.her-calendar-page .entry > *,.her-calendar-page .cal-intro > *{max-width:none}
.her-calendar-page iframe{display:block;width:100%!important;max-width:none!important;min-height:85vh;height:85vh!important;border:0;background:#fff;box-shadow:0 2px 18px rgba(31,42,55,.08)}
.her-calendar-page .themify_builder_content,.her-calendar-page .module,.her-calendar-page .row_inner,.her-calendar-page .tb_holder{max-width:none!important;width:100%!important}
.her-calendar-page .yec-wrap.yec-big{max-width:1800px}
@media(max-width:860px){
  .her-calendar-page .entry,.her-calendar-page .cal-intro{padding-left:6px;padding-right:6px}
  .her-calendar-page iframe{min-height:75vh;height:75vh!important}
}

/* ===== v1.5.2: edge-to-edge home photo ===== */
.home-content{padding:0!important;max-width:none}
.home-content img{display:block;width:100%!important;max-width:none;height:auto;margin:0;border-radius:0}
.home-content p:has(> img){margin:0}

/* ===== v1.6: alternate-header home pages (Home Layout template) ===== */
.hero--alt{background:#1f1530}
.hero--alt .hero__img{max-width:none}
.hero--alt .hero__cta{padding-top:28px}
.hero--alt .hero__cta .btn{background:#d9b56b;color:#1f1530}
.hero--alt .hero__cta .btn:hover{background:#c9a35a;color:#1f1530}

/* ===== v1.8.2: light neutral color scheme for "Home Layout" pages (Home 2) ===== */
body.page-template-template-home{--ink:#2e2e33;--ivory:#faf9f6;--sand:#f2f0ec;--stone:#e7e4de;--gold:#c9a45c;--gold-dark:#a07c3a;--cream:#ffffff;background:var(--ivory)}
body.page-template-template-home .site-header{background:#fff;border-bottom:1px solid #e7e4de}
body.page-template-template-home .site-title,body.page-template-template-home .main-nav a{color:var(--ink)}
body.page-template-template-home .main-nav a:hover,body.page-template-template-home .main-nav .current-menu-item>a,body.page-template-template-home .main-nav .current_page_item>a{border-color:var(--gold);color:var(--gold-dark)}
/* band under the header image keeps the image's dark tone so it blends */
body.page-template-template-home .hero--alt .hero__cta .btn{background:var(--gold);color:#fff}
body.page-template-template-home .hero--alt .hero__cta .btn:hover{background:var(--gold-dark)}
/* Countdown */
body.page-template-template-home .section--navy{background:var(--sand);border-top:1px solid var(--stone);border-bottom:1px solid var(--stone)}
body.page-template-template-home .section--navy .section-title{color:var(--ink)}
body.page-template-template-home .section-title:after{background:var(--gold)}
body.page-template-template-home .section--navy .section-sub{color:#6d6c70}
body.page-template-template-home .countdown__box{background:#fff;border-color:var(--gold);box-shadow:0 2px 10px rgba(46,46,51,.06)}
body.page-template-template-home .countdown__num{color:var(--ink)}
body.page-template-template-home .countdown__label{color:var(--gold-dark)}
/* Group photo + newsletter button */
body.page-template-template-home .home-content{background:var(--ivory)}
body.page-template-template-home .home-content a[href*="newsletter" i]:not(.btn),body.page-template-template-home .home-content a[href*="subscribe" i]:not(.btn),body.page-template-template-home .nl-btn{background:var(--gold);color:#fff!important}
body.page-template-template-home .home-content a[href*="newsletter" i]:hover,body.page-template-template-home .home-content a[href*="subscribe" i]:hover{background:var(--gold-dark);color:#fff!important}
body.page-template-template-home .home-content p{margin:0;padding:6px 0 10px}
/* This month's family events */
body.page-template-template-home #this-month{background:var(--sand)}
body.page-template-template-home #this-month .month-list{background:var(--cream);border-radius:6px;padding:28px;box-shadow:0 4px 20px rgba(46,46,51,.07)}
body.page-template-template-home #this-month h2,body.page-template-template-home #this-month h3{color:var(--ink)}
/* Footer */
body.page-template-template-home .site-footer{background:#2f3034;color:#d9d8d4}
body.page-template-template-home .footer-brand{color:#fff}
body.page-template-template-home .site-footer a{color:#dcbf80}
body.page-template-template-home .copyright{border-top-color:rgba(255,255,255,.15)}

/* ===== v1.8: family event submission form ===== */
.fe-form{max-width:820px;margin:48px auto 0;background:var(--white);border:1px solid var(--stone);border-radius:6px;padding:36px 36px 30px;box-shadow:0 2px 18px rgba(31,42,55,.06)}
.fe-form h2{text-align:center;font-size:1.8rem;margin-bottom:.3em}
.fe-sub{text-align:center;color:var(--muted);margin:0 0 24px}
.fe-msg{padding:12px 16px;border-radius:4px;margin:0 0 20px;text-align:center}
.fe-msg--ok{background:#eef6ea;color:#2f5d23}.fe-msg--err{background:#fbeceb;color:#8a2a22}
.fe-hp{position:absolute!important;left:-9999px!important}
.fe-types{border:0;padding:0;margin:0 0 20px;display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.fe-types legend{width:100%;text-align:center;font-weight:600;color:var(--navy);margin-bottom:10px}
.fe-types label{border:1px solid var(--stone);border-radius:30px;padding:9px 20px;cursor:pointer;background:var(--cream)}
.fe-types label:has(input:checked){border-color:var(--gold);background:#fbf3e3;font-weight:600}
.fe-types input{accent-color:var(--gold-dark)}
.fe-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
.fe-grid label{display:flex;flex-direction:column;gap:6px;font-size:.92rem;color:var(--navy);font-weight:600}
.fe-grid .fe-full{grid-column:1/-1}
.fe-grid input,.fe-grid select{font:inherit;font-weight:400;padding:12px;border:1px solid var(--stone);border-radius:4px;background:#fff}
.fe-grid input:focus,.fe-grid select:focus{outline:2px solid var(--gold);border-color:var(--gold)}
.fe-note{font-size:.85rem;color:var(--muted);margin:16px 0}
.fe-form .btn{display:block;width:100%;margin-top:6px}
@media(max-width:640px){.fe-form{padding:24px 16px}.fe-grid{grid-template-columns:1fr}}

.her-calendar-page .fe-form{max-width:820px!important;margin-left:auto;margin-right:auto}

/* ===== v1.8.2: Home RSVP button sits inside the header, under the date line ===== */
.hero{position:relative}
.hero:not(.hero--alt) .hero__cta{position:absolute;left:50%;top:51.8%;transform:translate(-50%,-50%);padding:0;margin:0}
.hero:not(.hero--alt) .hero__cta .btn{padding:13px 38px;font-size:.92rem;box-shadow:0 4px 14px rgba(143,111,63,.25)}
@media(max-width:900px){
  .hero:not(.hero--alt) .hero__cta{position:static;transform:none;padding:14px 20px 28px}
}

/* ===== v1.10: family photo gallery ===== */
.home-gallery{background:var(--white)}
.gal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.gal-item{display:block;aspect-ratio:1/1;overflow:hidden;border-radius:4px;background:var(--stone)}
.gal-item img{width:100%;height:100%;object-fit:cover;object-position:center 25%;transition:transform .35s ease}
.gal-item:hover img{transform:scale(1.04)}
.gal-more{text-align:center;margin-top:28px}
@media(max-width:860px){.gal-grid{grid-template-columns:repeat(2,1fr);gap:8px}}
body.page-template-template-home .home-gallery{background:#fff}
body.page-template-template-home .home-gallery .section-title{color:#2e2e33}
body.page-template-template-home .gal-more .btn{background:#c9a45c;color:#fff}
.her-lb{position:fixed;inset:0;z-index:9999;background:rgba(20,18,16,.92);display:flex;align-items:center;justify-content:center;padding:40px}
.her-lb[hidden]{display:none}
.her-lb img{max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 10px 40px rgba(0,0,0,.5)}
.her-lb button{position:absolute;background:none;border:0;color:#fff;font-size:2.6rem;line-height:1;cursor:pointer;padding:10px 16px;opacity:.85}
.her-lb button:hover{opacity:1}
.her-lb__x{top:12px;right:16px}.her-lb__p{left:8px;top:50%;transform:translateY(-50%)}.her-lb__n{right:8px;top:50%;transform:translateY(-50%)}

/* photo submissions + gallery page */
.btn--outline{background:transparent;border:2px solid var(--gold);color:var(--gold-dark)}
.btn--outline:hover{background:var(--gold);color:#fff}
.gal-more .btn{margin:6px}
.ph-ok{display:flex;gap:10px;align-items:flex-start;margin:18px 0 6px;font-size:.92rem;color:var(--navy)}
.ph-ok input{margin-top:4px;accent-color:var(--gold-dark)}
.ph-form input[type=file]{padding:10px;background:var(--cream)}
.entry .wp-block-gallery.has-nested-images{gap:12px}
.entry .wp-block-gallery figure.wp-block-image img{border-radius:4px;transition:transform .35s ease}
.entry .wp-block-gallery figure.wp-block-image:hover img{transform:scale(1.03)}
.entry .wp-block-gallery.has-nested-images{display:grid!important;grid-template-columns:repeat(4,1fr);gap:12px!important}
.entry .wp-block-gallery.has-nested-images figure.wp-block-image{width:auto!important;margin:0!important;aspect-ratio:1/1;overflow:hidden;border-radius:4px}
.entry .wp-block-gallery.has-nested-images figure.wp-block-image a,.entry .wp-block-gallery.has-nested-images figure.wp-block-image img{display:block;width:100%!important;height:100%!important;object-fit:cover;object-position:center 25%}
@media(max-width:860px){.entry .wp-block-gallery.has-nested-images{grid-template-columns:repeat(2,1fr);gap:8px!important}}
