@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:ital,wght@0,400;1,400&display=swap');:root{--ink:#22231f;--paper:#fffefa;--soft:#f3f2ed;--border:#d9d8d0}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.7 'DM Sans',sans-serif}header{display:flex;align-items:center;justify-content:space-between;padding:22px clamp(18px,5vw,80px);border-bottom:1px solid var(--border)}.brand{font-family:'Playfair Display',serif;font-size:23px}nav{display:flex;gap:clamp(9px,2vw,28px);flex-wrap:wrap}a{color:inherit;text-decoration:none}nav a{font-size:12px;text-transform:uppercase;letter-spacing:1px}.hero{text-align:center;min-height:75vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:70px 16px}.eyebrow{font-size:11px;letter-spacing:3px;font-weight:600}.hero h1{font:clamp(52px,8vw,110px)/1.2 'Playfair Display',serif;margin:18px 0}.hero em{font-weight:400}.line{width:65px;border-top:1px solid var(--ink);margin:22px}.countdown{display:flex;gap:22px;margin:24px 0 34px;justify-content:center}.countdown span{display:block;font-size:30px;font-family:'Playfair Display',serif}.countdown small{font-size:10px;letter-spacing:1.5px;text-transform:uppercase}.btn{background:var(--ink);color:white;border:1px solid var(--ink);padding:13px 25px;cursor:pointer;font:inherit;font-size:12px;letter-spacing:1.3px;text-transform:uppercase;display:inline-block}.btn:hover{background:#4b4b45}.section{text-align:center;padding:95px 20px}.section h2{font:clamp(36px,5vw,56px) 'Playfair Display',serif;margin:10px 0 35px}.pale{background:var(--soft)}.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:850px;margin:0 auto 28px}.panel{border:1px solid var(--border);padding:28px;background:var(--paper);text-align:center}.panel h3{font:28px 'Playfair Display',serif}.muted{color:#777}.gallery{max-width:900px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.gallery div{aspect-ratio:3/4;background:#e9e7e1;display:grid;place-items:center;color:#888}.form{max-width:450px;margin:25px auto;display:grid;gap:16px;text-align:left}.form label{display:grid;gap:6px;font-size:13px}input,select,textarea{width:100%;font:inherit;padding:12px;background:white;border:1px solid #c9c8c0;border-radius:0}.form .btn{justify-self:start}#rsvp-area{max-width:570px;margin:35px auto}#status{min-height:26px;font-weight:600}footer{text-align:center;padding:35px;font-size:11px;letter-spacing:2px}.admin{max-width:1100px;margin:45px auto;padding:0 20px}.admin h1{font:45px 'Playfair Display',serif}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.toolbar label{flex:1;min-width:160px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:25px 0}.stat{background:var(--soft);padding:20px}.stat strong{display:block;font-size:26px}.tablewrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:760px}th,td{padding:12px;text-align:left;border-bottom:1px solid var(--border);font-size:13px}th{font-size:11px;text-transform:uppercase;letter-spacing:1px}.actions{display:flex;gap:8px}.secondary{background:white;color:var(--ink)}@media(max-width:650px){.two{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.gallery{gap:6px}nav a{font-size:10px}.hero h1{font-size:52px}}

