/* CasinoX common design. Canonical source: scripts/shared/brand.css.
   Store-specific photography, HOME layouts and hero artwork remain in each store's CSS. */
:root{--ivory:#f7f3ed;--cream:#f7f3ed;--pink:#bd939e;--rose:#a87681;--pale:#ecdee0;--ink:#2b2728;--muted:#7d7071;--line:#ded3cf;--font-body:'Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,sans-serif;--font-ja:'Yu Mincho','Hiragino Mincho ProN',serif;--font-en:Georgia,'Times New Roman',serif;--space-section:100px;--space-compact:72px}
body.brand-site{background:var(--ivory);color:var(--ink);font-family:var(--font-body);font-size:14px;line-height:2;letter-spacing:.035em}
.brand-site a,.brand-site button{transition:color .18s,background-color .18s,border-color .18s}
.brand-site a:hover{opacity:1;color:var(--rose)}
.brand-site a:focus-visible,.brand-site button:focus-visible{outline:3px solid var(--rose);outline-offset:5px}
.brand-site .hero{letter-spacing:normal}
.brand-site main>section:not(.hero) h2,.brand-site main>section:not(.hero) h4{font-family:var(--font-ja);font-weight:400;letter-spacing:.08em;line-height:1.8}
.brand-site main>section:not(.hero) h2{font-size:36px}
.brand-site main>section:not(.hero) h2.english{font-family:var(--font-en);font-size:42px;line-height:1.3;letter-spacing:.06em}
.brand-site main>section:not(.hero) .eyebrow{font:400 11px/1.6 var(--font-en);letter-spacing:.18em;color:var(--rose);margin:0 0 20px}
.brand-site .about-copy>p:not(.eyebrow):not(.lead),.brand-site .experience article>p,.brand-site .experience-copy>p:not(.eyebrow){font-size:14px;line-height:2.2}
.brand-site .about-copy .lead{color:var(--rose)}
.brand-site .signature,.brand-site .handwritten{color:var(--rose);font-family:var(--font-en);font-size:23px;font-weight:400;font-style:italic}
.brand-site .about{padding-top:var(--space-section);padding-bottom:var(--space-section)}
.brand-site .section-heading{margin-bottom:44px}
.brand-site .experience h3{font-family:var(--font-en);font-size:36px;font-weight:400;letter-spacing:.05em;line-height:1.25}
.brand-site .experience-copy h4{font-size:24px}
.brand-site .experience-grid{gap:55px}
.brand-site .price-banner,.brand-site .experience:not(.section){background-color:var(--pale)}
.brand-site .price-invite{padding-top:var(--space-section);padding-bottom:var(--space-section)}
.brand-site .social{padding-top:var(--space-compact);padding-bottom:var(--space-compact)}
.brand-site .access-section{padding-top:var(--space-section);padding-bottom:var(--space-section)}
.brand-site .home-access{background:var(--pale)}
.brand-site .button{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;min-height:56px;padding:16px 24px;border:1px solid var(--rose);border-radius:32px;background:#faf4f0;color:var(--ink);font:400 12px/1.8 var(--font-body);letter-spacing:.035em;box-shadow:none}
.brand-site .button>span{font-size:20px;line-height:1}
.brand-site .button:hover{background:var(--pale);color:var(--ink)}
/* Preserve the cat's existing relationship to the edge of its button. */
.home-page.brand-site .price-guide .button{min-height:62px;height:62px;padding:15px 25px;border-radius:36px}
.brand-site .text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;padding:10px 0;border:0;border-bottom:1px solid var(--rose);font:400 12px/1.8 var(--font-body);letter-spacing:.035em;background:transparent;color:var(--ink)}
.brand-site .text-link:hover{color:var(--rose);border-color:var(--ink)}
.brand-site .social>.text-link{border:1px solid var(--rose);border-radius:32px;padding:16px 24px;min-height:56px;background:transparent;text-align:center}
/* Header dimensions, navigation, and menu are shared across every page. */
.brand-site .header{height:96px;position:relative;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:0 5%;gap:25px;background:var(--ivory);border:0;border-bottom:1px solid var(--line)}
.brand-site .header .brand{display:flex;align-items:center;gap:16px;white-space:nowrap;letter-spacing:normal}
.brand-site .header .brand img{width:72px;height:51px;object-fit:contain;mix-blend-mode:normal}
.brand-site .header .brand>span{display:flex;flex-direction:column;gap:5px;border:0;border-left:1px solid var(--line);padding:0 0 0 16px;font:400 17px/1.3 var(--font-ja);letter-spacing:.1em}
.brand-site .header .brand small{display:block;font:400 9px/1.3 var(--font-en);letter-spacing:.15em;margin:0;color:var(--muted)}
.brand-site .header #navigation{display:flex;align-items:center;gap:30px;font:400 12px/1.6 var(--font-en);letter-spacing:.08em}
.brand-site .header #navigation a{font:inherit;padding:10px 0;color:var(--ink);border-bottom:1px solid transparent}
.brand-site .header #navigation a:hover{color:var(--rose)}
.brand-site .header #navigation a[aria-current='page']{border-bottom-color:var(--rose)}
.brand-site .header #navigation .nav-ig,.brand-site .header #navigation .nav-social{display:block;border-left:1px solid var(--line);padding-left:25px!important}
.brand-site .header .menu,.brand-site .header .menu-toggle{display:none}
.brand-site .skip{position:fixed;top:-100px;z-index:100;background:var(--ivory);padding:10px}
.brand-site .skip:focus{top:0}
/* Identical lower-page title band. Content may differ by store. */
.brand-site .page-title{padding:72px 20px 64px;background:var(--pale);text-align:center;border-radius:0 0 50% 50% / 0 0 24px 24px}
.brand-site .page-title .eyebrow{margin:0 0 20px}
.brand-site .page-title h1{font:400 56px/1.2 var(--font-en);letter-spacing:.06em;margin:0 0 20px}
.brand-site .page-title>p:last-child{font:400 12px/2 var(--font-body);margin:0;letter-spacing:.05em}
.brand-site .subpage .section{max-width:1200px;margin-left:auto;margin-right:auto;padding-left:50px;padding-right:50px}
/* Shared PRICE components: inline originals, never a lightbox. */
.brand-site .price-intro{text-align:center;padding-top:56px;padding-bottom:32px}
.brand-site .price-intro>p{font-size:14px;line-height:2.2;margin:0 0 24px}
.brand-site .price-tabs{display:flex;justify-content:center;gap:24px;margin:28px 0 0}
.brand-site .price-tabs a{display:flex;justify-content:space-between;width:200px;padding:14px 12px;border-bottom:1px solid var(--line);font:400 13px/1.6 var(--font-en);letter-spacing:.06em}
.brand-site .price-sheet{padding-top:40px;padding-bottom:64px}
.brand-site .sheet-heading{text-align:center}
.brand-site .sheet-heading .eyebrow{margin-bottom:10px}
.brand-site .sheet-heading h2{font:400 36px/1.3 var(--font-en);margin:0 0 14px;letter-spacing:.06em}
.brand-site .sheet-heading>p:last-child{font-size:12px;margin:0}
.brand-site .price-sheet>img{display:block;width:100%;max-width:850px;height:auto;margin:30px auto 0;box-shadow:0 8px 35px #4a303012}
.brand-site .price-placeholder{width:100%;max-width:850px;margin:30px auto 0;padding:64px 24px;border:1px solid var(--line);background:#faf4f0;text-align:center}
.brand-site .price-placeholder>span{font:11px/1.6 var(--font-en);letter-spacing:.18em;color:var(--rose)}
.brand-site .price-placeholder>p{font:400 24px/1.8 var(--font-ja);margin:20px 0 0}
.brand-site .contact-note{text-align:center;padding-top:40px;padding-bottom:80px}
.brand-site .contact-note h2{font-size:28px;margin:0 0 20px}
.brand-site .contact-note>p{font-size:14px;margin:0 0 20px}
.brand-site .phone,.brand-site .tel{font:400 27px/1.5 var(--font-en);letter-spacing:.03em}
/* Same store facts and map layout on both ACCESS pages. */
.brand-site .sub-access-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:start;padding-top:80px;padding-bottom:80px}
.brand-site .access-info h2{font-size:30px;margin:0 0 24px}
.brand-site .access-info dl{margin:0}
.brand-site .access-info dl>div{padding:20px 0;border-top:1px solid transparent}
.brand-site .access-info dt{font:400 11px/1.6 var(--font-en);letter-spacing:.15em;color:var(--rose);margin:0}
.brand-site .access-info dd{font:400 14px/2.1 var(--font-body);margin:10px 0 0;letter-spacing:.035em}
.brand-site .access-info dd .phone{font:400 27px/1.5 var(--font-en)}
.brand-site .access-info .text-link{margin-top:12px}
.brand-site .sub-access-grid .map-wrap iframe{width:100%;height:480px;border:0;border-radius:8px;background:#e5ded8;display:block}
.brand-site .map-wrap>p{font-size:11px;line-height:1.8;margin:12px 0 0;color:var(--muted)}
.brand-site .subpage .social{border-top:1px solid var(--line);border-bottom:0;display:flex;align-items:center;justify-content:space-between;gap:50px;padding-top:64px;padding-bottom:72px}
.brand-site .subpage .social h2{font-size:29px;margin:0 0 16px}
.brand-site .subpage .social p:last-child{font-size:14px;margin:0}
.brand-site .social-links{min-width:260px}
.brand-site .social-links a{display:flex;align-items:center;justify-content:space-between;gap:36px;padding:20px 0;border-bottom:1px solid var(--line);font:400 23px/1.4 var(--font-en)}
/* Established ivory footer, common across stores. */
footer.cx-footer{background:#ede5e0;color:var(--ink);padding:55px 5% 24px;font:400 14px/2 var(--font-body);letter-spacing:.055em}
.cx-footer .footer-top{display:flex;justify-content:space-between;align-items:center;gap:35px}
.cx-footer .footer-brand{display:flex;align-items:center;gap:16px;white-space:nowrap}
.cx-footer .footer-brand img{width:72px;height:51px;object-fit:contain;border-radius:0}
.cx-footer .footer-brand>span{display:flex;flex-direction:column;gap:5px;border-left:1px solid var(--line);padding-left:16px;font:400 17px/1.3 var(--font-ja);letter-spacing:.1em}
.cx-footer .footer-brand small{display:block;font:400 9px/1.3 var(--font-en);letter-spacing:.15em;color:var(--muted)}
.cx-footer .footer-links{display:flex;align-items:center;gap:25px;font:400 11px/1.5 var(--font-en);letter-spacing:.055em;margin:0;padding:0}
.cx-footer .footer-links a{padding:0;color:inherit;border:0}
.cx-footer .footer-links a:hover{color:var(--rose)}
.cx-footer .footer-bottom{border-top:1px solid var(--line);margin-top:38px;padding-top:22px;display:flex;justify-content:space-between;gap:20px;font-size:10px;color:var(--muted)}
.cx-footer .footer-bottom small{font-size:10px}
@media(max-width:1000px) and (min-width:761px){.brand-site .header{padding:0 25px;gap:20px}.brand-site .header #navigation{gap:18px}.brand-site .header #navigation .nav-ig,.brand-site .header #navigation .nav-social{padding-left:18px!important}.brand-site .sub-access-grid{gap:35px}}
@media(max-width:760px){
:root{--space-section:72px;--space-compact:56px}
body.brand-site{font-size:13px}
.brand-site main>section:not(.hero) h2{font-size:28px}
.brand-site main>section:not(.hero) h2.english{font-size:32px}
.brand-site main>section:not(.hero) .eyebrow{font-size:10px;margin-bottom:18px}
.brand-site .about-copy>p:not(.eyebrow):not(.lead),.brand-site .experience article>p,.brand-site .experience-copy>p:not(.eyebrow){font-size:13px;line-height:2.2}
.brand-site .about{grid-template-columns:1fr;display:flex;flex-direction:column;padding:72px 24px;gap:36px}
.brand-site .section-heading{margin-bottom:32px}
.brand-site .experience h3{font-size:32px}
.brand-site .signature,.brand-site .handwritten{font-size:21px}
.brand-site .button{min-height:54px;padding:15px 22px;font-size:12px;gap:24px}
.home-page.brand-site .price-guide .button{min-height:60px;height:60px;padding:14px 20px}
.brand-site .header{height:76px;padding:0 20px;gap:12px}
.brand-site .header .brand{gap:11px}
.brand-site .header .brand img{width:56px;height:40px}
.brand-site .header .brand>span{font-size:14px;padding-left:11px;gap:4px}
.brand-site .header .brand small{font-size:7px}
.brand-site .header .menu,.brand-site .header .menu-toggle{display:flex;align-items:center;gap:12px;border:0;background:none;padding:10px 0 10px 10px;font:400 10px/1.6 var(--font-en);letter-spacing:.08em;color:var(--ink)}
.brand-site .header .menu>span,.brand-site .header .menu-toggle>span{font-size:22px;line-height:1}
.brand-site .header #navigation{display:none;position:absolute;top:76px;left:0;right:0;width:100%;padding:20px 24px 28px;background:var(--ivory);border:0;border-bottom:1px solid var(--line);box-shadow:0 12px 20px #30232612;flex-direction:column;align-items:stretch;gap:4px}
.brand-site .header #navigation.is-open{display:flex}
.brand-site .header #navigation a{padding:14px 0;font-size:12px}
.brand-site .header #navigation .nav-ig,.brand-site .header #navigation .nav-social{border-left:0;padding-left:0!important}
.brand-site .page-title{padding:52px 20px 46px;border-radius:0 0 50% 50% / 0 0 24px 24px}
.brand-site .page-title h1{font-size:36px;margin-bottom:18px}
.brand-site .page-title .eyebrow{font-size:10px;margin-bottom:18px}
.brand-site .subpage .section{padding-left:24px;padding-right:24px}
.brand-site .price-intro{padding-top:40px;padding-bottom:24px}
.brand-site .price-intro>p{font-size:13px}
.brand-site .price-tabs{gap:20px}
.brand-site .price-tabs a{width:50%;font-size:12px}
.brand-site .subpage .price-sheet{padding:32px 12px 48px}
.brand-site .sheet-heading h2{font-size:32px}
.brand-site .price-sheet>img{margin-top:24px}
.brand-site .price-placeholder{padding:48px 20px;margin-top:24px}
.brand-site .price-placeholder>p{font-size:22px}
.brand-site .contact-note{padding-top:32px;padding-bottom:56px}
.brand-site .contact-note h2{font-size:25px}
.brand-site .contact-note>p{font-size:13px}
.brand-site .sub-access-grid{display:grid;grid-template-columns:1fr;gap:36px;padding-top:56px;padding-bottom:56px}
.brand-site .access-info h2{font-size:27px}
.brand-site .access-info dd{font-size:13px}
.brand-site .sub-access-grid .map-wrap iframe{height:360px}
.brand-site .subpage .social{display:block;padding-top:48px;padding-bottom:56px;margin-left:24px;margin-right:24px;padding-left:0;padding-right:0}
.brand-site .subpage .social h2{font-size:26px}
.brand-site .subpage .social p:last-child{font-size:13px}
.brand-site .social-links{min-width:0;margin-top:24px}
.brand-site .social-links a{font-size:22px}
footer.cx-footer{padding:40px 24px 22px}
.cx-footer .footer-top{display:block}
.cx-footer .footer-brand{gap:11px}
.cx-footer .footer-brand img{width:56px;height:40px}
.cx-footer .footer-brand>span{font-size:14px;padding-left:11px;gap:4px;margin:0}
.cx-footer .footer-brand small{font-size:7px}
.cx-footer .footer-links{display:grid;grid-template-columns:1fr 1fr;margin-top:30px;gap:22px}
.cx-footer .footer-bottom{display:block;margin-top:30px;font-size:9px}
.cx-footer .footer-bottom small{display:block;margin-top:10px;font-size:9px}
}
@media(max-width:360px){.brand-site .header{padding-left:14px;padding-right:14px}.brand-site .header .brand{gap:9px}.brand-site .header .brand>span{padding-left:9px}}
@media(prefers-reduced-motion:reduce){.brand-site *{scroll-behavior:auto!important;transition:none!important}}
/* Explicit subpage hierarchy wins over inherited HOME heading rules. */
.brand-site .subpage .sheet-heading h2{font:400 36px/1.3 var(--font-en);letter-spacing:.06em}
.brand-site .subpage .access-info h2{font-size:30px}
.brand-site .subpage .contact-note h2{font-size:28px}
.brand-site .subpage .social h2{font-size:29px}
@media(max-width:760px){.brand-site .subpage .sheet-heading h2{font-size:32px}.brand-site .subpage .access-info h2{font-size:27px}.brand-site .subpage .contact-note h2{font-size:25px}.brand-site .subpage .social h2{font-size:26px}}
/* Neutralize legacy label !important rules so the title bands match exactly. */
.brand-site main>section:not(.hero) .eyebrow{font-size:11px!important}
@media(max-width:760px){.brand-site main>section:not(.hero) .eyebrow{font-size:10px!important}}
/* Hide the offscreen skip control in full-page captures while retaining keyboard access. */
.brand-site .skip:not(:focus){width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%)}
.brand-site .skip:focus{width:auto;height:auto;clip-path:none}
@media(max-width:760px){.brand-site .experience .section-heading h2:not(.english){font-size:25px}}
