@import url('./assets/fonts/fonts.css');
:root{--ink:#554052;--muted:#806e78;--paper:#fff8f2;--lavender:#cf9292;--lavender-light:#f5e6e4;--coral:#cf9292;--line:#ebdeda;--gold:#eabd64;--green:#476e59;--radius:24px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.6 'DM Sans',sans-serif}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Outfit,'DM Sans',sans-serif;line-height:1.14;font-weight:600}button:focus-visible,a:focus-visible{outline:3px solid #ad656c;outline-offset:5px}input:focus{outline:3px solid #cf929255;border-color:#ad656c}::selection{background:#f0d2d0}[hidden]{display:none!important}.shell{width:min(1180px,calc(100% - 80px));margin-inline:auto}.site-header{height:108px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:flex;align-items:center;gap:8px;font-family:Outfit,sans-serif;font-weight:600;font-size:32px;letter-spacing:-1.6px}.brand-moon{font-size:44px;line-height:1;transform:rotate(-16deg);font-weight:400}.brand-on{color:#ad656c;position:relative;font-weight:800}.brand-star{position:absolute;top:-9px;right:-10px;font-size:15px;color:var(--coral)}nav{display:flex;align-items:center;gap:28px}.nav-note{font-size:12px;color:var(--muted)}.button{display:inline-flex;justify-content:center;align-items:center;gap:28px;border:1px solid transparent;border-radius:12px;min-height:52px;padding:13px 23px;font-size:14px;font-weight:600;transition:background .18s,transform .18s,box-shadow .18s}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--ink);color:#fffaf4;box-shadow:0 5px 0 #55405210}.button-primary:hover{background:#6b4c63;box-shadow:0 7px 15px #55405212}.button-outline{border-color:#dfc6cd;background:transparent}.button-outline:hover{background:var(--lavender-light)}.button-small{min-height:43px;padding:9px 16px;font-size:12px;gap:20px}.button-full{width:100%}.hero{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:20px;padding:37px 0 57px}.hero-copy{position:relative;z-index:1}.eyebrow{display:block;font-size:10px;font-weight:700;letter-spacing:1.8px;line-height:1.7}.hero-copy .eyebrow{display:flex;gap:10px;align-items:center;font-size:9px}.hero-copy .eyebrow>span{font-size:22px;color:#ad656c}.hero h1{font-size:clamp(38px,4.4vw,61px);letter-spacing:-2.1px;margin:21px 0 24px;line-height:1.08;white-space:nowrap}.hero h1>span{color:#ad656c;position:relative;display:inline-block}.hero h1 svg{position:absolute;bottom:-12px;left:-2px;width:100%;height:15px;fill:none;stroke:var(--coral);stroke-width:5;stroke-linecap:round}.hero-copy>p{max-width:410px;font-size:15px;line-height:1.8;color:var(--muted);margin-bottom:25px}.hero-footnote{margin-top:17px;font-size:11px;color:var(--muted);display:flex;gap:8px;align-items:center}.tiny-star{color:#c98e63}.hero-art{position:relative;min-height:405px;display:flex;align-items:center;justify-content:center}.hero-art img{width:110%;height:auto;max-width:660px;position:relative;margin-left:-10px;z-index:1}.art-blob{position:absolute;width:92%;height:85%;top:2%;left:5%;background:#f6e5e2;border-radius:48% 48% 43% 53%;transform:rotate(-5deg)}.art-sticker{position:absolute;bottom:7%;right:-7px;z-index:2;display:flex;align-items:center;gap:12px;background:#f8de9b;padding:17px 22px;border-radius:14px;transform:rotate(7deg);box-shadow:3px 6px 0 #55405208;font-family:Outfit,sans-serif;font-size:14px;line-height:1.25}.art-sticker>span:first-child{font-size:40px}.art-sticker strong{font-size:21px;font-weight:600}.art-caption{position:absolute;bottom:-14px;left:17%;font-size:8px;letter-spacing:1.9px;color:#98919d}.art-spark{position:absolute;color:#c7a059;font-size:35px}.spark-one{left:5%;top:4%}.spark-two{right:2%;top:22%;font-size:24px}.onboarding{display:grid;grid-template-columns:1fr 1fr;gap:100px;background:#f3e5e3;border-radius:28px;padding:53px 64px;position:relative}.onboarding-copy{padding-top:22px}.onboarding-copy .eyebrow{color:#956c7d;font-size:9px}.onboarding-copy h2{font-size:36px;letter-spacing:-1px;margin:15px 0 16px}.onboarding-copy>p{color:var(--muted);font-size:13px;line-height:1.8}.steps{list-style:none;padding:0;margin:30px 0 20px;display:grid;gap:24px}.steps li{display:flex;gap:15px;align-items:center}.steps li>span{font:500 12px Outfit,sans-serif;background:#fff8f2;border:1px solid #e6ccd3;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;flex-shrink:0}.steps strong{font-size:13px}.steps p{font-size:11px;color:var(--muted);margin-top:3px}.handwritten{font-family:Georgia,serif;font-style:italic;color:#a46c7d;font-size:17px;transform:rotate(-4deg);margin:27px 0 5px 40px}.handwritten span{font-size:33px;margin-left:10px}.access-card{background:#fffefb;border:1px solid #ffffff;border-radius:20px;padding:25px 29px 22px;box-shadow:0 14px 32px #55405208}.tabs{display:flex;background:#f7eeeb;border-radius:9px;padding:4px;gap:3px;margin-bottom:23px}.tab{width:50%;padding:9px 7px;border:0;color:var(--muted);border-radius:6px;background:transparent;font-size:11px;font-weight:600}.tab.active{background:white;color:var(--ink);box-shadow:0 2px 5px #55405209}.card-icon{float:right;font-size:30px;color:var(--gold);line-height:1}.access-card h3{font-size:25px;margin-bottom:5px;letter-spacing:-.5px}.card-subtitle{font-size:11px;color:var(--muted);margin-bottom:22px}label{display:block;font-size:11px;font-weight:600;margin-bottom:7px}input{display:block;width:100%;min-height:45px;background:#fffefc;border:1px solid #e8d8da;border-radius:8px;color:var(--ink);padding:10px 12px;font-size:13px;transition:border-color .18s}input::placeholder{color:#a18e98;font-size:11px}.field-hint{display:block;color:#947a87;font-size:9px;margin-top:6px}.access-card label:not(:first-child),#confirm-group label{margin-top:16px}.password-field{position:relative}.password-field input{padding-right:52px}.password-field button{position:absolute;right:5px;top:5px;bottom:5px;padding:0 10px;border:0;background:transparent;color:var(--muted);font-size:11px;border-radius:5px}.password-field button:hover{background:var(--lavender-light)}#auth-submit{margin-top:22px;min-height:47px;font-size:12px}.local-note{display:flex;gap:7px;font-size:9px;color:#927684;line-height:1.6;margin-top:15px}.local-note>span{font-size:13px}.form-message{font-size:12px;color:#a03f46;background:#fff0ed;border-radius:8px;padding:10px 12px;margin-top:14px}.form-message.success{color:#38614a;background:#edf5ee}.closing-note{text-align:center;padding:43px 0 36px;font-size:13px;color:#997888;font-family:Georgia,serif;font-style:italic}.closing-note span{font-style:normal;margin:0 22px;color:#cc9fa8}.site-footer{min-height:90px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:10px;color:#9a8190}.footer-brand{font:500 20px Outfit,sans-serif;letter-spacing:-1px;color:var(--ink)}.footer-brand span:first-child{color:#ad656c;font-weight:700}.footer-brand span:last-child{margin-left:6px;color:#ad656c}.dashboard{padding-top:25px;padding-bottom:36px;min-height:calc(100vh - 198px)}.dashboard-welcome{display:flex;align-items:center;justify-content:space-between;margin-bottom:38px}.dashboard-welcome .eyebrow{color:#ad656c}.dashboard-welcome h1{font-size:42px;letter-spacing:-1.5px;margin-top:10px}.dashboard-welcome h1 span{color:#ad656c}.dashboard-welcome p{margin-top:13px;color:var(--muted);font-size:14px}.welcome-moon{font-size:90px;line-height:1;color:#cf9292;transform:rotate(-15deg);margin-right:25px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:28px;align-items:start}.celebration-card{background:#fffefb;border:1px solid var(--line);border-radius:24px;padding:30px}.section-heading{display:flex;gap:13px;align-items:center;border-bottom:1px solid #eddfdf;padding-bottom:25px;margin-bottom:27px}.section-number{display:grid;place-items:center;height:39px;width:39px;flex-shrink:0;background:var(--lavender-light);border-radius:12px;font-size:13px}.section-heading h2{font-size:25px;letter-spacing:-.5px}.section-heading p{font-size:11px;color:var(--muted);margin-top:5px}.pill{margin-left:auto;color:#977938;background:#fbf1d8;padding:5px 9px;border-radius:20px;font-size:9px;white-space:nowrap}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:24px}.form-row label{font-size:12px}.required{color:#bb7b88}.quantity-control{display:flex;align-items:center;border:1px solid #e8d8da;border-radius:8px;background:#fffefc;padding:3px}.quantity-control input{border:0;text-align:center;min-height:37px;padding:5px;appearance:textfield;-moz-appearance:textfield}.quantity-control input::-webkit-inner-spin-button,.quantity-control input::-webkit-outer-spin-button{appearance:none;margin:0}.quantity-control button{height:34px;min-width:37px;border:0;border-radius:5px;background:#f8eeeb;color:var(--ink);font-size:19px}.quantity-control button:hover{background:#efd8d9}.children-heading{margin:30px 0 17px}.children-heading h3{font-size:19px}.children-heading h3 span{color:#bc8997;font-size:17px;margin-left:6px}.children-heading p{margin-top:7px;font-size:11px;color:var(--muted)}.children-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px 24px}.child-input{position:relative}.child-input>span{position:absolute;bottom:12px;left:12px;font:12px Outfit,sans-serif;color:#bc8997}.child-input input{padding-left:36px}.save-area{border-top:1px solid #eddfdf;padding-top:24px;margin-top:30px;display:flex;align-items:center;justify-content:space-between;gap:16px}.save-area>div{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--muted)}.save-indicator{height:6px;width:6px;flex-shrink:0;border-radius:50%;background:#d8bd86}.save-area.saved .save-indicator{background:#81aa8e}.save-area .button{font-size:11px;min-height:45px;gap:12px;padding:11px 16px;white-space:nowrap}.summary-card{background:#f3e5e3;border-radius:24px;padding:23px 28px 26px}.summary-illustration{display:flex;align-items:center;justify-content:center;gap:30px;height:105px;color:#b57d90}.mini-moon{font-size:93px;line-height:1;color:#cf9292;transform:rotate(-18deg)}.mini-star{color:#cfac65;font-size:25px}.mini-star:first-child{align-self:start;margin-top:20px;font-size:22px}.summary-card .eyebrow{font-size:8px;letter-spacing:1.3px;color:#9d6f80;text-align:center;margin-top:10px}.summary-card h2{font-size:28px;text-align:center;margin:13px 0 25px;letter-spacing:-.5px}.summary-card dl{margin:0}.summary-card dl>div{border-top:1px solid #e4cdd2;padding:15px 0}.summary-card dt{font-size:10px;color:#8a6b7d}.summary-card dd{font-size:13px;font-weight:500;margin:5px 0 0;overflow-wrap:anywhere}.summary-note{border-top:1px solid #e4cdd2;padding-top:18px;display:flex;gap:10px;align-items:center}.summary-note>span{font-size:27px;color:#b97889}.summary-note p{font-size:10px;color:#957484;line-height:1.7}.dashboard .form-message{margin-bottom:0}
@media(min-width:1450px){.hero{padding-block:55px 70px}.hero h1{font-size:61px}.hero-art{min-height:430px}}
@media(max-width:1100px){.shell{width:calc(100% - 56px)}.hero h1{font-size:48px}.hero-copy .eyebrow{font-size:8px;letter-spacing:1px}.hero-art{min-height:360px}.onboarding{gap:45px;padding:40px}.onboarding-copy h2{font-size:32px}.dashboard-grid{grid-template-columns:minmax(0,1fr) 280px;gap:20px}.celebration-card{padding:23px}.pill{display:none}.save-area{flex-direction:column-reverse;align-items:stretch}.save-area>div{justify-content:center}.dashboard-welcome h1{font-size:37px}}
@media(max-width:800px){.nav-note{display:none}.site-header{height:90px}.hero{grid-template-columns:1fr;padding:25px 0 50px;gap:15px}.hero-copy{text-align:center}.hero-copy .eyebrow{justify-content:center;font-size:8px;letter-spacing:1.3px}.hero h1{font-size:54px;white-space:normal}.hero-copy>p{margin-inline:auto;max-width:410px}.hero-footnote{justify-content:center}.hero-art{max-width:490px;width:100%;margin:10px auto 0;min-height:320px}.hero-art img{width:100%;margin:0}.art-sticker{right:5px;bottom:6%}.art-caption{left:13%;font-size:7px}.onboarding{gap:30px;padding:30px;grid-template-columns:1fr 1.2fr}.onboarding-copy h2{font-size:27px}.onboarding-copy>p br{display:none}.steps p{font-size:10px}.handwritten{margin-left:0;font-size:14px}.access-card{padding:20px}.dashboard-grid{grid-template-columns:1fr}.summary-card{display:none}.dashboard-welcome h1{font-size:37px;max-width:520px}.welcome-moon{font-size:65px;margin-right:0}.save-area{flex-direction:row;align-items:center}.site-footer p{font-size:9px}}
@media(max-width:580px){.shell{width:calc(100% - 36px)}.brand{font-size:27px}.brand-moon{font-size:37px}.button-small{font-size:10px;min-height:40px;padding:8px 12px;gap:12px}.site-header{height:83px}.hero{padding-top:20px;gap:20px}.hero-copy .eyebrow{font-size:6.8px;letter-spacing:1.1px;gap:6px}.hero h1{font-size:42px;letter-spacing:-1.5px;margin-top:16px;margin-bottom:23px}.hero-copy>p{font-size:13px;max-width:340px;padding-inline:3px;margin-bottom:22px}.hero-footnote{font-size:9px}.hero-art{min-height:270px;margin-top:5px}.hero-art img{width:105%}.art-sticker{padding:10px 13px;right:0;bottom:5%;gap:8px;font-size:10px}.art-sticker strong{font-size:16px}.art-sticker>span:first-child{font-size:30px}.art-caption{font-size:6px;letter-spacing:1.4px;bottom:-10px;left:12%}.spark-one{font-size:27px;left:6%}.onboarding{grid-template-columns:1fr;padding:27px 19px;gap:25px;border-radius:21px}.onboarding-copy{padding:0 5px}.onboarding-copy h2{font-size:31px;margin-block:12px}.onboarding-copy>p{font-size:12px;max-width:310px}.steps{gap:17px;margin:24px 0 5px}.steps strong{font-size:12px}.steps p{font-size:10px}.steps li>span{width:31px;height:31px}.handwritten{display:none}.access-card{padding:23px 20px;border-radius:15px}.card-subtitle{font-size:10px}.closing-note{font-size:11px;padding:30px 0}.closing-note span{margin:0 5px;font-size:16px}.site-footer{min-height:95px;flex-wrap:wrap;gap:2px 15px;padding-block:20px}.site-footer .footer-brand{width:40%}.site-footer p{order:3;width:100%;font-size:9px}.site-footer>span:last-child{margin-left:auto}.dashboard{padding-top:15px}.dashboard-welcome{margin-bottom:25px}.dashboard-welcome h1{font-size:34px;letter-spacing:-1px}.dashboard-welcome p{font-size:12px}.dashboard-welcome .eyebrow{font-size:9px}.welcome-moon{display:none}.celebration-card{padding:22px 18px;border-radius:20px}.section-heading{gap:10px;padding-bottom:20px;margin-bottom:22px}.section-heading h2{font-size:24px}.section-heading p{font-size:9px}.section-number{width:33px;height:33px;border-radius:9px;font-size:11px}.form-row{grid-template-columns:1fr;gap:20px}.children-grid{gap:14px 12px}.children-heading p{font-size:10px}.children-grid label{font-size:10px}.child-input input{font-size:12px;padding-left:30px}.child-input>span{left:10px}.save-area{flex-direction:column-reverse;align-items:stretch;gap:14px;margin-top:25px}.save-area .button{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Supplied Pijama ON logo: preserve the original image and aspect ratio. */
.site-header{height:148px}.brand{flex-shrink:0}.brand-logo{display:block;width:112px;height:auto;mix-blend-mode:multiply}.site-footer{min-height:126px}.footer-brand{display:block;flex-shrink:0}.footer-brand img{display:block;width:76px;height:auto;mix-blend-mode:multiply}
@media(max-width:800px){.site-header{height:126px}.brand-logo{width:96px}}
@media(max-width:580px){.site-header{height:116px}.brand-logo{width:88px}.site-footer{padding-block:16px;min-height:126px}.site-footer .footer-brand{width:auto}.footer-brand img{width:66px}.site-footer p{width:100%}}

/* Contact information and the notice stay alongside the data-entry action. */
.onboarding{grid-template-columns:.9fr 1.1fr;gap:64px;align-items:start}
.contact-fields,.privacy-fields{border:0;margin:0;padding:0;min-width:0}
.contact-fields legend,.access-section-label{font-family:Outfit,sans-serif;font-size:16px;font-weight:500;margin-bottom:8px}
.fieldset-note{font-size:11px;line-height:1.7;color:var(--muted);margin:0 0 16px}
.contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.contact-wide{grid-column:1/-1}.contact-grid>div{min-width:0}
.access-section-label{border-top:1px solid var(--line);padding-top:22px;margin-top:22px}
.contact-grid label{margin-top:0!important}
.privacy-fields{margin-top:22px}
.privacy-summary{border-left:3px solid var(--coral);background:#fcf3ee;border-radius:0 10px 10px 0;padding:15px}
.privacy-summary strong{display:block;font-size:12px;font-weight:600;margin-bottom:7px}
.privacy-summary p{font-size:11px;line-height:1.75;color:#78616d;margin-bottom:9px}
.text-button{display:inline;padding:0;border:0;border-radius:2px;background:none;color:#915760;font:inherit;font-weight:500;text-align:left;text-decoration:underline;text-underline-offset:3px;cursor:pointer;line-height:inherit}
.text-button:hover{color:var(--ink)}.privacy-summary .text-button{font-size:11px}
.checkbox-label{display:flex;align-items:flex-start;gap:10px;font-size:11px;line-height:1.7;font-weight:400;color:var(--ink);margin:16px 0 0!important;cursor:pointer}
.checkbox-label input[type=checkbox]{appearance:auto;display:block;width:17px;height:17px;min-height:17px;flex:0 0 17px;padding:0;margin:2px 0 0;accent-color:var(--ink);border-radius:3px}
.profile-card{margin-bottom:25px;border:1px solid var(--line);border-radius:18px;background:#fffefb;padding:0 25px}
.profile-card summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;padding:20px 0}
.profile-card summary::-webkit-details-marker{display:none}.profile-card summary:focus-visible{outline:3px solid #ad656c;outline-offset:4px}
.profile-card summary strong{font-family:Outfit,sans-serif;font-size:20px;font-weight:500;display:block}
.profile-card summary small{display:block;font-size:11px;color:var(--muted);margin-top:4px}
.profile-chevron{font-size:25px;line-height:1;transition:transform .15s}.profile-card[open] .profile-chevron{transform:rotate(180deg)}
.profile-card form{border-top:1px solid var(--line);padding:20px 0 24px}
.profile-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.profile-privacy-note{font-size:11px;color:var(--muted);margin:18px 0 0;line-height:1.7}
.profile-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:22px}
.danger-button{font-size:11px;color:#954650}.profile-card .form-message{margin-top:18px}
.footer-privacy{font-size:11px;white-space:nowrap}.children-heading .text-button{font-size:11px}
.privacy-dialog{width:min(680px,calc(100% - 32px));max-height:calc(100dvh - 40px);padding:30px;border:1px solid var(--line);border-radius:22px;background:var(--paper);color:var(--ink);box-shadow:0 24px 80px #35233230;overflow-y:auto;overscroll-behavior:contain}
.privacy-dialog::backdrop{background:#2a162b88;backdrop-filter:blur(3px)}
body:has(dialog[open]){overflow:hidden}
.dialog-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}
.dialog-tag{font-size:11px;color:#9d6f80;background:#f4e2df;border-radius:20px;padding:5px 12px}
.dialog-close{width:38px;height:38px;border:1px solid #e4cdd2;border-radius:50%;color:var(--ink);background:transparent;font-size:25px;line-height:1}
.privacy-dialog h2{font-size:29px;letter-spacing:-.5px}.privacy-dialog h2:focus{outline:none}
.dialog-intro{margin-top:14px;font-size:14px;line-height:1.75;color:#7c596b}
.privacy-content{border-top:1px solid var(--line);padding-top:6px;margin-top:22px}
.privacy-content h3{font-size:18px;margin:22px 0 10px}
.privacy-content p{font-size:13px;line-height:1.8;color:#705f6a;margin:0 0 10px}
.dialog-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding-top:20px;margin-top:25px}
.dialog-bottom small{font-size:10px;color:var(--muted)}
.delete-dialog{max-width:500px}.delete-dialog>p{font-size:13px;line-height:1.8;color:var(--muted);margin-top:18px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1100px){.onboarding{gap:35px}.profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.onboarding{grid-template-columns:1fr;gap:30px}.onboarding-copy{max-width:550px}.access-card{width:100%}.site-footer{flex-wrap:wrap;padding-block:16px}.site-footer p{order:3;width:100%}}
@media(max-width:580px){.onboarding{padding:25px 16px}.contact-grid{grid-template-columns:1fr;gap:15px}.contact-wide{grid-column:auto}.privacy-summary{padding:13px}.privacy-summary p,.privacy-summary .text-button,.checkbox-label{font-size:11px}.profile-card{padding:0 18px}.profile-card summary strong{font-size:19px}.profile-card summary small{font-size:10px}.profile-actions{align-items:flex-start;flex-direction:column;gap:17px}.profile-actions .button{width:100%}.privacy-dialog{padding:22px 19px;max-height:calc(100dvh - 28px)}.privacy-dialog h2{font-size:26px}.dialog-intro{font-size:13px}.privacy-content p{font-size:12px}.dialog-bottom{flex-wrap:wrap}.footer-privacy{font-size:10px}.site-footer>span:last-child{font-size:9px}.children-heading .text-button{display:inline-block;margin-top:4px}}

.noscript-message{padding:20px;margin:0;text-align:center;color:var(--ink);background:#f5dfd9}

/* Booking follows the family’s sequence; the calendar is the starting point. */
button, input, select, textarea { font:inherit; }
input, select, textarea { font-size:14px; }
textarea, select { width:100%; padding:11px 12px; border:1px solid #e8d8da; border-radius:8px; background:#fffefc; color:var(--ink); }
textarea { resize:vertical; line-height:1.6; min-height:110px; }
select { min-height:45px; }
textarea:focus, select:focus { outline:3px solid #cf929255; border-color:#ad656c; }
button:disabled { cursor:default; }
.dashboard h1:focus, .dashboard h2:focus, .privacy-dialog h2:focus { outline:none; }
.workspace-navigation { display:flex; gap:6px; border-bottom:1px solid var(--line); margin-bottom:24px; }
.workspace-tab { min-height:48px; border:0; border-bottom:3px solid transparent; background:none; padding:10px 18px; color:var(--muted); font-size:14px; }
.workspace-tab.active { color:var(--ink); border-bottom-color:var(--ink); font-weight:700; }
#dashboard-message { margin:0 0 22px; }
.reservation-overview { display:flex; align-items:center; justify-content:space-between; gap:24px; margin:30px 0 20px; }
.reservation-overview h2 { font-size:28px; }
.reservation-overview p { color:var(--muted); font-size:13px; margin-top:8px; max-width:66ch; }
.reservation-list { display:grid; gap:12px; margin-bottom:28px; }
.empty-state { border:1px dashed #dcbfc1; border-radius:12px; padding:24px; color:var(--muted); font-size:14px; }
.empty-state .text-button { margin-top:10px; }
.reservation-card { padding:21px 23px; border:1px solid var(--line); border-radius:14px; background:#fffdfb; min-width:0; }
.reservation-card-heading { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.reservation-card h3 { font-size:22px; }
.status-pill { display:inline-block; flex-shrink:0; border-radius:20px; padding:4px 10px; font-size:11px; background:#f5ecd7; color:#786132; }
.status-confirmed { background:#e6f0e7; color:#3c664b; }
.status-cancelled { background:#f3e3e6; color:#8b485a; }
.status-completed { background:#eee7f1; color:#6d4e77; }
.reservation-children { margin-top:11px; color:var(--muted); font-size:13px; overflow-wrap:anywhere; }
.reservation-owner { font-size:14px; margin-top:12px; font-weight:600; overflow-wrap:anywhere; }
.reservation-actions { display:flex; align-items:center; flex-wrap:wrap; gap:23px; margin-top:16px; }
.reservation-actions .text-button { font-size:13px; min-height:32px; }
.booking-heading { display:flex; justify-content:space-between; gap:15px; align-items:center; }
.booking-heading p { color:var(--muted); font-size:12px; margin-bottom:6px; }
.booking-heading h2 { font-size:30px; letter-spacing:-.5px; }
.booking-heading .text-button { font-size:11px; }
.booking-progress { list-style:none; padding:0; margin:27px 0; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; }
.booking-progress li { font-size:11px; color:var(--muted); display:flex; flex-direction:column; align-items:center; gap:7px; text-align:center; position:relative; }
.booking-progress li::before { content:''; position:absolute; top:17px; width:calc(100% - 28px); height:1px; background:var(--line); right:calc(50% + 18px); }
.booking-progress li:first-child::before { display:none; }
.booking-progress li span { width:35px; height:35px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; background:#fffdfb; z-index:1; font-size:13px; }
.booking-progress li[aria-current] { color:var(--ink); font-weight:700; }
.booking-progress li[aria-current] span { background:var(--ink); border-color:var(--ink); color:#fff8f2; }
.booking-progress li.complete span { background:var(--lavender-light); border-color:var(--lavender); }
.booking-step { border:0; padding:0; margin:0; min-width:0; }
.step-description { font-size:14px; line-height:1.7; color:var(--muted); margin-bottom:23px; max-width:65ch; }
.calendar { width:100%; max-width:540px; margin-inline:auto; }
.calendar-header { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:18px; }
.calendar-header h3 { font-size:23px; text-transform:capitalize; text-align:center; }
.calendar-arrow { border:1px solid var(--line); background:#fffdfb; color:var(--ink); border-radius:50%; width:42px; min-width:42px; height:42px; padding:0; display:grid; place-items:center; font-size:27px; line-height:1; }
.calendar-arrow:hover:not(:disabled) { background:var(--lavender-light); }
.calendar-arrow:disabled { opacity:.3; }
.calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:8px; }
.weekday { text-align:center; color:var(--muted); font-size:12px; padding:4px 0 9px; }
.calendar-day { position:relative; display:grid; place-items:center; width:100%; aspect-ratio:1.1; min-height:38px; border:1px solid transparent; border-radius:12px; background:#fcf4ef; color:var(--ink); font-size:15px; padding:0; }
.calendar-day:hover:not(:disabled) { background:#f1deda; border-color:#d4a3a4; }
.calendar-day:disabled { opacity:.4; background:transparent; }
.calendar-day.today { border-color:#cf9292; }
.calendar-day.selected { background:var(--ink); color:white; border-color:var(--ink); }
.calendar-day.selected:hover { background:#6b4c63; }
.calendar-day.has-reservations::after { content:''; position:absolute; bottom:5px; width:4px; height:4px; border-radius:50%; background:#ac5f70; }
.calendar-day.selected.has-reservations::after { background:#ffe4b4; }
.selected-day { padding:15px 0 0; margin-top:10px; text-align:center; font-size:14px; font-weight:500; }
.wizard-actions { border-top:1px solid var(--line); margin-top:26px; padding-top:22px; display:flex; align-items:center; gap:14px; }
#step-position { color:var(--muted); font-size:11px; margin-right:auto; white-space:nowrap; }
.wizard-actions .button { font-size:13px; min-height:46px; padding:11px 18px; }
.children-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:17px; font-size:14px; }
.children-toolbar span { color:var(--muted); font-size:11px; }
.children-editor { display:grid; gap:16px; margin-bottom:23px; }
.child-row { display:flex; align-items:flex-end; gap:18px; }
.child-row>div { flex:1; min-width:0; }
.child-row>.child-age { flex:0 0 90px; }
.child-row label { font-size:12px; }
.remove-child { font-size:12px; min-height:45px; min-width:43px; }
.remove-child:disabled { visibility:hidden; }
.plan-fields { display:grid; gap:22px; }
.plan-fields label, .booking-step>label { font-size:13px; }
.booking-step .field-hint { font-size:11px; }
.extra-input-row { display:flex; gap:10px; align-items:stretch; }
.extra-input-row input { min-width:0; flex:1; }
.extra-input-row .button { flex-shrink:0; }
.extras-list { list-style:none; padding:0; display:grid; gap:7px; margin:18px 0 26px; }
.extras-list li { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:10px 14px; border-radius:8px; background:var(--lavender-light); font-size:13px; }
.extras-list li span { overflow-wrap:anywhere; min-width:0; }
.extras-list li .text-button { flex-shrink:0; font-size:11px; min-height:30px; }
.review-details dl { margin:0; }
.review-details dl>div { border-bottom:1px solid var(--line); padding:13px 0; display:grid; grid-template-columns:120px minmax(0,1fr); gap:14px; }
.review-details dt { font-size:12px; color:var(--muted); }
.review-details dd { font-size:14px; margin:0; overflow-wrap:anywhere; white-space:pre-line; }
.review-notice { margin-top:22px; padding:16px 18px; background:#f8efdf; border-radius:10px; }
.review-notice strong { font-size:13px; }
.review-notice p { margin-top:6px; color:#806947; font-size:12px; }
#reservation-dialog .review-details { margin-top:20px; }
#admin-update-form { border-top:1px solid var(--line); margin-top:25px; padding-top:22px; }
#save-admin-reservation { margin-top:22px; }
.admin-layout { display:grid; grid-template-columns:315px minmax(0,1fr); gap:27px; align-items:start; }
.admin-calendar-panel { padding:22px 18px; background:#f3e5e3; border-radius:18px; }
.admin-calendar-panel .calendar-grid { gap:5px; }
.admin-calendar-panel .calendar-header h3 { font-size:20px; }
.admin-calendar-panel .calendar-arrow { width:32px; min-width:32px; height:32px; }
.admin-calendar-panel .calendar-day { border-radius:8px; min-height:32px; font-size:13px; }
.admin-calendar-panel>.field-hint { font-size:10px; line-height:1.7; margin-top:18px; }
.admin-calendar-panel>.text-button { font-size:12px; margin-top:12px; min-height:30px; }
.admin-filters { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,.85fr); gap:12px; margin-bottom:18px; }
.admin-filters label { font-size:11px; }
.admin-filters input, .admin-filters select { font-size:12px; min-width:0; }
.admin-filters>div, .admin-reservations { min-width:0; }
.list-count { font-size:12px; color:var(--muted); margin-bottom:16px; }
.dashboard .summary-card { position:sticky; top:24px; }
@media(max-width:1000px) {
  .admin-layout { grid-template-columns:270px minmax(0,1fr); gap:20px; }
  .admin-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .admin-filters>div:first-child { grid-column:1/-1; }
}
@media(max-width:800px) {
  .dashboard .summary-card { display:none; }
  .admin-layout { grid-template-columns:1fr; }
  .admin-calendar-panel { max-width:480px; width:100%; margin:auto; }
  .admin-filters { grid-template-columns:minmax(0,1.2fr) repeat(2,minmax(0,1fr)); }
  .admin-filters>div:first-child { grid-column:auto; }
  .calendar-day { aspect-ratio:1.25; }
}
@media(max-width:580px) {
  input, select, textarea { font-size:16px; }
  .workspace-tab { font-size:12px; padding-inline:12px; }
  .reservation-overview { align-items:flex-start; flex-direction:column; gap:16px; }
  .reservation-overview h2 { font-size:26px; }
  .reservation-overview p { font-size:12px; }
  .reservation-overview>.button { font-size:12px; }
  .reservation-card { padding:17px; }
  .reservation-card h3 { font-size:19px; }
  .reservation-card-heading { align-items:flex-start; gap:8px; }
  .status-pill { font-size:10px; padding:3px 8px; }
  .reservation-children { font-size:12px; }
  .reservation-actions { gap:21px; }
  .reservation-actions .text-button { font-size:12px; }
  .booking-heading { align-items:flex-start; flex-direction:column; gap:8px; }
  .booking-heading h2 { font-size:27px; }
  .booking-progress { margin-block:23px; gap:3px; }
  .booking-progress li { font-size:10px; }
  .booking-progress li span { width:31px; height:31px; font-size:12px; }
  .booking-progress li::before { top:15px; right:calc(50% + 16px); width:calc(100% - 28px); }
  .step-description { font-size:13px; margin-bottom:20px; }
  .calendar-header h3 { font-size:20px; }
  .calendar-header { margin-bottom:12px; }
  .calendar-arrow { width:36px; min-width:36px; height:36px; }
  .calendar-grid { gap:4px; }
  .calendar-day { min-height:36px; aspect-ratio:1; border-radius:9px; font-size:14px; }
  .selected-day { font-size:12px; }
  .wizard-actions { gap:10px; flex-wrap:wrap; }
  .wizard-actions .button { font-size:12px; padding:10px 14px; min-height:44px; }
  #step-position { font-size:10px; }
  .children-toolbar { font-size:13px; }
  .children-toolbar span { font-size:9px; }
  .child-row { gap:13px; }
  .review-details dl>div { grid-template-columns:85px minmax(0,1fr); gap:10px; }
  .review-details dt { font-size:11px; }
  .review-details dd { font-size:13px; }
  .admin-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .admin-filters>div:first-child { grid-column:1/-1; }
  .admin-filters input, .admin-filters select { font-size:16px; }
  .empty-state { padding:18px; font-size:13px; }
}

/* The selected day becomes a little night seal, echoing the supplied moon logo. */
#booking-calendar { padding:20px 18px 16px; border:1px solid #ecd7d2; border-radius:40px 40px 18px 18px; background:#fff8f2; }
#booking-calendar .calendar-header { padding-bottom:12px; border-bottom:1px solid #ecd7d2; }
#booking-calendar .calendar-header h3 { font-family:Outfit,sans-serif; font-size:25px; font-weight:500; }
#booking-calendar .calendar-day { background:#fffdfb; }
#booking-calendar .calendar-day:disabled { background:transparent; }
#booking-calendar .calendar-day.selected { background:var(--ink); border-radius:17px 17px 17px 6px; }
#booking-calendar .calendar-day.selected::before { content:'✦'; position:absolute; top:2px; right:5px; font-size:9px; color:#f8de9b; }
.booking-progress li.complete span { color:#915760; }
.booking-progress li[aria-current] span { box-shadow:0 0 0 4px #f2e2df; }
.selected-day { color:#915760; }
@media(max-width:580px) {
  #booking-calendar { padding:15px 10px 12px; border-radius:29px 29px 15px 15px; }
  #booking-calendar .calendar-header h3 { font-size:21px; }
  #booking-calendar .calendar-grid { gap:3px; }
  #booking-calendar .calendar-day { min-height:33px; }
}

/* Product choices use the same soft paper and night-sky accents as the calendar. */
.workspace-navigation { flex-wrap:wrap; }
.food-picker h3,.legacy-selection h3 { font-size:21px; margin-bottom:7px; }
.product-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:18px 0 26px; }
.product-card { display:block; position:relative; min-width:0; margin:0; padding:0; background:#fffdfb; border:1px solid var(--line); border-radius:18px 18px 12px 12px; overflow:hidden; font-size:14px; font-weight:400; cursor:pointer; }
.product-card:has(input:focus-visible) { outline:3px solid #ad656c; outline-offset:4px; }
.product-card:hover { border-color:#c896a1; }
.product-card.selected { border:2px solid var(--ink); background:#fff8f2; }
.product-card>input { position:absolute; z-index:1; top:12px; left:12px; width:21px; height:21px; min-height:21px; margin:0; padding:0; accent-color:var(--ink); border:0; }
.product-picture { aspect-ratio:3/2; width:100%; overflow:hidden; background:#f3e5e3; }
.product-picture>img { display:block; width:100%; height:100%; object-fit:cover; }
.product-photo-empty { height:100%; display:flex; align-items:center; justify-content:center; gap:12px; color:#b7828f; }
.product-photo-empty span { font:54px/1 Outfit,sans-serif; transform:rotate(-17deg); }
.product-photo-empty small { font-family:Outfit,sans-serif; font-size:16px; }
.product-content { padding:17px 16px; min-width:0; }
.product-content h4 { font:600 21px/1.18 Outfit,sans-serif; color:var(--ink); margin:0 0 9px; overflow-wrap:anywhere; }
.product-description { color:var(--muted); font-size:12px; line-height:1.65; white-space:pre-line; overflow-wrap:anywhere; }
.product-price { display:flex; flex-wrap:wrap; align-items:baseline; gap:7px; margin-top:15px; }
.product-price strong { font-family:Outfit,sans-serif; font-size:23px; font-weight:500; }
.product-price small { color:var(--muted); font-size:10px; }
.product-history { display:block; color:#8a6070; font-size:10px; line-height:1.6; margin-top:10px; }
.product-unavailable { background:#f7f0ed; border-style:dashed; }
.product-unavailable .product-picture { opacity:.65; }
.catalog-undecided { grid-column:1/-1; display:flex; align-items:center; gap:10px; font-size:13px; font-weight:400; margin:0 0 2px; padding:13px 15px; border:1px solid var(--line); border-radius:10px; cursor:pointer; }
.catalog-undecided input { display:block; width:18px; min-height:18px; height:18px; margin:0; padding:0; flex:0 0 18px; accent-color:var(--ink); }
.catalog-empty { grid-column:1/-1; padding:19px 20px; border:1px dashed #d9bdbf; border-radius:12px; color:var(--muted); font-size:13px; line-height:1.7; }
.catalog-empty .text-button { margin-top:10px; }
.selection-price-note { grid-column:1/-1; font-size:12px; color:#8b626b; padding-left:12px; border-left:3px solid #cf9292; }
.legacy-selection { padding:18px; border:1px dashed #d9bdbf; border-radius:12px; margin-bottom:23px; }
.legacy-selection input { margin-top:9px; }
.legacy-selection .extras-list { margin-bottom:0; }
.legacy-selection h3 { font-size:17px; }
.catalog-reload { padding:16px; border:1px solid #e2c5a0; border-radius:10px; background:#fbf0dc; margin-top:20px; }
.catalog-reload p { color:#7d6040; font-size:13px; margin-bottom:12px; }
.selection-total dd { font:500 25px Outfit,sans-serif; }
.selection-total small { display:block; font-size:10px; color:var(--muted); line-height:1.7; margin-top:7px; }
.catalog-toolbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; }
.catalog-create-actions { display:flex; flex-wrap:wrap; gap:12px; }
.catalog-toolbar .checkbox-label { margin:0!important; }
.catalog-price-note { color:var(--muted); font-size:12px; line-height:1.7; margin-top:18px; max-width:80ch; }
.catalog-section { margin-top:32px; }
.catalog-section>h3 { font-size:27px; }
.admin-product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.admin-product { cursor:default; }
.product-actions { display:flex; gap:23px; margin-top:20px; }
.product-actions .text-button { font-size:12px; min-height:30px; }
.catalog-editor-dialog { width:min(820px,calc(100% - 32px)); }
.catalog-editor-fields { display:grid; grid-template-columns:240px minmax(0,1fr); gap:27px; margin:25px 0 0; padding:0; border:0; min-width:0; }
.catalog-photo-editor { min-width:0; }
.product-image-preview,.product-photo-placeholder { width:100%; aspect-ratio:3/2; display:block; object-fit:cover; border-radius:18px; background:#f3e5e3; }
.product-photo-placeholder { display:flex; align-items:center; justify-content:center; flex-direction:column; padding:20px; text-align:center; color:#b7828f; }
.product-photo-placeholder span { font:62px/1 Outfit,sans-serif; transform:rotate(-17deg); }
.product-photo-placeholder p { font-size:12px; margin-top:15px; }
.photo-actions { display:flex; gap:15px; align-items:center; flex-wrap:wrap; margin-top:17px; }
.photo-actions label { margin:0; cursor:pointer; }
.photo-actions .text-button { font-size:11px; }
.photo-actions:has(input:focus-visible) label { outline:3px solid #ad656c; outline-offset:4px; }
.photo-actions input.sr-only { min-height:1px; }
.catalog-photo-editor>.field-hint { margin-top:14px; font-size:11px; line-height:1.7; }
#catalog-editor-fields:disabled .photo-actions { opacity:.55; pointer-events:none; }
@media(max-width:1000px) { .admin-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:580px) {
  .workspace-tab { padding-inline:10px; }
  .product-grid { gap:13px; }
  .product-content { padding:14px 12px; }
  .product-content h4 { font-size:18px; }
  .product-description { font-size:11px; }
  .product-price strong { font-size:21px; }
  .product-price small { font-size:9px; }
  .product-card>input { top:9px; left:9px; width:19px; min-height:19px; height:19px; }
  .product-photo-empty { gap:7px; }
  .product-photo-empty span { font-size:42px; }
  .product-photo-empty small { font-size:12px; }
  .catalog-undecided { font-size:12px; }
  .catalog-create-actions .button { font-size:12px; }
  .catalog-toolbar { align-items:flex-start; flex-direction:column; }
  .admin-product-grid { grid-template-columns:1fr; }
  .admin-product .product-picture { aspect-ratio:1.85; }
  .admin-product .product-content h4 { font-size:23px; }
  .admin-product .product-description { font-size:13px; }
  .catalog-editor-fields { grid-template-columns:1fr; gap:23px; }
  .catalog-photo-editor { max-width:340px; }
  .catalog-editor-dialog .dialog-bottom { align-items:stretch; flex-wrap:nowrap; }
  .catalog-editor-dialog .dialog-bottom .button { font-size:12px; }
}
@media(max-width:380px) { #food-catalog,#extra-catalog { grid-template-columns:1fr; } }
@media(max-width:600px) {
  #food-catalog,#extra-catalog { grid-template-columns:1fr; }
  #food-catalog .product-picture,#extra-catalog .product-picture { aspect-ratio:1.7; }
  #food-catalog .product-content,#extra-catalog .product-content { padding:17px; }
  #food-catalog .product-content h4,#extra-catalog .product-content h4 { font-size:22px; }
  #food-catalog .product-description,#extra-catalog .product-description { font-size:13px; }
}

.reservation-email-status { padding:15px 18px; margin:-10px 0 24px; border-left:3px solid var(--coral); background:#fcf3ee; border-radius:0 10px 10px 0; font-size:13px; color:var(--ink); }
.reservation-email-status strong { font-size:13px; font-weight:600; }
.reservation-email-status ul { padding-left:18px; margin:8px 0; display:grid; gap:5px; }
.reservation-email-status p { color:var(--muted); font-size:12px; line-height:1.7; margin-top:7px; }

.reservation-reference { margin:0 0 9px; color:var(--muted); font-size:11px; font-weight:600; letter-spacing:.03em; }

@media(max-width:480px) { .child-row { gap:10px; } .child-row>.child-age { flex-basis:78px; } }

/*
 * Sección de oferta Pijama ON. Solo selectores .offer-*; sin cambios de auth.
 * Paleta del logo: ciruela #554052, rosa #cf9292, rosa claro #f5e6e4,
 * papel #fff8f2 y blanco #ffffff. Outfit para títulos; DM Sans para lectura.
 * Composición: fotos reales grandes, comparación en dos columnas y servicio
 * común debajo. Sin sombras de formulario, carrusel ni animación automática.
 */
.offer-section {
  --offer-ink: var(--ink, #554052);
  --offer-rose: var(--coral, #cf9292);
  --offer-pale: var(--lavender-light, #f5e6e4);
  color: var(--offer-ink);
  padding-block: 26px 78px;
  scroll-margin-top: 28px;
}
.offer-intro {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 32px;
  align-items: end;
  margin-bottom: 28px;
}
.offer-intro h2 {
  font-family: Outfit, sans-serif;
  font-size: clamp(31px, 3.8vw, 46px);
  font-weight: 500;
  line-height: 1.13;
  letter-spacing: -1.2px;
}
.offer-intro > p {
  max-width: 46ch;
  font-size: 15px;
  line-height: 1.8;
}
.offer-gallery {
  display: grid;
  grid-template-columns: 1.14fr 1fr;
  gap: 18px;
  align-items: start;
}
.offer-photo {
  min-width: 0;
  margin: 0;
}
.offer-photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 8px;
  background: var(--offer-pale);
}
.offer-photo-blue { padding-top: 38px; }
.offer-photo figcaption {
  margin-top: 10px;
  font-size: 13px;
  line-height: 1.6;
}
.offer-photo-note {
  margin: 14px 0 32px;
  max-width: 72ch;
  font-size: 12px;
  line-height: 1.7;
  color: var(--muted, #806e78);
}
.offer-plans {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}
.offer-plan {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 28px 30px 30px;
  background: #ffffff;
  border-top: 4px solid var(--offer-rose);
  border-radius: 0 0 8px 8px;
}
.offer-plan-food {
  background: var(--offer-pale);
  border-top-color: var(--offer-ink);
}
.offer-plan-heading h3 {
  font-family: Outfit, sans-serif;
  font-size: clamp(24px, 2.4vw, 29px);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -.5px;
}
.offer-plan-heading > p {
  margin-top: 9px;
  max-width: 42ch;
  font-size: 14px;
  line-height: 1.65;
}
.offer-price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 14px;
  margin: 25px 0 10px;
}
.offer-price > strong {
  font-family: Outfit, sans-serif;
  font-size: clamp(42px, 4.4vw, 58px);
  font-weight: 500;
  letter-spacing: -2px;
  line-height: 1.05;
  white-space: nowrap;
}
.offer-price > span { font-size: 13px; }
.offer-minimum {
  font-size: 14px;
  line-height: 1.7;
}
.offer-minimum strong { font-weight: 600; }
.offer-plan-detail {
  margin-top: 18px;
  margin-bottom: 25px;
  max-width: 48ch;
  font-size: 14px;
  line-height: 1.7;
}
.offer-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  margin-top: auto;
  padding: 12px 16px;
  border: 1px solid var(--offer-ink);
  border-radius: 8px;
  color: var(--offer-ink);
  background: transparent;
  text-align: center;
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
}
.offer-plan-food .offer-cta {
  color: #fff8f2;
  background: var(--offer-ink);
}
.offer-cta:hover { background: var(--offer-pale); }
.offer-plan-food .offer-cta:hover { background: #6b4c63; }
.offer-cta:focus-visible {
  outline: 3px solid var(--offer-ink);
  outline-offset: 4px;
}
.offer-included {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 38px;
  margin-top: 30px;
  padding-top: 27px;
  border-top: 1px solid var(--line, #ebdeda);
}
.offer-included-copy h3 {
  font-family: Outfit, sans-serif;
  font-size: 25px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: -.4px;
}
.offer-included-copy p,
.offer-delivery p {
  max-width: 57ch;
  font-size: 14px;
  line-height: 1.8;
}
.offer-included-copy p { margin-top: 10px; }
.offer-delivery strong { font-weight: 600; }
.offer-delivery p + p { margin-top: 8px; }
.offer-extras { margin-top: 45px; }
.offer-extras-intro h3 {
  font-family: Outfit, sans-serif;
  font-size: 30px;
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: -.6px;
}
.offer-extras-intro > p {
  margin-top: 9px;
  font-size: 14px;
  line-height: 1.7;
}
.offer-extras-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 35px;
  margin-top: 8px;
}
.offer-extra {
  min-width: 0;
  padding: 23px 0;
  border-bottom: 1px solid var(--line, #ebdeda);
}
.offer-extra-heading {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 7px 18px;
  margin-bottom: 10px;
}
.offer-extra-heading h4 {
  margin: 0;
  font-family: Outfit, sans-serif;
  font-size: 21px;
  font-weight: 500;
  line-height: 1.35;
}
.offer-extra-heading > p { font-size: 13px; }
.offer-extra-heading strong { font-size: 18px; font-weight: 600; }
.offer-extra > p { max-width: 57ch; font-size: 14px; line-height: 1.8; }
.offer-extra .offer-extra-supplement { margin-top: 8px; }
.offer-extras-notes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 35px;
  padding-top: 18px;
}
.offer-extras-notes p { max-width: 62ch; font-size: 13px; line-height: 1.75; }
.offer-availability {
  margin-top: 24px;
  max-width: 80ch;
  font-size: 13px;
  line-height: 1.75;
  color: var(--muted, #806e78);
}
@media (max-width: 800px) {
  .offer-section { padding-block: 20px 48px; }
  .offer-intro { grid-template-columns: 1fr; gap: 16px; }
  .offer-intro > p { max-width: 62ch; }
  .offer-gallery { gap: 14px; }
  .offer-photo-blue { padding-top: 24px; }
  .offer-plans { gap: 16px; }
  .offer-plan { padding: 24px 22px; }
  .offer-included { gap: 24px; }
}
@media (max-width: 580px) {
  .offer-intro h2 { letter-spacing: -.8px; }
  .offer-intro h2 br { display: none; }
  .offer-gallery,
  .offer-plans,
  .offer-included,
  .offer-extras-grid,
  .offer-extras-notes { grid-template-columns: minmax(0, 1fr); }
  .offer-gallery { gap: 22px; }
  .offer-photo-blue { padding-top: 0; }
  .offer-photo-note { margin-block: 16px 27px; }
  .offer-plan { padding: 25px 23px 26px; }
  .offer-price { margin-top: 22px; }
  .offer-included { gap: 19px; }
  .offer-extras { margin-top: 34px; }
  .offer-extra { padding-block: 21px; }
  .offer-availability { margin-top: 18px; }
}

/* Photo-led welcome and clear, quantity-aware booking prices. */
.hero-photograph { isolation:isolate; padding:28px 0 48px; }
.hero-photograph>img { width:100%; height:450px; object-fit:cover; border-radius:160px 160px 8px 8px; position:relative; transform:rotate(2deg); }
.hero-photograph .art-blob { inset:6% -3% 2% 5%; transform:rotate(-5deg); border-radius:160px 160px 10px 10px; }
.hero-photograph .art-sticker { bottom:24px; right:-16px; }
.hero-photograph .art-caption { bottom:0; font-size:9px; }
.offer-extra-price { display:flex; align-items:baseline; flex-wrap:wrap; gap:7px; margin-bottom:10px; }
.offer-extra-price strong { font:500 26px Outfit,sans-serif; }
.offer-extra-price span { font-size:12px; }
.offer-extra-description { margin-top:10px; }
.offer-plan-detail { white-space:pre-line; }
.product-conditions { color:var(--muted); font-size:11px; line-height:1.6; margin:7px 0 0; }
.product-line-total { border-top:1px solid var(--line); padding-top:11px; margin-top:12px; font-size:12px; line-height:1.6; font-weight:600; }
.summary-card dd { white-space:pre-line; }
.pricing-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; border:1px solid var(--line); padding:16px; margin:0; border-radius:10px; }
.pricing-fields legend { padding:0 6px; font-size:12px; color:var(--muted); }
.pricing-fields label { font-size:12px; }
@media(max-width:800px) { .hero-photograph>img { height:380px; } .hero-photograph .art-sticker { right:5px; } }
@media(max-width:600px) {
  .hero-photograph { padding:5px 9px 42px; }
  .hero-photograph>img { height:330px; border-radius:110px 110px 8px 8px; }
  .hero-photograph .art-sticker { bottom:19px; }
  #base-catalog { grid-template-columns:1fr; }
  #base-catalog .product-picture { aspect-ratio:1.7; }
  #base-catalog .product-content { padding:17px; }
  #base-catalog .product-content h4 { font-size:22px; }
  #base-catalog .product-description { font-size:13px; }
}

/* Final editorial rhythm: one main photograph, an intimate detail, and a centred account form. */
.hero-copy .eyebrow { font-size:12px; letter-spacing:0; font-weight:500; }
.hero h1 { font-weight:500; font-size:clamp(38px,4.3vw,60px); white-space:normal; }
.hero-photograph .art-caption { font-size:11px; letter-spacing:0; left:14%; }
.offer-details { grid-template-columns:1fr 1fr; align-items:center; gap:56px; margin:28px 0 48px; }
.offer-details .offer-photo-blue { padding:0; }
.offer-details .offer-photo img { aspect-ratio:1.5; border-radius:8px 80px 8px 8px; }
.offer-detail-copy { padding-right:25px; }
.offer-detail-star { display:block; color:#b78188; font-size:42px; margin-bottom:18px; line-height:1; }
.offer-detail-copy h3 { font-size:35px; font-weight:500; letter-spacing:-.8px; line-height:1.16; }
.offer-detail-copy>p { margin-top:20px; line-height:1.85; font-size:14px; }
.offer-detail-copy .offer-photo-note { font-size:12px; margin:18px 0 0; }
.onboarding { display:flex; flex-direction:column; align-items:center; gap:32px; padding:50px 48px; }
.onboarding-copy { padding:0; text-align:center; width:100%; max-width:760px; }
.onboarding-copy .eyebrow { font-size:12px; letter-spacing:0; font-weight:500; }
.onboarding-copy h2 { font-size:38px; font-weight:500; }
.onboarding-copy h2 br { display:none; }
.onboarding-copy>p { font-size:14px; max-width:none; }
.onboarding-copy .steps { grid-template-columns:repeat(3,minmax(0,1fr)); margin:26px 0 0; gap:22px; text-align:left; }
.onboarding-copy .steps li { align-items:flex-start; gap:10px; }
.onboarding-copy .handwritten { display:none; }
.access-card { width:100%; max-width:760px; padding:32px 38px; }
#registration-contact .contact-wide { grid-column:auto; }
#registration-contact .contact-wide:last-child { grid-column:1/-1; }
#registration-contact input,#registration-contact textarea { font-size:14px; }
#registration-contact .field-hint { font-size:10px; }
@media(max-width:800px) {
 .offer-details { gap:30px; }
 .offer-detail-copy { padding:0; }
 .offer-detail-copy h3 { font-size:29px; }
 .offer-detail-star { margin-bottom:12px; }
 .onboarding { padding:35px 30px; }
 .onboarding-copy h2 { font-size:34px; }
}
@media(max-width:580px) {
 .hero-copy .eyebrow { font-size:10px; }
 .hero h1 { font-size:42px; }
 .hero-photograph .art-caption { font-size:9px; left:11%; }
 .offer-details { grid-template-columns:1fr; gap:26px; margin-bottom:32px; }
 .offer-detail-copy h3 { font-size:30px; }
 .offer-detail-copy h3 br { display:none; }
 .offer-detail-star { display:none; }
 .offer-detail-copy>p { margin-top:15px; }
 .onboarding { padding:30px 16px; gap:24px; }
 .onboarding-copy { text-align:left; padding:0 5px; }
 .onboarding-copy h2 { font-size:31px; }
 .onboarding-copy>p { font-size:13px; }
 .onboarding-copy .steps { grid-template-columns:1fr; gap:14px; margin-top:20px; }
 .access-card { padding:24px 18px; }
 #registration-contact .contact-grid { grid-template-columns:1fr; }
}

.whatsapp-help { position:fixed; z-index:15; right:24px; bottom:22px; display:flex; gap:12px; align-items:center; max-width:calc(100% - 36px); color:var(--ink); }
.help-cloud { position:relative; padding:13px 17px; background:#fffefb; border:1px solid #d8cdc9; border-radius:16px 16px 3px 16px; box-shadow:0 6px 18px #5540520c; font-size:13px; line-height:1.5; font-weight:600; }
.help-cloud small { display:block; font-size:10px; color:var(--muted); font-weight:400; }
.help-icon { width:54px; height:54px; border-radius:50%; background:#416c56; color:#fff; display:grid; place-items:center; flex-shrink:0; box-shadow:0 4px 12px #416c5620; }
.help-icon svg { width:34px; height:34px; }
.whatsapp-help:hover .help-icon { background:#315540; }
body:has(dialog[open]) .whatsapp-help { display:none; }
@media(max-width:600px) {
 body { padding-bottom:92px; }
 .whatsapp-help { right:16px; bottom:16px; gap:9px; }
 .help-cloud { font-size:12px; padding:10px 13px; }
 .help-icon { width:48px; height:48px; }
 body.help-near-form .whatsapp-help { position:static; width:max-content; margin:18px 18px 22px auto; }
 body:has(#dashboard-view:not([hidden])) { padding-bottom:0; }
 body:has(#dashboard-view:not([hidden])) .whatsapp-help { position:static; width:max-content; margin:18px 18px 22px auto; }
}

.footer-links{display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px}
@media(max-width:580px){.site-footer .footer-links{width:100%;order:4;gap:12px 18px}}

.landing-experience-link{font-size:13px;text-decoration:underline;text-underline-offset:5px}.landing-account-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:20px 25px;padding:45px 35px;border-block:1px solid var(--line);text-align:center;margin-top:30px}.landing-account-cta>div{width:100%}.landing-account-cta h2{font-size:36px;font-weight:500;letter-spacing:-1px}.landing-account-cta p{font-size:14px;color:var(--muted);margin-top:12px}.landing-account-cta .text-button{font-size:13px}.landing-footer-visible .whatsapp-help{position:static;width:max-content;margin:18px 18px 22px auto}
@media(max-width:580px){.landing-experience-link{font-size:11px}.site-header nav{gap:15px}.landing-account-cta{padding:30px 10px}.landing-account-cta h2{font-size:30px}}

/* The owner's printed story, composed for the screen rather than shown as small posters. */
.poster-window { position:relative; overflow:hidden; background:#f6dce4; min-width:0; isolation:isolate; }
.poster-window img { position:absolute; display:block; max-width:none; height:auto; margin:0; object-fit:initial; border-radius:0; transform:none; }
.hero-poster { padding:20px 10px 45px; }
.hero-poster .poster-montage { width:100%; aspect-ratio:1.04; border-radius:140px 140px 10px 10px; transform:rotate(2deg); z-index:1; }
.hero-poster .poster-montage img { width:300%; left:-163%; top:-22%; }
.hero-poster .art-blob { height:91%; }
.hero-poster .art-caption { left:16%; }
.night-details .poster-blue { aspect-ratio:1.5; border-radius:8px 80px 8px 8px; }
.night-details .poster-blue img { width:196%; left:-12%; top:-206%; }
.party-moments { padding:30px 0 65px; }
.moments-heading { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:end; margin-bottom:32px; }
.moments-heading h3 { font:500 39px/1.15 Outfit,sans-serif; letter-spacing:-1px; }
.moments-heading>p { max-width:48ch; font-size:15px; line-height:1.8; }
.moments-layout { display:grid; grid-template-columns:.86fr 1.08fr 1fr; gap:30px; align-items:start; }
.moments-layout article { min-width:0; }
.moment-spa { background:#f5e6e4; padding:25px 26px 29px; border-radius:80px 8px 8px 8px; margin-top:35px; }
.spa-drawing { padding:12px 15px 15px; color:#936578; }
.spa-drawing svg { display:block; width:100%; max-height:160px; }
.moment-copy { padding-top:20px; }
.moment-copy h4 { font:500 25px/1.22 Outfit,sans-serif; letter-spacing:-.4px; margin:0 0 13px; }
.moment-copy p,.moment-copy ul { font-size:13px; line-height:1.85; }
.moment-copy ul { margin:0; padding-left:16px; }
.moment-copy .moment-note { margin-top:14px; font-size:11px; color:var(--muted); }
.moment-snack .poster-window { aspect-ratio:.95; border-radius:8px 8px 8px 65px; }
.moment-snack img { width:300%; left:-167%; top:-32%; }
.moment-gift { margin-top:85px; }
.moment-gift .poster-window { aspect-ratio:1.04; border-radius:8px 70px 8px 8px; }
@media(max-width:1000px) {
 .moments-layout { gap:22px; }
 .moment-spa { padding:20px; }
 .moment-copy h4 { font-size:22px; }
 .moments-heading { gap:30px; }
}
@media(max-width:800px) {
 .hero-poster .poster-montage { max-width:450px; }
 .moments-layout { grid-template-columns:1fr 1fr; gap:30px; }
 .moment-spa { grid-column:1/-1; display:grid; grid-template-columns:.7fr 1.3fr; gap:25px; margin:0; padding:25px; }
 .moment-spa .moment-copy { padding:0; }
 .moment-gift { margin-top:40px; }
 .moments-heading h3 { font-size:34px; }
}
@media(max-width:580px) {
 .hero-poster { padding:5px 8px 42px; }
 .hero-poster .poster-montage { border-radius:100px 100px 8px 8px; }
 .hero-poster .art-caption { left:10%; }
 .moments-heading { grid-template-columns:1fr; gap:17px; margin-bottom:26px; }
 .moments-heading h3 { font-size:32px; }
 .moments-heading h3 br { display:none; }
 .moments-heading>p { font-size:14px; }
 .moments-layout { grid-template-columns:1fr; gap:32px; }
 .moment-spa { display:block; padding:24px; border-radius:60px 8px 8px 8px; }
 .spa-drawing { max-width:220px; margin-inline:auto; padding-top:0; }
 .moment-copy h4 { font-size:26px; }
 .moment-copy p,.moment-copy ul { font-size:14px; }
 .moment-snack .poster-window { aspect-ratio:1.2; }
 .moment-gift { margin-top:0; }
 .moment-gift .poster-window { aspect-ratio:1.2; }
 .moment-gift .poster-window img { top:-260%; }
 .party-moments { padding:20px 0 45px; }
}

/* Faithful photo extracts supplied separately from the original posters. */
.hero-poster .poster-montage { width:100%; max-width:420px; aspect-ratio:449/645; border-radius:110px 110px 8px 8px; }
.hero-poster .poster-montage img { width:100%; height:100%; left:0; top:0; object-fit:cover; }
.hero-poster .art-blob { width:76%; height:92%; left:16%; }
.night-details .poster-blue { aspect-ratio:540/265; }
.night-details .poster-blue img { width:100%; height:100%; left:0; top:0; object-fit:cover; }
.moments-layout { grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.moment-spa,.moment-snack,.moment-gift { margin:0; padding:25px 26px 28px; border-radius:65px 8px 8px 8px; background:#f5e6e4; }
.moment-snack { background:#f8eddf; border-radius:8px; }
.moment-gift { background:#f6e0e8; border-radius:8px 65px 8px 8px; }
.spa-drawing,.moment-drawing { width:100%; height:155px; padding:5px 12px 15px; color:#936578; }
.spa-drawing svg,.moment-drawing svg { display:block; width:100%; height:100%; }
.moment-photo { display:block; width:100%; height:190px; object-fit:cover; border-radius:12px; }
.moment-photo-gift { object-fit:contain; }
.moment-photo+.moment-copy { padding-top:23px; }
.offer-fee-breakdown { font-size:14px; line-height:1.7; margin-bottom:16px; }
.menu-options { grid-template-columns:1fr; gap:10px; }
.product-card.menu-option { display:flex; align-items:flex-start; gap:12px; padding:15px 17px; border-radius:10px; }
.product-card.menu-option>input { position:static; flex:0 0 19px; width:19px; height:19px; min-height:19px; margin:3px 0 0; }
.menu-option-copy { min-width:0; }
.menu-option-copy strong { font-size:14px; font-weight:600; line-height:1.5; display:block; }
.menu-option-copy span { display:none; font-size:12px; color:var(--muted); line-height:1.7; margin-top:4px; }
.menu-option.selected .menu-option-copy span { display:block; }
.pricing-wide { grid-column:1/-1; }
.checkbox-label .text-button { font-size:inherit; }
@media(max-width:800px) { .moment-spa { display:block; grid-column:auto; } .moments-layout { gap:18px; } .moment-spa,.moment-snack,.moment-gift { padding:20px; } .moment-copy h4 { font-size:23px; } }
@media(max-width:580px) { .hero-poster .poster-montage { max-width:340px; border-radius:90px 90px 8px 8px; } .moments-layout { grid-template-columns:1fr; gap:18px; } .moment-spa,.moment-snack,.moment-gift { padding:24px; } .spa-drawing,.moment-drawing { max-width:200px; height:110px; margin-inline:auto; } .moment-copy h4 { font-size:26px; } .product-card.menu-option { padding:15px; } }

.offer-plans:has(>.offer-plan:only-child) { grid-template-columns:1fr; max-width:820px; margin-inline:auto; }
.offer-plan:only-child { padding:35px 40px; }
.offer-plan:only-child .offer-plan-detail { max-width:75ch; }
.product-grid.single-product { grid-template-columns:1fr; }
#base-catalog .text-product .product-content { padding:22px 23px 23px 48px; }
.text-product>input { top:25px; left:17px; }
.text-product .product-content h4 { font-size:26px; }
.text-product .product-description { font-size:13px; max-width:75ch; }
.budget-link { display:inline-block; margin-top:8px; }
@media(max-width:580px) { .offer-plan:only-child { padding:27px 23px; } #base-catalog .text-product .product-content { padding:20px 17px 20px 44px; } .text-product .product-content h4 { font-size:23px; } .text-product>input { top:23px; left:14px; } }

.email-verification-panel { padding:22px 25px; border:1px solid #dac5ce; background:#fbefed; border-radius:12px; margin-bottom:25px; }
.email-verification-panel p { font-size:13px; line-height:1.7; margin:8px 0 15px; overflow-wrap:anywhere; }
.verification-actions { display:flex; flex-wrap:wrap; gap:16px; align-items:center; }
.recovery-link { display:block; margin:18px auto 8px; font-size:12px; }
#security-password-group { border:0; margin:0; padding:0; }
#profile-password-group { margin-block:18px; }
#security-password-group input { margin-bottom:16px; }
@media(max-width:600px) { .email-verification-panel {padding:20px;} #account-security-dialog .dialog-bottom {align-items:stretch;} }
