/*
Theme Name: Wildflower Wedding
Theme URI: https://example.com/wildflower-wedding
Author: Built for Leandro
Author URI: https://example.com
Description: An elegant one-page wedding theme in blush, greenery and gold. Includes a hero with countdown, day-of schedule, directions with an embedded map, a QR-code RSVP panel that points guests to your Facebook page, and a registry grid. Every section is a block pattern you edit on a normal WordPress page.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: wildflower-wedding
Tags: one-column, custom-colors, custom-menu, editor-style, block-patterns, wedding, full-width-template
*/

/* ==========================================================================
   1. Tokens
   ========================================================================== */
:root{
  --blush:#e8a3ad;
  --blush-soft:#f3ccd2;
  --blush-deep:#d6717f;
  --greenery:#4f9143;
  --greenery-deep:#1e3a18;
  --greenery-pale:#8fc178;
  --cream:#fbf7f0;
  --gold:#b8813f;
  --ink:#2b2820;
  --ink-soft:#5a5548;
  --white:#ffffff;
  --shadow:0 20px 50px -20px rgba(30,58,24,0.4);
  --wf-container:1120px;
}

/* ==========================================================================
   2. Base
   ========================================================================== */
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'Jost',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-weight:300;
  line-height:1.7;
  overflow-x:hidden;
}
h1,h2,h3,h4,.wf-serif{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-weight:500;
  color:var(--greenery-deep);
  line-height:1.2;
}
a{color:var(--greenery-deep);}
img{max-width:100%; height:auto; display:block;}
figure{margin:0;}
.wf-container,
.wf-page .entry-content > .wf-container{max-width:var(--wf-container); margin:0 auto; padding:0 28px;}

.screen-reader-text{
  border:0; clip:rect(1px,1px,1px,1px); clip-path:inset(50%); height:1px; margin:-1px;
  overflow:hidden; padding:0; position:absolute !important; width:1px; word-wrap:normal !important;
}
.skip-link:focus{
  background:var(--white); color:var(--greenery-deep); display:block; left:6px; top:6px;
  padding:12px 20px; position:absolute; z-index:1000; clip:auto; clip-path:none; width:auto; height:auto;
}

/* WordPress core alignment + media classes */
.alignleft{float:left; margin:0 1.5em 1em 0;}
.alignright{float:right; margin:0 0 1em 1.5em;}
.aligncenter{margin-left:auto; margin-right:auto;}
.alignwide{max-width:1320px; margin-left:auto; margin-right:auto;}
.alignfull{max-width:100%; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); width:100vw;}
.wp-caption-text,.wp-element-caption{font-size:0.82rem; color:var(--ink-soft); text-align:center; padding-top:8px;}
.sticky,.gallery-caption,.bypostauthor{display:block;}

/* ==========================================================================
   3. Shared bits
   ========================================================================== */
.wf-eyebrow,
.wf-eyebrow p{
  font-family:'Jost',sans-serif;
  text-transform:uppercase;
  letter-spacing:0.35em;
  font-size:0.7rem;
  color:var(--gold);
  font-weight:500;
  margin:0;
}
.wf-section{padding:120px 0; position:relative;}
.wf-section-head{text-align:center; max-width:620px; margin:0 auto 64px;}
.wf-section-head h2{font-size:clamp(2.1rem,4vw,2.9rem); margin:14px 0 0;}
.wf-section-head p{color:var(--ink-soft); margin-top:14px;}
.wf-divider{display:flex; align-items:center; justify-content:center; gap:14px; margin:16px auto 0; width:120px;}
.wf-divider span{flex:1; height:1px; background:var(--blush-deep);}
.wf-divider svg{width:16px; height:16px; flex-shrink:0;}
.wf-reveal{opacity:0; transform:translateY(28px); transition:opacity 0.8s ease, transform 0.8s ease;}
.wf-reveal.is-visible{opacity:1; transform:translateY(0);}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .wf-reveal{opacity:1; transform:none; transition:none;}
}

