
:root{
  --blue:#71A5D3;
  --cream:#FDFCF6;
  --ink:#25496d;
  --soft:#4c7094;
  scroll-behavior:smooth;
}
*{box-sizing:border-box}
html{scroll-padding-top:78px}
body{margin:0;background:var(--cream);color:var(--ink);font-family:'Libre Baskerville',Georgia,serif;font-size:14px;line-height:1.9;-webkit-font-smoothing:antialiased}
a{color:inherit}img{max-width:100%;height:auto;display:block}h1,h2,h3,h4,p,figure{margin:0}
p+p{margin-top:18px}
.shell{width:min(1160px,calc(100% - 64px));margin:0 auto}
.section{padding:92px 0}.compact-section{padding:70px 0}
.ocean{background:var(--blue);color:var(--cream)}.ivory{background:var(--cream);color:var(--ink)}
.skip-link{position:absolute;left:12px;top:-60px;background:var(--cream);padding:10px 14px;z-index:1000}.skip-link:focus{top:12px}
.section-head{text-align:center;margin:0 auto 52px}.section-head h2{font-family:'Tangerine',cursive;font-size:clamp(66px,8vw,104px);font-weight:400;line-height:.8;margin-bottom:18px}.section-head p{max-width:720px;margin:18px auto 0}
.ornament{display:block;width:58px;height:1px;background:currentColor;opacity:.65;margin:0 auto}
.site-header{position:absolute;inset:0 0 auto 0;z-index:20;color:var(--cream)}
.nav-wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;height:86px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand__mark{width:46px;height:46px;object-fit:contain}
.brand__text{font-family:'Tangerine',cursive;font-size:40px;line-height:1;color:var(--cream)}
.brand__text em{font-style:normal;font-family:'Libre Baskerville',serif;font-size:16px;margin:0 1px}
.nav-links{display:flex;align-items:center;gap:clamp(12px,2vw,28px)}
.nav-links a{text-decoration:none;text-transform:uppercase;letter-spacing:.16em;font-size:10px}
.menu-toggle{display:none;background:transparent;color:var(--cream);border:1px solid rgba(253,252,246,.7);padding:9px 12px;font:inherit;letter-spacing:.14em;text-transform:uppercase}
.hero{min-height:100svh;display:flex;align-items:center;padding-top:88px}
.hero__inner{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:calc(100svh - 88px);padding:40px 0 56px}
.eyebrow{text-transform:uppercase;letter-spacing:.34em;font-size:11px}
.hero h1{font-family:'Tangerine',cursive;font-weight:400;font-size:clamp(110px,14vw,200px);line-height:.88;margin-top:22px;white-space:nowrap}
.hero h1 span{font-size:.62em}
.hero__date,.hero__coords{text-transform:uppercase;letter-spacing:.24em}
.hero__date{font-size:17px;margin-top:18px}.hero__coords{font-size:12px;margin-top:24px;opacity:.95}
.countdown{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;margin-top:34px}
.countdown__item{min-width:108px;padding:14px 18px 12px;border:1px solid rgba(253,252,246,.55);background:rgba(253,252,246,.08)}
.countdown__item span{display:block;font-size:34px;line-height:1.05;letter-spacing:.04em}
.countdown__item small{display:block;text-transform:uppercase;letter-spacing:.18em;font-size:9px;margin-top:8px}
.hero__art{width:min(840px,100%);margin-top:46px;color:var(--cream);opacity:.98}
.church-illustration{width:100%;height:auto}
.intro__grid{display:grid;grid-template-columns:.95fr 1.25fr;gap:58px;align-items:center}
.intro__text{text-align:center}.intro__text h2{font-family:'Tangerine',cursive;font-size:clamp(72px,8vw,102px);font-weight:400;line-height:.8;margin-bottom:20px}.intro__text p{max-width:470px;margin-left:auto;margin-right:auto}
.intro__photos{display:grid;grid-template-columns:1fr 1fr;gap:14px}.intro__photos figure{aspect-ratio:3/4;overflow:hidden;background:#ebeff2}.intro__photos img{width:100%;height:100%;object-fit:cover}
.town{padding:56px 0}.town__shell{display:flex;justify-content:center}.town-illustration{width:100%;max-width:1140px;height:auto;color:var(--cream);opacity:.95}
.days{display:grid;grid-template-columns:1fr 1fr;gap:76px}.day+.day{border-left:1px solid #c8d9e7;padding-left:76px}.day__header{text-align:center;min-height:94px}.day__header h3{font-size:16px;letter-spacing:.16em;text-transform:uppercase;font-weight:400}.day__header p{font-size:12px;font-style:italic;margin-top:8px}
.timeline-entry{display:grid;grid-template-columns:74px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid #dbe5ed}.timeline-entry:last-child{border-bottom:none}.timeline-entry time{font-size:14px;white-space:nowrap}.timeline-entry h4{font-size:14px;line-height:1.4}.timeline-entry p{font-size:12px;line-height:1.8;margin-top:6px}
.venues{display:grid;grid-template-columns:1fr 1fr}.venue{padding:0 72px;text-align:center}.venue+.venue{border-left:1px solid rgba(253,252,246,.55)}.venue-icon{width:136px;height:108px;margin:0 auto 20px;display:block}.venue h3{font-size:15px;letter-spacing:.18em;text-transform:uppercase;font-weight:400;margin-bottom:18px}.venue p{max-width:380px;margin:0 auto 14px;font-size:12px;line-height:1.9}.outline-button{display:inline-block;text-decoration:none;text-transform:uppercase;letter-spacing:.16em;font-size:10px;border:1px solid var(--cream);padding:12px 18px;margin-top:10px}
.prose-section{max-width:800px;text-align:center}.prose-section p{max-width:740px;margin-left:auto;margin-right:auto}
.info-grid{display:grid;grid-template-columns:repeat(4,1fr)}.info-grid article{text-align:center;padding:8px 26px;border-right:1px solid #ced9e3}.info-grid article:last-child{border-right:none}.info-icon{font-size:34px;height:52px}.info-grid h3{font-size:14px;letter-spacing:.16em;text-transform:uppercase;font-weight:400;margin-bottom:14px}.info-grid p{font-size:11px;line-height:1.85}
.osa-section{border-top:1px solid #e3eaf0}.tally-wrapper{max-width:640px;margin:38px auto 0}.tally-placeholder{border:1px solid #bfd2e0;background:rgba(113,165,211,.08);min-height:270px;padding:42px 30px;text-align:center}.tally-placeholder__icon{font-size:34px;line-height:1}.tally-placeholder h3{margin:12px 0 10px;font-size:15px;letter-spacing:.16em;text-transform:uppercase;font-weight:400}.tally-placeholder p{font-size:12px}.tally-iframe{display:block;width:100%;min-height:560px;border:0;background:transparent}
.footer{padding:72px 0 24px}.footer-columns{display:grid;grid-template-columns:1fr 1fr;gap:44px;max-width:760px;margin:0 auto;text-align:center}.footer-columns h3{font-size:15px;letter-spacing:.16em;text-transform:uppercase;font-weight:400;margin-bottom:16px}.footer-columns p{font-size:12px}.footer-columns p+p{margin-top:16px}.footer-columns a{text-decoration:none}.footer-mark-wrap{display:flex;justify-content:center;margin:46px 0 0}.footer-mark{width:86px;height:86px;object-fit:contain;background:rgba(253,252,246,.14);border-radius:50%;padding:4px}.footer-bottom{text-align:center;letter-spacing:.18em;text-transform:uppercase;font-size:9px;opacity:.78;margin-top:22px}
.reveal{opacity:1;transform:none}.js-loaded .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}.js-loaded .reveal.in-view{opacity:1;transform:none}
@media (max-width: 920px){
  .menu-toggle{display:block}.nav-links{display:none;position:absolute;top:74px;left:20px;right:20px;background:var(--cream);color:var(--ink);padding:22px;flex-direction:column;align-items:flex-start;box-shadow:0 18px 42px rgba(37,73,109,.15)}.nav-links.is-open{display:flex}.nav-links a{font-size:12px;padding:6px 0}
  .intro__grid{grid-template-columns:1fr;gap:42px}.days{gap:38px}.day+.day{padding-left:38px}.venue{padding:0 28px}
}
@media (max-width: 680px){
  .shell{width:calc(100% - 36px)} body{font-size:12px;line-height:1.85}.section{padding:74px 0}.nav-wrap{height:76px}
  .brand__mark{width:40px;height:40px}.brand__text{font-size:32px}.hero h1{font-size:clamp(88px,23vw,132px);white-space:normal}.hero__date{font-size:13px}.hero__coords{font-size:10px;letter-spacing:.16em}.countdown{gap:10px}.countdown__item{min-width:90px;padding:12px 12px 10px}.countdown__item span{font-size:28px}.hero__art{margin-top:34px}
  .intro__photos{gap:10px}.days{grid-template-columns:1fr;gap:56px}.day+.day{padding:32px 0 0;border-left:0;border-top:1px solid #c8d9e7}.venues{grid-template-columns:1fr;gap:34px}.venue{padding:0 8px}.venue+.venue{border-left:0;border-top:1px solid rgba(253,252,246,.55);padding-top:34px}.info-grid{grid-template-columns:1fr 1fr;row-gap:24px}.info-grid article{border-right:none;padding:4px 10px}.info-grid article:nth-child(odd){border-right:1px solid #ced9e3}.footer-columns{grid-template-columns:1fr;gap:34px}.footer-mark{width:74px;height:74px}
}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.js-loaded .reveal,.js-loaded .reveal.in-view{opacity:1;transform:none;transition:none}}

/* Version 4: transparent monogram, active seconds countdown, Bovall coordinates. */
.brand__mark,.footer-mark{background:transparent!important;border:0!important;padding:0!important;border-radius:0!important;filter:none!important}
.countdown__label{font-size:10px;letter-spacing:.24em;text-transform:uppercase;margin-top:29px}
.countdown{margin-top:16px}
.countdown__item{min-width:94px}
.town__shell{flex-direction:column;align-items:center}
.town__coords{font-size:11px;letter-spacing:.23em;text-transform:uppercase;text-align:center;margin-top:25px;color:var(--cream)}
.welcome-program{max-width:710px;margin:0 auto;text-align:center}
.welcome-program h3{font-size:15px;letter-spacing:.17em;text-transform:uppercase;font-weight:400;margin-bottom:26px}
.welcome-program p{font-size:13px;line-height:2}
@media(max-width:680px){
 .countdown{gap:8px}.countdown__item{min-width:75px;padding:12px 9px 10px}.countdown__item span{font-size:25px}.countdown__item small{font-size:8px;letter-spacing:.1em}
 .town__coords{font-size:9px;letter-spacing:.11em;margin-top:20px}
 .welcome-program p{font-size:12px}
}

/* Version 5: Originalillustrationer används exakt utan nyritning. */
.hero__art{display:block;width:min(850px,100%);margin:44px auto 0;opacity:1;aspect-ratio:auto}
.hero__art img{display:block;width:100%;height:auto;max-height:540px;object-fit:contain}
.town__art{display:block;width:100%;max-width:1140px;margin:0 auto}
.town__art img{display:block;width:100%;height:auto;max-height:560px;object-fit:contain}
.image-stage{position:relative;color:var(--cream);background:transparent}
.image-stage__placeholder{display:none;border:1px dashed rgba(253,252,246,.7);padding:58px 16px;text-align:center;letter-spacing:.05em;line-height:1.7;font-size:12px}
.image-stage.is-missing img{display:none}
.image-stage.is-missing .image-stage__placeholder{display:block}
.image-stage--hero.is-missing{max-width:800px;width:100%}
.image-stage--town.is-missing{width:100%}
@media(max-width:680px){.hero__art{margin-top:34px}.image-stage__placeholder{padding:38px 18px}}

/* Version 6: exact supplied illustration files inserted on page. */
.hero__art.image-stage,.town__art.image-stage{opacity:1}
.hero__art.image-stage img,.town__art.image-stage img{background:transparent}

/* Version 7: original user-provided pictures, background unified with #71A5D3. */
.hero__inner{justify-content:flex-start;gap:0;padding-top:30px;padding-bottom:68px;min-height:calc(100svh - 86px)}
.hero__art{order:0;display:flex;justify-content:center;align-items:flex-end;width:min(900px,100%);margin:0 auto 8px!important}
.hero__art img{display:block;width:auto!important;max-width:100%;max-height:490px!important;object-fit:contain!important;mix-blend-mode:normal!important}
.hero__inner > .eyebrow{margin-top:0}
.hero h1{margin-top:14px;font-size:clamp(105px,12vw,178px)}
.hero__date{margin-top:8px}
.countdown__label{margin-top:22px}
.town__art{width:min(1100px,100%);margin:0 auto}
.town__art img{display:block;width:auto!important;max-width:100%;max-height:610px!important;margin:0 auto;object-fit:contain!important;mix-blend-mode:normal!important}
@media(max-width:680px){
 .hero__inner{padding-top:24px;min-height:calc(100svh - 76px);padding-bottom:54px}
 .hero__art{width:100%;margin:0 auto 14px!important}
 .hero__art img{max-height:340px!important;max-width:100%}
 .hero h1{font-size:clamp(86px,20vw,130px);margin-top:10px}
 .town__art img{max-height:455px!important}
}

/* Version 8: centered monogram and full weekend program restored. */
.site-header{display:flex;flex-direction:column;align-items:stretch}
.masthead{position:relative;display:flex;align-items:center;justify-content:center;height:84px;flex-shrink:0}
.masthead .brand{position:relative;display:flex;justify-content:center;align-items:center;width:68px;height:72px;gap:0;margin:0 auto}
.masthead .brand__mark{display:block;width:64px;height:64px;object-fit:contain;filter:none}
.nav-wrap{height:42px;display:flex;align-items:center;justify-content:center}
.nav-wrap .nav-links{display:flex;align-items:center;justify-content:center;gap:clamp(16px,2.5vw,32px)}
.hero{padding-top:126px}
.hero__inner{min-height:auto;padding-top:22px;padding-bottom:54px}
.hero__art{margin:0 auto 14px!important}
.hero__art img{max-height:420px!important;width:auto!important;max-width:100%;margin:0 auto;display:block}
.town__shell{display:flex;flex-direction:column;align-items:center;opacity:1!important;transform:none!important}
.town__art{max-width:1100px;margin:0 auto}
.town__art img{display:block;width:100%!important;height:auto!important;max-width:100%;max-height:none!important;object-fit:contain;opacity:1}
.town__coords{margin-top:24px}
@media(max-width:920px){
  .nav-wrap{height:0}
  .nav-wrap .nav-links{display:none;position:absolute;top:82px;left:18px;right:18px;background:var(--cream);color:var(--ink);padding:20px;flex-direction:column;align-items:stretch;z-index:40}
  .nav-wrap .nav-links.is-open{display:flex}
  .masthead .menu-toggle{display:block;position:absolute;right:0;top:23px;z-index:45}
  .hero{padding-top:86px}
}
@media(max-width:680px){
  .masthead{height:78px}
  .masthead .brand__mark{width:56px;height:56px}
  .masthead .menu-toggle{top:19px}
  .hero{padding-top:78px}
  .hero__inner{min-height:auto;padding-top:20px;padding-bottom:55px}
  .hero__art img{max-height:390px!important}
  .town__art img{max-height:none!important;width:100%!important}
  .town__coords{margin-top:16px}
}

/* Version 9: ortsnamn mellan illustration och koordinater. */
.town__title{font-family:'Tangerine',cursive;font-size:clamp(70px,8vw,105px);font-weight:400;line-height:1;text-align:center;margin:12px 0 0;color:var(--cream)}
.town__coords{margin-top:10px}
@media(max-width:680px){.town__title{font-size:76px;margin-top:9px}.town__coords{margin-top:8px}}

/* RSVP embed: generous fallback height until Tally adjusts it. */
.tally-iframe{min-height:760px}
