/* Generated bundle of shared site styles. Edit the source files, then rebuild. Order: footer.css, footer-fullwidth.css, layout-system.css, editorial-system.css, type-scale.css, promotions.css, cta-interactions.css, heading-system.css */
/* --- footer.css --- */
.site-footer{padding:38px 0 0;background:var(--paper);color:#3a174f}.footer-shell{overflow:hidden;border-radius:42px 42px 0 0;background:#e9dced}.footer-main{display:grid;grid-template-columns:1.55fr repeat(3,1fr) .95fr;gap:34px;padding:72px 62px 52px}.footer-label{display:block;margin-bottom:24px;color:#4e176c;font-size:16px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.footer-search{display:flex;max-width:320px;border:1px solid #6a397e;border-radius:14px;background:rgba(255,255,255,.45);overflow:hidden}.footer-search input{width:100%;min-width:0;border:0;background:transparent;padding:15px 18px;color:#3a174f;font:400 16px Montserrat}.footer-search input:focus{outline:2px solid var(--cyan);outline-offset:-2px}.footer-search button{width:52px;border:0;background:transparent;color:#3a174f;font:700 26px Montserrat;cursor:pointer}.footer-social{display:flex;gap:22px;margin-top:58px}.site-footer .footer-social-icon{display:grid;width:30px;height:30px;place-items:center;border:1px solid rgba(255,255,255,.58);border-radius:50%;background:rgba(255,255,255,.1);color:rgba(255,255,255,.93);transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease}.site-footer .footer-social-icon:hover{border-color:rgba(255,255,255,.9);background:rgba(255,255,255,.2);color:#fff;transform:translateY(-2px)}.footer-social-icon svg{width:15px;height:15px;fill:currentColor}.footer-social-icon svg rect,.footer-social-icon svg circle{fill:none;stroke:currentColor;stroke-width:2}.footer-social-icon svg .footer-icon-fill{fill:currentColor;stroke:0}.footer-column a{display:block;margin:0 0 15px;color:#3a174f;font-size:16px}.footer-column a:hover{color:var(--purple);text-decoration:underline;text-underline-offset:4px}.footer-download a{display:flex;gap:10px;align-items:center}.footer-store-icon{width:18px;height:18px;fill:currentColor;stroke:currentColor;stroke-width:1.6}.footer-bottom{display:flex;justify-content:space-between;gap:20px;margin:0 62px;padding:20px 0;border-top:1px solid rgba(78,23,108,.28);color:#4e176c;font-size:14px}.site-footer .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:980px){.footer-main{grid-template-columns:repeat(3,1fr);padding:54px 42px 38px}.footer-find{grid-column:span 3}.footer-social{margin-top:28px}.footer-bottom{margin:0 42px}}@media(max-width:600px){.site-footer{padding-top:20px}.footer-shell{border-radius:28px 28px 0 0}.footer-main{grid-template-columns:1fr 1fr;gap:34px 24px;padding:45px 26px 30px}.footer-find{grid-column:span 2}.footer-label{margin-bottom:16px}.footer-social{margin-top:24px}.footer-bottom{display:block;margin:0 26px;padding:18px 0;font-size:14px}.footer-bottom span{display:block;margin-bottom:7px}}
/* --- footer-fullwidth.css --- */
/* Full-width shared footer: the lavender surface reaches both edges of the page. */
.site-footer { padding: 0; background: #e9dced; }
.site-footer .footer-shell { width: 100%; max-width: none; margin: 0; border-radius: 0; }
.footer-main { width: min(1420px, 90vw); margin: auto; padding: 72px 0 52px; }
.footer-bottom { width: min(1420px, 90vw); margin: auto; }

@media (max-width: 980px) {
  .footer-main { padding: 54px 0 38px; }
}

@media (max-width: 600px) {
  .footer-main { width: min(100% - 52px, 1420px); padding: 45px 0 30px; }
  .footer-bottom { width: min(100% - 52px, 1420px); margin: auto; }
  .site-footer { padding: 0; }
  .footer-shell { border-radius: 0; }
}
/* --- layout-system.css --- */
/* Shared visual rules: one rail, two surfaces, and readable type across every NEX page. */
:root{--ink:#251d40;--paper:#f6f4ef;--soft:#ede9e0;--deep:#251d40;--purple:#7210a8;--blue:#1b4199;--cyan:#10b9c8;--orange:#ef8611;--line:#d7d0c5;--muted:#5f5a68}
body{background:var(--paper);color:var(--ink);font-size:16px}.wrap{width:min(1180px,calc(100% - 2 * clamp(18px,5vw,72px)));margin-left:auto;margin-right:auto}.hero .copy{width:min(1180px,calc(100% - 2 * clamp(18px,5vw,72px)))!important;max-width:none!important;margin-left:auto!important;margin-right:auto!important;transform:none!important}.hero .copy h1{max-width:760px}.hero .copy p{max-width:650px}
p,li,input,select,textarea,button,a,label,legend,small,.footer-bottom,.brand-kicker,.story small,.proof span{font-size:max(15px,1rem)}small{font-size:15px}.eyebrow,.footer-label{font-size:15px}.section,.review-section{padding-top:96px;padding-bottom:96px}.page-hero,.location-hero{background:var(--paper)}.section.soft,.location-cta,.trust-section{background:var(--soft)}.proof,.place-experience,.partner-cta,.feature,.site-footer,.site-footer .footer-shell{background:var(--deep)}.feature{background:var(--deep)}.site-footer{color:#fff}.site-footer .footer-label,.site-footer .footer-column a,.site-footer .footer-search input,.site-footer .footer-search button,.site-footer .footer-bottom{color:#fff}.site-footer .footer-search{border-color:rgba(255,255,255,.54);background:rgba(255,255,255,.08)}.site-footer .footer-social span{border-color:rgba(255,255,255,.54)}.site-footer .footer-bottom{border-top-color:rgba(255,255,255,.25)}
.section-intro{display:block!important;width:100%!important;max-width:none!important;margin-left:0!important;margin-right:0!important}.partner-cta .partner-cta-grid{display:block!important;width:min(1180px,calc(100% - 2 * clamp(18px,5vw,72px)))!important;max-width:none!important;margin-left:auto!important;margin-right:auto!important}.section-intro h2,.section-intro .lead,.partner-cta h2,.partner-cta p{margin-left:0}.section-intro .lead{max-width:650px}.partner-cta .partner-cta-grid>div:first-child,.partner-cta .partner-cta-grid>div:last-child{max-width:700px}.partner-cta .partner-cta-grid>div:last-child{margin-top:24px}.review-top{align-items:flex-end}.page-hero .wrap,.location-hero .wrap,.franchise-form-section .wrap{margin-left:auto;margin-right:auto}
@media(max-width:800px){.section,.review-section{padding-top:70px;padding-bottom:70px}.hero .copy{width:min(100% - 36px,1180px)!important}.footer-bottom,.footer-label,.brand-kicker,.story small{font-size:15px}.page-hero,.location-hero{padding-top:70px;padding-bottom:56px}}
/* --- editorial-system.css --- */
/* NEX editorial system: warm, food-led, and restrained. Applied to every non-Cassalu page. */
:root{--ink:#171726;--deep:#20203a;--paper:#fbf8f1;--soft:#f1ece1;--line:#ded6c7;--muted:#635f66;--purple:#5b2aa0;--blue:#284896;--cyan:#09b4c7;--orange:#e97912}
body{background:var(--paper);color:var(--ink)}
h1,h2,h3{font-weight:500}
.site-header{background:rgba(251,248,241,.95);border-bottom:1px solid rgba(23,23,38,.1);box-shadow:none}
.nav{min-height:78px;gap:20px}.logo{width:154px;height:48px}.nav-links,.nav-utility{font-size:15px;font-weight:500}.nav-links{gap:16px}.nav-utility{gap:13px;border-left-color:rgba(23,23,38,.15)}.nav-links a:hover,.nav-utility a:hover{color:var(--purple)}
.button{min-height:44px;padding:9px 18px;border-radius:3px;background:var(--orange);color:#fff;font-size:15px;font-weight:600;transition:background .18s ease,transform .18s ease}.button:hover{background:#cf6310;transform:translateY(-1px)}.button.dark{background:var(--deep)}.button.purple{background:var(--purple)}
.eyebrow{color:var(--purple);font-size:13px;font-weight:700;letter-spacing:.13em}.section,.review-section{padding-top:116px;padding-bottom:116px}
.hero{min-height:660px;background-image:linear-gradient(90deg,rgba(17,17,29,.92) 0%,rgba(17,17,29,.68) 47%,rgba(17,17,29,.16) 100%),url('../assets/nex-place-brands.jpg');background-position:center}.hero .copy{padding:92px 0}.hero .eyebrow{color:var(--cyan)}.hero h1{max-width:770px;font-size:clamp(3.7rem,7vw,7.3rem);font-weight:500;line-height:.9;letter-spacing:-.08em}.hero h1 em{color:var(--cyan);font-weight:400}.hero p{max-width:560px;color:rgba(255,255,255,.86);font-size:18px}.hero-note{color:rgba(255,255,255,.68)!important}
.proof{background:var(--deep)}.proof .wrap{grid-template-columns:repeat(4,1fr)}.proof article{padding:25px 22px;border-right-color:rgba(255,255,255,.14)}.proof strong{font-size:30px;font-weight:500;color:var(--cyan)}.proof span{font-size:15px;color:rgba(255,255,255,.77)}
.section-intro{max-width:780px!important}.section-intro h2,.review-top h2{font-weight:500;letter-spacing:-.07em}.section-intro .lead{max-width:630px!important;color:var(--muted);font-size:17px}.brands-section{padding-top:120px}.brand-mosaic{grid-template-columns:repeat(12,1fr);grid-auto-rows:235px;gap:10px;margin-top:50px}.brand-tile{grid-column:span 3;border-radius:0}.brand-tile.large{grid-column:span 6;grid-row:span 2}.brand-tile.wide{grid-column:span 6}.brand-tile:before{background:linear-gradient(0deg,rgba(11,11,17,.87),rgba(11,11,17,.03) 78%)}.brand-tile:after{background:rgba(32,32,58,.22)}.brand-tile .tile-copy{right:22px;bottom:20px;left:22px}.brand-kicker{color:#71deea;font-size:12px}.brand-tile h3{font-size:27px;font-weight:500}.brand-tile .menu-link{border-bottom-color:var(--cyan);font-size:15px;font-weight:500}.section-action{margin-top:30px}
.place-experience,.feature,.partner-cta{background:var(--deep);color:#fff}.place-experience{padding:116px 0}.place-top h2,.feature h2,.partner-cta h2{font-weight:500;letter-spacing:-.07em}.place-top p,.feature p,.partner-cta p{color:rgba(255,255,255,.75)}.place-top img,.place-gallery img{border-radius:0}.place-pillars{gap:1px}.place-pillars article{background:rgba(255,255,255,.08);border-radius:0}.place-pillars b{color:var(--cyan);font-weight:500}.place-gallery{gap:10px}.trust-section,.location-cta{background:var(--soft)}.trust-grid{gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.trust-grid article{padding:30px 26px;border:0;border-right:1px solid var(--line);border-radius:0;background:transparent}.trust-grid article:last-child{border-right:0}.trust-grid span{color:var(--orange);font-weight:500}.trust-grid h3{margin-top:34px;font-weight:500}.feature{padding:112px 0}.feature img{border-radius:0;min-height:390px}.partner-cta{padding:112px 0}.partner-cta .partner-cta-grid>div:last-child{max-width:610px}.partner-cta .eyebrow{color:var(--orange)}
.stories-section{background:var(--paper)}.story-list{gap:0;border-top:1px solid var(--ink)}.story{min-height:235px;padding:23px 22px 24px 0;border-top:0;border-right:1px solid var(--line)}.story+.story{padding-left:22px}.story:last-child{border-right:0}.story small{color:var(--purple);font-size:12px}.story h3{font-size:26px;font-weight:500}.location-cta{padding:116px 0}.location-cta h2{font-weight:500;letter-spacing:-.07em}.location-art{border-radius:0;background-color:#284b52}.location-search input{border-radius:0;background:#fffdf8}.location-search .button{border-radius:0}
.page-hero,.location-hero{padding:118px 0 82px;background:var(--paper);border-bottom:1px solid var(--line)}.page-hero h1,.location-hero h1{max-width:900px;font-weight:500;letter-spacing:-.075em}.page-hero p{color:var(--muted)}.card-grid{gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.card{min-height:230px;padding:32px 25px;border:0;border-right:1px solid var(--line);border-radius:0;background:transparent}.card:last-child{border-right:0}.card h3{font-weight:500}.card a{color:var(--purple);font-weight:500}.menu-card,.review{border-radius:0}.review-section{background:var(--paper)}.review{padding:30px;border-color:var(--line)}.form-layout h2{font-weight:500}.lead-form{border-radius:0}.site-footer,.site-footer .footer-shell{background:var(--deep)}
@media(max-width:980px){.brand-mosaic{grid-template-columns:repeat(2,1fr)}.brand-tile,.brand-tile.large,.brand-tile.wide{grid-column:auto;grid-row:auto}.brand-tile.large{grid-column:span 2;grid-row:span 2}.trust-grid article:nth-child(2){border-right:0}.trust-grid article:last-child{border-top:1px solid var(--line);grid-column:span 2}.story-list{gap:0}.story{border-bottom:1px solid var(--line)}}
@media(max-width:800px){.section,.review-section,.place-experience,.feature,.partner-cta,.location-cta{padding-top:76px;padding-bottom:76px}.hero{min-height:610px}.hero .copy{padding:74px 0}.hero h1{font-size:clamp(3.35rem,14vw,5.8rem)}.proof .wrap{grid-template-columns:repeat(2,1fr)}.proof article:nth-child(2){border-right:0}.brand-mosaic{grid-auto-rows:250px}.story-list,.trust-grid{grid-template-columns:1fr}.story,.story+.story,.trust-grid article,.trust-grid article:last-child{padding:24px 0;border-right:0;border-bottom:1px solid var(--line);grid-column:auto}.trust-grid article:last-child{border-bottom:0}.page-hero,.location-hero{padding-top:82px;padding-bottom:62px}}
@media(max-width:560px){.nav{min-height:70px}.logo{width:142px}.brand-mosaic{grid-template-columns:1fr}.brand-tile.large{grid-column:auto;grid-row:auto}.proof .wrap{grid-template-columns:1fr}.proof article{border-right:0;border-bottom:1px solid rgba(255,255,255,.14)}.proof article:last-child{border-bottom:0}.brand-tile{min-height:260px}.section-intro h2,.review-top h2{font-size:clamp(2.7rem,12vw,4rem)}}
/* --- type-scale.css --- */
h1,h2,h3,h4,h5,h6{font-weight:600!important;font-style:normal!important}
h1 em,h2 em,h3 em,h4 em,h5 em,h6 em,h1 i,h2 i,h3 i,h4 i,h5 i,h6 i{font-style:normal!important}
h2{font-size:44px!important;line-height:1.05}
.journey-head h2{white-space:nowrap}
@media(max-width:760px){.journey-head h2{white-space:normal}}
/* --- promotions.css --- */
.promotion-announcement{position:relative;z-index:20;background:#2d2588;color:#fff}.promotion-announcement .wrap{display:flex;min-height:42px;align-items:center;justify-content:center;gap:14px;padding:8px 0;font-size:13px;font-weight:700;text-align:center}.promotion-announcement-copy{font-weight:400}.promotion-announcement a{color:#fff;text-decoration:underline;text-underline-offset:3px}.promotions-featured{background:#f8f5ef}.promotion-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:34px}.promotion-card{overflow:hidden;border:1px solid var(--line);border-radius:17px;background:#fffdfa}.promotion-card>img{width:100%;height:220px;object-fit:cover}.promotion-card>div{padding:23px}.promotion-card h2,.promotion-card h3{margin:8px 0 10px;font-size:29px;line-height:1.05;letter-spacing:-.045em}.promotion-card p{margin:0 0 18px;color:var(--muted)}.promotion-label{color:#2d2588;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.promotion-cta{display:inline-flex;align-items:center;gap:7px;color:#2d2588;font-size:14px;font-weight:700}.promotion-footer{padding:20px 0;background:#ef7908;color:#fff}.promotion-footer .wrap{display:flex;align-items:center;justify-content:space-between;gap:18px}.promotion-footer span,.promotion-footer strong{display:block}.promotion-footer span{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.promotion-footer strong{font-size:22px}.promotion-footer .promotion-cta{padding:10px 16px;border-radius:999px;background:#fff;color:#181621;white-space:nowrap}.promotion-modal{position:fixed;z-index:100;inset:0;display:grid;padding:24px;place-items:center;background:rgba(24,22,33,.72)}.promotion-modal-card{position:relative;display:grid;overflow:hidden;width:min(100%,680px);grid-template-columns:1fr 1fr;border-radius:18px;background:#fffdfa;box-shadow:0 24px 70px rgba(0,0,0,.32)}.promotion-modal-card>img{width:100%;height:100%;min-height:290px;object-fit:cover}.promotion-modal-card>div{padding:42px 34px}.promotion-modal h2{margin:9px 0;font-size:36px;line-height:1.02;letter-spacing:-.05em}.promotion-modal p{color:var(--muted)}.promotion-close{position:absolute;top:12px;right:12px;width:34px;height:34px;border:0;border-radius:50%;background:#fff;color:#181621;font-size:27px;line-height:1;cursor:pointer}.promotions-empty{color:var(--muted)}@media(max-width:760px){.promotion-grid{grid-template-columns:1fr}.promotion-announcement .wrap{flex-wrap:wrap}.promotion-footer .wrap{align-items:flex-start;flex-direction:column}.promotion-modal-card{grid-template-columns:1fr}.promotion-modal-card>img{height:180px;min-height:0}.promotion-modal-card>div{padding:28px}.promotion-modal h2{font-size:30px}}
/* --- cta-interactions.css --- */
/* Shared public-site CTA feedback */
.button,.promotion-cta,.card a,.menu-card a,.direction-link,.cassalu-text-link,.cassalu-events-text-link,.cassalu-full-menu-link,.cassalu-order-button{transition:transform .2s ease,background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease}
.button:hover,.button:focus-visible{transform:translateY(-2px);background:#d96e00;color:#fff;box-shadow:0 10px 20px rgba(24,22,33,.2)}
.button.dark:hover,.button.dark:focus-visible{background:var(--purple);color:#fff}.button.purple:hover,.button.purple:focus-visible{background:#551080;color:#fff}
.promotion-cta:hover,.promotion-cta:focus-visible,.card a:hover,.card a:focus-visible,.menu-card a:hover,.menu-card a:focus-visible,.cassalu-text-link:hover,.cassalu-text-link:focus-visible,.cassalu-events-text-link:hover,.cassalu-events-text-link:focus-visible,.cassalu-full-menu-link:hover,.cassalu-full-menu-link:focus-visible{color:var(--orange);transform:translateX(3px)}
.hero .promotion-cta:hover,.hero .promotion-cta:focus-visible{background:var(--cyan)!important;border-color:var(--cyan)!important;color:var(--ink)!important;transform:translateY(-2px)}
.promotion-footer .promotion-cta:hover,.promotion-footer .promotion-cta:focus-visible{background:var(--ink);color:#fff;transform:translateY(-2px)}
.direction-link:hover,.direction-link:focus-visible{background:var(--purple);color:#fff;transform:translateY(-2px);box-shadow:0 8px 16px rgba(24,22,33,.2)}
.button:focus-visible,.promotion-cta:focus-visible,.card a:focus-visible,.menu-card a:focus-visible,.direction-link:focus-visible,.cassalu-text-link:focus-visible,.cassalu-events-text-link:focus-visible,.cassalu-full-menu-link:focus-visible,.cassalu-order-button:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
@media(prefers-reduced-motion:reduce){.button,.promotion-cta,.card a,.menu-card a,.direction-link,.cassalu-text-link,.cassalu-events-text-link,.cassalu-full-menu-link,.cassalu-order-button{transition:none}.button:hover,.button:focus-visible,.promotion-cta:hover,.promotion-cta:focus-visible,.card a:hover,.card a:focus-visible,.menu-card a:hover,.menu-card a:focus-visible,.direction-link:hover,.direction-link:focus-visible{transform:none}}
/* --- heading-system.css --- */
/*
  NEX heading system — one format for every H1 and H2 on the public site.
  Loaded last on every page. The :not(#nx-a):not(#nx-b) suffix lifts specificity
  above page-level overrides so no page can drift from the scale again.
  To change the look of all headings, edit the tokens in :root only.
*/
:root{
  --nx-heading-font:Montserrat,"Segoe UI",Arial,sans-serif;
  --nx-heading-weight:600;
  --nx-h1-size:clamp(2.5rem,1.55rem + 3.9vw,4.5rem);   /* 40px → 72px */
  --nx-h1-line:1.02;
  --nx-h1-track:-.045em;
  --nx-h2-size:clamp(1.875rem,1.3rem + 2.1vw,2.75rem); /* 30px → 44px */
  --nx-h2-line:1.08;
  --nx-h2-track:-.035em;
}

h1:not(#nx-a):not(#nx-b){
  font-family:var(--nx-heading-font)!important;
  font-size:var(--nx-h1-size)!important;
  font-weight:var(--nx-heading-weight)!important;
  font-style:normal!important;
  line-height:var(--nx-h1-line)!important;
  letter-spacing:var(--nx-h1-track)!important;
  text-transform:none!important;
  text-wrap:balance;
}
h2:not(#nx-a):not(#nx-b){
  font-family:var(--nx-heading-font)!important;
  font-size:var(--nx-h2-size)!important;
  font-weight:var(--nx-heading-weight)!important;
  font-style:normal!important;
  line-height:var(--nx-h2-line)!important;
  letter-spacing:var(--nx-h2-track)!important;
  text-transform:none!important;
  text-wrap:balance;
}
/* Accent words inside headings keep their colour but share the same type. */
:is(h1,h2) :is(em,i,span,strong,b,a):not(#nx-a){
  font-family:inherit!important;
  font-size:inherit!important;
  font-weight:inherit!important;
  font-style:normal!important;
  letter-spacing:inherit!important;
  line-height:inherit!important;
}
/* Long rich-text article headings: same type, a touch more breathing room. */
.nex-article-content :is(h1,h2):not(#nx-a){margin:1.6em 0 .5em!important}

/* ---------- Site-wide basics that were missing on some pages ---------- */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--cyan,#10b9c8);outline-offset:3px;border-radius:6px}
.skip-link{position:absolute;left:16px;top:-60px;z-index:100;padding:10px 16px;border-radius:999px;background:var(--ink,#181621);color:#fff;font-weight:700}
.skip-link:focus{top:12px}
.nav-links a[aria-current="page"]{color:var(--purple,#7210a8);box-shadow:inset 0 -2px 0 currentColor}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