.wf-btn,
.wf-btn:visited,
.entry-content .wf-btn-wrap .wp-block-button__link{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  background:var(--greenery-deep); color:var(--white); text-decoration:none;
  padding:15px 30px; border-radius:4px; font-size:0.78rem; letter-spacing:0.15em; text-transform:uppercase;
  font-family:'Jost',sans-serif; width:fit-content; border:none; cursor:pointer;
  transition:background 0.3s ease, transform 0.3s ease;
}
.wf-btn:hover,
.entry-content .wf-btn-wrap .wp-block-button__link:hover{background:var(--gold); color:var(--white); transform:translateY(-2px);}

/* ==========================================================================
   4. Header / navigation
   ========================================================================== */
.wf-nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 40px;
  background:rgba(253,248,243,0);
  transition:background 0.4s ease, box-shadow 0.4s ease, padding 0.4s ease;
}
.wf-nav.is-scrolled{
  background:rgba(253,248,243,0.92);
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
  box-shadow:0 2px 20px rgba(61,82,51,0.08);
  padding:12px 40px;
}
.admin-bar .wf-nav{top:32px;}
@media screen and (max-width:782px){ .admin-bar .wf-nav{top:46px;} }

.wf-monogram{
  font-family:'Cormorant Garamond',Georgia,serif; font-size:1.3rem; letter-spacing:0.08em;
  color:var(--greenery-deep); text-decoration:none;
}
.wf-nav-menu ul{display:flex; gap:34px; list-style:none; margin:0; padding:0;}
.wf-nav-menu li{position:relative;}
.wf-nav-menu a{
  font-size:0.72rem; text-transform:uppercase; letter-spacing:0.15em;
  text-decoration:none; color:var(--ink); position:relative; padding-bottom:4px; display:inline-block;
}
.wf-nav-menu a::after{
  content:''; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--gold);
  transition:width 0.3s ease;
}
.wf-nav-menu a:hover::after,
.wf-nav-menu .current-menu-item > a::after{width:100%;}
.wf-nav-menu .sub-menu{
  display:none; position:absolute; left:0; top:100%; background:var(--white); padding:14px 18px;
  box-shadow:var(--shadow); border-radius:4px; flex-direction:column; gap:12px; min-width:190px;
}
.wf-nav-menu li:hover > .sub-menu,
.wf-nav-menu li:focus-within > .sub-menu{display:flex;}

.wf-nav-toggle{
  display:none; background:none; border:0; cursor:pointer; padding:8px; color:var(--greenery-deep);
}
.wf-nav-toggle span{display:block; width:24px; height:1.5px; background:currentColor; margin:5px 0; transition:transform 0.3s ease, opacity 0.3s ease;}
.wf-nav.is-open .wf-nav-toggle span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.wf-nav.is-open .wf-nav-toggle span:nth-child(2){opacity:0;}
.wf-nav.is-open .wf-nav-toggle span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

/* ==========================================================================
   5. Hero
   ========================================================================== */
