/* Native sticky chapter sequence: normal document scrolling, never wheel interception. */
@font-face { font-family:Allura; src:url('/fonts/allura-regular.ttf') format('truetype'); font-style:normal; font-weight:400; font-display:swap; }
body.tf-wedding-fix #tf-md-images.tf-wedding-film { --wf-top:94px; --wf-view:calc(100svh - 94px); padding:0!important; color:#243c35; background:#fff; }
.tf-wf-intro { max-width:1240px; margin:auto!important; padding:64px 32px 32px; box-sizing:content-box; }
.tf-wf-track { position:relative; overflow-anchor:none; }
.tf-wf-stage { background:#fff; }
.tf-wf-panels { max-width:1240px; margin:auto; }
body.tf-wedding-fix #tf-md-images .tf-wf-panel { margin:0; padding:40px 32px; scroll-margin-top:120px; box-sizing:border-box; }
.tf-wf-copy { text-align:center; }
body.tf-wedding-fix #tf-md-images .tf-wf-copy h3 { font-family:Georgia,'Times New Roman',serif!important; font-weight:400!important; font-size:48px!important; line-height:1.12; color:#243c35; margin:0!important; }
.tf-wf-copy p { font-size:16px; line-height:1.6; color:#655e59; margin:16px 0 0; }
.tf-wf-script { display:inline-block; font-family:Allura,Georgia,serif!important; font-size:72px; font-weight:400; line-height:1.15; padding:0 8px; }
.tf-wf-intro-note { color:#655e59; font-size:16px; margin:18px 0 0; }
.tf-wf-photos { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; align-items:center; margin-top:28px; }
body.tf-wedding-fix #tf-md-images .tf-wf-photos figure:nth-child(n) { grid-column:auto; grid-row:auto; margin:0; width:100%; height:auto; aspect-ratio:auto; min-width:0; overflow:hidden; }
body.tf-wedding-fix #tf-md-images .tf-wf-photos a,body.tf-wedding-fix #tf-md-images .tf-wf-photos [data-magic-lens] { width:100%; height:100%; display:block; }
body.tf-wedding-fix #tf-md-images .tf-wf-photos img { display:block; width:100%; height:100%; object-fit:contain; }
.tf-wf-panel[data-wf-layout=wide] .tf-wf-photos { grid-template-columns:1fr; }
.tf-wf-nav { display:flex; flex-wrap:wrap; justify-content:center; gap:8px 32px; padding:16px 24px; border-top:1px solid #e0e5e1; }
.tf-wf-nav a { display:flex; align-items:center; justify-content:center; min-height:44px; padding:0 2px; color:#66766d; font-size:14px; text-decoration:none; border-bottom:2px solid transparent; }
.tf-wf-nav a[aria-current=step] { color:#243c35; border-color:#95675f; }
.tf-wf-nav a:focus-visible,.tf-wf-skip:focus-visible { outline:2px solid #95675f; outline-offset:4px; }
.tf-wf-after { max-width:1240px; margin:auto; padding:24px 32px 64px; box-sizing:content-box; }
.tf-wf-skip { display:flex; justify-content:space-between; align-items:center; min-height:56px; color:#243c35; text-decoration:none; font-size:15px; margin-bottom:24px; }
.tf-wf-skip span { font-size:24px; }
.tf-wf-extra { border-top:1px solid #d8e0da; border-bottom:1px solid #d8e0da; }
.tf-wf-extra summary { display:flex; justify-content:space-between; align-items:center; min-height:76px; font-family:Georgia,serif!important; font-size:24px; cursor:pointer; list-style:none; }
.tf-wf-extra summary::-webkit-details-marker { display:none; }
.tf-wf-extra summary span { color:#95675f; font-size:24px; }
.tf-wf-extra[open] summary span { transform:rotate(45deg); }
body.tf-wedding-fix #tf-md-images .tf-wf-extra img { width:100%; height:auto; }
/* Enable only when the complete runtime and a usable viewport are available. */
.tf-wf-enabled .tf-wf-track { height:calc(var(--wf-view) + var(--wf-run)); }
.tf-wf-enabled .tf-wf-stage { position:sticky; top:var(--wf-top); height:var(--wf-view); display:flex; flex-direction:column; overflow:clip; }
.tf-wf-enabled .tf-wf-panels { position:relative; width:100%; flex:1 1 auto; min-height:0; }
body.tf-wedding-fix #tf-md-images.tf-wf-enabled .tf-wf-panel { position:absolute; inset:0; display:flex; flex-direction:column; padding:24px 32px 20px; }
body.tf-wedding-fix #tf-md-images.tf-wf-enabled .tf-wf-panel[hidden] { display:none!important; }
.tf-wf-enabled .tf-wf-copy { flex:0 0 auto; }
.tf-wf-enabled .tf-wf-photos { flex:1 1 auto; min-height:0; align-items:stretch; }
body.tf-wedding-fix #tf-md-images.tf-wf-enabled .tf-wf-photos figure { height:100%; min-height:0; }
.tf-wf-enabled .tf-wf-nav { flex:0 0 auto; padding-top:8px; padding-bottom:8px; }
.tf-wf-enabled .tf-wf-panel[data-wf-layout=prep] .tf-wf-photos { grid-template-columns:minmax(0,1fr) minmax(0,1.65fr); grid-template-rows:1fr 1fr; }
body.tf-wedding-fix #tf-md-images.tf-wf-enabled [data-wf-layout=prep] figure:first-child { grid-row:1/3; }
.tf-wf-enabled .tf-wf-panel[data-wf-layout=couple] .tf-wf-photos { grid-template-columns:minmax(0,1fr) minmax(0,1.45fr) minmax(0,1fr); }
.tf-wf-panel[data-wf-layout=ceremonies] .tf-wf-photos { grid-template-columns:1fr 1fr; gap:28px; }
.tf-wf-ceremony { display:grid; grid-template-rows:auto 1fr 1fr; gap:12px; min-height:0; min-width:0; }
.tf-wf-ceremony-label { margin:0; text-align:center; font-size:14px; line-height:1.4; color:#655e59; }
body.tf-wedding-fix #tf-md-images.tf-wf-enabled .tf-wf-ceremony img { object-fit:contain; }
.tf-wf-enabled [data-wf-layout=triptych] .tf-wf-photos { grid-template-columns:1fr 1.3fr 1fr; }
.tf-wf-enabled [data-wf-layout=proches] .tf-wf-photos { grid-template-columns:2.3fr 1fr; grid-template-rows:1fr 1fr; }
body.tf-wedding-fix #tf-md-images.tf-wf-enabled [data-wf-layout=proches] figure:first-child { grid-row:1/3; }
.tf-wf-enabled .tf-wf-copy p { margin-top:4px; }
@media(max-width:1199px) { body.tf-wedding-fix #tf-md-images.tf-wedding-film { --wf-top:68px; --wf-view:calc(100svh - 68px); } }
@media(max-width:700px) {
  .tf-wf-intro { padding:44px 20px 24px; }
  body.tf-wedding-fix #tf-md-images .tf-wf-copy h3 { font-size:34px!important; }
  .tf-wf-script { font-size:46px; line-height:1.18; padding:0 3px; }
  .tf-wf-intro-note { font-size:14px; }
  .tf-wf-copy p { font-size:14px; line-height:1.55; margin-top:12px; }
  body.tf-wedding-fix #tf-md-images .tf-wf-panel { padding:32px 16px; }
  .tf-wf-photos { gap:8px; margin-top:20px; }
  body.tf-wedding-fix #tf-md-images.tf-wf-enabled .tf-wf-panel { padding:24px 16px 16px; }
  .tf-wf-enabled .tf-wf-panel[data-wf-layout=couple] .tf-wf-photos { grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; }
  body.tf-wedding-fix #tf-md-images.tf-wf-enabled [data-wf-layout=couple] figure:first-child { grid-row:1/3; }
  .tf-wf-enabled .tf-wf-panel[data-wf-layout=details] .tf-wf-photos { grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; }
  body.tf-wedding-fix #tf-md-images.tf-wf-enabled [data-wf-layout=details] figure:last-child { grid-column:1/3; }
  .tf-wf-nav { gap:0 8px; padding:8px 16px; }
  .tf-wf-nav { justify-content:flex-start; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:thin; gap:0 20px; overscroll-behavior-x:contain; }
  .tf-wf-nav a { font-size:12px; flex:0 0 auto; white-space:nowrap; }
  .tf-wf-enabled [data-wf-layout=triptych] .tf-wf-photos { grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; }
  body.tf-wedding-fix #tf-md-images.tf-wf-enabled [data-wf-layout=triptych] figure:first-child { grid-row:1/3; }
  .tf-wf-panel[data-wf-layout=ceremonies] .tf-wf-photos { gap:10px; }
  .tf-wf-ceremony { gap:8px; }
  .tf-wf-enabled .tf-wf-ceremony { grid-template-rows:auto auto auto; align-content:center; }
  body.tf-wedding-fix #tf-md-images.tf-wf-enabled .tf-wf-ceremony figure { height:auto; }
  body.tf-wedding-fix #tf-md-images.tf-wf-enabled .tf-wf-ceremony img { height:auto; }
  .tf-wf-ceremony-label { font-size:12px; }
  .tf-wf-enabled [data-wf-layout=proches] .tf-wf-photos { grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; }
  body.tf-wedding-fix #tf-md-images.tf-wf-enabled [data-wf-layout=proches] figure:first-child { grid-column:1/3; grid-row:1; }
  .tf-wf-after { padding:16px 16px 44px; }
  .tf-wedding-film:not(.tf-wf-enabled) .tf-wf-photos { grid-template-columns:1fr; }
  body.tf-wedding-fix #tf-md-images:not(.tf-wf-enabled) .tf-wf-photos img { height:auto; }
  .tf-wf-extra summary { font-size:22px; }
}
@media(max-width:360px) { .tf-wf-script { font-size:40px; } }
@media(prefers-reduced-motion:reduce) { .tf-wf-panel,.tf-wf-extra summary span { animation:none!important; transition:none!important; } }
