/*
Theme Name: Magen & Jack
Author: Magen & Jack
Description: A watercolour wedding invitation website matching the supplied design, with editable content and private RSVP management.
Version: 1.1.12
Requires at least: 6.5
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: magen-and-jack
*/
@font-face{font-family:Wedding Serif;src:url(assets/serif.ttf) format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Wedding Script;src:url(assets/script.ttf) format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Wedding Sans;src:url(assets/sans.ttf) format('truetype');font-weight:400;font-style:normal;font-display:swap}
:root{--paper:#fcfcf7;--ink:#191b17;--muted:#51594e;--green:#57724f;--pale:#ecf0e3;--blue:#e0edf1;--line:#bdc4b1;--serif:'Wedding Serif',Georgia,serif;--script:'Wedding Script','Brush Script MT',cursive;--sans:'Wedding Sans',Arial,sans-serif;--wide:820px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:var(--paper);color:var(--ink);font:400 1.1875rem/1.65 var(--serif);min-height:100svh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}a{color:inherit;text-underline-offset:5px}a,button{-webkit-tap-highlight-color:transparent}button,a,input,textarea,summary{outline-offset:5px}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--green)}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.2}h2,.page-title{font:clamp(2.8rem,4.3vw,4rem)/1.3 var(--script);margin-bottom:22px}h3{font-size:1.875rem}p{margin-bottom:1em}img{max-width:100%;display:block}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}[hidden]{display:none!important}.wrap{width:min(var(--wide),100%);margin-inline:auto}.script{font-family:var(--script);font-weight:400}.eyebrow{font:1rem/1.5 var(--serif);letter-spacing:.04em;margin-bottom:14px}.section-head{max-width:660px;margin:0 auto 36px;text-align:center}.section-head>p:last-child{color:var(--muted)}.skip-link{position:fixed;top:-100px;left:20px;background:var(--paper);padding:12px 20px;z-index:99}.skip-link:focus{top:10px}
/* A single sheet of floral stationery, from the top corners to the footer. */
.floral-sheet{--floral-height:max(560px,calc(100svh - 56px));display:flex;flex-direction:column;position:relative;flex:1;background:var(--paper);isolation:isolate;overflow:clip}
/* Show each outside half of the same artwork at its natural aspect ratio.
   On wider screens the centre opens up; on narrow screens the edges crop. */
.floral-sheet:before,.floral-sheet:after{content:'';position:absolute;top:0;height:var(--floral-height);width:min(50%,calc(var(--floral-height) * .888416578));z-index:-1;pointer-events:none;background-image:url(assets/floral-frame.webp);background-repeat:no-repeat;background-size:auto 100%}
.floral-sheet:before{left:0;background-position:left top}
.floral-sheet:after{right:0;background-position:right top}
.wedding-inner .floral-sheet:before,.wedding-inner .floral-sheet:after{position:fixed}
.masthead{position:relative;z-index:10;background:transparent;flex:none;padding:0;min-height:76px}
.navigation{width:min(660px,calc(100% - 64px));min-height:clamp(76px,7.1vw,100px);margin:auto;display:grid;grid-template-columns:minmax(0,1fr) max-content minmax(0,1fr);gap:24px;align-items:center;border-bottom:1px solid var(--line)}
/* The script has a wide trailing flourish; reserve space for its visible ink. */
.navigation>.brand{justify-self:center;padding-inline:16px 30px}
.nav-group{display:flex;align-items:center;gap:30px}.nav-left{justify-content:flex-end}.nav-right{justify-content:flex-start}.nav-group a{font:1rem/1.5 var(--sans);text-decoration:none;white-space:nowrap}.nav-group a:hover,.nav-group a[aria-current]{text-decoration:underline;text-decoration-thickness:1px}.brand{font:2.65rem/1.2 var(--script);text-align:center;text-decoration:none;white-space:nowrap}.menu-toggle{display:none}.nav-group .nav-invitation{display:none}
.home-main{display:flex;flex:1;width:100%}.hero{display:flex;align-items:center;justify-content:center;width:100%;text-align:center;padding:22px 0 32px}.hero-content{width:min(860px,70vw);display:flex;align-items:center;flex-direction:column}.church-art{width:min(43vw,570px);height:auto;mix-blend-mode:multiply;-webkit-mask-image:radial-gradient(ellipse 50% 48% at 50% 50%,#000 80%,transparent 99%);mask-image:radial-gradient(ellipse 50% 48% at 50% 50%,#000 80%,transparent 99%);margin:-32px auto -55px}.hero .invitation{font:400 clamp(1.95rem,4.15vw,3.75rem)/1.15 var(--script);margin:0;white-space:nowrap}.hero h1{font:400 clamp(3.4rem,5.65vw,5.25rem)/1.16 var(--script);margin:2px 0 12px;white-space:nowrap}.hero-date{font:clamp(1.25rem,2.15vw,1.65rem)/1.4 var(--script);margin:5px 0 16px}.hero-date>span{white-space:nowrap}.hero .btn{font:1.75rem/1.35 var(--script);min-height:48px;padding:5px 27px;margin-top:0}
/* Outline the glyphs in paper colour while preserving the fine script strokes. */
.hero .invitation,.hero h1,.hero-date{text-shadow:1px 0 0 var(--paper),-1px 0 0 var(--paper),0 1px 0 var(--paper),0 -1px 0 var(--paper),1px 1px 0 var(--paper),-1px -1px 0 var(--paper),1px -1px 0 var(--paper),-1px 1px 0 var(--paper)}
@supports(paint-order:stroke fill){.hero .invitation,.hero h1,.hero-date{-webkit-text-stroke:15px var(--paper);paint-order:stroke fill;text-shadow:none}}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;border:1px solid #bac9c8;border-radius:2px;padding:10px 26px;background:var(--blue);color:var(--ink);font:1.25rem/1.35 var(--serif);text-decoration:none;transition:filter .15s,transform .15s}.btn:hover{filter:brightness(.98);transform:translateY(-1px)}.watercolor-button{position:relative;isolation:isolate;border:0;background:transparent;text-decoration:none}.watercolor-button:before{content:'';position:absolute;inset:0 -9px;z-index:-1;background:url(assets/watercolor-wash.webp) center center/100% 140% no-repeat;pointer-events:none}.watercolor-button:hover:before{filter:brightness(.97)}.text-link{display:inline-flex;align-items:center;gap:10px;font:1rem/1.5 var(--sans);text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:3px}.text-link:hover{border-color:var(--green)}
.footer{position:relative;flex:none;background:var(--paper);border-top:1px solid var(--line);padding:7px 20px}.footer-inner{width:min(880px,70vw);min-height:42px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) max-content minmax(0,1fr);align-items:center;gap:32px}.footer .brand{font-size:2.2rem;justify-self:center;padding-right:14px}.footer-rsvp{justify-self:start;padding:6px 20px;font:1rem/1.5 var(--serif)}.footer-copyright{justify-self:end;margin:0;padding:7px 20px;font:.8125rem/1.5 var(--sans)}.footer-copyright:before{filter:hue-rotate(260deg) saturate(.55);opacity:.75}
/* The information pages use the same floral paper and narrow, readable centre. */
.content-page{position:relative;flex:1;width:min(850px,64vw);margin:0 auto;padding:42px 0 55px}.content-schedule{padding-bottom:35px}.page-inner{background:rgba(252,252,247,.93);padding:6px 24px 24px}.content-travel>.page-inner,.content-details>.page-inner{padding-inline:44px}.section{padding:20px 0}.section .eyebrow{color:var(--muted)}.content-page .section-head .eyebrow{margin-bottom:12px}.countdown-section{padding:15px 0 30px;border-bottom:1px solid var(--line);margin-bottom:28px}.countdown-wrap{text-align:center}.countdown-heading .eyebrow{display:none}.countdown-heading h2{font-size:2.8rem;margin-bottom:20px}.countdown{display:flex;gap:32px;justify-content:center;text-align:center}.countdown-unit{min-width:57px}.countdown strong{font:2.8rem/1.1 var(--serif);display:block;font-variant-numeric:tabular-nums}.countdown span{font: .75rem/1.5 var(--sans);letter-spacing:.08em}.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px}.venue{text-align:center;padding:0 8px}.venue-number{display:none}.venue .eyebrow{font-size:1.125rem;margin-bottom:10px}.venue h3{font-size:1.85rem;margin-bottom:15px}.venue address{font:1.125rem/1.5 var(--serif);max-width:280px;margin:0 auto 22px;color:var(--muted)}.venue+.venue{border-left:1px solid var(--line);padding-left:24px}.village{margin:36px auto 0;border-top:1px solid var(--line);padding-top:26px;max-width:650px;text-align:center}.village h3{margin-bottom:14px}.village p{margin-bottom:0}
.schedule-inner{max-width:600px}.schedule-heading{text-align:center;margin-bottom:35px}.schedule-heading h2{margin-bottom:8px}.schedule-heading>.eyebrow{display:none}.schedule-date{font:1.1875rem/1.5 var(--serif);margin-bottom:0}.timeline{list-style:none;padding:0;margin:0 auto;width:fit-content;max-width:100%}.timeline li{display:grid;grid-template-columns:95px minmax(0,1fr);gap:35px;position:relative;padding:0 0 28px}.timeline li:last-child{padding-bottom:0}.timeline li:after{content:'';position:absolute;left:111px;top:14px;bottom:0;width:1px;background:var(--line)}.timeline li:last-child:after{display:none}.timeline li:before{content:'';position:absolute;left:108px;top:9px;width:7px;height:7px;border:1px solid var(--green);border-radius:50%;background:var(--paper);z-index:1}.timeline time{font:1.25rem/1.5 var(--serif);text-align:right}.timeline h3{font-size:1.7rem;margin-bottom:4px}.timeline p{font-size:1.0625rem;margin:0;color:var(--muted)}
.travel-feature{display:grid;grid-template-columns:.85fr 1.15fr;gap:32px;padding:24px 0 30px;border-block:1px solid var(--line);margin-bottom:12px}.travel-feature h3{font-size:2.2rem;margin:0 0 10px}.travel-feature .eyebrow{font-size:1rem;margin-bottom:8px}.travel-feature p{margin:0}.travel-feature h4{font-size:1.3rem;margin-bottom:8px}.feature-details>div+div{margin-top:22px}.place-list{display:grid;grid-template-columns:1fr 1fr;column-gap:35px}.place-list details{border-bottom:1px solid var(--line);padding:17px 0;align-self:start}.place-list summary{display:flex;gap:15px;justify-content:space-between;align-items:center;cursor:pointer;list-style:none;min-height:46px}.place-list summary::-webkit-details-marker{display:none}.place-name{font:1.625rem/1.3 var(--serif);display:block}.place-distance{font-size:.9375rem;color:var(--muted);display:block;margin-top:2px}.expander{font:1.4rem var(--sans);transition:transform .2s}.place-list details[open] .expander{transform:rotate(45deg)}.place-list details p{font-size:1.0625rem;line-height:1.6;margin:15px 20px 0 0;color:var(--muted)}.pubs{text-align:center;margin-top:36px}.pubs h3{font-size:2rem;margin-bottom:12px}.pubs>p{font-size:1.0625rem;color:var(--muted)}.pub-list{list-style:none;display:flex;justify-content:center;flex-wrap:wrap;gap:10px 22px;margin:20px 0;padding:0}.pub-list a{font-size:1.1rem}.taxis-section{padding:30px 0 0;margin-top:20px;border-top:1px solid var(--line)}.taxis-inner>div{text-align:center}.taxis-inner h2{font-size:3rem;margin-bottom:10px}.taxis-inner .eyebrow{display:none}.taxis-inner p{max-width:580px;margin:0 auto 24px}.taxi-list{padding:0;margin:0;list-style:none}.taxi-list li{border-bottom:1px solid var(--line)}.taxi-list a{display:flex;justify-content:space-between;gap:15px;text-decoration:none;padding:13px 0;font-size:1.0625rem}.taxi-list a:hover{text-decoration:underline}.phone{white-space:nowrap;font-variant-numeric:tabular-nums}.content-registry{display:flex;align-items:center;justify-content:center}.content-registry .page-inner{width:100%}.registry-section{text-align:center;padding:55px 0 70px}.registry-section .script{font-size:2.8rem;margin:20px 0}.registry-section .btn{margin-top:5px}
/* The existing WordPress RSVP flow, styled as matching stationery. */
.form-page{position:relative;flex:1;width:100%;padding:35px 0 55px}.form-wrap{width:min(650px,64vw);background:rgba(252,252,247,.95);padding:15px 25px 25px}.form-header{text-align:center}.form-header h1{font:3.8rem/1.3 var(--script);margin:18px 0}.form-header p{max-width:500px;margin-inline:auto}.form-header .deadline{font-size:1.125rem}.rsvp-form{padding:25px 5px 0;margin:10px 0 0}.form-field{margin-bottom:22px}.form-field label,.form-field legend{display:block;font:1.0625rem/1.5 var(--sans);margin-bottom:8px}input[type=text],input[type=email],textarea{background:#fffefa;color:var(--ink);width:100%;border:1px solid #a7b39e;border-radius:2px;padding:11px 13px;min-height:48px;font:1rem/1.6 var(--sans)}textarea{resize:vertical;min-height:100px}input::placeholder,textarea::placeholder{color:#677160;opacity:1}.form-field small{display:block;font-size:.9375rem;color:var(--muted);margin-top:6px}fieldset.form-field{border:0;padding:0;margin-inline:0}.radio-options{display:flex;gap:12px}.radio-options label{background:#fffefa;border:1px solid #a7b39e;padding:12px;display:flex;gap:9px;align-items:center;flex:1;cursor:pointer;font-size:.875rem;margin:0}.radio-options label:has(input:checked){background:var(--pale);border-color:var(--green)}input[type=radio]{accent-color:var(--green);width:18px;height:18px;flex-shrink:0}.form-required{font-size:.9375rem;color:var(--muted);margin-bottom:22px}.form-note{font-size:.9375rem;color:var(--muted);line-height:1.5;margin:18px 0 0}.form-status{padding:18px;background:var(--pale);border-left:3px solid var(--green);margin-bottom:24px}.form-status.error{background:#f8ece6;border-color:#aa4b36}.form-status:empty{display:none}.preview-note{font: .875rem/1.6 var(--sans);background:var(--blue);padding:13px 17px;margin-top:22px;border-radius:2px}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.rsvp-form .btn{width:100%}.back-link{font-size:.875rem}.general-page{flex:1;padding:50px 0}.general-page .wrap{width:min(750px,65vw);background:rgba(252,252,247,.94);padding:20px}
@media(max-width:1000px){.navigation{gap:18px}.nav-group{gap:24px}.nav-group a{font-size:.9375rem}.brand{font-size:2.4rem}.hero-content{width:74vw}.hero .invitation{font-size:4.15vw}.hero h1{font-size:5.85vw}.hero-date{font-size:2.2vw}.content-page{width:68vw}.page-inner{padding-inline:12px}.content-travel>.page-inner,.content-details>.page-inner{padding-inline:32px}.form-wrap{width:68vw}.footer-inner{width:75vw}.footer-copyright{font-size:.75rem;padding-inline:8px}}
@media(max-width:720px){body{font-size:1.125rem}.floral-sheet{--floral-height:max(560px,calc(100svh - 64px))}.floral-sheet:before,.floral-sheet:after{width:18%}.wedding-inner .floral-sheet:before,.wedding-inner .floral-sheet:after{position:fixed}.navigation{width:calc(100% - 64px);min-height:72px;display:flex;justify-content:space-between;gap:12px}.navigation>.brand{order:-1;justify-self:start;padding:0 14px 0 0}.brand{font-size:2.35rem}.menu-toggle{display:flex;align-items:center;gap:9px;font: .875rem var(--sans);background:var(--paper);color:var(--ink);border:1px solid var(--line);padding:8px 11px;min-height:42px}.menu-toggle svg{width:18px;height:18px}.nav-group{display:none}.navigation.menu-open{display:grid;grid-template-columns:1fr auto;grid-template-rows:minmax(72px,auto);gap:0}.navigation.menu-open>.brand{grid-row:1;grid-column:1;text-align:left}.navigation.menu-open>.menu-toggle{grid-row:1;grid-column:2}.navigation.menu-open .nav-group{display:flex;grid-column:1/-1;flex-direction:column;background:var(--paper);gap:0;align-items:stretch;padding:0 0 10px}.navigation.menu-open .nav-invitation{display:block}.navigation.menu-open .nav-left{grid-row:2}.navigation.menu-open .nav-right{grid-row:3}.nav-group a{padding:10px;font-size:1rem;text-align:center}.hero{padding:30px 0 38px}.hero-content{width:calc(100% - 62px)}.church-art{width:min(108%,350px);max-width:none;margin:-24px auto -26px;align-self:center}.hero .invitation{font-size:clamp(1.65rem,6.4vw,2.5rem);line-height:1.3;white-space:normal;max-width:190px;margin-bottom:5px}.hero h1{font-size:clamp(2.9rem,11.5vw,4.4rem);line-height:1.2;white-space:normal;max-width:180px;margin:0 0 15px}.hero-date{font-size:1.25rem;line-height:1.5;margin:0 0 18px}.hero-date>span{display:block;white-space:normal}.hero-date .date-separator{display:none}.hero .btn{font-size:1.6rem;min-height:47px;padding-inline:22px}.footer{padding:8px 12px}.footer-inner{width:100%;gap:12px;grid-template-columns:minmax(0,1fr) max-content minmax(0,1fr);min-height:44px}.footer .brand{font-size:2rem}.footer-rsvp{font-size:.9375rem;padding:5px 4px;justify-self:center;max-width:100%;min-width:0;text-align:center}.footer-rsvp:before{inset:0}.footer-copyright{font-size:.55rem;text-align:center;padding:5px 6px;justify-self:center;max-width:100%;min-width:0;overflow-wrap:anywhere}.footer-copyright:before{inset:0}.content-page{width:calc(100% - 54px);padding:25px 0 38px}.content-schedule{padding-bottom:18px}.page-inner{padding:7px 8px 20px}.content-travel>.page-inner,.content-details>.page-inner{padding-inline:28px}.section{padding:15px 0}.section-head{margin-bottom:25px}h2,.page-title{font-size:2.8rem}.countdown-heading h2{font-size:2.3rem}.countdown{gap:13px}.countdown-unit{min-width:44px}.countdown strong{font-size:2.4rem}.countdown span{font-size:.75rem}.details-grid{grid-template-columns:1fr;gap:28px}.venue+.venue{border-left:0;border-top:1px solid var(--line);padding:24px 8px 0}.venue h3{font-size:1.75rem}.village{margin-top:28px;padding-top:23px}.village h3{font-size:1.6rem}.schedule-heading{margin-bottom:27px}.timeline li{grid-template-columns:68px minmax(0,1fr);gap:25px;padding-bottom:23px}.timeline li:after{left:79px}.timeline li:before{left:76px}.timeline time{font-size:1.0625rem}.timeline h3{font-size:1.45rem}.timeline p{font-size:1rem}.travel-feature{grid-template-columns:1fr;gap:24px;padding:20px 0 24px}.place-list{grid-template-columns:1fr}.place-name{font-size:1.5rem}.place-list details p{margin-right:0}.pubs{margin-top:27px}.pub-list{flex-direction:column;gap:12px}.pub-list a{font-size:1.0625rem}.taxis-inner h2{font-size:2.6rem}.taxi-list a{flex-direction:column;gap:1px;padding:12px 0}.phone{font-family:var(--sans);font-size:.875rem}.registry-section{padding:40px 0 50px}.form-page{padding:25px 0 38px}.form-wrap{width:calc(100% - 48px);padding:7px 10px 20px}.form-header h1{font-size:3.4rem}.rsvp-form{padding:20px 0 0}.radio-options{flex-direction:column;gap:8px}.form-field label,.form-field legend{font-size:.9375rem}.general-page .wrap{width:calc(100% - 50px);padding:10px}}
@media(min-width:721px) and (max-height:650px){.navigation{min-height:72px}.hero{padding:4px 0 25px}.church-art{width:min(42vw,450px);margin-top:-32px;margin-bottom:-53px}.hero .invitation{font-size:min(4.1vw,42px)}.hero h1{font-size:min(5.65vw,62px);margin-bottom:7px}.hero-date{font-size:min(2.1vw,23px);margin-bottom:12px}.hero .btn{min-height:44px;font-size:1.625rem}.footer{padding-block:4px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
@media print{.masthead,.footer,.btn,.floral-sheet:before,.floral-sheet:after{display:none}.floral-sheet{background:none!important}.page-inner{background:white}.content-page{width:100%;padding:0}.hero{padding:20px}.countdown-section{display:none}}
