*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:#17334b;background:#f7f5f0;font-family:Montserrat,Arial,sans-serif}
a{color:inherit}
.topbar{position:absolute;z-index:5;top:0;left:0;width:100%;min-height:78px;padding:15px 4.5%;display:flex;align-items:center;justify-content:space-between;color:#fff;border-bottom:1px solid #ffffff55;background:linear-gradient(#102a4330,transparent)}
.brand{font-family:"Cormorant Garamond",serif;font-size:29px;font-style:italic;letter-spacing:.08em;text-decoration:none}
.brand-logo{display:block;width:auto;height:48px;max-width:76px;object-fit:contain;filter:drop-shadow(0 1px 2px #102a4366)}
.topbar nav{display:flex;align-items:center;justify-content:center;gap:clamp(14px,3vw,48px);margin:auto;font-size:10px;letter-spacing:.16em;text-transform:uppercase}
.topbar nav a{text-decoration:none;padding:10px 0;border-bottom:1px solid transparent}
.topbar nav a:hover{border-color:#fff}
.topbar nav .nav-cta{border:1px solid #ffffffa8;padding:13px 19px}
.menu-toggle{display:none;color:white;background:none;border:0;font-size:25px}
.hero{position:relative;width:100%;line-height:0;background:#18334d;overflow:hidden}
.hero::after{content:"";position:absolute;z-index:0;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 52%,#102a431c 74%,#102a4350 100%)}
.hero > img{display:block;width:100%;height:clamp(620px,100vh,1000px);object-fit:cover;object-position:center}
.hero-actions{position:absolute;z-index:2;top:66%;left:50%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;column-gap:clamp(18px,2vw,30px);width:min(540px,calc(100% - 40px));transform:translateX(-50%)}
.hero-lockup{position:absolute;z-index:1;top:17%;left:50%;width:min(90%,500px);transform:translateX(-50%);color:#17334b;text-align:center;text-shadow:0 1px 5px #fff8;pointer-events:none}
.hero-lockup::before{content:"";position:absolute;z-index:-1;inset:-28px -34px;border-radius:50%;background:radial-gradient(ellipse at center,#f5e3bfa8 0%,#f6e9cd5c 48%,transparent 75%);filter:blur(10px)}
.hero-lockup-logo{display:block;width:min(30vw,170px);height:auto;margin:0 auto 4px;filter:drop-shadow(0 2px 3px #fff8)}
.hero-couple{margin:0;white-space:nowrap;font:italic 400 clamp(42px,5.4vw,70px)/.9 "Libre Caslon Condensed","Cormorant Garamond",serif;letter-spacing:0}
.hero-date{margin:24px 0 0;font:500 clamp(19px,2.2vw,28px)/1 "Cormorant Garamond",serif;letter-spacing:.22em}
.hero-rule{display:block;width:42px;height:1px;margin:13px auto 12px;background:#17334b}
.hero-eyebrow{margin:0;font:600 10px/1 Montserrat,sans-serif;letter-spacing:.4em}
.hero-hotspot{position:relative;z-index:2;display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;width:auto;padding:13px 22px;border:1px solid #ffffffd0;border-radius:2px;color:#fff;background:transparent;backdrop-filter:blur(4px);font:500 10px/1 Montserrat,sans-serif;letter-spacing:.15em;text-align:center;text-decoration:none;text-transform:uppercase;transition:background .25s ease,border-color .25s ease,box-shadow .25s ease,color .25s ease}
.hero-hotspot.discover{justify-self:end;background:#f7f5f0;color:#17334b;border-color:#f7f5f0}
.hero-hotspot.rsvp{justify-self:start;text-shadow:0 1px 4px #102a43cc}
.hero-hotspot:focus-visible{outline:2px solid #fff;outline-offset:4px}
.hero-hotspot:hover{background:#f7f5f0e8;border-color:#f7f5f0;color:#17334b;box-shadow:0 8px 24px #102a4366}
.hero-hotspot.discover:hover{background:#17334b;border-color:#17334b;color:#fff}
.hero-hotspot.rsvp:hover,.hero-hotspot.rsvp:focus-visible{background:#f7f5f0;border-color:#f7f5f0;color:#17334b;box-shadow:none;text-shadow:none}
.section{padding:100px 24px;max-width:1080px;margin:0 auto;text-align:center}
.eyebrow{font-size:10px;letter-spacing:.34em;font-weight:600;color:#b18a4c}
.section h1,.section h2{font-family:"Cormorant Garamond",serif;font-weight:400;font-size:clamp(42px,6vw,68px);line-height:1;margin:15px 0 20px}
.lead{font-family:"Cormorant Garamond",serif;font-size:25px;color:#6c7479}
.date-card{display:flex;justify-content:center;align-items:center;gap:14px;margin:35px auto 0;font-family:"Cormorant Garamond",serif;font-size:32px;flex-wrap:wrap;max-width:330px}
.date-card i{font-style:normal;color:#b18a4c}
.date-card small{display:block;flex-basis:100%;font:10px Montserrat,sans-serif;letter-spacing:.28em;margin-top:12px}
.places-section{padding-bottom:100px}
.places-heading{padding-bottom:55px}
.places-lead{max-width:520px;margin:0 auto;color:#6c7479;font-family:"Cormorant Garamond",serif;font-size:23px;line-height:1.35}
.place-row{display:grid;grid-template-columns:1fr 1fr;max-width:1200px;min-height:380px;margin:0 auto;background:#eef0ed}
.place-row + .place-row{margin-top:24px}
.place-row-reverse{background:#f3f0e9}
.place-row-reverse .place-copy{grid-column:2;grid-row:1}
.place-row-reverse .place-photo{grid-column:1;grid-row:1}
.place-copy{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:55px clamp(28px,6vw,90px);text-align:center}
.place-copy h3{max-width:430px;margin:16px 0 0;font:400 clamp(34px,4vw,52px)/.98 "Cormorant Garamond",serif}
.place-copy h3 a{text-decoration:none;border-bottom:1px solid #b18a4c66;transition:border-color .25s ease,color .25s ease}
.place-copy h3 a:hover,.place-copy h3 a:focus-visible{color:#b18a4c;border-color:#b18a4c;outline:none}
.place-photo{min-height:380px}
.place-photo img{display:block;width:100%;height:100%;min-height:380px;object-fit:cover}
.bus{max-width:980px}
.bus-intro{max-width:560px;margin:0 auto;color:#5b6870;font-size:14px;line-height:1.7}
.bus-notice{display:inline-block;margin:24px 0 0;padding:9px 14px;background:#f3f0e9;color:#9b8054;font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.bus-routes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:34px;text-align:left}
.bus-route{padding:28px clamp(22px,3vw,36px);background:#fff;border:1px solid #e9e5dd;box-shadow:0 15px 45px #102a4310}
.route-label{margin:0;color:#b18a4c;font:600 10px/1 Montserrat,sans-serif;letter-spacing:.24em}
.route-stops{--route-axis:7px;position:relative;margin:22px 0 0;padding:0;list-style:none}
.route-stops::before{content:"";position:absolute;top:21px;bottom:21px;left:var(--route-axis);width:2px;background:#d9c8a8;transform:translateX(-50%)}
.route-stops li{position:relative;padding:9px 0 9px 28px;color:#17334b;font:400 21px/1.15 "Cormorant Garamond",serif}
.route-stops li::before{content:"";position:absolute;z-index:1;top:50%;left:var(--route-axis);width:12px;height:12px;border:2px solid #b18a4c;border-radius:50%;background:#fff;transform:translate(-50%,-50%)}
.rsvp-section{max-width:720px;padding-top:85px;padding-bottom:100px}
.form-intro{color:#69767d;font-size:13px;margin-bottom:35px}
form{text-align:left;background:#fff;padding:clamp(22px,5vw,48px);box-shadow:0 15px 45px #102a4310;border:1px solid #e9e5dd}
.field{border:0;padding:0;margin:0 0 25px;min-width:0}
.final-message{margin-top:clamp(28px,4vw,36px)}
.field label,.field legend{display:block;font-size:11px;letter-spacing:.08em;font-weight:600;margin-bottom:11px}
.field label span{font-weight:400;color:#879097}
.field input:not([type=radio]),.field textarea{width:100%;border:1px solid #d9dfe0;background:#fcfcfa;padding:13px 14px;color:#17334b;font:13px Montserrat,sans-serif;outline:none;border-radius:0}
.field input:focus,.field textarea:focus{border-color:#b18a4c}
.choice{display:flex!important;align-items:center;gap:10px;font-weight:400!important;letter-spacing:0!important;margin:10px 0!important;color:#53636c}
.choice input{accent-color:#17334b}
.conditional[hidden]{display:none}
.decline{padding:18px;background:#f3f0e9;color:#5e6d72;font-family:"Cormorant Garamond",serif;font-size:21px;margin:0 0 24px}
.submit{width:100%;border:1px solid #17334b;background:#17334b;color:white;padding:16px;text-transform:uppercase;letter-spacing:.16em;font:600 10px Montserrat,sans-serif;cursor:pointer}
.submit:hover{background:#244b66}
.form-hint{font-size:10px;line-height:1.6;color:#7d898e;text-align:center;margin:14px 0 0}
.honeypot{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.submit:disabled{opacity:.65;cursor:wait}
.form-hint.error{color:#a34f45}
.form-section{margin-top:26px;padding-top:20px}
.form-section-label{margin:0 0 20px;color:#b18a4c;font:600 10px/1 Montserrat,sans-serif;letter-spacing:.24em}
.stepper{display:grid;grid-template-columns:44px minmax(0,120px) 44px;align-items:stretch;max-width:208px}
.stepper-button{border:1px solid #d9dfe0;background:#f3f0e9;color:#17334b;font:500 20px/1 Montserrat,sans-serif;cursor:pointer}
.stepper-button:hover{background:#e8e5dc}
.stepper-button:focus-visible{z-index:1;outline:2px solid #b18a4c;outline-offset:2px}
.stepper-button:disabled{opacity:.45;cursor:not-allowed}
.stepper input{text-align:center}
footer{padding:clamp(28px,4vw,36px) 20px;text-align:center;background:#102a43;color:#f7f5f0}
footer p{font-family:"Cormorant Garamond",serif;font-size:21px;line-height:1.2;margin:0 0 8px}
footer small{display:block;font-size:9px;line-height:1.2;letter-spacing:.3em;color:#d1b37d}
@media(max-width:700px){.topbar{min-height:64px;padding:12px 20px}
.brand{font-size:24px}
.brand-logo{height:39px;max-width:56px}
.menu-toggle{display:block}
.topbar nav{display:none;position:absolute;top:63px;left:0;width:100%;padding:20px;background:#102a43f2;flex-direction:column;gap:8px}
.topbar nav.open{display:flex}
.topbar nav a{padding:12px}
.hero > img{height:min(78vh,700px);min-height:520px;object-fit:cover;object-position:center}
.hero-lockup{top:11%;width:min(92%,390px)}
.hero-lockup-logo{width:92px;margin-bottom:8px}
.hero-couple{font-size:clamp(38px,11vw,54px)}
.hero-date{margin-top:19px;font-size:20px;letter-spacing:.14em}
.hero-rule{margin:11px auto 10px}
.hero-eyebrow{font-size:9px;letter-spacing:.32em}
.hero-actions{top:59%;left:50%;display:flex;align-items:center;width:calc(100% - 40px);max-width:none;flex-direction:column;gap:clamp(14px,3vh,24px);transform:translateX(-50%)}
.hero-hotspot{top:auto;left:auto!important;width:100%;max-width:270px;padding:13px 18px;white-space:nowrap;transform:none}
.hero-hotspot:hover{transform:none}
.section{padding:75px 22px}
.section h1,.section h2{font-size:47px}
.lead{font-size:22px}
.places-section{padding-bottom:75px}
.places-heading{padding:75px 22px 55px}
.places-lead{font-size:21px}
.place-row{display:flex;flex-direction:column;min-height:0;margin:0}
.place-row + .place-row{margin-top:18px}
.place-copy{min-height:270px;padding:60px 24px}
.place-copy h3{font-size:clamp(34px,10vw,46px)}
.place-photo{min-height:0}
.place-photo img{height:270px;min-height:0}
.bus-routes{grid-template-columns:1fr;gap:16px;margin-top:28px}
.bus-route{padding:24px 22px}
.route-stops{margin-top:18px}
.route-stops li{font-size:20px}
.rsvp-section{padding-top:70px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
.hero-hotspot{transition:none}
}