.wf-hero{
  position:relative;
  min-height:100vh;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center;
  background:
    radial-gradient(ellipse at top left, var(--blush-soft) 0%, transparent 45%),
    radial-gradient(ellipse at bottom right, var(--greenery-pale) 0%, transparent 78%),
    radial-gradient(ellipse at top right, var(--greenery-pale) 0%, transparent 60%),
    var(--cream);
  padding:120px 24px 160px;
  overflow:hidden;
  background-size:cover;
}
.wf-hero.has-photo{background-blend-mode:multiply;}
.wf-hero.has-photo::before{
  content:''; position:absolute; inset:0; background:rgba(251,247,240,0.72);
}
.wf-hero > *{position:relative; z-index:2;}
.wf-hero::after,
.wf-hero .wf-vine{
  content:''; position:absolute; width:280px; height:280px; pointer-events:none; opacity:0.9; z-index:1;
  background-repeat:no-repeat; background-size:contain;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200' fill='none'%3E%3Cpath d='M10 190 C 40 140, 20 100, 60 70 C 90 48, 70 20, 100 5' stroke='%234f9143' stroke-width='2.4' opacity='0.85'/%3E%3Ccircle cx='60' cy='70' r='7' fill='%234f9143' opacity='0.6'/%3E%3Ccircle cx='100' cy='5' r='5' fill='%23b8813f' opacity='0.6'/%3E%3Cellipse cx='40' cy='120' rx='11' ry='6' fill='%234f9143' opacity='0.55' transform='rotate(30 40 120)'/%3E%3Cellipse cx='78' cy='55' rx='10' ry='6' fill='%234f9143' opacity='0.55' transform='rotate(-20 78 55)'/%3E%3C/svg%3E");
}
.wf-hero .wf-vine{top:-30px; left:-40px; transform:rotate(8deg);}
.wf-hero::after{bottom:-30px; right:-40px; transform:rotate(188deg);}
.wf-hero h1{
  font-size:clamp(3.2rem,8vw,6.4rem);
  line-height:1;
  margin:0;
  font-style:italic;
  font-weight:500;
  letter-spacing:0.01em;
}
.wf-hero .wf-eyebrow{margin-bottom:22px;}
.wf-hero .wf-amp{color:var(--gold); font-style:normal; padding:0 14px;}
.wf-hero-sub{margin-top:22px; font-size:1.05rem; letter-spacing:0.08em; color:var(--ink-soft);}
.wf-hero-sub b,.wf-hero-sub strong{color:var(--greenery-deep); font-weight:500;}
.wf-scroll-cue{
  position:absolute; bottom:38px; left:50%; transform:translateX(-50%); z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:8px;
  color:var(--ink-soft); font-size:0.65rem; letter-spacing:0.25em; text-transform:uppercase; text-decoration:none;
}
.wf-scroll-line{width:1px; height:38px; background:linear-gradient(var(--gold),transparent); animation:wfScrollPulse 2s ease-in-out infinite;}
@keyframes wfScrollPulse{0%,100%{opacity:0.3;} 50%{opacity:1;}}

/* ==========================================================================
   6. Countdown
   ========================================================================== */
.wf-countdown-wrap{display:flex; justify-content:center; margin-top:-96px; padding:0 20px; position:relative; z-index:5;}
.wf-countdown-card{
  background:var(--white);
  border-radius:6px;
  box-shadow:var(--shadow);
  padding:38px 48px;
  display:flex; flex-direction:column; align-items:center; gap:20px;
  border:1px solid var(--blush);
  max-width:720px; width:100%;
}
.wf-countdown-title{display:flex; align-items:center; gap:14px; font-size:0.72rem; letter-spacing:0.25em; text-transform:uppercase; color:var(--greenery-deep); text-align:center;}
.wf-countdown-title svg{width:16px; height:16px; flex-shrink:0;}
.wf-countdown-grid{display:flex; gap:14px; flex-wrap:wrap; justify-content:center;}
.wf-count-unit{background:var(--cream); border:1px solid var(--blush); border-radius:6px; width:88px; padding:16px 0; text-align:center;}
.wf-count-unit .wf-num{font-family:'Cormorant Garamond',Georgia,serif; font-size:2.4rem; font-weight:600; color:var(--greenery-deep); line-height:1;}
.wf-count-unit .wf-lab{margin-top:6px; font-size:0.62rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--ink-soft);}
.wf-countdown-done{font-family:'Cormorant Garamond',Georgia,serif; font-style:italic; font-size:1.5rem; color:var(--greenery-deep);}

/* ==========================================================================
   7. Story / feature photo
   ========================================================================== */
.wf-photo-full,
.wf-photo-full img{
  width:100%;
  border-radius:8px;
  overflow:hidden;
}
.wf-photo-full{
  aspect-ratio:21/9;
  background:linear-gradient(145deg,var(--greenery-pale) 0%,var(--blush) 100%);
  display:flex; align-items:center; justify-content:center;
  position:relative; box-shadow:var(--shadow);
}
.wf-photo-full img{height:100%; object-fit:cover; aspect-ratio:21/9;}
.wf-photo-full span{font-family:'Cormorant Garamond',Georgia,serif; font-style:italic; color:var(--greenery-deep); opacity:0.6; font-size:1.3rem;}
.wf-story-text{max-width:680px; margin:44px auto 0; text-align:center; color:var(--ink-soft);}

/* ==========================================================================
   8. Details / schedule
   ========================================================================== */
