/* An illustrated itinerary: an open, meandering composition instead of cards. */
.celebration-itinerary{overflow:clip;padding-top:44px;padding-bottom:0}
.page-main>.celebration-itinerary:first-child{padding-top:44px}
.celebration-itinerary .section-heading{position:relative;z-index:1;margin-bottom:20px}
.celebration-itinerary .section-heading h1{font-size:clamp(48px,5vw,68px);line-height:1.06;letter-spacing:-1px}
.celebration-itinerary .section-heading .eyebrow{font-size:12px;letter-spacing:1.6px;margin-bottom:14px;color:var(--bottle-green)}
.mobile-connector,.mobile-day-trail{display:none}
.weekend-story{position:relative;max-width:1100px;margin:0 auto;isolation:isolate}
.illustration-trail{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;overflow:visible;fill:none;stroke-linecap:round;stroke-linejoin:round}
.ribbon-wash{stroke:var(--nantucket-breeze);stroke-width:7;opacity:.38}
.ribbon-ink{stroke:var(--deep-sage);stroke-width:1;opacity:.55}
.weekend-event{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:center;min-width:0}
.weekend-event--welcome{min-height:255px}
.weekend-event--wedding{min-height:340px}
.weekend-event--farewell{min-height:250px}
.weekend-art{position:relative;min-width:0;width:100%;max-width:305px;text-align:center;justify-self:center}
.weekend-art img,.day-art img{display:block;width:100%;height:auto;object-fit:contain;margin:auto}
.ribbon-anchor{position:absolute;width:0;height:0;pointer-events:none}
.ribbon-anchor--in{left:var(--ribbon-in-x);top:var(--ribbon-in-y)}
.ribbon-anchor--out{left:var(--ribbon-out-x);top:var(--ribbon-out-y)}
.ribbon-anchor--left{left:var(--ribbon-left-x,25%);top:var(--ribbon-left-y,55%)}
.ribbon-anchor--right{left:var(--ribbon-right-x,75%);top:var(--ribbon-right-y,55%)}
[data-ribbon-flow]{--ribbon-layout:vertical}
.weekend-event--welcome .weekend-art{grid-column:2/5;grid-row:1;transform:rotate(-5deg)}
.weekend-event--welcome .weekend-copy{grid-column:6/12;grid-row:1;padding-bottom:0}
.weekend-event--wedding .weekend-art{grid-column:8/12;grid-row:1;transform:rotate(3deg) translateY(-9px)}
.weekend-event--wedding .weekend-copy{grid-column:2/8;grid-row:1;padding:12px 0 16px}
.weekend-event--farewell .weekend-art{grid-column:2/6;grid-row:1;transform:rotate(-3deg)}
.weekend-event--farewell .weekend-copy{grid-column:7/13;grid-row:1;padding-bottom:0}
.weekend-copy{min-width:0;position:relative}
.weekend-heading{margin-bottom:18px}
.weekend-copy .eyebrow{font-size:11px;letter-spacing:1.4px;line-height:1.6;margin:0 0 10px;color:var(--bottle-green)}
.weekend-copy h2{font-size:clamp(38px,3.7vw,48px);line-height:1.12;letter-spacing:-.5px;margin:0;color:var(--ink)}
.weekend-copy .event-venue{font-family:var(--serif);font-size:27px;font-style:italic;font-weight:400;line-height:1.3;margin:8px 0 0;color:var(--ink)}
.weekend-details{display:grid;gap:10px}
.weekend-copy .event-intro{font-size:15px;line-height:1.7;margin:0;color:var(--ink)}
.weekend-copy .attire{font-size:15px;line-height:1.7;display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 14px;margin:0}
.attire span{font-size:11px;letter-spacing:1.4px;text-transform:uppercase;align-self:baseline;color:var(--bottle-green)}
.weekend-copy .event-location{font-size:15px;line-height:1.7;margin:0;color:var(--ink)}
.weekend-copy .text-link{font-size:13px;margin-top:18px;min-height:44px}
.day-story{position:relative;isolation:isolate;max-width:1100px;margin:36px auto 0;padding:46px 0 12px}
.day-story::before{content:"";position:absolute;z-index:-2;inset:0 -200px;background:var(--ivory);border-radius:49% 48% 0 0 / 42px 55px 0 0}
.day-heading{text-align:center;max-width:620px;margin:0 auto 30px}
.day-heading .eyebrow{font-size:11px;line-height:1.6;letter-spacing:1.4px;margin-bottom:12px;color:var(--bottle-green)}
.day-heading h2{font-size:clamp(42px,4vw,54px);line-height:1.12;letter-spacing:-.7px}
.day-flow{--ribbon-layout:horizontal;position:relative;isolation:isolate;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;align-items:start;min-width:0;padding:8px 14px 14px}
.day-trail .ribbon-wash{stroke-width:7;opacity:.34}
.day-trail .ribbon-ink{stroke:var(--sand);stroke-width:1.5;opacity:1}
.day-moment{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0;text-align:center}
.day-art{position:relative;flex:none;width:175px;transform:rotate(-8deg)}
.day-moment--cocktails{padding-top:32px}
.day-moment--cocktails .day-art{width:185px;transform:rotate(-4deg)}
.day-moment--dinner{padding-top:8px}
.day-moment--dinner .day-art{width:185px;transform:rotate(-5deg)}
.day-moment [data-ribbon-copy]{min-width:0}
.day-moment .moment-time{font-size:12px;letter-spacing:1.4px;line-height:1.6;margin:0 0 8px;color:var(--bottle-green)}
.day-moment h3{font-family:var(--serif);font-weight:400;font-size:clamp(28px,2.6vw,36px);line-height:1.15;letter-spacing:-.2px;margin:0;max-width:330px}
.venue--map{padding-top:44px;padding-bottom:56px;grid-template-columns:.8fr 1.2fr;max-width:1200px;margin:auto;gap:7%;align-items:center}
.venue--map .eyebrow{font-size:11px;line-height:1.6;letter-spacing:1.4px;margin-bottom:12px;color:var(--bottle-green)}
.venue--map h2{font-size:clamp(42px,4vw,54px);line-height:1.12;letter-spacing:-.7px}
.venue--map .venue-copy .venue-time{display:flex;align-items:baseline;gap:14px;margin:22px 0 18px;line-height:1.7}
.venue-time>span{font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--bottle-green)}
.venue-time>strong{font-family:var(--sans);font-size:15px;font-weight:400;color:var(--ink)}
.venue--map .venue-address{font-family:var(--sans);font-size:16px;font-style:normal;line-height:1.8;margin:0 0 20px}
.venue-map{min-width:0;border:1px solid var(--line);background:var(--blue-wash)}
.venue-map iframe{display:block;width:100%;height:380px;border:0}
@media(max-width:900px) and (min-width:701px){
 .weekend-story{max-width:680px}
 .weekend-event{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);column-gap:24px;min-height:220px}
 .weekend-event--welcome .weekend-art,.weekend-event--farewell .weekend-art{grid-column:1;max-width:220px;justify-self:end}
 .weekend-event--welcome .weekend-copy,.weekend-event--farewell .weekend-copy{grid-column:2}
 .weekend-event--wedding{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);min-height:270px}
 .weekend-event--wedding .weekend-copy{grid-column:1;justify-self:end;padding:0}
 .weekend-event--wedding .weekend-art{grid-column:2;max-width:230px;justify-self:start}
}
/* The phone schedule keeps its alternating, side-by-side moments. */
@media(max-width:900px){
 .day-flow{--ribbon-layout:vertical;display:flex;flex-direction:column;gap:18px;padding:0 0 6px;max-width:540px;margin:auto}
 .day-moment{flex-direction:row;min-height:120px;gap:14px;padding:0;text-align:left;max-width:100%}
 .day-moment--ceremony,.day-moment--dinner{align-self:flex-start}
 .day-moment--cocktails{align-self:flex-end;flex-direction:row-reverse;text-align:right}
 .day-art,.day-moment--cocktails .day-art,.day-moment--dinner .day-art{width:145px}
 .day-moment h3{font-size:32px;max-width:210px}
}
@media(max-width:800px){.venue--map{padding-top:44px;padding-bottom:56px;grid-template-columns:1fr;gap:30px}.venue-map iframe{height:320px}}
@media(max-width:700px){
 .celebration-itinerary{padding:28px 24px 0}
 .page-main>.celebration-itinerary:first-child{padding-top:28px}
 .celebration-itinerary .section-heading{padding:0;margin-bottom:8px}
 .celebration-itinerary .section-heading h1{font-size:48px;line-height:1.08}
 .weekend-story{max-width:460px}
 .weekend-trail{display:none}
 .mobile-connector{display:block;position:absolute;z-index:-1;left:0;bottom:-12px;width:100%;height:46px;fill:none;pointer-events:none;stroke-linecap:round;stroke-linejoin:round}
 .weekend-event--welcome .mobile-connector{height:96px}
 .mobile-connector--reverse{transform:scaleX(-1)}
 .mobile-connector .ribbon-wash{stroke-width:5;opacity:.25}
 .mobile-connector .ribbon-ink{stroke-width:.8;opacity:.4}
 .weekend-event{display:flex;flex-direction:column;align-items:stretch;min-height:0}
 .weekend-event--welcome{padding:0 0 36px 30px}
 .weekend-event--wedding{padding:0 0 40px;text-align:center}
 .weekend-event--farewell{padding:0 0 12px 30px}
 .weekend-event .weekend-art{width:175px;align-self:flex-end;margin:0 3px -12px 0;transform:rotate(-10deg)}
 .weekend-event--welcome .weekend-art{margin-top:-12px;margin-bottom:-56px;transform:rotate(10deg)}
 .weekend-event--welcome .eyebrow,.weekend-event--farewell .eyebrow{max-width:clamp(104px,calc(100% - 160px),180px)}
 .weekend-event--wedding .weekend-art{width:200px;align-self:center;margin:0 auto -4px;transform:rotate(9deg)}
 .weekend-event--farewell .weekend-art{width:200px;align-self:flex-end;margin:0 -8px -56px 0;transform:rotate(-7deg)}
 .weekend-event .weekend-copy{display:block;padding:0}
 .weekend-heading{margin-bottom:16px}
 .weekend-copy h2{font-size:36px;letter-spacing:-.4px}
 .weekend-event--wedding .weekend-copy{padding:0;text-align:center}
 .weekend-event--wedding .attire{justify-content:center}
 .weekend-copy .eyebrow{font-size:11px;letter-spacing:1.2px;margin-bottom:8px}
 .weekend-copy .event-venue{font-size:25px}
 .weekend-copy .event-intro{font-size:14px}
 .weekend-copy .attire{font-size:14px;gap:2px 10px}
 .attire span{font-size:11px;letter-spacing:1.2px}
 .weekend-copy .event-location{font-size:14px}
 .day-story{margin-top:12px;padding:38px 0 8px;max-width:460px}
 .day-story::before{inset:0 -24px;border-radius:48% 48% 0 0 / 24px 28px}
 .day-heading{margin-bottom:24px;text-align:center;padding:0}
 .day-heading h2{font-size:40px;max-width:100%}
 .day-heading .eyebrow{font-size:11px;letter-spacing:1.2px}
 .day-flow{display:flex;flex-direction:column;gap:18px;padding:0 0 6px}
 .day-trail{display:none}
 .mobile-day-trail{display:block;position:absolute;inset:0;z-index:-1;width:100%;height:100%;fill:none;pointer-events:none;stroke-linecap:round;stroke-linejoin:round}
 .mobile-day-trail .ribbon-wash{stroke-width:5;opacity:.3}
 .mobile-day-trail .ribbon-ink{stroke:var(--sand);stroke-width:.8;opacity:.7}
 .day-moment{min-height:120px;gap:8px;transform:none}
 .day-moment--ceremony{align-self:flex-start}
 .day-moment--cocktails{align-self:flex-end;flex-direction:row-reverse;text-align:right}
 .day-moment--dinner{align-self:flex-start}
 .day-art,.day-moment--cocktails .day-art,.day-moment--dinner .day-art{width:118px;height:120px}
 .day-moment--cocktails .day-art{width:130px;height:125px;transform:rotate(-4deg)}
 .day-art img{height:100%}
 .day-moment h3{font-size:28px;max-width:185px;line-height:1.15}
 .day-moment .moment-time{font-size:12px;letter-spacing:1.2px;margin-bottom:8px}
 .venue--map h2{font-size:40px}
 .venue--map{padding-top:32px;padding-bottom:40px}
}
@media(max-width:360px){
 .celebration-itinerary{padding-left:20px;padding-right:20px}
 .celebration-itinerary .section-heading h1{font-size:44px}
 .weekend-event--welcome,.weekend-event--farewell{padding-left:15px}
 .weekend-event--welcome .weekend-art{width:155px}
 .weekend-event--farewell .weekend-art{width:175px}
 .weekend-event--wedding{padding-right:0}
 .weekend-copy h2{font-size:34px}

 .day-art,.day-moment--cocktails .day-art,.day-moment--dinner .day-art{width:100px}
 .day-moment--cocktails .day-art{width:120px}
 .day-moment h3{font-size:27px}
}
@media print{
 .celebration-itinerary{padding:15px 0;overflow:visible}
 .illustration-trail,.mobile-connector,.mobile-day-trail,.day-story::before{display:none}
 .weekend-story{display:block}
 .weekend-event{display:block;min-height:0;break-inside:avoid;padding:15px 0}
 .weekend-art{display:none}
 .weekend-event .weekend-copy{display:block;padding:0}
 .weekend-event .weekend-heading,.weekend-event .weekend-details{padding:0}
 .weekend-copy h2{font-size:26px}
 .day-story{margin:15px 0;padding:15px 0}
 .day-heading{text-align:left;margin-bottom:15px}
 .day-heading h2{font-size:26px}
 .day-flow{display:block;padding:0}
 .day-moment{display:flex;min-height:0;margin:12px 0;padding:0;text-align:left}
 .day-art{display:none}
 .day-moment h3{font-size:22px;max-width:none}
 .venue--map{display:block;padding:15px 0}
 .venue-map{display:none}
}
