/* Reference-based Private Parties page; intentionally scoped to its native root. */
.nln-party-landing { --party-gutter:clamp(20px,4vw,64px); --party-gap:clamp(16px,2vw,28px); color:#5b4a79; font:16px/1.5 var(--nln-sans); }
.nln-party-landing :where(h1,h2,h3,p,figure,ul,.wp-block-group,.wp-block-buttons) { margin-block:0; }
.nln-party-landing mark { color:#f00087; background:transparent; }
.nln-party-landing h1,.nln-party-landing h2,.nln-party-landing h3 { font-family:var(--nln-serif); font-weight:400; letter-spacing:-.025em; white-space:normal; }
.nln-party-landing h2 { color:#ac0057; font-size:clamp(36px,4.7vw,68px); line-height:1.06; }
.nln-party-landing h3 { color:#8e125e; font-size:clamp(25px,2.5vw,36px); line-height:1.12; }
.nln-party-landing p { line-height:1.5; font-size:clamp(15px,1.25vw,19px); }
.nln-party-landing .nln-party-note { font-size:12px; line-height:1.5; color:#6b5b81; }
.nln-party-center { text-align:center; }
.nln-party-spark { color:#ef0088; font-style:normal; display:inline-block; margin-left:.12em; font-size:.7em; vertical-align:middle; }
.nln-party-section { padding:clamp(28px,3.2vw,48px) var(--party-gutter); }
.nln-party-tint { background:linear-gradient(110deg,#f1ecff,#ebe5ff); }
.nln-party-section-heading { display:flex; justify-content:space-between; align-items:baseline; gap:20px; margin-bottom:20px; }
.nln-party-section-heading>p { font-size:13px; max-width:36ch; }
.nln-party-landing .nln-pill,.nln-party-landing .wp-block-button__link { min-height:46px; height:auto; padding:11px 20px; font-size:14px; line-height:1.4; white-space:normal; gap:12px; }
.nln-party-landing .nln-party-actions,.nln-party-landing .nln-party-card-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.nln-party-landing .wp-block-buttons { gap:12px; }
.nln-party-landing :is(a,button,summary,select,input):focus-visible { outline:3px solid #7022ac; outline-offset:4px; }
.nln-party-hero { display:grid; grid-template-columns:minmax(0,45fr) minmax(0,55fr); align-items:center; background:linear-gradient(110deg,#f3edff,#e9e3ff); }
.nln-party-hero-copy { min-width:0; padding:28px 22px 32px var(--party-gutter); display:flex; flex-direction:column; align-items:flex-start; gap:16px; container-type:inline-size; }
.nln-party-landing .nln-party-breadcrumb { font-size:12px; line-height:1.5; }
.nln-party-landing .nln-party-eyebrow { display:flex; align-items:center; gap:14px; font-size:11px; line-height:1.5; letter-spacing:.1em; font-weight:600; }
.nln-party-eyebrow .nln-party-spark { font-size:24px; }
.nln-party-landing h1 { color:#4a0a59; font-size:clamp(46px,6.2vw,104px); line-height:1; padding-inline:.06em; }
@supports(font-size:1cqi) { .nln-party-landing h1 { font-size:clamp(45px,17cqi,104px); } }
.nln-party-intro { max-width:38ch; }
.nln-party-photo { --px:340; --py:43; --pw:403; --ph:291; position:relative; overflow:hidden; aspect-ratio:calc(var(--pw)/var(--ph)); width:100%; min-width:0; border-radius:10px; isolation:isolate; }
.nln-party-landing .nln-party-photo,.nln-party-lightbox .nln-party-photo { height:auto; min-height:0; }
.nln-party-photo img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; border-radius:0; }
.nln-party-photo img[src*="private-party-reference"] { inset:auto; left:calc(var(--px)/var(--pw)*-100%); top:calc(var(--py)/var(--ph)*-100%); width:calc(743/var(--pw)*100%); height:calc(2115/var(--ph)*100%); max-width:none; object-fit:fill; }
.nln-party-photo--hero { --px:340;--py:43;--pw:403;--ph:291; }
.nln-party-photo--polish { --px:39;--py:565;--pw:317;--ph:118; }
.nln-party-photo--pedi { --px:387;--py:565;--pw:319;--ph:118; }
.nln-party-photo--bracelet { --px:39;--py:861;--pw:145;--ph:91; }
.nln-party-photo--decorating { --px:387;--py:861;--pw:146;--ph:91; }
.nln-party-photo--gallery-nails { --px:33;--py:1436;--pw:220;--ph:108; }
.nln-party-photo--gallery-charms { --px:265;--py:1436;--pw:211;--ph:96; }
.nln-party-photo--gallery-bracelet { --px:483;--py:1436;--pw:226;--ph:96; }
.nln-party-photo--gallery-decorating { --px:34;--py:1552;--pw:198;--ph:94; }
.nln-party-photo--gallery-friends { --px:244;--py:1540;--pw:251;--ph:107; }
.nln-party-photo--gallery-room { --px:507;--py:1540;--pw:203;--ph:107; }
.nln-party-hero-art { border-radius:46% 0 0 46%; align-self:center; }
.nln-party-occasion-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:20px; }
.nln-party-occasion { display:flex; flex-direction:column; align-items:center; text-align:center; gap:10px; padding:22px 18px; border:1px solid #e4d9ef; border-radius:12px; background:#fff; }
.nln-party-occasion p { max-width:25ch; font-size:15px; }
.nln-party-icon { display:block; flex-shrink:0; color:#f00087; width:38px; height:38px; }
.nln-party-experience-grid,.nln-party-activity-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.nln-party-experience { display:flex; flex-direction:column; background:#fff; border:1px solid #e4d9ef; border-radius:13px; overflow:hidden; }
.nln-party-experience>.nln-party-photo { border-radius:12px 12px 0 0; }
.nln-party-card-copy { padding:18px; display:flex; flex-direction:column; gap:12px; flex:1; }
.nln-party-card-copy p { font-size:15px; }
.nln-party-card-actions { margin-top:auto; }
.nln-party-choice { min-height:44px; padding:8px 12px; color:#a90063; font:500 13px/1.4 var(--nln-sans); border:1px solid #eac4dc; border-radius:24px; background:#fff; display:inline-flex; align-items:center; justify-content:center; gap:8px; cursor:pointer; }
.nln-party-choice[hidden],.nln-party-planner[hidden] { display:none; }
.nln-party-choice[aria-pressed="true"] { border-color:#e6007e; background:#ffe8f5; color:#960056; }
.nln-party-choice:hover { border-color:#e6007e; }
.nln-party-occasion .nln-party-choice { margin-top:auto; }
.nln-party-activity { display:grid; grid-template-columns:minmax(0,40fr) minmax(0,60fr); align-items:start; border:1px solid #e4d9ef; border-radius:12px; padding:10px; background:#fff; }
.nln-party-activity .nln-party-card-copy { padding:0 0 0 14px; gap:10px; }
.nln-party-activity h3 { font-size:clamp(22px,2vw,30px); }
.nln-party-activity-grid+p { margin-top:12px; }
.nln-party-package { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:28px; align-items:start; }
.nln-party-capacity { display:flex; flex-direction:column; gap:12px; }
.nln-party-capacity-row { display:flex; gap:20px; align-items:center; background:#fff; border-radius:10px; padding:15px 18px; }
.nln-party-capacity-row h3 { font-family:var(--nln-sans); font-size:17px; letter-spacing:0; line-height:1.4; color:#4e2574; }
.nln-party-capacity-row p { font-size:14px; }
.nln-party-package-card { padding:24px; border-radius:15px; background:#fff; display:flex; flex-direction:column; gap:18px; }
.nln-party-package-card h2 { font-size:clamp(34px,3.3vw,48px); }
.nln-party-package-card>p { font-size:14px; }
.nln-party-package-list { display:grid; gap:14px; padding:0; list-style:none; font-size:15px; }
.nln-party-package-list li { position:relative; padding-left:26px; }
.nln-party-package-list li:before { content:'♡'; position:absolute; left:0; top:0; color:#e6007e; font-size:21px; }
.nln-party-package-list strong { display:block; font-size:14px; font-weight:500; color:#4e2574; }
.nln-party-planner { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; padding:16px; border:1px solid #d8c9e9; border-radius:12px; background:#ffffffb3; }
.nln-party-planner label { display:block; color:#4e2574; font-size:13px; line-height:1.5; margin-bottom:5px; }
.nln-party-planner :is(input,select) { display:block; width:100%; min-width:0; min-height:44px; padding:9px 10px; border:1px solid #cfc0e1; border-radius:7px; background:#fff; color:#4e2574; font:14px/1.5 var(--nln-sans); }
.nln-party-plan-message { grid-column:1/-1; font-size:12px!important; }
.nln-party-plan-message[data-error="true"] { color:#a70049; }
.nln-party-reset { grid-column:1/-1; justify-self:start; padding:8px 0; min-height:44px; border:0; background:none; color:#a60062; font:13px var(--nln-sans); text-decoration:underline; text-underline-offset:3px; }
.nln-party-step-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-top:20px; }
.nln-party-step { position:relative; display:flex; flex-direction:column; align-items:center; text-align:center; gap:12px; padding:22px 16px; border:1px solid #e4d9ef; border-radius:11px; }
.nln-party-step .nln-party-step-number { position:absolute; top:12px; left:12px; display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:#ffe3f3; color:#d50077; font:italic 25px var(--nln-serif); }
.nln-party-step h3 { font-size:clamp(23px,2vw,30px); }
.nln-party-step p { font-size:14px; }
.nln-party-step-grid+.nln-party-note { margin-top:12px; }
.nln-party-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.nln-party-gallery .nln-party-photo { border-radius:11px; }
.nln-party-gallery-trigger { position:absolute; inset:0; z-index:1; border:0; padding:0; background:transparent; color:#fff; cursor:zoom-in; }
.nln-party-gallery-trigger span { position:absolute; right:10px; bottom:10px; display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:#4a0a59c9; font-size:21px; }
.nln-party-gallery-caption { margin-top:12px!important; }
.nln-party-faq-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 20px; margin-top:20px; align-items:start; }
.nln-party-faq { border:1px solid #e1d4ee; border-radius:10px; padding:0 16px; background:#fff; }
.nln-party-faq summary { position:relative; min-height:48px; padding:14px 26px 14px 26px; font-size:14px; line-height:1.5; color:#603882; cursor:pointer; list-style:none; }
.nln-party-faq summary::-webkit-details-marker { display:none; }
.nln-party-faq summary:before { content:'+'; position:absolute; left:0; top:15px; width:19px; height:19px; border:1px solid #ef0088; border-radius:50%; color:#e6007e; display:grid; place-items:center; line-height:1; font-size:17px; }
.nln-party-faq[open] summary:before { content:'−'; background:#ef0088; color:#fff; }
.nln-party-faq summary:after { content:'›'; position:absolute; right:0; top:12px; font-size:20px; }
.nln-party-faq[open] summary:after { content:'⌃'; }
.nln-party-faq p { font-size:14px; padding:0 0 16px 26px; }
.nln-party-location { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(0,1fr) minmax(0,.8fr); align-items:center; gap:18px; }
.nln-party-location>div { display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.nln-party-location h2 { font-size:clamp(35px,3.8vw,58px); }
.nln-party-location p { font-size:14px; }
.nln-party-location .nln-party-photo { overflow:hidden; margin-bottom:0; }
.nln-party-location .nln-party-photo figcaption { position:absolute; bottom:0; left:0; padding:2px 6px; background:#fff; font-size:11px; z-index:2; }
.nln-party-map { display:block; border-radius:12px; overflow:hidden; }
.nln-party-map img { display:block; width:100%; height:auto; }
.nln-party-final { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) 80px; gap:24px; align-items:center; }
.nln-party-final-copy { display:flex; flex-direction:column; align-items:flex-start; gap:14px; }
.nln-party-final-copy p { font-size:14px; }
.nln-party-final-heart { width:80px; height:80px; }
.nln-party-lightbox { width:min(920px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); border:1px solid #d9c5e6; border-radius:18px; padding:0; background:#fff8ff; color:#4a0a59; }
.nln-party-lightbox::backdrop { background:#220d36cc; }
.nln-party-lightbox-panel { padding:18px; }
.nln-party-lightbox-toolbar { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:14px; }
.nln-party-lightbox button { min-width:44px; min-height:44px; border:1px solid #cbb2da; border-radius:50%; padding:8px; background:#fff; color:#4a0a59; font:22px/1 var(--nln-sans); cursor:pointer; }
.nln-party-lightbox button:focus-visible { outline:3px solid #7022ac; outline-offset:3px; }
.nln-party-lightbox .nln-party-photo { max-height:65dvh; width:min(100%,820px); margin:auto; }
.nln-party-lightbox-status { font:14px/1.5 var(--nln-sans); margin:14px 0 0; }
@media(max-width:1050px) {
 .nln-party-section-heading { display:block; }
 .nln-party-section-heading>p { max-width:none; margin-top:10px; }
 .nln-party-step-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .nln-party-location { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); }
 .nln-party-map { display:block; }
 .nln-party-package { gap:18px; }
}
@media(max-width:700px) {
 .nln-party-hero { grid-template-columns:1fr; }
 .nln-party-hero-copy { padding:24px 20px; gap:14px; }
 .nln-party-landing h1 { font-size:clamp(56px,16cqi,86px); }
 .nln-party-hero-art { width:100%; border-radius:46% 0 0 46%; }
 .nln-party-occasion-grid,.nln-party-experience-grid,.nln-party-activity-grid,.nln-party-package,.nln-party-faq-grid { grid-template-columns:1fr; }
 .nln-party-occasion { display:grid; grid-template-columns:44px minmax(0,1fr); text-align:left; justify-items:start; gap:8px 14px; }
 .nln-party-occasion>.nln-party-icon { grid-row:1/3; }
 .nln-party-occasion>p { grid-column:2; }
 .nln-party-occasion>.nln-party-choice { grid-column:2; }
 .nln-party-gallery { grid-auto-flow:column; grid-template-columns:none; grid-auto-columns:84%; overflow-x:auto; scroll-snap-type:x mandatory; padding:5px; margin:0 -5px; }
 .nln-party-gallery .nln-party-photo { scroll-snap-align:start; }
 .nln-party-location { grid-template-columns:1fr; }
 .nln-party-location .nln-party-photo { width:100%; }
 .nln-party-map { display:block; width:100%; max-width:none; }
 .nln-party-final { grid-template-columns:minmax(0,1fr) 64px; gap:20px; }
 .nln-party-final>h2 { grid-column:1/-1; }
 .nln-party-final-heart { width:64px; height:64px; }
 .nln-party-capacity-row { gap:14px; }
 .nln-party-package-card { padding:22px; }
 .nln-party-lightbox-panel { padding:12px; }
}
@media(max-width:400px) {
 .nln-party-step-grid { grid-template-columns:1fr; }
 .nln-party-planner { grid-template-columns:1fr; }
 .nln-party-landing h2 { font-size:36px; }
}
@media(prefers-reduced-motion:reduce) { .nln-party-landing { scroll-behavior:auto; } }
@media print { .nln-party-choice,.nln-party-planner,.nln-party-gallery-trigger,.nln-party-lightbox { display:none!important; } .nln-party-gallery { display:grid; grid-template-columns:repeat(3,1fr); overflow:visible; } }