.wf-details{background:var(--greenery-deep); color:var(--blush-soft);}
.wf-details .wf-section-head h2,
.wf-details h2{color:var(--white);}
.wf-details .wf-eyebrow{color:var(--gold);}
.wf-schedule{
  display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin:0;
  border-top:1px solid rgba(255,255,255,0.15); border-bottom:1px solid rgba(255,255,255,0.15);
}
.wf-schedule.wp-block-columns{flex-wrap:nowrap;}
.wf-sched-item,
.wf-schedule > .wp-block-column{
  padding:44px 32px; text-align:center; border-left:1px solid rgba(255,255,255,0.15); margin:0;
}
.wf-sched-item:first-child,
.wf-schedule > .wp-block-column:first-child{border-left:none;}
.wf-sched-item .wf-time,
.wf-schedule .wf-time{font-family:'Cormorant Garamond',Georgia,serif; font-size:2rem; color:var(--white); margin:0 0 6px; line-height:1.1;}
.wf-sched-item h3,
.wf-schedule h3{color:var(--gold); font-size:1.15rem; margin:0 0 10px;}
.wf-sched-item p,
.wf-schedule > .wp-block-column p:not(.wf-time){color:rgba(250,238,239,0.75); font-size:0.9rem; line-height:1.7; margin:0;}
.wf-attire{text-align:center; margin-top:52px; color:rgba(250,238,239,0.85); font-size:0.95rem; letter-spacing:0.04em;}
.wf-attire b,.wf-attire strong{color:var(--gold);}

/* ==========================================================================
   9. Directions
   ========================================================================== */
.wf-directions-grid{
  display:grid; grid-template-columns:0.85fr 1.15fr; gap:0;
  border-radius:10px; overflow:hidden; box-shadow:var(--shadow); margin:0;
}
.wf-directions-grid.wp-block-columns{flex-wrap:nowrap;}
.wf-directions-info,
.wf-directions-grid > .wp-block-column.wf-directions-info{
  background:var(--white); padding:56px 48px; margin:0;
  display:flex; flex-direction:column; justify-content:center;
}
.wf-directions-info h3{font-size:1.9rem; margin:8px 0 4px;}
.wf-directions-info .wf-addr{color:var(--ink-soft); margin:0 0 26px; line-height:1.7;}
.wf-route-list{list-style:none; padding:0; margin:0 0 30px; display:flex; flex-direction:column; gap:16px;}
.wf-route-list li{display:flex; gap:14px; align-items:flex-start; font-size:0.92rem; color:var(--ink-soft); line-height:1.6;}
.wf-route-list li::before{
  counter-increment:wf-route; content:counter(wf-route);
  min-width:22px; height:22px; border-radius:50%; background:var(--blush); color:var(--greenery-deep);
  display:flex; align-items:center; justify-content:center; font-size:0.7rem; font-weight:600; margin-top:2px;
}
.wf-route-list{counter-reset:wf-route;}
.wf-map-frame{position:relative; min-height:360px; margin:0;}
.wf-map-frame iframe{width:100%; height:100%; border:0; position:absolute; inset:0;}

/* ==========================================================================
   10. RSVP / QR
   ========================================================================== */
