/*
Theme Name: Wright Family Reunion 2027 - Layout Repair v4
Theme URI: https://wordpress.org/
Author: Wright Family Reunion Planning Committee
Description: A polished, responsive WordPress theme inspired by the Wright Family Reunion 2027 "We Are One" Save the Date artwork. Peach, navy, cream, Atlanta skyline and family-tree visual language.
Version: 4.0.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
Text Domain: wright-family-reunion
*/

:root{
  --navy:#2B3C55;
  --navy-deep:#102E50;
  --peach:#FAB794;
  --peach-deep:#F29A70;
  --cream:#FCFAF8;
  --cream-2:#FCF1E7;
  --mist:#F3F2F1;
  --line:#E9D7CC;
  --white:#FFFFFF;
  --shadow:0 18px 55px rgba(16,46,80,.13);
  --radius:22px;
  --serif:"Cormorant Garamond", Georgia, serif;
  --script:"Allura", "Brush Script MT", cursive;
  --sans:"Montserrat", Arial, sans-serif;
}
body.wfr27-site *{box-sizing:border-box}
html{scroll-behavior:smooth}
body.wfr27-site{margin:0;background:var(--cream);color:var(--navy);font-family:var(--sans);line-height:1.7}
body.wfr27-site img{max-width:100%;height:auto}
body.wfr27-site a{color:inherit;text-decoration:none}
body.wfr27-site p{margin:0 0 1.15rem}
body.wfr27-site h1, body.wfr27-site h2, body.wfr27-site h3, body.wfr27-site h4{font-family:var(--serif);line-height:1.08;margin:0 0 1rem;color:var(--navy-deep)}
body.wfr27-site h1{font-size:clamp(3rem,7vw,6.8rem)}
body.wfr27-site h2{font-size:clamp(2.3rem,4.4vw,4rem)}
body.wfr27-site h3{font-size:clamp(1.6rem,2.8vw,2.4rem)}
body.wfr27-site .container{width:min(1180px,calc(100% - 40px));margin:auto}
body.wfr27-site .site-header{position:relative;z-index:20;background:rgba(252,250,248,.96);backdrop-filter:blur(10px);border-bottom:1px solid rgba(43,60,85,.08)}
body.wfr27-site .header-inner{min-height:84px;display:flex;align-items:center;justify-content:space-between;gap:28px}
body.wfr27-site .brand{display:flex;align-items:center;gap:12px;font-family:var(--serif);font-weight:700;letter-spacing:.04em}
body.wfr27-site .brand img{width:58px;height:58px}
body.wfr27-site .brand-text{font-size:1.35rem;line-height:.9}
body.wfr27-site .brand-text span{display:block;font-family:var(--sans);font-size:.62rem;letter-spacing:.18em;margin-top:5px}
body.wfr27-site .main-nav ul{list-style:none;display:flex;gap:25px;align-items:center;margin:0;padding:0}
body.wfr27-site .main-nav a{font-size:.77rem;font-weight:700;letter-spacing:.05em}
body.wfr27-site .main-nav a:hover{color:var(--peach-deep)}
body.wfr27-site .menu-toggle{display:none;background:none;border:0;font-size:1.5rem;color:var(--navy)}
body.wfr27-site .btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:13px 24px;border-radius:999px;font-weight:700;font-size:.82rem;letter-spacing:.04em;border:1px solid transparent;transition:.2s}
body.wfr27-site .btn-primary{background:var(--peach);color:var(--navy-deep);box-shadow:0 9px 25px rgba(242,154,112,.25)}
body.wfr27-site .btn-primary:hover{transform:translateY(-2px);background:var(--peach-deep);color:#fff}
body.wfr27-site .btn-outline{border-color:var(--navy);color:var(--navy)}
body.wfr27-site .btn-outline:hover{background:var(--navy);color:#fff}
body.wfr27-site .hero{position:relative;min-height:660px;display:flex;align-items:flex-end;overflow:hidden;background:
linear-gradient(180deg,rgba(252,250,248,.04),rgba(16,46,80,.12)),
url("assets/images/save-the-date.jpg") center top/cover no-repeat}
body.wfr27-site .hero:after{content:"";position:absolute;inset:auto 0 0;height:180px;background:linear-gradient(transparent,var(--cream));pointer-events:none}
body.wfr27-site .hero-content{position:relative;z-index:2;width:100%;padding:0 0 90px;text-align:center}
body.wfr27-site .hero-kicker{font-family:var(--script);font-size:clamp(2.3rem,5vw,4.8rem);color:var(--navy);margin-bottom:-4px}
body.wfr27-site .hero h1{font-size:clamp(3.8rem,9vw,8rem);letter-spacing:.02em;margin-bottom:.1em}
body.wfr27-site .hero-sub{font-family:var(--serif);font-size:1.4rem;font-weight:700;letter-spacing:.18em}
body.wfr27-site .hero-meta{display:flex;justify-content:center;gap:28px;flex-wrap:wrap;margin-top:20px;font-weight:700}
body.wfr27-site .hero-meta span{padding:9px 15px;background:rgba(255,255,255,.78);border-radius:999px}
body.wfr27-site .waves{position:absolute;bottom:0;left:0;right:0;height:130px;z-index:3;pointer-events:none}
body.wfr27-site .waves:before, body.wfr27-site .waves:after{content:"";position:absolute;left:-5%;width:110%;height:110px;border-radius:50% 50% 0 0/100% 100% 0 0}
body.wfr27-site .waves:before{bottom:-70px;background:var(--navy)}
body.wfr27-site .waves:after{bottom:-52px;background:var(--cream)}
body.wfr27-site .countdown{background:var(--navy-deep);color:#fff;position:relative;z-index:5}
body.wfr27-site .countdown-inner{display:flex;align-items:center;justify-content:center;gap:30px;padding:24px 0}
body.wfr27-site .countdown-title{font-family:var(--script);font-size:2rem;color:var(--peach)}
body.wfr27-site .countdown-grid{display:flex;gap:12px}
body.wfr27-site .count-box{min-width:88px;text-align:center;border:1px solid rgba(255,255,255,.4);border-radius:10px;padding:10px}
body.wfr27-site .count-box strong{display:block;font-size:1.5rem;line-height:1}
body.wfr27-site .count-box span{font-size:.65rem;letter-spacing:.12em;text-transform:uppercase}
body.wfr27-site .section{padding:95px 0}
body.wfr27-site .section-soft{background:var(--cream-2)}
body.wfr27-site .section-dark{background:var(--navy-deep);color:#fff}
body.wfr27-site .section-dark h2, body.wfr27-site .section-dark h3{color:#fff}
body.wfr27-site .section-heading{text-align:center;max-width:780px;margin:0 auto 45px}
body.wfr27-site .eyebrow{text-transform:uppercase;color:var(--peach-deep);font-weight:800;letter-spacing:.16em;font-size:.74rem}
body.wfr27-site .script{font-family:var(--script);font-weight:400}
body.wfr27-site .divider{display:flex;align-items:center;gap:12px;justify-content:center;margin:18px 0 26px;color:var(--peach)}
body.wfr27-site .divider:before, body.wfr27-site .divider:after{content:"";width:48px;height:2px;background:var(--peach)}
body.wfr27-site .two-col{display:grid;grid-template-columns:1fr 1fr;gap:55px;align-items:center}
body.wfr27-site .card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
body.wfr27-site .card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px;box-shadow:var(--shadow)}
body.wfr27-site .icon-circle{width:66px;height:66px;border-radius:50%;display:grid;place-items:center;background:var(--cream-2);border:1px solid var(--line);margin-bottom:18px}
body.wfr27-site .icon-circle img{width:42px;height:42px}
body.wfr27-site .image-card{overflow:hidden;border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--line)}
body.wfr27-site .image-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
body.wfr27-site .quote{font-family:var(--script);font-size:2.3rem;line-height:1.2;color:var(--navy)}
body.wfr27-site .timeline{position:relative;max-width:900px;margin:auto}
body.wfr27-site .timeline:before{content:"";position:absolute;left:24px;top:0;bottom:0;width:2px;background:var(--peach)}
body.wfr27-site .timeline-item{position:relative;padding:0 0 34px 72px}
body.wfr27-site .timeline-dot{position:absolute;left:13px;top:3px;width:24px;height:24px;border-radius:50%;background:var(--peach);border:6px solid var(--cream)}
body.wfr27-site .timeline-item h3{margin-bottom:4px}
body.wfr27-site .sponsor-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
body.wfr27-site .sponsor{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;text-align:center}
body.wfr27-site .sponsor strong{display:block;font-family:var(--serif);font-size:1.35rem}
body.wfr27-site .page-hero{padding:110px 0 90px;text-align:center;background:
linear-gradient(135deg,rgba(252,241,231,.92),rgba(252,250,248,.98)),
url("assets/images/save-the-date.jpg") center/cover}
body.wfr27-site .page-content{padding:80px 0}
body.wfr27-site .entry-content{max-width:900px;margin:auto}
body.wfr27-site .entry-content img{border-radius:18px}
body.wfr27-site .site-footer{background:var(--navy-deep);color:#fff;padding:65px 0 25px;position:relative;overflow:hidden}
body.wfr27-site .footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:45px}
body.wfr27-site .site-footer h3{color:#fff}
body.wfr27-site .footer-brand{font-family:var(--serif);font-size:2rem}
body.wfr27-site .footer-bottom{margin-top:45px;padding-top:20px;border-top:1px solid rgba(255,255,255,.16);font-size:.75rem;display:flex;justify-content:space-between;gap:20px}
body.wfr27-site .leaf-decor{position:absolute;opacity:.35;pointer-events:none}
body.wfr27-site .leaf-left{left:-60px;bottom:-25px;width:280px;transform:rotate(12deg)}
body.wfr27-site .leaf-right{right:-60px;top:40px;width:250px;transform:scaleX(-1)}
body.wfr27-site .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
body.wfr27-site .field{display:flex;flex-direction:column;gap:7px}
body.wfr27-site .field-full{grid-column:1/-1}
body.wfr27-site .field label{font-weight:700;font-size:.82rem}
body.wfr27-site .field input, body.wfr27-site .field textarea, body.wfr27-site .field select{border:1px solid var(--line);border-radius:12px;padding:13px 14px;background:#fff;font:inherit;color:var(--navy)}
body.wfr27-site .field textarea{min-height:150px}
body.wfr27-site .notice{padding:18px 20px;border-radius:14px;background:var(--cream-2);border-left:4px solid var(--peach-deep)}
body.wfr27-site .wp-block-button__link{border-radius:999px}
@media (max-width:1000px){
 body.wfr27-site .main-nav ul{gap:15px}
 body.wfr27-site .card-grid{grid-template-columns:repeat(2,1fr)}
 body.wfr27-site .sponsor-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:780px){
 body.wfr27-site .header-inner{min-height:72px}
 body.wfr27-site .menu-toggle{display:block}
 body.wfr27-site .main-nav{display:none;position:absolute;left:0;right:0;top:72px;background:var(--cream);border-bottom:1px solid var(--line);padding:18px 20px}
 body.wfr27-site .main-nav.open{display:block}
 body.wfr27-site .main-nav ul{flex-direction:column;align-items:flex-start}
 body.wfr27-site .header-cta{display:none}
 body.wfr27-site .brand img{width:50px;height:50px}
 body.wfr27-site .hero{min-height:610px}
 body.wfr27-site .hero-content{padding-bottom:105px}
 body.wfr27-site .countdown-inner{flex-direction:column;gap:10px}
 body.wfr27-site .two-col{grid-template-columns:1fr;gap:35px}
 body.wfr27-site .card-grid{grid-template-columns:1fr}
 body.wfr27-site .sponsor-grid{grid-template-columns:1fr 1fr}
 body.wfr27-site .footer-grid{grid-template-columns:1fr}
 body.wfr27-site .footer-bottom{flex-direction:column}
 body.wfr27-site .form-grid{grid-template-columns:1fr}
 body.wfr27-site .field-full{grid-column:auto}
}
@media (max-width:480px){
 body.wfr27-site .container{width:min(100% - 28px,1180px)}
 body.wfr27-site .hero-meta{gap:8px}
 body.wfr27-site .hero-meta span{font-size:.78rem}
 body.wfr27-site .countdown-grid{width:100%;justify-content:center}
 body.wfr27-site .count-box{min-width:70px}
 body.wfr27-site .sponsor-grid{grid-template-columns:1fr}
}

/* Complete site extensions */
body.wfr27-site .sponsor-grid .sponsor p{font-size:.82rem;line-height:1.55;margin-top:14px;color:#536276}
body.wfr27-site .sponsor.featured{border:2px solid var(--peach);transform:translateY(-4px)}
body.wfr27-site .gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
body.wfr27-site .gallery-placeholder{min-height:250px;background:linear-gradient(145deg,var(--cream-2),#fff);border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;box-shadow:var(--shadow)}
body.wfr27-site .gallery-placeholder img{width:100px;height:100px;opacity:.8}body.wfr27-site .gallery-placeholder span{font-weight:700;letter-spacing:.06em}
body.wfr27-site .page-hero p{max-width:720px;margin:0 auto;font-size:1.08rem}
body.wfr27-site .card a{text-decoration:underline;text-decoration-color:var(--peach);text-underline-offset:3px}
@media(max-width:900px){body.wfr27-site .gallery-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){body.wfr27-site .gallery-grid{grid-template-columns:1fr}}

/* v1.2 Registration, hotel and logo integration */
body.wfr27-site .brand img{width:66px;height:66px;object-fit:contain;border-radius:50%}body.wfr27-site .registration-logo{width:min(260px,85%);display:block;margin:0 auto 25px;border-radius:50%}body.wfr27-site .pricing-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin:0 0 28px}body.wfr27-site .price-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:var(--shadow)}body.wfr27-site .price-card h3{font-size:1.35rem}body.wfr27-site .price-row{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-top:1px solid var(--line);font-size:.86rem}body.wfr27-site .deadline-bar{background:var(--navy-deep);color:#fff;padding:18px 22px;border-radius:16px;text-align:center;margin:28px 0 40px}body.wfr27-site .registration-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.7fr);gap:30px;align-items:start}body.wfr27-site .wright-registration-form{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow)}body.wfr27-site .registration-status{background:var(--cream-2);border-left:4px solid var(--peach-deep);padding:14px 16px;border-radius:10px;margin-bottom:22px}body.wfr27-site .attendee-row, body.wfr27-site .extra-shirt-row{display:grid;grid-template-columns:1.3fr 1fr 1fr 42px;gap:12px;align-items:end;padding:16px 0;border-bottom:1px solid var(--line)}body.wfr27-site .remove-attendee, body.wfr27-site .remove-extra-shirt{height:44px;border:0;border-radius:10px;background:#f5e8e2;color:var(--navy);font-size:1.4rem;cursor:pointer}body.wfr27-site .additional-shirts{margin:32px 0 22px;padding-top:20px;border-top:2px solid var(--line)}body.wfr27-site .registration-terms{margin:22px 0}body.wfr27-site .registration-terms label{font-weight:600}body.wfr27-site .form-note{font-size:.78rem;color:#687486;margin-top:12px}body.wfr27-site .hotel-address{font-size:1.14rem}body.wfr27-site .hotel-actions{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0}body.wfr27-site .hotel-rate{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-top:1px solid var(--line)}body.wfr27-site .hotel-rate strong{color:var(--peach-deep)}
@media(max-width:1100px){body.wfr27-site .pricing-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:800px){body.wfr27-site .pricing-grid{grid-template-columns:1fr 1fr}body.wfr27-site .registration-layout{grid-template-columns:1fr}body.wfr27-site .attendee-row, body.wfr27-site .extra-shirt-row{grid-template-columns:1fr 1fr}body.wfr27-site .remove-attendee, body.wfr27-site .remove-extra-shirt{grid-column:2;justify-self:end;width:42px}}
@media(max-width:520px){body.wfr27-site .pricing-grid{grid-template-columns:1fr}body.wfr27-site .attendee-row, body.wfr27-site .extra-shirt-row{grid-template-columns:1fr}body.wfr27-site .remove-attendee, body.wfr27-site .remove-extra-shirt{grid-column:1;justify-self:end}}


/* v1.4 live-site compatibility hardening */
body.wfr27-site { margin:0 !important; background:#FCFAF8 !important; color:#2B3C55 !important; overflow-x:hidden; }
body.wfr27-site *, body.wfr27-site *::before, body.wfr27-site *::after { box-sizing:border-box; }
body.wfr27-site .site-header { width:100%; position:relative; z-index:999; }
body.wfr27-site .header-inner,
body.wfr27-site .container { width:min(1180px, calc(100% - 40px)) !important; max-width:1180px !important; margin-left:auto !important; margin-right:auto !important; padding-left:0 !important; padding-right:0 !important; }
body.wfr27-site .main-nav ul { margin:0 !important; padding:0 !important; list-style:none !important; }
body.wfr27-site main { display:block; width:100%; overflow:hidden; }
body.wfr27-site .hero { width:100%; min-height:660px; position:relative; display:flex !important; align-items:flex-end !important; }
body.wfr27-site .hero-content { width:100% !important; position:relative; z-index:2; }
body.wfr27-site .countdown { display:block !important; width:100% !important; }
body.wfr27-site .countdown-inner { display:flex !important; flex-direction:row; align-items:center !important; justify-content:center !important; flex-wrap:wrap; }
body.wfr27-site .countdown-grid { display:flex !important; flex-direction:row !important; gap:12px !important; flex-wrap:nowrap; }
body.wfr27-site .count-box { display:block !important; min-width:88px !important; }
body.wfr27-site .two-col { display:grid !important; grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important; }
body.wfr27-site .card-grid { display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)) !important; }
body.wfr27-site .sponsor-grid { display:grid !important; grid-template-columns:repeat(5,minmax(0,1fr)) !important; }
body.wfr27-site img { max-width:100% !important; height:auto; }
body.wfr27-site .brand img { width:66px !important; height:66px !important; object-fit:contain !important; }
@media (max-width:1000px) {
  body.wfr27-site .card-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  body.wfr27-site .sponsor-grid { grid-template-columns:repeat(3,minmax(0,1fr)) !important; }
}
@media (max-width:780px) {
  body.wfr27-site .two-col { grid-template-columns:1fr !important; }
  body.wfr27-site .card-grid { grid-template-columns:1fr !important; }
  body.wfr27-site .sponsor-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  body.wfr27-site .countdown-inner { flex-direction:column !important; }
}
@media (max-width:480px) {
  body.wfr27-site .container, body.wfr27-site .header-inner { width:calc(100% - 28px) !important; }
  body.wfr27-site .sponsor-grid { grid-template-columns:1fr !important; }
  body.wfr27-site .count-box { min-width:68px !important; }
}
