/* Page compositions only. Shared header, footer and CTA appearance belongs to shared-chrome.css. */
#page{padding-top:0!important}

@media(min-width:768px){.date-page{padding-top:0}}

@media(max-width:767px){.date-page{padding-top:0;padding-bottom:85px}}

/* The container and CTA parameters are homepage component instances. */
.date-page main .buy-ticket{width:auto;min-width:185px;max-width:100%;height:auto;white-space:normal}
.date-page main .buy-ticket span{font-size:25px;font-weight:400}
.date-page .hero-image-caption .buy-ticket{flex-shrink:0}
.date-page .price-buy{grid-column:auto;justify-self:end;font-size:17px;min-height:51px;padding:13px 23px;gap:15px;width:auto;min-width:0}
.date-page .price-buy span{font-size:25px;line-height:1.2;font-weight:400}

/* Three complete, consistently rounded clickable formats. */
.format-list{border:0;display:grid;gap:14px}
.format-row{border:1px solid #fff9;border-radius:28px;background:#fff4;padding:25px 28px;transition:background .2s,border-color .2s,box-shadow .2s,transform .2s;cursor:pointer}
.format-row:first-child{background:#fff6}
.format-row:focus-visible{outline:3px solid #bd0a8d;outline-offset:4px;background:#fff9}

@media(hover:hover){.format-row:hover{background:#fffafbe0;border-color:#fff;box-shadow:0 10px 28px #c72b8f16;transform:translateY(-2px)}}
.format-row:active,.format-row.is-opening{background:#ffe6f5;border-color:#e541a6;transform:scale(.995)}
.format-arrow{font-size:25px;font-weight:400}

/* A readable, open price comparison with no nested translucent plaques. */
.price-table{background:none;border:0;padding:0;border-radius:0}
.price-table-head,.price-row{grid-template-columns:minmax(200px,1.25fr) minmax(120px,.7fr) minmax(135px,.8fr) 240px;gap:24px}
.price-table-head{padding:0 0 22px;font-size:13px;color:#64366d}
.price-row{padding:28px 0;border-top:1px solid #66257933;background:none!important;border-radius:0!important;box-shadow:none!important}
.price-row:last-child{border-bottom:1px solid #66257933}
.price-row h3{font-size:21px;line-height:1.4}
.price-cell strong{font-size:25px}
.prices:before{display:none}

/* Caption is below the photograph, never a slab over the visitors. */
.moment-photo{overflow:visible;border-radius:0;max-height:none}
.moment-photo>img{border-radius:32px;aspect-ratio:.93;object-position:50% 20%}
.moment-photo .moment-caption{position:static;inset:auto;margin:19px 0 0;padding:0 6px;background:none;border:0;border-radius:0;text-align:left;font-family:Unbounded,sans-serif;font-size:20px;line-height:1.5;font-weight:400}
.moment-photo .moment-caption br{display:none}

/* Larger, coherent romantic decorations occupy safe layout areas. */
.hero-heading{padding-right:220px}
.hero-heading h1{font-size:clamp(38px,4.3vw,61px)}
.hero-fluff{width:205px;height:205px;right:0;bottom:3px;z-index:0}
.full-headphones{width:190px;height:160px;right:-25px;bottom:-30px;object-fit:contain}
.experience .section-heading{align-items:center;position:relative;min-height:130px}
.experience-hearts{position:static;width:170px;height:130px;object-fit:contain}
.occasions-heading{justify-content:space-between;gap:35px}
.occasions-heading h2{max-width:78%}
.occasion-puff{width:185px;height:185px;object-fit:contain}
.faq-loop{width:240px;height:190px;object-fit:contain;margin:24px 0 0 0}
.invite-fluff{width:260px;height:260px;right:0;bottom:25px;z-index:0}
.final-invite .invite-text{max-width:calc(100% - 270px)}
.final-invite h2{font-size:clamp(28px,2.7vw,38px)}
.final-invite h2 br{display:none}
.final-invite h2>span:not(.museum-name){display:block;margin-left:7%}

/* Supplied reviews, retyped as accessible HTML. */
.date-review{flex:0 0 calc((100% - 48px)/3);scroll-snap-align:start;background:#fff8fb85;border:1px solid #fff9;border-radius:28px;padding:28px;min-height:320px;display:flex;flex-direction:column}
.date-review blockquote{margin:15px 0 28px;font-size:18px;line-height:1.6}
.review-stars{font-size:16px;letter-spacing:2px;color:#b20a76}
.date-review-author{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:13px}
.date-review-author>span{font-size:11px;white-space:nowrap}
.date-review small{font-size:11px;color:#765280;margin-top:10px}
.reviews .section-heading{margin-bottom:25px}

/* Booking is an actual modal, never an in-page jump. */
#ticket-dialog{padding:0;border:0;border-radius:28px;background:#fff8fc;color:#4f006a;width:min(1000px,calc(100% - 40px));height:min(850px,calc(100dvh - 40px));max-height:calc(100dvh - 40px);box-shadow:0 24px 90px #2e063650;overflow:hidden}
#ticket-dialog[open]{display:flex;flex-direction:column}
#ticket-dialog::backdrop{background:#35144780;backdrop-filter:blur(8px)}
.ticket-dialog-top{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 28px;border-bottom:1px solid #6d287323}
.ticket-dialog-top .eyebrow{margin:0 0 6px;font-size:10px}
.ticket-dialog-top h2{font-size:23px;letter-spacing:-.025em;line-height:1.4}
.ticket-close{flex-shrink:0;width:48px;height:48px;border-radius:50%;background:#f3deee;font-size:30px;display:grid;place-items:center;line-height:1}
.ticket-frame-host{flex:1;min-height:0;background:white}
.ticket-frame-host iframe{display:block;width:100%;height:100%;border:0;background:#fff}
.ticket-status{padding:12px 28px;font-size:13px;color:#75516c;background:#fbecf5}
.ticket-status[hidden]{display:none}
.ticket-help{padding:12px 28px;font-size:12px;line-height:1.5;background:#fff8fc}
.ticket-help a{text-decoration:underline;text-underline-offset:3px}
body.booking-open{overflow:hidden}

@media(max-width:1199px){.hero-heading{padding-right:160px}
.hero-heading h1{font-size:46px}
.hero-fluff{width:150px;height:150px}
.price-table-head,.price-row{grid-template-columns:minmax(170px,1.2fr) minmax(110px,.7fr) minmax(120px,.8fr) 210px;gap:16px}
.date-page .price-buy{font-size:15px;padding:13px 18px}
.price-row h3{font-size:18px}
.price-cell strong{font-size:22px}
.invite-fluff{width:210px}
.final-invite .invite-text{max-width:calc(100% - 220px)}}

@media(max-width:991px){.price-table-head,.price-row{grid-template-columns:1.2fr .8fr 1fr}
.date-page .price-buy{grid-column:1/-1;justify-self:end}
.price-table-head>span:last-child{display:none}
.date-review{flex-basis:calc((100% - 24px)/2)}
.hero-heading h1{font-size:39px}
.full-headphones{width:150px}
.occasion-puff{width:140px;height:140px}
.faq-loop{width:180px}
.final-invite h2{font-size:28px}}

@media(max-width:767px){.date-page main .buy-ticket,.date-page .mobile-booking .buy-ticket{width:100%;min-width:0;min-height:52px;padding:13px 16px;font:650 15px/1.35 Montserrat}
.date-page main .buy-ticket span{font-size:25px;font-weight:400}
.date-page .hero-image-caption .buy-ticket{display:none}
.hero-heading{padding-right:0;min-height:145px}
.hero-heading h1{font-size:clamp(27px,7.3vw,43px);max-width:90%}
.hero-heading h1>span{margin-left:8%;margin-top:8px}
.hero-fluff{width:98px;height:98px;right:-5px;bottom:-5px}
.format-row{border-radius:26px;padding:23px 20px;grid-template-columns:minmax(0,1fr) 25px;gap:12px}
.format-list{gap:13px}
.format-row h3{font-size:19px}
.format-row p{font-size:14px}
.format-row .format-time{font-size:14px}
.price-table{display:block;background:none}
.price-row{display:grid;grid-template-columns:1fr 1fr;padding:24px 0;gap:19px 20px;border:0;border-top:1px solid #66257933}
.price-table-head{display:none}
.price-row>div:first-child{grid-column:1/-1}
.price-row h3{font-size:22px}
.price-cell strong{font-size:25px}
.price-cell small{display:block;font-size:12px;line-height:1.5}
.date-page .price-buy{grid-column:1/-1;justify-self:stretch;max-width:none}
.moment-photo{border-radius:0}
.moment-photo>img{aspect-ratio:1.1;border-radius:26px}
.moment-photo .moment-caption{font-size:19px;line-height:1.5;margin-top:17px;padding:0}
.full-headphones{width:145px;height:120px;right:-12px;bottom:-30px}
.full-visual{padding-bottom:65px}
.experience .section-heading{min-height:90px;display:flex;gap:15px}
.experience .section-heading h2{max-width:65%}
.experience-hearts{width:100px;height:90px;flex:0 0 100px}
.occasions-heading{display:block;padding:0;position:relative}
.occasions-heading h2{max-width:100%;padding-right:25px}
.occasion-puff{position:static;width:120px;height:120px;display:block;margin:10px 0 0 auto;z-index:0}
.occasions-heading{margin-bottom:12px}
.faq-heading{display:flex;align-items:center;gap:14px}
.faq-heading h2{max-width:65%}
.faq-loop{width:112px;height:95px;object-fit:contain;margin:0;flex:0 0 112px}
.final-invite .invite-text{max-width:100%}
.final-invite h2{font-size:26px;line-height:1.45}
.final-invite .invite-fluff{position:static;width:165px;height:165px;margin:18px 0 0 auto}
.final-invite{padding-bottom:16px}
.invite-text>.buy-ticket{width:100%;margin:25px 0 0}
.date-review{flex-basis:90%;min-height:300px;padding:24px}
.date-review blockquote{font-size:17px}
.date-review-author{align-items:flex-start}
.date-review-author>span{font-size:10px}
#ticket-dialog{width:calc(100% - 16px);height:calc(100dvh - 16px);max-height:calc(100dvh - 16px);border-radius:22px}
.ticket-dialog-top{padding:16px;gap:12px}
.ticket-dialog-top h2{font-size:17px}
.ticket-dialog-top .eyebrow{font-size:8px}
.ticket-close{width:44px;height:44px}
.ticket-help,.ticket-status{padding:10px 16px;font-size:11px}}

@media(max-width:370px){.hero-fluff{width:80px;height:80px}
.hero-heading h1{font-size:25px}
.format-row{padding:21px 17px}
.format-row h3{font-size:17px}
.price-row h3{font-size:20px}
.price-cell strong{font-size:23px}
.final-invite h2{font-size:23px}
.moment-photo .moment-caption{font-size:17px}}

@media(prefers-reduced-motion:reduce){.format-row{transition:none}
.decor{animation:none!important}}

/* Original decorative layer is clipped by its section, as on the homepage. */
.hero{padding-top:25px}
.date-page main>.section{margin-top:100px}

@media(max-width:960px){.date-page main>.section{margin-top:75px}}

@media(max-width:700px){.date-page main>.section{margin-top:55px}
.date-page main>.formats{margin-top:38px}
.date-page main>.final-invite{margin-top:45px}}
.ticket-frame-host{display:grid;place-items:center;background:radial-gradient(ellipse at center,#f6ddf1,transparent 65%)}
.ticket-loading-heart{width:180px;height:180px;object-fit:contain;animation:float 6s ease-in-out infinite}
#page{overflow-x:clip}
.ticket-local-info{text-align:center;padding:0 28px 26px;width:100%;font-size:15px;line-height:1.7}
.ticket-local-info p{margin:0 0 12px}
.ticket-local-info .buy-ticket{margin:18px auto 0;display:inline-flex;width:auto;max-width:100%}
.ticket-frame-host:has(.ticket-local-info){align-content:center;gap:8px}
.ticket-frame-host:has(iframe){display:block}

@media(max-width:767px){.ticket-local-info{padding:0 20px 20px;font-size:13px}
.ticket-loading-heart{width:140px;height:140px}}