.wf-rsvp{background:linear-gradient(180deg,var(--blush-soft),var(--cream));}
.wf-rsvp-grid{
  display:grid; grid-template-columns:0.9fr 1.1fr; gap:0; background:var(--white);
  border-radius:10px; overflow:hidden; box-shadow:var(--shadow); border:1px solid var(--blush); margin:0;
}
.wf-rsvp-grid.wp-block-columns{flex-wrap:nowrap;}
.wf-qr-panel,
.wf-rsvp-grid > .wp-block-column.wf-qr-panel{
  background:var(--greenery-deep); color:var(--blush-soft); padding:56px 40px; margin:0;
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:18px; position:relative;
}
.wf-qr-panel .wf-eyebrow{color:var(--gold);}
.wf-qr-frame{
  position:relative; width:200px; height:200px; padding:14px; background:var(--white); border-radius:10px;
  box-shadow:0 0 0 1px rgba(255,255,255,0.15),0 20px 40px rgba(0,0,0,0.25);
}
.wf-qr-frame .wf-qr{width:172px; height:172px;}
.wf-qr-frame .wf-qr img,
.wf-qr-frame .wf-qr canvas{width:100% !important; height:100% !important;}
.wf-scan-ring{position:absolute; inset:-10px; border:1.5px solid var(--gold); border-radius:16px; animation:wfPulseRing 2.4s ease-out infinite;}
@keyframes wfPulseRing{0%{transform:scale(1); opacity:0.9;} 80%{transform:scale(1.12); opacity:0;} 100%{opacity:0;}}
.wf-qr-caption{font-size:0.78rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold); margin:6px 0 0;}
.wf-qr-sub{font-size:0.86rem; color:rgba(250,238,239,0.8); max-width:250px; line-height:1.6; margin:0;}
.wf-qr-link{
  margin-top:4px; font-size:0.72rem; letter-spacing:0.15em; text-transform:uppercase;
  color:var(--white); text-decoration:none; border-bottom:1px solid var(--gold); padding-bottom:3px;
}
.wf-qr-link:hover{color:var(--gold);}
.wf-rsvp-note,
.wf-rsvp-grid > .wp-block-column.wf-rsvp-note{padding:56px 48px; margin:0;}
.wf-rsvp-note h3{font-size:1.9rem; margin:0 0 6px;}
.wf-rsvp-note p{color:var(--ink-soft); font-size:0.95rem;}
.wf-rsvp-steps{list-style:none; padding:0; margin:26px 0 30px; counter-reset:wf-step; display:flex; flex-direction:column; gap:16px;}
.wf-rsvp-steps li{display:flex; gap:14px; align-items:flex-start; font-size:0.92rem; color:var(--ink-soft); line-height:1.6;}
.wf-rsvp-steps li::before{
  counter-increment:wf-step; content:counter(wf-step);
  min-width:22px; height:22px; border-radius:50%; background:var(--blush); color:var(--greenery-deep);
  display:flex; align-items:center; justify-content:center; font-size:0.7rem; font-weight:600; margin-top:2px;
}

/* ==========================================================================
   11. Registry
   ========================================================================== */
.wf-registry-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin:0;}
.wf-registry-grid.wp-block-columns{flex-wrap:wrap;}
.wf-reg-card,
.wf-registry-grid > .wp-block-column.wf-reg-card{
  background:var(--white); border:1px solid var(--blush); border-radius:8px; padding:40px 30px; text-align:center; margin:0;
  transition:transform 0.3s ease, box-shadow 0.3s ease;
}
.wf-reg-card:hover{transform:translateY(-6px); box-shadow:var(--shadow);}
.wf-reg-card svg{width:34px; height:34px; margin:0 auto 18px; color:var(--gold); display:block;}
.wf-reg-card h3{font-size:1.3rem; margin:0 0 10px;}
.wf-reg-card p{color:var(--ink-soft); font-size:0.88rem; line-height:1.6; margin:0 0 22px;}
.wf-reg-card a{
  font-size:0.72rem; letter-spacing:0.15em; text-transform:uppercase; color:var(--greenery-deep);
  text-decoration:none; border-bottom:1px solid var(--gold); padding-bottom:3px;
}

/* ==========================================================================
   12. Footer
   ========================================================================== */
.wf-footer{background:var(--greenery-deep); color:rgba(250,238,239,0.75); text-align:center; padding:70px 24px 40px;}
.wf-footer .wf-serif{color:var(--white); font-size:1.8rem; margin-bottom:8px;}
.wf-footer .wf-hashtag{color:var(--gold); letter-spacing:0.1em; font-size:0.85rem; margin-bottom:30px;}
.wf-footer p{max-width:460px; margin:0 auto; line-height:1.7; font-size:0.9rem;}
.wf-footer a{color:var(--gold);}
.wf-footer .wf-fine{font-size:0.72rem; letter-spacing:0.08em; color:rgba(250,238,239,0.45); margin-top:30px;}
.wf-footer-menu ul{list-style:none; display:flex; gap:24px; justify-content:center; padding:0; margin:26px 0 0; flex-wrap:wrap;}
.wf-footer-menu a{font-size:0.72rem; letter-spacing:0.15em; text-transform:uppercase; text-decoration:none; color:rgba(250,238,239,0.8);}
.wf-footer-menu a:hover{color:var(--gold);}

/* ==========================================================================
   13. Inner pages, posts, comments
   ========================================================================== */
