/* Geometry and colours measured from the user's Canva invitation. */
*{box-sizing:border-box}
html{background:#f7f3ec;color:#363330}
body.canva-invitation{--invitation-latin-font:"Invitation Cormorant Garamond","Invitation Garamond","Cormorant Garamond",Garamond,serif;--invitation-font-family:"Invitation Cormorant Garamond","Invitation Garamond","Invitation 仿宋體",FangSong,"仿宋","Home Serif TC",serif;margin:0;font-family:var(--invitation-font-family);font-size:26.6667px;line-height:1.4}
main{max-width:1440px;margin:auto;padding-bottom:27px}
h1,h2,p,figure{margin:0}h1,h2{font-weight:400}section{text-align:center}
.multiline{white-space:pre-wrap;overflow-wrap:anywhere}
.family-column{min-width:0}.inv-schedule,.venue-name,.venue-address,.inv-date,.inv-badge,h1,h2{overflow-wrap:anywhere}
.inv-photo{position:relative;overflow:hidden;background:#eee9e0;margin:0 auto}
.inv-photo img{display:block;width:100%;height:100%;object-fit:cover}
.inv-photo.source-crop img{position:absolute;height:auto;max-width:none}
.inv-cover{padding-top:16px}
.inv-cover h1{font-family:"Invitation 思源宋体","Home Serif TC",serif;color:#912c37;font-weight:700;font-size:41.3333px;letter-spacing:.35em;padding-left:.35em;line-height:1.2;margin-bottom:25px}
.photo-hero{width:min(938.67px,calc(100% - 32px));aspect-ratio:938.67/551.16}
.photo-hero img{object-position:50% 100%}
.inv-family{display:grid;grid-template-columns:1fr 80px 1fr;max-width:1064px;min-height:235px;margin:auto;padding:20px 0 20px;align-items:start}
.family-column h2{font-family:"Invitation 芫荽","Home Serif TC",serif;font-size:32px;letter-spacing:0}
.inv-double-happiness{font-family:"Invitation 王漢宗特黑體","Home Serif TC",serif;color:#912c37;font-size:40px;line-height:1.2}
.parent-label{font-family:var(--invitation-font-family);color:#8b7e74;font-size:22.6667px;margin:32px 0 14px}
.parents{font-family:"Invitation 芫荽","Home Serif TC",serif;font-size:22.6667px;min-height:74px;display:flex;align-items:end;justify-content:center;line-height:1.9}
.inv-poem{min-height:324px;padding:34px 16px 40px;line-height:1.4}
.inv-english{font-family:var(--invitation-latin-font);color:#817b74;font-size:18.6667px;line-height:1.4;margin-top:27px}
.inv-time{min-height:648px;display:grid;grid-template-columns:384px 480px;gap:185px;align-items:center;justify-content:center;padding:45px 24px}
.photo-time{width:384px;aspect-ratio:384/428}
.photo-time img{object-position:50% 50%}
.inv-badge{display:inline-block;background:#912c37;color:#fff;font-size:29.3333px;line-height:1.2;padding:2px 17px;margin-bottom:21px}
.inv-date{font-family:var(--invitation-font-family);font-size:29.3333px;line-height:1.3}.inv-lunar{font-size:24px;margin:7px 0 19px}
.calendar-heading{display:flex;justify-content:space-between;align-items:baseline;color:#c52e36;font-family:var(--invitation-font-family);font-size:30px;padding:0 12px 2px}.calendar-heading small{font-size:24px}
.inv-calendar{border-collapse:collapse;width:100%;table-layout:fixed;font-family:var(--invitation-font-family);font-size:25px}
.inv-calendar th{font-family:var(--invitation-font-family);font-weight:400;border-bottom:2px solid #bb2633;height:39px}
.inv-calendar td{height:52px;text-align:center}.inv-calendar td span{display:inline-grid;place-items:center;position:relative;min-width:45px;height:45px;isolation:isolate}
.wedding-day:before{content:"";position:absolute;top:-6px;left:50%;transform:translateX(-50%);width:56.68px;height:52.43px;background:url('/static/images/invitation/MAFn2wC3yNE.svg') center/contain no-repeat;z-index:-1}
.inv-schedule{font-family:var(--invitation-font-family);font-size:28px;margin-top:17px}
.inv-venue{min-height:577px;display:grid;grid-template-columns:530px 612px;gap:86px;align-items:center;justify-content:center;padding:40px 24px 35px}
.venue-name{color:#a3141a;font-size:28px;margin-bottom:9px}.venue-address{font-size:24px;margin-bottom:24px}
.transport{border:1px solid #363330;border-radius:30px;margin:0 0 20px;padding:5px 14px 14px;text-align:left;min-width:0;font-size:19px;line-height:1.5}
.transport legend{font-size:25px;text-align:center;padding:0 6px}.transit-brown{color:#9c6d1e}.transit-blue{color:#137da9}
.transport{font-family:var(--invitation-font-family)}.driving-notice{font-size:16px}
.venue-map{width:100%;height:auto;aspect-ratio:4/3;position:relative;overflow:hidden}.venue-map iframe{border:0;width:100%;height:100%;display:block;position:absolute;inset:0}.venue-map a{position:absolute;bottom:0;left:0;font:14px var(--invitation-font-family);background:#f7f3ec;color:#912c37;padding:4px 8px;opacity:0}.venue-map a:focus{opacity:1}
.inv-collage{padding:20px 16px 16px;min-height:768px}.inv-hearts{display:block;width:85.83px;height:36.9px;margin:0 auto 34px}
.inv-collage .inv-quote{margin-bottom:24px}
.inv-quote{font-size:26.6667px;line-height:1.4;margin-bottom:30px}
.collage-grid{width:738.97px;max-width:100%;display:grid;grid-template-columns:290fr 398.97fr;gap:50px;margin:auto}.collage-left{display:grid;gap:15.5px}.photo-groom,.photo-bride{width:100%;aspect-ratio:1}.photo-couple{width:100%;aspect-ratio:398.97/598.46}
.inv-story{padding:26px 16px 0;min-height:1015px}.story-divider{margin-bottom:20px}.inv-story .inv-quote{margin-bottom:16px;line-height:1.25}.photo-story_top,.photo-story_bottom{width:800px;max-width:100%;aspect-ratio:800/441.128}.photo-story_top{margin-bottom:13px}.photo-story_bottom{aspect-ratio:800/376.794}
.inv-thanks{min-height:403px;padding:4px 16px 40px;line-height:1.4}.inv-thanks .inv-hearts{margin-bottom:52px}.thanks-en{font-family:var(--invitation-latin-font);font-size:40px;font-weight:700;margin-top:65px}
.inv-story .inv-quote{width:max-content;max-width:100%;text-align:left;margin-inline:auto}.inv-story .inv-quote span{display:block}.inv-story .inv-quote span+span{padding-left:128px}
.inv-closing{position:relative;width:380px;max-width:calc(100% - 32px);margin:auto}.photo-closing{width:100%;aspect-ratio:2/3}.closing-message{position:absolute;right:23px;top:23px;color:white;font-family:var(--invitation-font-family);font-size:34.6667px;line-height:1.09}
@media(min-width:1251px){.inv-time{max-width:1366px;margin:auto;grid-template-columns:384px 407px;gap:286px;justify-content:start;padding:26px 0 26px 76px}.inv-time .photo-time{margin-top:44px}.inv-time .inv-badge{margin-bottom:40px;padding-block:0}.inv-time .inv-date{line-height:1.2}.inv-time .inv-lunar{margin-bottom:19px}.calendar-heading{line-height:1.15}.inv-calendar{font-size:24px}.inv-calendar td{height:50px}.inv-schedule{font-size:26.667px;margin-top:16px}.inv-venue{grid-template-columns:530px 612px;gap:86px;justify-content:start;max-width:1366px;margin:auto;padding-left:90px;padding-right:12px}}
@media(max-width:1250px) and (min-width:701px){.inv-time{grid-template-columns:minmax(260px,384px) minmax(340px,480px);gap:8vw}.photo-time{width:100%}.inv-venue{grid-template-columns:minmax(300px,530px) minmax(300px,612px);gap:4vw}.transport{font-size:16px}.venue-name{font-size:25px}}
@media(max-width:700px){
body.canva-invitation{font-size:20px}main{padding-bottom:16px}
.inv-cover{padding-top:16px}.inv-cover h1{font-size:33.0667px;letter-spacing:.35em;margin-bottom:33px}.photo-hero{aspect-ratio:938.67/551.16}
.inv-family{grid-template-columns:1fr 45px 1fr;max-width:390px;min-height:188px;padding:16px 0 15px}.family-column h2{font-size:25.6px;letter-spacing:0}.inv-double-happiness{font-size:32px}.parent-label{font-size:18.1333px;margin:27px 0 8px}.parents{font-size:18.1333px;min-height:63px;line-height:1.9}
.inv-poem{font-size:21.3333px;min-height:250px;padding:32px 16px 25px;line-height:1.4}.inv-english{font-size:15px;margin-top:10px}
.inv-time{display:flex;flex-direction:column;gap:16px;padding:35px 32px 22px;min-height:0}.photo-time{width:calc(100% - 19px);max-width:384px;aspect-ratio:383.7866/427.1022}.inv-date-content{width:100%;max-width:480px}.inv-badge{font-size:23px;padding:2px 13px;margin-bottom:16px}.inv-date{font-size:23px}.inv-lunar{font-size:20px;margin:3px 0 16px}.calendar-heading{font-size:26px;padding:0 4px}.calendar-heading small{font-size:20px}.inv-calendar{font-size:20px}.inv-calendar th{height:34px}.inv-calendar td{height:40px}.inv-calendar td span{min-width:37px;height:36px}.inv-schedule{font-size:22px;margin-top:12px;white-space:nowrap}
.inv-venue{display:flex;flex-direction:column;gap:0;padding:33px 16px 25px;min-height:0}.venue-details{width:100%;max-width:530px}.venue-name{font-size:21px;margin:0 0 5px}.venue-address{font-size:18px;margin-bottom:14px}.transport{font-size:14px;border-radius:26px;padding:3px 10px 10px;margin-bottom:17px;line-height:1.4}.transport legend{font-size:20px;padding:0 4px}.venue-map{height:auto;aspect-ratio:4/3;max-width:612px}
.inv-collage{min-height:0;padding:18px 28px 12px}.inv-hearts{width:68px;height:29px;margin-bottom:14px}.inv-quote{font-size:20px;margin-bottom:13px;white-space:pre-wrap}.inv-collage .inv-quote{margin-left:-14px;margin-right:-14px;margin-bottom:9px}.collage-grid{gap:23px}.collage-left{gap:7px}
.inv-story{min-height:0;padding:19px 16px 30px}.story-divider{margin-bottom:8px}.inv-story .inv-quote{font-size:21.3333px;margin-bottom:10px}.inv-story .inv-quote span+span{padding-left:103px}.photo-story_top{margin-bottom:10px}
.inv-thanks{font-size:21.3333px;min-height:0;padding:4px 16px 31px;line-height:1.4}.inv-thanks .inv-hearts{margin-bottom:11px}.thanks-en{font-size:32px;margin-top:17px}.inv-closing{width:304px}.closing-message{font-size:27.7333px;right:11px;top:14px}
.calendar-heading{line-height:1.2}.calendar-heading>span:last-child{font-size:20px}.wedding-day:before{width:45.34px;height:41.94px;top:-3px}.inv-lunar{margin-bottom:12px}.inv-schedule{margin-top:8px}
.driving-notice{font-size:12px}.venue-details .inv-badge{margin-bottom:15px}.venue-name{font-size:21.3333px}.venue-address{font-family:var(--invitation-font-family)}
.inv-schedule{white-space:pre-wrap}
}
@media(max-width:360px){.inv-time{padding-inline:20px}.parents{font-size:16px}.inv-poem{font-size:18px}.inv-collage .inv-quote{font-size:17px}.inv-schedule{font-size:20px}}

/* 自行開車與大眾運輸內文使用同一圓體，標題維持原字型。 */
.driving-details,.driving-notice,.transit-details p{font-family:"Invitation Cormorant Garamond","Invitation Garamond","Invitation 粉圓體",sans-serif}