/* Personalized photography and venue */
.photo-hero{position:relative;isolation:isolate;color:#fff;min-height:92vh;background:#222 url('photos/01-rings-closeup.jpg') center 43%/cover no-repeat;text-shadow:0 2px 15px rgba(0,0,0,.4)}
.photo-hero:before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.24),rgba(0,0,0,.45));z-index:-1}
.photo-hero .line{border-color:#fff}.photo-hero .btn{background:#fff;color:#222;border-color:#fff;text-shadow:none}.photo-hero .btn:hover{background:#eae8e2}
.venue-card{max-width:720px;margin:0 auto 26px;padding:40px 20px;border:1px solid var(--border);background:#fff}.venue-card h3{font:clamp(31px,5vw,45px) 'Playfair Display',serif;margin:8px 0}.venue-card .btn{margin-top:14px}
.gallery figure{margin:0;aspect-ratio:3/4;overflow:hidden;background:#eee}.gallery img{width:100%;height:100%;display:block;object-fit:cover;object-position:center}.gallery figure:first-child img{object-position:center 38%}
@media(max-width:650px){.photo-hero{min-height:82vh;background-position:center 45%}.photo-hero h1{font-size:clamp(43px,11vw,60px)}.gallery{grid-template-columns:1fr;max-width:420px;gap:15px}.gallery figure{aspect-ratio:3/4}}

/* Ring close-up hero: keep the engagement ring in view across screen sizes. */
.photo-hero{background-position:center 51%}
@media(max-width:650px){.photo-hero{background-position:center 50%}}

/* Larger, more readable typography throughout the wedding website. */
body{font-size:18px;line-height:1.75}
.brand{font-size:27px}
nav a{font-size:14px;letter-spacing:1.1px}
.eyebrow{font-size:14px;letter-spacing:2.5px}
.hero h1{font-size:clamp(58px,8.5vw,118px)}
.hero>p:not(.eyebrow){font-size:clamp(19px,2.3vw,25px)}
.countdown{gap:clamp(14px,3.4vw,48px);margin:32px 0 42px}
.countdown>div{min-width:clamp(55px,9vw,110px)}
.countdown span{font-size:clamp(47px,6.2vw,82px);line-height:1.2;font-variant-numeric:tabular-nums}
.countdown small{font-size:clamp(12px,1.35vw,17px);letter-spacing:1.3px}
.btn{font-size:15px;padding:15px 27px}
.section h2{font-size:clamp(41px,5.5vw,65px)}
.venue-card h3{font-size:clamp(35px,5vw,50px)}
.form label{font-size:17px}
input,select,textarea{font-size:18px}
footer{font-size:14px}
@media(max-width:650px){
  header{padding:17px 15px;gap:10px;flex-wrap:wrap}
  nav{gap:12px}
  nav a{font-size:12px}
  .photo-hero h1{font-size:clamp(43px,10vw,64px)}
  .countdown{gap:9px;width:100%;justify-content:space-evenly}
  .countdown>div{min-width:0;flex:1}
  .countdown span{font-size:clamp(39px,9vw,57px)}
  .countdown small{font-size:11px;letter-spacing:.6px}
  .eyebrow{font-size:12px}
  .section{padding:75px 20px}
}

/* Readability update: larger type, stronger contrast and comfortable mobile sizing. */
body{font-size:clamp(19px,1.6vw,22px);line-height:1.7}
header{gap:20px;background:#fffefa}
.brand{font-size:clamp(29px,3vw,37px);white-space:nowrap}
.header-verse{font:italic clamp(15px,1.35vw,19px)/1.45 'Playfair Display',serif;text-align:center;max-width:380px;color:#3d3d36}
nav a{font-size:clamp(14px,1.15vw,17px);font-weight:600;letter-spacing:.5px}
.eyebrow{font-size:clamp(16px,1.55vw,20px);letter-spacing:1.5px}
.hero{padding:100px 24px;min-height:94vh}
.hero h1{font-size:clamp(65px,9vw,132px);line-height:1.13;max-width:1100px}
.hero>p:not(.eyebrow){font-size:clamp(25px,2.7vw,34px);font-weight:600}
.hero .eyebrow{font-size:clamp(17px,1.65vw,22px);font-weight:600}
.photo-hero:before{background:linear-gradient(180deg,rgba(0,0,0,.49),rgba(0,0,0,.52))}
.photo-hero{text-shadow:0 2px 10px rgba(0,0,0,.7)}
.countdown{gap:clamp(12px,3vw,44px);margin:35px 0 40px}
.countdown span{font-size:clamp(55px,7.5vw,100px);font-weight:400}
.countdown small{font-size:clamp(15px,1.5vw,21px);font-weight:600;letter-spacing:.6px}
.btn{font-size:clamp(16px,1.2vw,19px);padding:17px 30px;font-weight:600;letter-spacing:.6px}
.section{padding:95px 24px}
.section h2{font-size:clamp(48px,6vw,76px)}
.venue-card{max-width:900px;padding:45px 30px}
.venue-card h3{font-size:clamp(39px,5vw,58px)}
.muted{color:#575951}
.details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:900px;margin:24px auto 0;gap:20px}
.details-grid .detail-card{margin:0;padding:35px 28px}
.detail-card h3{font-size:clamp(34px,3.5vw,46px)}
.detail-card p:last-child{margin-bottom:0}
.form label{font-size:19px;font-weight:600}
input,select,textarea{font-size:20px;padding:16px}
footer{font-size:17px}
@media(max-width:850px){header{justify-content:center;flex-wrap:wrap}.header-verse{order:2;width:100%;max-width:none}nav{order:3;justify-content:center;width:100%}}
@media(max-width:650px){
  header{padding:18px 15px;gap:10px}
  .brand{font-size:31px}
  .header-verse{font-size:16px}
  nav{gap:15px}
  nav a{font-size:14px}
  .hero{min-height:88vh;padding:85px 16px}
  .hero h1{font-size:clamp(56px,11vw,74px)}
  .hero>p:not(.eyebrow){font-size:25px}
  .hero .eyebrow{font-size:17px;letter-spacing:1px}
  .countdown{gap:6px;width:100%}
  .countdown>div{flex:1;min-width:0}
  .countdown span{font-size:clamp(42px,10vw,60px)}
  .countdown small{font-size:clamp(12px,2.9vw,16px);letter-spacing:0}
  .section{padding:72px 20px}
  .section h2{font-size:clamp(46px,10vw,60px)}
  .details-grid{grid-template-columns:1fr;gap:16px}
  .venue-card{padding:35px 22px}
  .detail-card h3{font-size:39px}
  .eyebrow{font-size:16px;letter-spacing:1px}
}

/* Requested larger hero labels and wedding date */
.hero .eyebrow{font-size:clamp(24px,2.8vw,36px);letter-spacing:1.2px;line-height:1.4;font-weight:700}
.hero>p:not(.eyebrow){font-size:clamp(36px,4.5vw,58px);line-height:1.25;font-weight:700}
.header-verse{font-size:clamp(17px,1.5vw,21px);max-width:620px;line-height:1.5}
@media(max-width:650px){.hero .eyebrow{font-size:clamp(21px,5.2vw,27px);letter-spacing:.4px}.hero>p:not(.eyebrow){font-size:clamp(32px,7.6vw,43px)}.header-verse{font-size:17px}}

/* Refined unified typography: preserve the original Natalia & David hero lettering. */
@import url('https://fonts.googleapis.com/css2?family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&display=swap');
body, nav a, .eyebrow, .btn, .form label, input, select, textarea, footer, .header-verse, .brand, .section h2, .venue-card h3, .countdown span, .countdown small {font-family:'Libre Baskerville', Georgia, serif;}
.header-verse{font-style:italic;font-weight:400;line-height:1.65;letter-spacing:0;max-width:480px;}
/* Preserve the established hero name design. */
.hero h1,.hero h1 em{font-family:'Playfair Display',serif;}
nav a,.eyebrow,.countdown small{letter-spacing:.04em;}
@media(max-width:700px){.header-verse{font-size:clamp(13px,3.1vw,16px);line-height:1.5;} nav a{letter-spacing:0;} }

/* Latest adjustments: original N & D monogram, clear ring, breathing room. */
header .brand {font-family:'Playfair Display',Georgia,serif; font-weight:400; letter-spacing:.025em; font-size:clamp(27px,3vw,35px);}
/* Keep the hero lettering above the ring, and the countdown below it. */
.photo-hero {min-height: min(1000px, 110svh); justify-content:flex-start; padding-top:clamp(42px,6vh,86px); padding-bottom:clamp(36px,5vh,70px); background-position:center 51%;}
.photo-hero h1 {margin:8px 0;}
.photo-hero .line {margin:10px 0;}
.photo-hero .countdown {margin-top:auto; margin-bottom:clamp(55px,7vh,100px);}
.photo-hero > .btn {margin-top:0;}
@media(max-width:650px){
  .photo-hero {min-height:100svh; padding:35px 12px 40px; background-position:48% center;}
  .photo-hero h1 {font-size:clamp(43px,10vw,64px); margin:8px 0;}
  .photo-hero .eyebrow {font-size:clamp(17px,4.6vw,23px);}
  .photo-hero>p:not(.eyebrow) {font-size:clamp(29px,7vw,39px);}
  .photo-hero .countdown {margin-top:auto; margin-bottom:62px;}
}

/* Keep the ring centered and unobstructed by splitting hero into top and bottom text zones. */
.photo-hero{display:flex;flex-direction:column;justify-content:space-between;min-height:clamp(900px,115vh,1200px);padding:clamp(30px,4vh,55px) 18px clamp(25px,4vh,55px);background-position:center 51%;}
.hero-intro,.hero-footer{display:flex;flex-direction:column;align-items:center;position:relative;z-index:1;width:100%;}
.photo-hero .hero-intro h1{font-size:clamp(54px,7.5vw,105px);margin:0;}
.photo-hero .hero-intro p{margin:4px 0;}
.photo-hero .hero-intro>p:not(.eyebrow){font-size:clamp(27px,3.1vw,42px);line-height:1.25;}
.photo-hero .hero-footer .line{display:none;}
.photo-hero .hero-footer .eyebrow{font-size:clamp(15px,1.6vw,22px);margin:0 0 8px;line-height:1.4;}
.photo-hero .hero-footer .countdown{margin:4px 0 18px;gap:clamp(10px,3vw,38px);}
.photo-hero .hero-footer .countdown span{font-size:clamp(42px,5.4vw,72px);}
.photo-hero .hero-footer .countdown small{font-size:clamp(11px,1.1vw,15px);}
.photo-hero .hero-footer .btn{margin-top:12px;}
@media(max-width:650px){.photo-hero{min-height:max(1000px,115svh);padding:25px 12px 30px;background-position:48% center;}.photo-hero .hero-intro h1{font-size:clamp(44px,10vw,64px);}.photo-hero .hero-intro .eyebrow{font-size:clamp(16px,4.5vw,22px);}.photo-hero .hero-intro>p:not(.eyebrow){font-size:clamp(24px,6vw,33px);}.photo-hero .hero-footer .eyebrow{font-size:clamp(14px,3.5vw,18px);}.photo-hero .hero-footer .countdown{gap:5px;width:100%;}.photo-hero .hero-footer .countdown span{font-size:clamp(36px,9vw,50px);}.photo-hero .hero-footer .countdown small{font-size:clamp(10px,2.5vw,13px);}}
.timeline-block{max-width:900px;margin:55px auto 0;padding:48px clamp(20px,5vw,60px);border:1px solid var(--border);background:#fff;}
.timeline-block h3{font:clamp(34px,4.5vw,52px)/1.25 'Libre Baskerville',Georgia,serif;margin:8px 0 12px;}
.timeline-note{font-size:clamp(15px,1.3vw,18px);color:#65665f;margin:0 0 34px;}
.wedding-timeline{list-style:none;padding:0;margin:0 auto;max-width:650px;text-align:left;}
.wedding-timeline li{display:flex;gap:24px;position:relative;padding:0 0 27px;}
.wedding-timeline li:not(:last-child)::before{content:"";position:absolute;left:18px;top:39px;bottom:0;border-left:1px solid #c8c6bb;}
.timeline-number{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border:1px solid #b6b2a6;border-radius:50%;font:13px 'Libre Baskerville',Georgia,serif;color:#55544e;background:#fff;}
.wedding-timeline h4{font:clamp(19px,2vw,24px) 'Libre Baskerville',Georgia,serif;margin:2px 0 5px;}
.wedding-timeline p{font-size:clamp(15px,1.35vw,18px);color:#67675f;margin:0;}
@media(max-width:650px){.timeline-block{padding:35px 20px}.wedding-timeline li{gap:17px}.timeline-block h3{font-size:34px}}

/* Refined compact homepage: keep ring visible without oversized blank gap. */
.photo-hero {min-height:760px; height:100svh; max-height:940px; box-sizing:border-box; justify-content:space-between; padding:clamp(20px,3vh,35px) 18px clamp(22px,3vh,36px); background-position:center 55%;}
.photo-hero .hero-intro{gap:0;}
.photo-hero .hero-intro h1{font-size:clamp(52px,7vw,96px);line-height:1.15;}
.photo-hero .hero-intro>p:not(.eyebrow){font-size:clamp(24px,2.8vw,36px);}
.photo-hero .hero-footer{gap:0;}
.photo-hero .hero-footer .eyebrow{font-size:clamp(14px,1.35vw,19px);margin-bottom:3px;}
.photo-hero .hero-footer .countdown{margin:3px 0 10px;}
.photo-hero .hero-footer .btn{margin-top:8px;}
@media(max-width:650px){.photo-hero{height:100svh;min-height:700px;max-height:900px;padding:20px 12px 24px;background-position:50% 54%;}.photo-hero .hero-intro h1{font-size:clamp(40px,9vw,58px)}.photo-hero .hero-intro>p:not(.eyebrow){font-size:clamp(23px,5vw,29px)}.photo-hero .hero-footer .countdown{margin:4px 0 10px;}.photo-hero .hero-footer .btn{margin-top:8px}}

/* Refined homepage framing: closer text groups, ring shifted higher. */
.photo-hero{height:clamp(710px,88svh,850px);min-height:710px;max-height:850px;padding:clamp(60px,9vh,92px) 18px clamp(64px,9vh,94px);background-position:center 68%;justify-content:space-between}
.photo-hero .hero-intro,.photo-hero .hero-footer{gap:0}
.photo-hero .hero-footer .countdown{margin:5px 0 14px}
.photo-hero .hero-footer .btn{margin-top:12px}
@media(max-width:650px){.photo-hero{height:clamp(700px,94svh,820px);min-height:700px;max-height:820px;padding:clamp(48px,7vh,70px) 12px clamp(45px,7vh,72px);background-position:50% 66%}.photo-hero .hero-footer .countdown{margin:5px 0 12px}}
/* Match the biblical verse to the dark homepage headline color. */
header .header-verse { color: #22231f !important; }

/* Ring framing: place the ring lower in the clear space below the names. */
.photo-hero { background-position: center 57%; }
/* Verse typography matches the upper homepage lettering. */
header .header-verse {font-family:'Libre Baskerville',Georgia,serif !important;color:#22231f !important;font-style:italic;font-weight:600;}
@media(max-width:650px){.photo-hero{background-position:center 58%;}}

/* Reframe proposal photo only; keep gallery geometry and embracing photo unchanged. */
.gallery figure:nth-child(2) img { object-position: 50% 67%; }

/* Horizontally center the engagement ring without changing hero text or vertical framing. */
@media(min-width:651px){.photo-hero{background-size:115% auto;background-position:0% 57%;}}
@media(max-width:650px){.photo-hero{background-position:37% 58%;}}

/* Match navigation link typography for the Bible verse. */
header .header-verse {font-family:'Libre Baskerville',Georgia,serif !important;font-style:normal !important;font-weight:600 !important;color:#22231f !important;letter-spacing:.5px;}
/* Tiny downward ring shift, same horizontal position and hero text. */
@media(min-width:651px){.photo-hero{background-position:0% 55.5%;}}
@media(max-width:650px){.photo-hero{background-position:37% 56.5%;}}

/* Subtle design-studio signature below the wedding footer. */
.site-footer{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center}
.site-footer .footer-rule{display:block;width:65px;height:1px;background:currentColor;opacity:.3}
.site-footer .studio-signature{font-size:10px;font-weight:500;letter-spacing:.23em;opacity:.65;line-height:1.5}

/* Lift the entire diamond and gold band above the celebration line; preserve all lettering positions. */
@media(min-width:651px){.photo-hero{background-position:0% 60% !important;}}
@media(max-width:650px){.photo-hero{background-position:37% 61% !important;}}

/* Footer: wedding date centered; designer signature at the bottom right. */
.site-footer {position:relative;display:flex;flex-direction:row;justify-content:center;align-items:center;text-align:center;padding:35px 26px 50px;min-height:125px;}
.site-footer .footer-rule {display:none;}
.site-footer .studio-signature {position:absolute;right:26px;bottom:13px;white-space:nowrap;}
@media(max-width:650px){.site-footer {padding:30px 18px 56px;min-height:120px;}.site-footer .studio-signature {right:18px;bottom:12px;font-size:9px;}}

/* Ring repositioned down to sit within the gap between date and celebration line. */
@media (min-width:651px){.photo-hero{background-position:0% 56% !important;}}
@media (max-width:650px){.photo-hero{background-position:37% 57% !important;}}

/* Mobile-only ring framing: keep the desktop hero untouched.
   Slightly enlarge the image vertically so it can be positioned independently
   and move the complete engagement ring into the space between text groups. */
@media (max-width: 650px) {
  .photo-hero {
    background-size: auto 125% !important;
    background-position: 48% 80% !important;
  }
}

/* Elegant gallery reveal on scroll */
.gallery figure {opacity:0;transform:translateY(32px) scale(.98);transition:opacity 1.85s ease,transform 2s cubic-bezier(.2,.7,.2,1)}
.gallery figure.gallery-visible {opacity:1;transform:none}
.gallery figure:nth-child(2){transition-delay:.15s}
.gallery figure:nth-child(3){transition-delay:.3s}
@media(prefers-reduced-motion:reduce){.gallery figure{opacity:1;transform:none;transition:none}}

/* Elegant opening reveal. Photo framing and layout remain exactly unchanged. */
.photo-hero { isolation: isolate; }
.photo-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #f4f0e9;
  z-index: 2;
  pointer-events: none;
  animation: wedding-curtain-reveal 2.65s cubic-bezier(.25,.7,.25,1) both;
}
.photo-hero .hero-intro,
.photo-hero .hero-footer {
  animation: wedding-type-reveal 2.15s ease-out both;
}
.photo-hero .hero-intro { animation-delay: 1.7s; }
.photo-hero .hero-footer { animation-delay: 2.05s; }
@keyframes wedding-curtain-reveal { 0% {opacity:1;} 100% {opacity:0;} }
@keyframes wedding-type-reveal {
  0% {opacity:0; transform:translateY(12px);}
  100% {opacity:1; transform:translateY(0);}
}
@media (prefers-reduced-motion: reduce) {
  .photo-hero::after,
  .photo-hero .hero-intro,
  .photo-hero .hero-footer { animation: none !important; }
  .photo-hero::after { display:none; }
}

/* Small position refinement only: lower the three-line opening title together.
   Original typography, animation timing, image framing, and all other sections remain unchanged. */
.photo-hero .hero-intro { margin-top: 22px; }
@media (max-width:650px) { .photo-hero .hero-intro { margin-top: 16px; } }

/* FAQ: inherit existing website fonts, colors, and elegant spacing. */
.faq-section{background:#faf9f6;text-align:center}
.faq-list{max-width:850px;margin:38px auto 0;text-align:left}
.faq-item{padding:26px 8px;border-top:1px solid rgba(48,43,38,.18)}
.faq-item:last-child{border-bottom:1px solid rgba(48,43,38,.18)}
.faq-item h3{font-family:inherit;font-size:clamp(19px,2.1vw,25px);font-weight:normal;margin:0 0 12px}
.faq-item p{line-height:1.8;margin:0 0 9px}
.faq-item a{color:inherit;text-underline-offset:4px}
@media(max-width:650px){.faq-list{margin-top:26px}.faq-item{padding:22px 0}}

/* Faster intro text only; preserve photo and footer reveal timings. */
.photo-hero .hero-intro { animation-duration: 1.55s; animation-delay: 1.35s; }

/* Accessible, collapsible wedding FAQ. Native details/summary works without JavaScript. */
.faq-item{display:block}
.faq-item summary{list-style:none;cursor:pointer;position:relative;padding:4px 44px 4px 0;font-family:inherit;font-size:clamp(19px,2.1vw,25px);font-weight:normal;line-height:1.4}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:'+';position:absolute;right:8px;top:50%;transform:translateY(-50%);font-family:inherit;font-size:29px;font-weight:300;line-height:1;transition:transform .25s ease}
.faq-item[open] summary::after{content:'−'}
.faq-item summary:focus-visible{outline:2px solid currentColor;outline-offset:5px}
.faq-answer{padding:17px 44px 0 0;animation:faq-answer-appear .3s ease both}
@keyframes faq-answer-appear{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:650px){.faq-item summary{padding-right:35px}.faq-answer{padding-right:24px}}
@media(prefers-reduced-motion:reduce){.faq-answer{animation:none}.faq-item summary::after{transition:none}}

/* Crisp, scalable custom N/D monogram */
header .brand{display:inline-flex;align-items:center;justify-content:center;flex:none;line-height:1}header .brand img{display:block;width:66px;height:58px;object-fit:contain}@media(max-width:600px){header .brand img{width:54px;height:48px}}

/* Refined sage monogram and clean collapsible header menu */
header{position:relative;z-index:20;min-height:104px;gap:18px;background:var(--paper)}
header .brand{position:relative;z-index:2}
header .brand img{width:104px;height:80px;object-fit:contain}
header .header-verse{flex:1;max-width:650px;margin:0 auto;text-align:center}
header .menu-toggle{appearance:none;border:0;background:transparent;cursor:pointer;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:48px;height:48px;flex:none;padding:10px;z-index:22;color:var(--ink)}
header .menu-toggle span{display:block;width:25px;height:1.5px;background:currentColor;transform-origin:center;transition:transform .25s ease,opacity .2s ease}
header .menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(7.5px) rotate(45deg)}
header .menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
header .menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-7.5px) rotate(-45deg)}
header nav#site-menu{display:flex;position:absolute;right:clamp(18px,5vw,80px);top:calc(100% - 1px);width:min(300px,calc(100vw - 36px));padding:20px 28px 24px;background:var(--paper);border:1px solid var(--border);box-shadow:0 18px 36px rgba(25,25,22,.1);flex-direction:column;gap:0;align-items:stretch;opacity:0;visibility:hidden;transform:translateY(-8px);pointer-events:none;transition:opacity .24s ease,transform .24s ease,visibility .24s}
header nav#site-menu.is-open{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}
header nav#site-menu a{display:block;font-size:13px;letter-spacing:1.5px;padding:13px 0;border-bottom:1px solid var(--border)}
header nav#site-menu a:last-child{border-bottom:0}
header nav#site-menu a:hover{color:#728467}
header .menu-toggle:focus-visible,header nav#site-menu a:focus-visible{outline:2px solid #728467;outline-offset:4px}
@media(max-width:760px){header{padding:10px 20px;min-height:85px}header .brand img{width:88px;height:66px}header .header-verse{display:none}header nav#site-menu{right:16px}}
@media(prefers-reduced-motion:reduce){header .menu-toggle span,header nav#site-menu{transition:none}}

/* Mobile: keep the compact menu aligned to the upper-right corner. */
@media (max-width:760px){
 header{display:flex!important;flex-wrap:nowrap!important;justify-content:space-between!important;align-items:center!important;position:relative;padding:8px 16px!important;min-height:78px!important;gap:8px!important}
 header .brand{order:0!important;flex:0 0 auto!important;margin:0!important}
 header .brand img{width:80px!important;height:61px!important;object-fit:contain}
 header .header-verse{display:none!important}
 header .menu-toggle{order:1!important;position:relative!important;margin:0 0 0 auto!important;flex:0 0 36px!important;width:36px!important;height:36px!important;padding:7px!important;gap:5px!important;align-self:center!important}
 header .menu-toggle span{width:19px!important;height:1.5px!important}
 header .menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(6.5px) rotate(45deg)!important}
 header .menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-6.5px) rotate(-45deg)!important}
 header nav#site-menu{order:2!important;right:12px!important;top:calc(100% - 1px)!important;width:min(280px,calc(100vw - 24px))!important}
}

/* Slightly larger wedding announcement, with comfortable mobile sizing. */
.hero .hero-intro .eyebrow{font-size:clamp(26px,3.15vw,40px)!important}
.hero .hero-intro h1{font-size:clamp(75px,10vw,148px)!important;line-height:1.11}
.hero .hero-intro>p:not(.eyebrow){font-size:clamp(25px,3.1vw,40px)!important}
@media(max-width:650px){
 .hero .hero-intro .eyebrow{font-size:clamp(23px,5.8vw,31px)!important}
 .hero .hero-intro h1{font-size:clamp(61px,12.3vw,84px)!important;line-height:1.1}
 .hero .hero-intro>p:not(.eyebrow){font-size:clamp(24px,5.7vw,33px)!important}
}

/* Raise homepage countdown slightly without changing other hero elements. */
.hero .hero-footer .countdown{position:relative;top:-23px;margin-bottom:35px}
@media(max-width:650px){.hero .hero-footer .countdown{top:-18px;margin-bottom:38px}}

/* Match the gap between ceremony/reception and attire. */
#details .timeline-block{margin-bottom:26px;}
@media(max-width:650px){#details .timeline-block{margin-bottom:24px;}}

/* Center the RSVP full-name label and input text. */
#lookup-form label{text-align:center;}
#lookup-form #guest-name{text-align:center;}

/* Center the RSVP lookup controls, including the button, on mobile. */
@media (max-width:650px){
 #lookup-form{width:100%;max-width:450px;margin-inline:auto;justify-items:center;text-align:center;}
 #lookup-form label{width:100%;text-align:center;}
 #lookup-form #guest-name{width:100%;text-align:center;}
 #lookup-form .btn{justify-self:center;text-align:center;}
}

/* Consistent vertical rhythm for the wedding details cards. */
#details .timeline-block{margin-bottom:26px!important}
#details>.venue-card{margin-bottom:26px!important}
#details .details-grid{margin-top:0!important;gap:26px!important}
#details .details-grid .detail-card{margin:0!important}
@media(max-width:650px){#details .timeline-block{margin-bottom:24px!important}#details>.venue-card{margin-bottom:24px!important}#details .details-grid{gap:24px!important}}
/* Slightly smaller date and monogram; keep names unchanged. */
.hero .hero-intro>p:not(.eyebrow){font-size:clamp(22px,2.75vw,35px)!important}
@media(max-width:650px){.hero .hero-intro>p:not(.eyebrow){font-size:clamp(21px,5vw,29px)!important}}
header .brand img{width:89px!important;height:69px!important}
@media(max-width:760px){header .brand img{width:69px!important;height:54px!important}}
/* Scripture below the story, styled like an editorial quotation. */
.story-scripture{max-width:660px;margin:38px auto 0;padding:28px 24px 0;border-top:1px solid var(--border);text-align:center;color:var(--ink)}
.story-scripture p{font-family:'Libre Baskerville',Georgia,serif;font-size:clamp(16px,2vw,20px);line-height:1.85;margin:0 0 14px}
.story-scripture cite{display:block;font-family:'Libre Baskerville',Georgia,serif;font-style:normal;font-size:12px;letter-spacing:1.7px;text-transform:uppercase}
/* On desktop the verse remains in the header; mobile displays it directly below the header. */
.mobile-scripture{display:none}
@media(max-width:760px){.mobile-scripture{display:block;text-align:center;padding:12px 22px 15px;border-bottom:1px solid var(--border);font-family:'Libre Baskerville',Georgia,serif;font-size:11px;font-weight:600;line-height:1.7;letter-spacing:.1px;background:var(--paper)}.mobile-scripture .scripture-reference{display:block;margin-top:3px;font-size:10px;letter-spacing:1px;text-transform:uppercase}}


/* Slightly smaller header monogram */
header .brand img{width:82px!important;height:64px!important;object-fit:contain}
@media(max-width:760px){header .brand img{width:69px!important;height:54px!important}}

/* Center gallery photos 1–5. Preserve the last photo’s original framing. */
#gallery .gallery figure img{object-position:center center!important}
#gallery .gallery figure:nth-child(6) img{object-position:initial!important}

/* Move the complete celebration group upward together without disturbing its internal spacing. */
@media (min-width:651px){.photo-hero{padding-bottom:calc(clamp(64px,9vh,94px) + 18px)!important}}
@media (max-width:650px){.photo-hero{padding-bottom:calc(clamp(45px,7vh,72px) + 14px)!important}}

/* Mobile: add breathing room above countdown without shifting its numbers or button. */
@media(max-width:650px){.photo-hero .hero-footer>p.eyebrow{position:relative;top:-14px}}

/* Center the image crop inside frames 1-5 on all screen sizes; leave photo 6 unchanged. */
#gallery .gallery figure:nth-child(-n+5) img{object-fit:cover!important;object-position:50% 50%!important}