.wf-page-header{
  background:linear-gradient(180deg,var(--blush-soft),var(--cream));
  padding:190px 24px 70px; text-align:center;
}
.wf-page-header h1{font-size:clamp(2.2rem,5vw,3.4rem); margin:10px 0 0;}
.wf-main{padding:70px 0 100px;}
.wf-entry{max-width:760px; margin:0 auto;}
.wf-entry p,.wf-entry ul,.wf-entry ol{color:var(--ink-soft);}
.wf-entry h2{font-size:1.9rem; margin-top:2em;}
.wf-entry blockquote{border-left:2px solid var(--gold); margin:2em 0; padding:6px 0 6px 24px; font-family:'Cormorant Garamond',Georgia,serif; font-size:1.25rem; font-style:italic; color:var(--greenery-deep);}
.wf-entry table{width:100%; border-collapse:collapse;}
.wf-entry th,.wf-entry td{border:1px solid var(--blush); padding:10px 12px; text-align:left;}
.wf-entry code,.wf-entry pre{background:var(--white); border:1px solid var(--blush); border-radius:4px;}
.wf-entry pre{padding:16px; overflow-x:auto;}
.wf-post-card{background:var(--white); border:1px solid var(--blush); border-radius:8px; padding:34px 32px; margin-bottom:26px;}
.wf-post-card h2{margin:0 0 8px; font-size:1.6rem;}
.wf-post-card h2 a{text-decoration:none;}
.wf-meta{font-size:0.72rem; letter-spacing:0.15em; text-transform:uppercase; color:var(--gold); margin-bottom:12px;}
.wf-pagination{display:flex; gap:10px; justify-content:center; margin-top:40px; flex-wrap:wrap;}
.wf-pagination .page-numbers{
  padding:8px 14px; border:1px solid var(--blush); border-radius:4px; text-decoration:none; font-size:0.85rem;
}
.wf-pagination .page-numbers.current{background:var(--greenery-deep); color:var(--white); border-color:var(--greenery-deep);}
.wf-search-form{display:flex; gap:10px; max-width:420px; margin:0 auto;}
.wf-search-form input[type="search"]{flex:1; border:1px solid var(--blush-deep); border-radius:4px; padding:12px 14px; background:var(--white); font-family:'Jost',sans-serif;}
.wf-comments{max-width:760px; margin:60px auto 0;}
.wf-comments ol{list-style:none; padding:0;}
.wf-comments .comment-body{background:var(--white); border:1px solid var(--blush); border-radius:8px; padding:22px 24px; margin-bottom:18px;}
.wf-comments input[type="text"],.wf-comments input[type="email"],.wf-comments input[type="url"],.wf-comments textarea{
  width:100%; border:1px solid var(--blush-deep); border-radius:4px; padding:12px 14px; background:var(--white); font-family:'Jost',sans-serif;
}
.wf-comments .submit{
  background:var(--greenery-deep); color:var(--white); border:0; border-radius:4px; padding:14px 28px;
  text-transform:uppercase; letter-spacing:0.15em; font-size:0.78rem; cursor:pointer; font-family:'Jost',sans-serif;
}
.wf-404{text-align:center; padding:200px 24px 140px;}

/* ==========================================================================
   14. Block-editor bridges (columns used as grid wrappers, palette classes)
   ========================================================================== */
.wf-page .entry-content > *{margin-top:0; margin-bottom:0;}
.wf-page .entry-content .wp-block-group.wf-hero{max-width:none;}
.wf-hero h1 mark,
.wf-hero h1 .has-inline-color{background:transparent !important;}
.wf-hero h1 .has-gold-color{color:var(--gold) !important;}

.wf-map-col,
.wf-directions-grid > .wp-block-column.wf-map-col{padding:0; margin:0; display:flex; min-height:360px;}
.wf-map-col .wf-map-frame{flex:1; width:100%;}

.wf-qr-col,
.wf-rsvp-grid > .wp-block-column.wf-qr-col{padding:0; margin:0; display:flex;}
.wf-qr-col .wf-qr-panel{flex:1; width:100%;}
.wf-qr-bare{display:flex; flex-direction:column; align-items:center; gap:14px; text-align:center;}

/* Group blocks used as sections: constrain their children whether or not
   WordPress prints an inner-container wrapper. */
