/* An expressive party page within Kay's existing blue/white identity. */
.party-page{--party-blue:#174ed0;--party-ink:#102759;--party-ice:#eaf8ff;--party-lime:#e2ff7a;background:#fff;color:var(--party-ink)}
.party-page *{box-sizing:border-box}.party-page main{overflow:clip}.party-page h1,.party-page h2,.party-page h3,.party-page p,.party-page figure{margin:0}.party-page a:focus-visible{outline:3px solid #d74b00;outline-offset:6px}.party-page em{font-family:Georgia,serif;font-weight:400;letter-spacing:-.035em}.party-page .party-hero{position:relative;display:grid;grid-template-columns:1.03fr 1fr;min-height:680px;background:var(--party-blue);color:#fff}.party-hero-copy{padding:48px clamp(28px,5.2vw,90px) 62px;position:relative;z-index:1}.party-location{font-size:16px;margin-bottom:22px!important}.party-page h1{font-size:clamp(54px,5.4vw,82px);line-height:1.015;letter-spacing:-.035em;font-weight:800}.party-page h1 em{color:var(--party-lime);white-space:nowrap}.party-page .party-intro{font-size:23px;line-height:1.35;max-width:370px;margin-top:27px}.party-hero-copy>p:not(.party-location):not(.party-intro):not(.party-small){margin-top:14px;max-width:420px;line-height:1.6;font-size:17px}.party-button{display:inline-flex;gap:30px;justify-content:space-between;align-items:center;min-height:54px;background:var(--party-lime);color:var(--party-ink)!important;padding:14px 23px;font-size:17px;font-weight:800;text-decoration:none;border:2px solid transparent;border-radius:2px;transition:background .18s ease,transform .18s ease}.party-button:hover{background:#efffb4;transform:translateY(-2px)}.party-hero-copy .party-button{margin-top:26px}.party-page .party-small{font-size:14px;line-height:1.5;margin-top:15px}.party-hero-photo{position:relative;min-width:0}.party-hero-photo img{width:100%;height:100%;object-fit:cover;object-position:40% center;display:block}.party-hero-photo figcaption{position:absolute;bottom:0;left:0;right:0;padding:14px 18px;background:rgba(9,27,58,.9);color:#fff;font-size:12px}.party-facts{display:grid;grid-template-columns:repeat(3,1fr);padding:27px max(28px,6vw);border-bottom:1px solid #c6d5e7;gap:24px}.party-facts p{font-size:16px;line-height:1.5}.party-facts strong{display:block;font-size:22px;font-weight:800}.party-facts p+p{border-left:1px solid #c6d5e7;padding-left:35px}.party-wrap{max-width:1240px;padding:90px 40px;margin:auto}.party-story{display:grid;grid-template-columns:.95fr 1.05fr;gap:90px}.party-page h2{font-size:clamp(38px,4.2vw,60px);line-height:1.1;letter-spacing:-.035em}.party-story-heading>p{max-width:290px;margin-top:25px;font-size:21px;line-height:1.5}.party-story-detail{padding-left:0}.party-story-detail article{padding:0 0 30px}.party-story-detail article+article{padding-top:25px;border-top:1px solid #c6d5e7}.party-page h3{font-size:23px;line-height:1.25;letter-spacing:-.025em}.party-story-detail p{margin-top:12px;line-height:1.7;font-size:17px}.party-finale-line{font-weight:800;color:var(--party-blue)}.party-story-detail .party-finale{padding-bottom:0}.party-food{background:var(--party-ice);padding:75px 40px}.party-food-inner{max-width:1160px;margin:auto;display:grid;grid-template-columns:.95fr 1.05fr;gap:90px}.party-food p{margin-bottom:18px;line-height:1.65;font-size:17px}.party-food .party-lead{font-size:23px;line-height:1.35;font-weight:700}.party-text-link{font-weight:800;color:var(--party-ink);text-underline-offset:5px}.party-enquiry{display:grid;grid-template-columns:.95fr 1.05fr;gap:90px;scroll-margin-top:120px}.party-enquiry-heading img{height:82px;width:82px;object-fit:cover;border-radius:50%;margin-bottom:23px}.party-enquiry-heading>p{max-width:380px;margin-top:24px;font-size:18px;line-height:1.6}.party-contact{padding-top:25px;align-self:center}.party-contact-lead{font-size:22px;font-weight:700}.party-contact ul{padding:0;list-style:none;margin:22px 0 30px}.party-contact li{border-bottom:1px solid #c6d5e7;padding:12px 0;font-size:18px}.party-contact li:first-child{border-top:1px solid #c6d5e7}.party-contact .party-button{background:var(--party-blue);color:#fff!important;width:100%;max-width:420px}.party-contact .party-button:hover{background:#103ca3}.party-page .party-contact-address{margin-top:23px;font-size:16px;line-height:1.9;overflow-wrap:anywhere}.party-contact-address a{color:var(--party-ink);text-underline-offset:4px}.party-contact .party-small{max-width:410px;color:#4a5872}
@media(min-width:1600px){.party-hero-copy{padding-left:max(7vw,calc((100vw - 1350px)/2))}}
@media(max-width:1050px){.party-page .party-hero{min-height:640px;grid-template-columns:1.05fr 1fr}.party-page h1{font-size:58px}.party-hero-copy{padding:40px 30px 45px}.party-story,.party-food-inner,.party-enquiry{gap:45px}.party-wrap{padding:70px 30px}.party-food{padding:65px 30px}}
@media(max-width:740px){.party-page .party-hero{display:flex;flex-direction:column}.party-hero-copy{padding:34px 24px 36px}.party-location{font-size:14px;margin-bottom:20px!important}.party-page h1{font-size:clamp(45px,10.5vw,70px)}.party-page h1 em{white-space:normal}.party-page .party-intro{font-size:21px;max-width:350px;margin-top:23px}.party-hero-photo{height:330px}.party-hero-photo img{object-position:center center}.party-hero-photo figcaption{font-size:11px;padding:10px 14px}.party-facts{padding:22px 24px;grid-template-columns:1fr;gap:14px}.party-facts p{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;font-size:15px}.party-facts strong{font-size:19px}.party-facts p+p{padding:14px 0 0;border-left:0;border-top:1px solid #c6d5e7}.party-story,.party-food-inner,.party-enquiry{grid-template-columns:1fr;gap:32px}.party-wrap{padding:55px 24px}.party-page h2{font-size:43px}.party-story-heading>p{font-size:19px;max-width:310px;margin-top:18px}.party-story-detail{padding-left:0}.party-page h3{font-size:22px}.party-food{padding:48px 24px}.party-food-inner{gap:25px}.party-enquiry{gap:15px;scroll-margin-top:90px}.party-enquiry-heading>p{margin-top:18px}.party-contact{padding-top:8px}.party-button{gap:18px;font-size:16px;padding:13px 18px}.party-contact-lead{font-size:20px}}
@media(prefers-reduced-motion:reduce){.party-page *{scroll-behavior:auto!important;animation:none!important;transition:none!important}.party-button:hover{transform:none}}
.party-hero a:focus-visible{outline-color:#fff}

/* Party poster direction: more expressive type, an open photo and a bright rhythm. */
@font-face{font-family:Kay Party;src:url('/assets/fonts/lilita-one.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
.party-page{--party-lime:#96eafb}
.party-page .party-hero{grid-template-columns:1.04fr 1fr;min-height:730px;padding:0 0 0;background:#174ed0;align-items:center}
.party-hero-copy{padding:48px 12px 52px clamp(28px,5.2vw,90px)}
.party-page h1{font-family:Kay Party,Trebuchet MS,sans-serif;font-weight:400;font-size:clamp(66px,7vw,96px);line-height:.98;letter-spacing:-.02em;position:relative;z-index:2}
.party-page h1 span,.party-page h1 em{display:block}
.party-page h1 em{font-family:inherit;font-style:normal;font-weight:400;color:#96eafb;letter-spacing:-.02em;white-space:nowrap}
.party-page .party-intro{font-size:20px;line-height:1.6;max-width:445px;margin-top:28px}
.party-hero-copy .party-button{margin-top:25px;background:#96eafb;min-height:60px;padding:16px 25px;font-size:18px}
.party-hero-copy .party-button:hover{background:#c3f5ff}
.party-hero-photo{margin:36px 36px 36px 25px!important;height:620px;align-self:center;transform:rotate(2deg);border:9px solid #fff;background:#fff;overflow:hidden;border-radius:110px 12px 110px 12px}
.party-hero-photo img{object-position:45% center;transition:transform .5s ease}
.party-hero-photo figcaption{background:#102759;color:#fff;font-size:12px;line-height:1.5;text-align:center;padding:12px 26px}
.party-facts{background:#96eafb;border:0;padding-top:29px;padding-bottom:29px}
.party-facts strong{font-family:Kay Party,Trebuchet MS,sans-serif;font-weight:400;font-size:29px;line-height:1.2;margin-bottom:4px}
.party-facts p+p{border-color:#10275955}
.party-page h2{font-family:Kay Party,Trebuchet MS,sans-serif;font-weight:400;letter-spacing:0;line-height:1.08}
.party-page h2 em{font-family:inherit;font-style:normal;font-weight:400;letter-spacing:0;color:#174ed0}
.party-food{background:#eaf8ff}
.party-enquiry .party-button{background:#174ed0;color:white!important}
@media(min-width:1600px){.party-hero-copy{padding-left:max(7vw,calc((100vw - 1380px)/2))}}
@media(max-width:1100px){.party-page .party-hero{min-height:690px}.party-page h1{font-size:clamp(60px,7.2vw,80px)}.party-hero-photo{height:580px;margin:30px 25px 30px 10px!important;border-radius:80px 10px 80px 10px}.party-hero-copy{padding-left:30px}.party-page .party-intro{font-size:18px;max-width:380px}}
@media(max-width:740px){.party-page .party-hero{display:flex;min-height:0;align-items:stretch}.party-hero-copy{padding:34px 24px 30px}.party-page h1{font-size:clamp(47px,11.6vw,78px);line-height:1}.party-page h1 em{white-space:normal}.party-page .party-intro{font-size:18px;line-height:1.6;margin-top:25px;max-width:450px}.party-hero-photo{height:350px;margin:0 25px 32px!important;border:6px solid #fff;border-radius:70px 8px 70px 8px;transform:rotate(2deg)}.party-hero-photo img{object-position:center}.party-hero-photo figcaption{font-size:11px;padding:10px 12px}.party-facts{padding-top:25px;padding-bottom:25px}.party-facts strong{font-size:23px}.party-facts p+p{border-color:#10275955}.party-page h2{font-size:43px}.party-hero-copy .party-button{font-size:17px;min-height:56px}}

.party-hero-photo figcaption{padding:12px 55px 20px}
@media(max-width:740px){.party-hero-photo figcaption{padding:10px 38px 18px}}

/* Party enquiry form shares the existing email service, with its own party fields. */
.party-contact form{width:100%;max-width:620px}
.party-contact fieldset{border:0;padding:0;margin:24px 0 0;min-width:0}
.party-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 18px;align-items:end}
.party-full{grid-column:1/-1}
.party-contact label{display:block;font:700 16px/1.5 "Trebuchet MS",Arial,sans-serif;margin-bottom:7px;color:#102759}
.party-contact label span{font-weight:400;font-size:14px}
.party-contact input,.party-contact textarea{display:block;box-sizing:border-box;width:100%;min-width:0;min-height:48px;padding:11px 12px;border:1px solid #8496ad;border-radius:3px;background:#fff;font:17px/1.5 "Trebuchet MS",Arial,sans-serif;color:#102759}
.party-contact input{height:50px}
.party-contact textarea{resize:vertical}
.party-contact input:focus-visible,.party-contact textarea:focus-visible,.party-contact button:focus-visible{outline:3px solid #174ed0;outline-offset:3px}
.party-contact .party-button{cursor:pointer;font-family:inherit;justify-content:center;max-width:none;margin-top:18px}
.party-contact .party-button:disabled{opacity:.65;cursor:wait;transform:none}
.party-page .party-form-help,.party-page .party-privacy{font-size:14px;line-height:1.6;color:#44536c;margin:0}
.party-page .party-privacy{margin-top:20px}
.party-privacy a{color:#174ed0;text-underline-offset:3px}
.party-trap{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.party-form-status:empty{display:none}
.party-page .party-form-status{padding:16px;margin-top:18px;font-size:16px;line-height:1.6;background:#eaf8ff;border:1px solid #174ed0}
.party-form-status[data-state=error]{background:#fff3ee;border-color:#a83c14}
.party-form-status:focus{outline:2px solid #174ed0;outline-offset:3px}
.party-enquiry-heading{align-self:start}
@media(max-width:600px){.party-form-grid{grid-template-columns:1fr;gap:18px}.party-full{grid-column:auto}.party-contact{padding-top:10px}}

/* Preserve the supplied portrait photograph without cropping the child. */
.party-hero-photo{width:calc(100% - 60px);max-width:480px;height:auto;aspect-ratio:3/4;justify-self:center}
.party-hero-photo img{height:100%;object-fit:contain}
@media(max-width:740px){.party-hero-photo{width:calc(100% - 50px);height:auto;aspect-ratio:3/4}}
