/* Material programme collections. The original timeline remains untouched. */
.wedding-programme:where([data-programme-design]:not([data-programme-design=original])){--pt-bg:#f7f0e5;--pt-ink:#3c392e;--pt-muted:#746b58;--pt-accent:#a88038;--pt-line:#c6ad77;--pt-paper:#fffdf7;--pt-edge:#d9c8a5;isolation:isolate;color:var(--pt-ink);padding:clamp(52px,8vw,96px) clamp(16px,4vw,48px);transition:background-color .4s,color .4s}
.wedding-programme.programme-preset-palette{background-color:var(--pt-bg)!important}
.wedding-programme:where([data-programme-design]:not([data-programme-design=original])):before{z-index:-1;background:radial-gradient(ellipse at 15% 15%,#ffffff22,transparent 55%),radial-gradient(ellipse at 90% 65%,#bba37612,transparent 60%)}
.wedding-programme:where([data-programme-design]:not([data-programme-design=original])) .programme-heading{max-width:720px;margin-bottom:clamp(38px,6vw,68px)}
.wedding-programme:where([data-programme-design]:not([data-programme-design=original])) .programme-heading :is(h2,h2 em){color:var(--pt-ink)}
.wedding-programme:where([data-programme-design]:not([data-programme-design=original])) :is(.programme-heading .eyebrow,.programme-time,.programme-place){color:var(--pt-accent)}
.wedding-programme:where([data-programme-design]:not([data-programme-design=original])) :is(.programme-heading>p:last-child,.programme-copy>p:last-of-type,.programme-footnote,.guest-programme-tier){color:var(--pt-muted)}
.wedding-programme:where([data-programme-design]:not([data-programme-design=original])) .programme-copy h3{color:var(--pt-ink);font-size:clamp(25px,3vw,34px);line-height:1.2}
.wedding-programme:where([data-programme-design]:not([data-programme-design=original])) .programme-step{color:var(--pt-muted);font-size:9px;letter-spacing:1.4px}
.wedding-programme:where([data-programme-design]:not([data-programme-design=original])) .programme-timeline{max-width:1000px;background-image:none}
.wedding-programme:where([data-programme-design]:not([data-programme-design=original])) .programme-event{grid-template-columns:minmax(0,1fr) 112px minmax(0,1fr);padding-bottom:48px;min-height:246px;align-items:start;gap:0}
.wedding-programme:where([data-programme-design]:not([data-programme-design=original])) .programme-copy{position:relative;padding:25px;min-width:0;background:var(--pt-paper);border:1px solid var(--pt-edge);border-radius:12px;box-shadow:0 12px 30px #342b1d0d,0 2px 4px #342b1d0c;overflow-wrap:anywhere;text-align:left;transform-origin:50% 25%}
.wedding-programme:where([data-programme-design]:not([data-programme-design=original])) .programme-event:nth-child(even) .programme-copy{padding:25px;text-align:left}
.wedding-programme:where([data-programme-design]:not([data-programme-design=original])) .programme-icon{width:70px;height:70px;margin-top:16px;border-radius:50%;background:var(--pt-paper);color:var(--pt-accent);border:1px solid var(--pt-line);box-shadow:0 0 0 8px var(--pt-bg),inset 0 2px 3px #ffffff88,0 4px 12px #0002;animation:none}
.wedding-programme:where([data-programme-design]:not([data-programme-design=original])) .programme-icon svg{width:38px;height:38px;stroke-width:1.4}
.wedding-programme:where([data-programme-design]:not([data-programme-design=original])) .programme-time{font-size:24px;margin-bottom:10px}
.wedding-programme:where([data-programme-design]:not([data-programme-design=original])) .programme-event-main .programme-time{font-size:29px}
.wedding-programme:where([data-programme-design]:not([data-programme-design=original])) .programme-event-main .programme-icon{background:var(--pt-accent);color:var(--pt-paper)}
.wedding-programme:where([data-programme-design]:not([data-programme-design=original])) .programme-timeline:before{background:var(--pt-line);opacity:.32}
.wedding-programme:where([data-programme-design]:not([data-programme-design=original])) .programme-timeline:after{background:linear-gradient(var(--pt-line),var(--pt-accent));box-shadow:0 0 10px color-mix(in srgb,var(--pt-accent) 40%,transparent)}
.wedding-programme[data-programme-design]:not([data-programme-design=original]) .programme-reached{border-color:var(--pt-accent);box-shadow:0 0 0 7px var(--pt-bg),0 0 0 9px color-mix(in srgb,var(--pt-accent) 35%,transparent),inset 0 1px 4px #fff6;color:var(--pt-accent)}
.wedding-programme[data-programme-design]:not([data-programme-design=original]) .programme-current:after{content:'';position:absolute;inset:-6px;border:1px solid var(--pt-accent);border-radius:inherit;animation:pt-milestone-ring 2s ease-out infinite;pointer-events:none}
.programme-traveller{position:absolute;list-style:none;left:var(--programme-line-x,50%);top:calc(var(--programme-line-start,40px) + var(--programme-progress-height,0px));width:17px;height:17px;margin:-8px 0 0 -8px;padding:0;z-index:3;pointer-events:none;border:1px solid #fff9;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fffdf5 0 8%,var(--pt-accent) 45%,var(--pt-line));box-shadow:0 0 0 5px color-mix(in srgb,var(--pt-accent) 12%,transparent),0 0 22px color-mix(in srgb,var(--pt-accent) 70%,transparent);transition:top .45s cubic-bezier(.2,.65,.3,1)}
.programme-traveller:after{content:'';position:absolute;inset:-9px;border:1px solid var(--pt-accent);border-radius:inherit;animation:pt-light-breathe 2.6s ease-in-out infinite}
[data-programme-active=false] :is(.programme-current:after,.programme-traveller:after){animation-play-state:paused!important}
@keyframes pt-milestone-ring{from{scale:1;opacity:.65}to{scale:1.3;opacity:0}}
@keyframes pt-light-breathe{0%,100%{scale:.75;opacity:.15}50%{scale:1.2;opacity:.5}}

/* 01 · Inlaid gold and bevelled stationery. */
.wedding-programme[data-programme-design=gilded-path] .programme-copy{border-radius:3px;border-top:3px solid #c5a35d;outline:1px solid #e2d2b0;outline-offset:5px;background:linear-gradient(135deg,#fffef9,#f6eedf);box-shadow:0 16px 24px #70572e18,inset 0 0 0 5px #fffdf7}
.wedding-programme[data-programme-design=gilded-path] .programme-icon{background:linear-gradient(135deg,#fff7dc,#d9bc7b 48%,#fff2ce 52%,#af883c);color:#5a4625;border:3px double #b49656}
/* 02 · Pearls and oval heirloom cameos. */
.wedding-programme[data-programme-design=pearl-heirloom]{--pt-bg:#f7f0eb;--pt-accent:#a18475;--pt-paper:#fffaf8;--pt-edge:#e5d6ce}
.wedding-programme[data-programme-design=pearl-heirloom] .programme-copy{border-radius:80px 80px 14px 14px;padding-top:38px!important;border:6px double #e8dacf;background:radial-gradient(ellipse at 30% 0%,#fff,#f8f0e9)}
.wedding-programme[data-programme-design=pearl-heirloom] .programme-icon{height:86px;border:5px dotted #e3d4c7;outline:1px solid #ba9f8a;background:radial-gradient(circle at 30% 20%,#fff,#e8dcd4);border-radius:50%}
/* 03 · Folded rose ribbons. */
.wedding-programme[data-programme-design=rose-ribbon]{--pt-bg:#f7eee8;--pt-accent:#9c6657;--pt-line:#c3947e;--pt-paper:#fffaf6;--pt-edge:#dec4b4}
.wedding-programme[data-programme-design=rose-ribbon] .programme-copy{border-radius:3px 24px 3px 3px;border-left:4px solid var(--pt-line)}
.wedding-programme[data-programme-design=rose-ribbon] .programme-time{margin-left:-33px;padding:8px 20px;background:linear-gradient(100deg,#a16b58,#d4a38f);color:#fff8ed!important;box-shadow:3px 4px 6px #65352522;clip-path:polygon(0 0,100% 0,94% 50%,100% 100%,0 100%)}
/* 04 · Cathedral arches and pearlescent glass. */
.wedding-programme[data-programme-design=cathedral-glass]{--pt-bg:#e8ece3;--pt-accent:#95723f;--pt-line:#b59a62;--pt-paper:#fffef6c9;--pt-edge:#b49c70}
.wedding-programme[data-programme-design=cathedral-glass] .programme-copy{border-radius:130px 130px 8px 8px;padding-top:52px!important;background:radial-gradient(ellipse at 10% 10%,#f1e2d280,transparent 60%),conic-gradient(from 40deg at 50% 0%,#fffef4,#dce6dccc,#fff8ee,#e5d6cb80,#fffef4);border:3px double #b29867;box-shadow:0 0 0 5px #fff5,0 14px 24px #2f462919}
.wedding-programme[data-programme-design=cathedral-glass] .programme-icon{height:86px;border-radius:50px 50px 8px 8px;background:linear-gradient(145deg,#fff9df,#ccdaca88,#fff9ef)}
/* 05 · A growing botanical stem. */
.wedding-programme[data-programme-design=botanical-vine]{--pt-bg:#eef1e8;--pt-ink:#304b36;--pt-accent:#617d43;--pt-muted:#63705b;--pt-line:#90a377;--pt-paper:#f9fcf3;--pt-edge:#ccd8bc}
.wedding-programme[data-programme-design=botanical-vine] .programme-copy{border-radius:3px 40px 3px 40px;border-bottom:3px solid #c0ceaa;background:radial-gradient(ellipse at 100% 0,#dbe7cb77,transparent 60%),#fbfcf7}
.wedding-programme[data-programme-design=botanical-vine] .programme-icon{border-radius:3px 50% 3px 50%;rotate:-10deg}
.wedding-programme[data-programme-design=botanical-vine] .programme-icon svg{rotate:10deg}
/* 06 · Deep velvet with embossed bronze. */
.wedding-programme[data-programme-design=emerald-luxe]{--pt-bg:#172f27;--pt-ink:#fff1d6;--pt-muted:#c2cab7;--pt-accent:#d5b376;--pt-line:#8f784b;--pt-paper:#203e32;--pt-edge:#827044}
.wedding-programme[data-programme-design=emerald-luxe] .programme-copy{border-radius:8px;border:1px solid #8d7847;background:repeating-linear-gradient(95deg,#2c493b40 0 1px,transparent 1px 4px),linear-gradient(140deg,#315241,#162f27);box-shadow:inset 0 0 0 5px #152c2477,0 15px 28px #0004}
.wedding-programme[data-programme-design=emerald-luxe] .programme-icon{border:4px double #d4b478;background:radial-gradient(circle at 30% 25%,#b8a16a,#524b2c 65%,#1c3125);color:#ffe3a6;text-shadow:0 1px #000}
/* 07 · Architectural stair-step plinths. */
.wedding-programme[data-programme-design=champagne-steps]{--pt-bg:#f2eadc;--pt-accent:#8f6d3a;--pt-paper:#fff9eb;--pt-edge:#d0bd9b}
.wedding-programme[data-programme-design=champagne-steps] .programme-copy{border-radius:0;box-shadow:7px 7px 0 #e2d0ae,14px 14px 0 #ece0cb;clip-path:polygon(0 0,100% 0,100% 90%,94% 90%,94% 100%,0 100%);padding-bottom:35px!important}
.wedding-programme[data-programme-design=champagne-steps] .programme-icon{border-radius:0;box-shadow:5px 5px 0 #d6c3a0,0 0 0 8px var(--pt-bg)}
/* 08 · Starlight and a passing comet. */
.wedding-programme[data-programme-design=constellation]{--pt-bg:#151d33;--pt-ink:#f6f0e7;--pt-muted:#bdc5da;--pt-accent:#d1bf93;--pt-line:#7c8cae;--pt-paper:#202a43;--pt-edge:#697691}
.wedding-programme[data-programme-design=constellation]:before{background:radial-gradient(circle at 12% 13%,#fff8 0 1px,transparent 2px),radial-gradient(circle at 72% 35%,#fff7 0 1px,transparent 2px),radial-gradient(circle at 30% 80%,#fce8b999 0 1px,transparent 2px),radial-gradient(ellipse at 70% 20%,#6471b62e,transparent 60%)!important;background-size:137px 199px,197px 257px,263px 307px,100% 100%!important}
.wedding-programme[data-programme-design=constellation] .programme-copy{border:0;border-top:1px solid #9aa8c477;border-radius:0;background:linear-gradient(120deg,#25314cbb,#141e3380);box-shadow:0 10px 30px #0003}
.wedding-programme[data-programme-design=constellation] .programme-icon{border-radius:4px;rotate:45deg;background:linear-gradient(145deg,#d4deec,#7181a6);color:#21304c;scale:.8}
.wedding-programme[data-programme-design=constellation] .programme-icon svg{rotate:-45deg}
.wedding-programme[data-programme-design=constellation] .programme-traveller{background:#fff7da;box-shadow:0 0 12px #ffefb7,0 -15px 22px #8198ed;scale:.7}
/* 09 · Veined marble and a carved inset. */
.wedding-programme[data-programme-design=marble-gallery]{--pt-bg:#e9e8e3;--pt-ink:#393c37;--pt-muted:#6f746b;--pt-accent:#88816b;--pt-line:#a5a38f;--pt-paper:#fafaf6;--pt-edge:#cbcabe}
.wedding-programme[data-programme-design=marble-gallery] .programme-copy{border-radius:2px;background:linear-gradient(121deg,transparent 42%,#b9b7a622 43%,transparent 44% 66%,#d9d7c933 67%,transparent 69%),linear-gradient(35deg,#fafaf6,#e9e9e2,#fff);border:6px solid #fafaf5;outline:1px solid #cecec5;box-shadow:3px 7px 16px #34392e22}
.wedding-programme[data-programme-design=marble-gallery] .programme-icon{border:6px double #b7b6a7;background:radial-gradient(circle at 30% 15%,#fff,#dadbd0);color:#686a5c}
/* 10 · Tactile cotton letterpress. */
.wedding-programme[data-programme-design=letterpress]{--pt-bg:#eee7db;--pt-ink:#4a4438;--pt-muted:#827665;--pt-accent:#7c6450;--pt-line:#b7a48a;--pt-paper:#f8f3e8;--pt-edge:#d3c5ae}
.wedding-programme[data-programme-design=letterpress] .programme-copy{border-radius:1px;border:0;background:repeating-radial-gradient(circle at 50% 50%,#6c593608 0 1px,transparent 1px 4px),#f8f3e8;outline:1px solid #b8a88c;outline-offset:-9px;box-shadow:inset 0 1px 3px #fff,0 3px 5px #6f5b3925}
.wedding-programme[data-programme-design=letterpress] .programme-copy h3{text-shadow:0 1px 0 #fff}
.wedding-programme[data-programme-design=letterpress] .programme-icon{border:2px dashed #b8a48a;background:#f2e8d6;box-shadow:inset 1px 2px 4px #72593825,0 0 0 8px var(--pt-bg)}
/* 11 · Cast wax and correspondence. */
.wedding-programme[data-programme-design=wax-seal]{--pt-bg:#f1e6d7;--pt-accent:#8f5342;--pt-line:#bd9481;--pt-paper:#fff6e7;--pt-edge:#dbc4a7}
.wedding-programme[data-programme-design=wax-seal] .programme-icon{border:7px double #b17a61;background:radial-gradient(circle at 25% 20%,#c89172,#8f4939 65%,#652e25);color:#f8d9b3;border-radius:45% 49% 46% 48%;box-shadow:inset 1px 3px 3px #f6c5a05c,2px 6px 7px #5c312e4a,0 0 0 7px var(--pt-bg)}
.wedding-programme[data-programme-design=wax-seal] .programme-copy{border-radius:1px;border-bottom:4px double #cfb69a;background:linear-gradient(164deg,#fff9ee 87%,#ead8bf 87.5%,#fcf3df 89%,#fff9ee 90%);box-shadow:2px 8px 12px #634b3024}
/* 12 · Geometric double gold frames. */
.wedding-programme[data-programme-design=art-deco]{--pt-bg:#232c29;--pt-ink:#f6e9ce;--pt-muted:#cec2a7;--pt-accent:#d0b47d;--pt-line:#b49a65;--pt-paper:#2d3730;--pt-edge:#a99160}
.wedding-programme[data-programme-design=art-deco] .programme-copy{border-radius:0;border:5px double #b29a67;outline:1px solid #b29a6755;outline-offset:5px;background:linear-gradient(135deg,#b29a6722 0 9px,transparent 9px),linear-gradient(315deg,#b29a6722 0 9px,transparent 9px),#2d3730;box-shadow:none}
.wedding-programme[data-programme-design=art-deco] .programme-copy h3{font-family:'Cinzel',Georgia,serif;font-size:24px}
.wedding-programme[data-programme-design=art-deco] .programme-icon{border:4px double #cdb37d;border-radius:0;rotate:45deg;scale:.78}
.wedding-programme[data-programme-design=art-deco] .programme-icon svg{rotate:-45deg}
.wedding-programme[data-programme-design=art-deco] .programme-traveller{border-radius:0;rotate:45deg}
/* 13 · Lanterns along a garden path. */
.wedding-programme[data-programme-design=garden-lanterns]{--pt-bg:#2b3d32;--pt-ink:#fff1d8;--pt-muted:#d2d6bb;--pt-accent:#e4c283;--pt-line:#8c976b;--pt-paper:#344a3a;--pt-edge:#728164}
.wedding-programme[data-programme-design=garden-lanterns] .programme-copy{border-radius:25px 4px 25px 4px;border-color:#93a57a88;background:linear-gradient(125deg,#49604766,#304234);box-shadow:0 12px 28px #12251633}
.wedding-programme[data-programme-design=garden-lanterns] .programme-icon{height:87px;border-radius:10px 10px 25px 25px;border:3px double #c4ac77;background:radial-gradient(ellipse at 50% 40%,#fff1be,#d3ad65 55%,#756d3c);color:#67582b;box-shadow:0 0 25px #eccd6f44,0 0 0 8px var(--pt-bg)}
/* 14 · Satin folds. */
.wedding-programme[data-programme-design=silk-drapery]{--pt-bg:#f2e7e0;--pt-accent:#a47d6a;--pt-line:#c9a68d;--pt-paper:#fff3ed;--pt-edge:#d9bca9}
.wedding-programme[data-programme-design=silk-drapery] .programme-copy{border-radius:40px 4px 40px 4px;border:0;background:linear-gradient(110deg,#e2c8bb,#fff9f2 22%,#f4ded2 43%,#fff9f4 63%,#e3c7b7);box-shadow:inset 1px 1px 3px #fff,0 12px 24px #80554419}
.wedding-programme[data-programme-design=silk-drapery] .programme-icon{background:conic-gradient(from 20deg,#e7c5ae,#fff8eb,#cba68e,#fff8eb,#e7c5ae);border:1px solid #d1b395}
/* 15 · Long ribbon bookmarks. */
.wedding-programme[data-programme-design=ribbon-bookmarks]{--pt-bg:#ede9df;--pt-ink:#364d44;--pt-muted:#738175;--pt-accent:#5b7768;--pt-line:#98ae9c;--pt-paper:#fffcf3;--pt-edge:#d5d7c7}
.wedding-programme[data-programme-design=ribbon-bookmarks] .programme-icon{height:109px;border-radius:2px;border:0;background:linear-gradient(90deg,#688474,#8da58d 50%,#5f7b6a);color:#ffefce;clip-path:polygon(0 0,100% 0,100% 100%,50% 81%,0 100%);padding-bottom:18px;box-shadow:none}
.wedding-programme[data-programme-design=ribbon-bookmarks] .programme-copy{border-radius:0;border:0;border-bottom:2px solid #bdc5b2;background:linear-gradient(90deg,#e2e3d12e,transparent 20%),#fffcf3;box-shadow:0 6px 9px #3344390d}
/* 16 · Suspended sculptural medallions. */
.wedding-programme[data-programme-design=floating-medallions]{--pt-bg:#e9eee8;--pt-accent:#698373;--pt-line:#9eafa0;--pt-paper:#f6faf4;--pt-edge:#d2dfce}
.wedding-programme[data-programme-design=floating-medallions] .programme-copy{border-radius:32px;border:0;box-shadow:12px 12px 24px #b7c4b277,-10px -10px 24px #ffffffc9;background:linear-gradient(140deg,#fffdf8,#edf3e9)}
.wedding-programme[data-programme-design=floating-medallions] .programme-icon{border:0;box-shadow:inset 5px 5px 10px #c5d1be,inset -5px -5px 10px #fff,0 0 0 8px var(--pt-bg);background:#e8f0e3}
/* 17 · Perforated keepsake tickets. */
.wedding-programme[data-programme-design=journey-tickets]{--pt-bg:#eee7d6;--pt-accent:#936e45;--pt-line:#b69b72;--pt-paper:#fff9e9;--pt-edge:#d9c7a7}
.wedding-programme[data-programme-design=journey-tickets] .programme-copy{border:0;border-left:3px dashed #c2a87b;border-right:3px dashed #c2a87b;border-radius:14px;background:radial-gradient(circle at 0 50%,var(--pt-bg) 0 9px,transparent 10px),radial-gradient(circle at 100% 50%,var(--pt-bg) 0 9px,transparent 10px),#fff9e9;box-shadow:0 6px 12px #735c3020}
.wedding-programme[data-programme-design=journey-tickets] .programme-step{border-bottom:1px dashed #c2a87b;padding-bottom:12px}
.wedding-programme[data-programme-design=journey-tickets] .programme-icon{border-radius:8px;width:72px;height:52px;margin-top:22px;border:2px dashed #b1976f}
/* 18 · Soft painted petals. */
.wedding-programme[data-programme-design=watercolour-petals]{--pt-bg:#f7efeb;--pt-ink:#63534c;--pt-muted:#8f7b70;--pt-accent:#ac7c77;--pt-line:#d9b5a1;--pt-paper:#fffbf7;--pt-edge:#ead6c8}
.wedding-programme[data-programme-design=watercolour-petals] .programme-copy{border:0;border-radius:45% 8px 45% 8px / 10% 8px 10% 8px;background:radial-gradient(ellipse at 0 0,#dab3b05e,transparent 55%),radial-gradient(ellipse at 100% 100%,#c7d0b949,transparent 55%),#fffcf7;box-shadow:0 7px 18px #a36c5910}
.wedding-programme[data-programme-design=watercolour-petals] .programme-icon{border-radius:50% 0 50% 50%;rotate:-25deg;background:radial-gradient(circle at 30% 25%,#fffaf5,#e2bfb5);border:1px solid #d1aaa0}
.wedding-programme[data-programme-design=watercolour-petals] .programme-icon svg{rotate:25deg}
/* 19 · An editorial chapter spread. */
.wedding-programme[data-programme-design=editorial-spread]{--pt-bg:#f7f4ec;--pt-ink:#2f3e35;--pt-muted:#798071;--pt-accent:#6d7863;--pt-line:#a9ad9a;--pt-paper:#f7f4ec;--pt-edge:#d2d3c5}
.wedding-programme[data-programme-design=editorial-spread] .programme-copy{background:transparent;box-shadow:none;border:0;border-top:1px solid #9b9e8b;border-radius:0;padding:21px 8px!important}
.wedding-programme[data-programme-design=editorial-spread] .programme-copy h3{font-family:'Playfair Display',Georgia,serif;font-size:clamp(28px,4vw,42px);letter-spacing:-1px}
.wedding-programme[data-programme-design=editorial-spread] .programme-step{letter-spacing:2.6px;font-size:8px}
.wedding-programme[data-programme-design=editorial-spread] .programme-icon{width:46px;height:46px;background:#f7f4ec;border-radius:0;border:0;box-shadow:0 0 0 10px var(--pt-bg)}
/* 20 · Engraved pocket-watch rings. */
.wedding-programme[data-programme-design=pocket-watch]{--pt-bg:#efe6d5;--pt-ink:#53412e;--pt-muted:#8a7761;--pt-accent:#9f7a37;--pt-line:#baa16c;--pt-paper:#fff8e8;--pt-edge:#d8c292}
.wedding-programme[data-programme-design=pocket-watch] .programme-icon{border:6px double #b49a5d;outline:3px solid #dac58e;background:radial-gradient(circle,#fff9df,#dec993);box-shadow:0 0 0 9px var(--pt-bg),3px 6px 8px #7b5d352e}
.wedding-programme[data-programme-design=pocket-watch] .programme-copy{border-radius:12px;border:0;background:linear-gradient(145deg,#fff9ee,#f6e8cd);box-shadow:inset 0 0 0 1px #e0cba0,0 8px 18px #6b4b2220}
.wedding-programme[data-programme-design=pocket-watch] .programme-time{display:inline-block;padding:6px 14px;border:3px double #c2a76e;border-radius:30px;font-style:normal}
/* 21 · Tilted keepsake paper. */
.wedding-programme[data-programme-design=polaroid-moments]{--pt-bg:#ebe7dd;--pt-ink:#464536;--pt-muted:#83806b;--pt-accent:#82705a;--pt-line:#b9ab8f;--pt-paper:#fffdf5;--pt-edge:#e3dfd1}
.wedding-programme[data-programme-design=polaroid-moments] .programme-copy{rotate:-2deg;border:0;border-radius:1px;padding:33px 26px 40px!important;box-shadow:2px 6px 10px #3630242b;background:linear-gradient(#e9e8de 0 5px,transparent 5px),#fffdf7}
.wedding-programme[data-programme-design=polaroid-moments] .programme-event:nth-child(even) .programme-copy{rotate:2deg}
.wedding-programme[data-programme-design=polaroid-moments] .programme-copy:before{content:'';position:absolute;top:-10px;left:calc(50% - 38px);width:76px;height:25px;background:#d6c5a5a6;rotate:-4deg;box-shadow:0 1px 2px #65533119}
/* 22 · Iridescent aurora panels. */
.wedding-programme[data-programme-design=aurora-flow]{--pt-bg:#20263b;--pt-ink:#f4f1fb;--pt-muted:#c0c8df;--pt-accent:#cbb9eb;--pt-line:#7f9da9;--pt-paper:#303b51;--pt-edge:#9d9cb088}
.wedding-programme[data-programme-design=aurora-flow] .programme-copy{border-radius:24px 4px;border:1px solid #bac9e34a;background:linear-gradient(130deg,#a4c3d52e,#b7a1d926 45%,#7fc5ac26),#252f43;box-shadow:inset 0 1px 0 #ffffff26,0 14px 30px #11172a50}
.wedding-programme[data-programme-design=aurora-flow] .programme-icon{background:conic-gradient(from 20deg,#bbdfdc,#baa9d7,#8fb5bc,#d8e5e1,#bbdfdc);color:#394459;border:2px solid #deecf0}
.wedding-programme[data-programme-design=aurora-flow] .programme-traveller{background:radial-gradient(circle,#fff,#d5baff 45%,#7cbfb8);box-shadow:0 0 23px #c5a8fa}
/* 23 · Glazed cobalt porcelain. */
.wedding-programme[data-programme-design=porcelain-blue]{--pt-bg:#edf0ee;--pt-ink:#334967;--pt-muted:#77869a;--pt-accent:#597b9f;--pt-line:#8aa4bc;--pt-paper:#fffef8;--pt-edge:#becddd}
.wedding-programme[data-programme-design=porcelain-blue] .programme-copy{border:6px double #98b0c7;border-radius:35px 3px;background:radial-gradient(ellipse at 95% 5%,#dbe5ec77,transparent 45%),#fffef9;box-shadow:0 7px 18px #344d6920}
.wedding-programme[data-programme-design=porcelain-blue] .programme-icon{background:radial-gradient(circle at 30% 20%,#fff,#d7e2eb);border:5px double #698daf;box-shadow:0 0 0 8px var(--pt-bg),inset 0 -3px 7px #6787a033}
/* 24 · Brushed copper plates. */
.wedding-programme[data-programme-design=brushed-copper]{--pt-bg:#e9e1d7;--pt-ink:#554333;--pt-muted:#8a7566;--pt-accent:#a46b4b;--pt-line:#bc916e;--pt-paper:#f6e9d9;--pt-edge:#c69d7b}
.wedding-programme[data-programme-design=brushed-copper] .programme-copy{border-radius:5px;border:1px solid #ba8c64;background:repeating-linear-gradient(0deg,#a27d4b08 0 1px,transparent 1px 3px),linear-gradient(130deg,#e7c4a4,#fff0dc 45%,#dab292);box-shadow:inset 0 0 0 4px #ffffff24,0 7px 14px #6f462e26}
.wedding-programme[data-programme-design=brushed-copper] .programme-icon{border-radius:14px;border:4px double #b78057;background:linear-gradient(135deg,#f2d3b2,#b17d51 44%,#ffe5c8 49%,#bc8c62);color:#67452b}

@media(min-width:760px){
 .wedding-programme:is([data-programme-design=letterpress],[data-programme-design=ribbon-bookmarks],[data-programme-design=journey-tickets]) .programme-event{grid-template-columns:100px minmax(0,720px);justify-content:center}
 .wedding-programme:is([data-programme-design=letterpress],[data-programme-design=ribbon-bookmarks],[data-programme-design=journey-tickets]) .programme-icon{grid-column:1}
 .wedding-programme:is([data-programme-design=letterpress],[data-programme-design=ribbon-bookmarks],[data-programme-design=journey-tickets]) .programme-copy{grid-column:2}
 .wedding-programme[data-programme-design=editorial-spread] .programme-event{grid-template-columns:minmax(0,1fr) 80px minmax(0,1fr);padding-bottom:70px}
}
@media(max-width:759px){
 .wedding-programme[data-programme-design]:not([data-programme-design=original]) .programme-event{grid-template-columns:70px minmax(0,1fr);min-height:210px;padding-bottom:32px}
 .wedding-programme[data-programme-design]:not([data-programme-design=original]) .programme-icon{grid-column:1;width:48px;height:58px;margin-top:12px;box-shadow:0 0 0 5px var(--pt-bg)}
 .wedding-programme[data-programme-design]:not([data-programme-design=original]) .programme-icon svg{width:29px;height:29px}
 .wedding-programme[data-programme-design]:not([data-programme-design=original]) .programme-copy,.wedding-programme[data-programme-design]:not([data-programme-design=original]) .programme-event:nth-child(even) .programme-copy{grid-column:2;padding:19px 17px;text-align:left}
 .wedding-programme[data-programme-design]:not([data-programme-design=original]) .programme-step{font-size:8px;letter-spacing:1px}
 .wedding-programme[data-programme-design]:not([data-programme-design=original]) .programme-copy h3{font-size:27px}
 .wedding-programme[data-programme-design]:not([data-programme-design=original]) .programme-copy>p:last-of-type{font-size:17px;line-height:1.55}
 .wedding-programme[data-programme-design]:not([data-programme-design=original]) .programme-time{font-size:23px}
 .wedding-programme[data-programme-design=pearl-heirloom] .programme-copy{border-radius:50px 50px 10px 10px}
 .wedding-programme[data-programme-design=cathedral-glass] .programme-copy{border-radius:90px 90px 5px 5px;padding-top:42px!important}
 .wedding-programme[data-programme-design=rose-ribbon] .programme-time{margin-left:-22px;padding-inline:14px}
 .wedding-programme[data-programme-design=ribbon-bookmarks] .programme-icon{height:85px;padding-bottom:15px}
 .wedding-programme[data-programme-design=polaroid-moments] .programme-copy{rotate:-1deg;padding:24px 17px 30px!important}
 .wedding-programme[data-programme-design=polaroid-moments] .programme-event:nth-child(even) .programme-copy{rotate:1deg}
 .wedding-programme[data-programme-design=art-deco] .programme-copy{outline-offset:3px;border-width:3px}
}
@media(max-width:360px){.wedding-programme[data-programme-design]:not([data-programme-design=original]) .programme-event{grid-template-columns:56px minmax(0,1fr)}.wedding-programme[data-programme-design]:not([data-programme-design=original]) .programme-copy h3{font-size:24px}}
@media(prefers-reduced-motion:reduce){[data-programme-design] *,[data-programme-design] *:before,[data-programme-design] *:after{animation:none!important;transition:none!important}.programme-traveller{display:none}}
.wedding-programme[data-programme-design]:not([data-programme-design=original]) .programme-event:has(+.programme-traveller){padding-bottom:0;min-height:180px}

.wedding-programme[data-programme-design]:not([data-programme-design=original]) .programme-icon{animation:none}
@media(prefers-reduced-motion:reduce){[data-programme-design]{transition:none!important}}
/* Milestones keep a true circular silhouette in every material collection. */
.wedding-programme[data-programme-design]:not([data-programme-design=original]) .programme-icon{box-sizing:border-box;width:70px;height:70px;min-width:70px;min-height:70px;aspect-ratio:1;border-radius:50%;clip-path:none;rotate:0deg;scale:1;padding:0}
.wedding-programme[data-programme-design]:not([data-programme-design=original]) .programme-icon svg{rotate:0deg}
@media(max-width:759px){.wedding-programme[data-programme-design]:not([data-programme-design=original]) .programme-icon{width:48px;height:48px;min-width:48px;min-height:48px}}
/* A clear ivory inset keeps the event artwork legible over every material finish. */
.wedding-programme[data-programme-design]:not([data-programme-design=original]) .programme-icon{display:grid;place-items:center;flex-shrink:0}
.wedding-programme[data-programme-design]:not([data-programme-design=original]) .programme-icon svg{box-sizing:border-box;width:76%;height:76%;max-width:52px;max-height:52px;flex:none;padding:4px;border-radius:50%;background:#fff9eb;color:#26382f;fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round;box-shadow:0 0 0 1px #26382f24;filter:none}

/* Original illuminated path keeps its original silhouette and unpainted line icons. */
.wedding-programme[data-programme-design=original]{--pt-bg:#26382f;--pt-paper:#26382f;--pt-ink:#fff9ed;--pt-muted:#dbe0d1;--pt-accent:#efbd9d;--pt-line:#c8aa7b;--pt-edge:#bca075}
.wedding-programme[data-programme-design=original].programme-preset-palette{color:var(--pt-ink)}
.wedding-programme[data-programme-design=original].programme-preset-palette :is(.programme-heading h2,.programme-copy h3){color:var(--pt-ink)}
.wedding-programme[data-programme-design=original].programme-preset-palette :is(.programme-heading h2 em,.programme-time,.programme-place,.programme-heading .eyebrow){color:var(--pt-accent)}
.wedding-programme[data-programme-design=original].programme-preset-palette :is(.programme-step,.programme-copy>p:last-of-type,.programme-heading>p:last-child,.programme-footnote){color:var(--pt-muted)}
.wedding-programme[data-programme-design=original].programme-preset-palette .programme-icon{background:var(--pt-paper);color:var(--pt-accent);border-color:var(--pt-edge);box-shadow:0 0 0 8px var(--pt-bg)}
.wedding-programme[data-programme-design=original].programme-preset-palette .programme-event-main .programme-icon{background:var(--pt-accent);color:var(--pt-bg)}
.wedding-programme[data-programme-design=original].programme-preset-palette .programme-track-animated:before{background:var(--pt-line)}
.wedding-programme[data-programme-design=original].programme-preset-palette .programme-track-animated:after{background:linear-gradient(var(--pt-line),var(--pt-accent));box-shadow:0 0 12px var(--pt-accent)}
.wedding-programme :is(.programme-gallery-icon,.programme-source-icon){display:block;box-sizing:border-box;object-fit:contain;width:76%;height:76%;max-width:52px;max-height:52px;padding:3px;border-radius:50%;background:#fff9eb}
.wedding-programme[data-programme-design=original].programme-preset-palette .programme-icon.programme-current{animation-name:pt-original-palette-glow}
@keyframes pt-original-palette-glow{0%,100%{box-shadow:0 0 0 7px var(--pt-bg),0 0 12px 3px color-mix(in srgb,var(--pt-accent) 16%,transparent)}50%{box-shadow:0 0 0 7px var(--pt-bg),0 0 24px 9px color-mix(in srgb,var(--pt-accent) 30%,transparent)}}
/* The traveller runs behind the medallions; the medallion itself catches its light. */
.programme-traveller{z-index:0}
.wedding-programme[data-programme-design]:not([data-programme-design=original]) .programme-event{z-index:1}
.wedding-programme[data-programme-design]:not([data-programme-design=original]) .programme-icon{z-index:2}
.wedding-programme[data-programme-design]:not([data-programme-design=original]) .programme-icon.programme-current{border-color:var(--pt-accent);box-shadow:0 0 0 6px var(--pt-bg),0 0 24px 8px color-mix(in srgb,var(--pt-accent) 55%,transparent)}
.wedding-programme[data-programme-design]:not([data-programme-design=original]) .programme-current svg{background:#fff2d1;box-shadow:0 0 14px color-mix(in srgb,var(--pt-accent) 65%,transparent)}
/* One animation clock: transform moves the light, and the fill follows that same position. */
.programme-traveller{top:var(--programme-line-start,40px);transition:none;will-change:transform}
.wedding-programme[data-programme-design]:not([data-programme-design=original]) .programme-track-animated:after{transition:none}

/* Gallery line artwork inherits the original medallion colour without an inset disc. */
.wedding-programme[data-programme-design=original] .programme-line-art{display:block;width:48px;height:48px;background:currentColor;mask:var(--programme-artwork) center/contain no-repeat;-webkit-mask:var(--programme-artwork) center/contain no-repeat}
@media(max-width:650px){.wedding-programme[data-programme-design=original] .programme-line-art{width:39px;height:39px}}