.wf-section.wp-block-group,
.wf-details.wp-block-group,
.wf-rsvp.wp-block-group{padding-left:28px; padding-right:28px;}
.wf-section.wp-block-group > *,
.wf-details.wp-block-group > *,
.wf-rsvp.wp-block-group > *{max-width:var(--wf-container); margin-left:auto; margin-right:auto;}
.wf-hero.wp-block-group > *{max-width:900px; margin-left:auto; margin-right:auto;}

.wf-section > .wp-block-group__inner-container,
.wf-details > .wp-block-group__inner-container,
.wf-rsvp > .wp-block-group__inner-container{max-width:var(--wf-container); margin:0 auto; padding:0 28px;}
.wf-hero > .wp-block-group__inner-container{max-width:900px; margin:0 auto;}
.wf-section-head.wp-block-group{max-width:620px; margin:0 auto 64px;}
.wf-details .wp-block-list,
.wf-details p{color:inherit;}

/* Palette helper classes (classic themes do not print these automatically) */
.has-greenery-deep-color{color:var(--greenery-deep) !important;}
.has-greenery-color{color:var(--greenery) !important;}
.has-blush-color{color:var(--blush) !important;}
.has-blush-soft-color{color:var(--blush-soft) !important;}
.has-gold-color{color:var(--gold) !important;}
.has-cream-color{color:var(--cream) !important;}
.has-ink-color{color:var(--ink) !important;}
.has-greenery-deep-background-color{background-color:var(--greenery-deep) !important;}
.has-greenery-background-color{background-color:var(--greenery) !important;}
.has-blush-background-color{background-color:var(--blush) !important;}
.has-blush-soft-background-color{background-color:var(--blush-soft) !important;}
.has-gold-background-color{background-color:var(--gold) !important;}
.has-cream-background-color{background-color:var(--cream) !important;}
.has-ink-background-color{background-color:var(--ink) !important;}

/* ==========================================================================
   15. Responsive
   ========================================================================== */
@media (max-width:860px){
  .wf-nav{padding:14px 20px;}
  .wf-nav.is-scrolled{padding:10px 20px;}
  .wf-nav-toggle{display:block;}
  .wf-nav-menu{
    display:none; position:absolute; top:100%; left:0; right:0;
    background:rgba(253,248,243,0.98); box-shadow:0 12px 30px rgba(61,82,51,0.12); padding:20px 24px 26px;
  }
  .wf-nav.is-open .wf-nav-menu{display:block;}
  .wf-nav-menu ul{flex-direction:column; gap:18px;}
  .wf-nav-menu .sub-menu{position:static; display:flex; box-shadow:none; padding:10px 0 0 14px; background:transparent;}

  .wf-section{padding:80px 0;}
  .wf-hero{padding:110px 20px 150px; min-height:88vh;}
  .wf-hero h1{font-size:14vw; white-space:nowrap;}
  .wf-hero .wf-amp{padding:0 8px;}
  .wf-count-unit{width:74px; padding:14px 0;}
  .wf-count-unit .wf-num{font-size:1.9rem;}
  .wf-countdown-card{padding:30px 22px;}
  .wf-photo-full,.wf-photo-full img{aspect-ratio:4/5;}

  .wf-schedule,
  .wf-schedule.wp-block-columns,
  .wf-directions-grid,
  .wf-directions-grid.wp-block-columns,
  .wf-rsvp-grid,
  .wf-rsvp-grid.wp-block-columns,
  .wf-registry-grid,
  .wf-registry-grid.wp-block-columns{
    grid-template-columns:1fr; display:grid; flex-wrap:wrap;
  }
  .wf-schedule > .wp-block-column,
  .wf-sched-item{border-left:none; border-top:1px solid rgba(255,255,255,0.15);}
  .wf-schedule > .wp-block-column:first-child,
  .wf-sched-item:first-child{border-top:none;}
  .wf-directions-info,.wf-rsvp-note,
  .wf-directions-grid > .wp-block-column.wf-directions-info,
  .wf-rsvp-grid > .wp-block-column.wf-rsvp-note{padding:44px 28px;}
  .wf-map-frame{min-height:280px;}
  .wf-page-header{padding:150px 20px 60px;}
}
@media (max-width:400px){
  .wf-hero h1{font-size:13vw;}
}
