/* GSC-informed navigation candidate. Existing content and brand assets are preserved. */
.kasumi-breadcrumb{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;padding:14px max(var(--gutter,20px),calc((100vw - var(--page,1120px))/2));font-size:14px;line-height:1.7;background:#fffdfb;color:#58433a}
.kasumi-breadcrumb a{text-decoration:underline;text-underline-offset:4px}.kasumi-breadcrumb span[aria-hidden]{color:#94766a}
.kasumi-hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.kasumi-hero-actions .button{min-height:48px;text-align:center}
.kasumi-secondary-link{display:inline-block;margin-top:14px;font-size:14px;line-height:1.8;text-decoration:underline;text-underline-offset:4px}
.kasumi-page-nav{padding:20px max(var(--gutter,20px),calc((100vw - var(--page,1120px))/2));border-block:1px solid #e9ddd5;background:#fffdfb}
.kasumi-page-nav>p{margin:0 0 10px;color:#59453d;font-size:14px;font-weight:700}.kasumi-page-nav ul{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.kasumi-page-nav a{display:flex;align-items:center;justify-content:center;min-height:44px;border:1px solid #d9c9be;border-radius:8px;padding:8px 16px;font-size:16px;font-weight:700;line-height:1.5;background:#fff;color:#513b31}.kasumi-page-nav a:hover{background:#fbf3e9}
body.kasumi-enhanced :is(a,button,summary,input):focus-visible{outline:3px solid #174f82;outline-offset:4px}
body.kasumi-enhanced [id]{scroll-margin-top:110px}
body.kasumi-harukaze{--kasumi-accent:#ffb800}body.kasumi-fuuka{--kasumi-accent:#ff6300}body.kasumi-yuikaze{--kasumi-accent:#26837b}
.kasumi-harukaze .kasumi-page-nav,.kasumi-fuuka .kasumi-page-nav,.kasumi-yuikaze .kasumi-page-nav{border-top:3px solid var(--kasumi-accent)}
.kasumi-mobile-actions{display:none}
@media(max-width:700px){
body.kasumi-enhanced [id]{scroll-margin-top:92px}.kasumi-breadcrumb{padding:12px 20px;font-size:14px}.kasumi-page-nav{padding:18px 20px}.kasumi-page-nav ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.kasumi-page-nav a{padding:10px 8px}.kasumi-hero-actions{display:grid;grid-template-columns:1fr;width:100%;gap:10px}.kasumi-hero-actions .button{width:100%;min-width:0}.kasumi-secondary-link{font-size:16px}
html:has(.kasumi-mobile-actions){scroll-padding-bottom:calc(var(--kasumi-mobile-bar-height,108px) + 12px)}
body.kasumi-has-mobile-actions{padding-bottom:calc(var(--kasumi-mobile-bar-height,108px) + 12px)}
.kasumi-mobile-actions{position:fixed;inset:auto 0 0;z-index:90;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:10px;padding:12px max(12px,env(safe-area-inset-right,0px)) calc(12px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));border-top:1px solid #dbcfc7;background:#fffdfbf5;box-shadow:0 -4px 18px #38201412}
.kasumi-mobile-actions a{min-width:0}
body:has(.mobile-menu[open]) .kasumi-mobile-actions{visibility:hidden}
}
@media print{.kasumi-mobile-actions,.kasumi-page-nav,.kasumi-hero-actions{display:none!important}body.kasumi-has-mobile-actions{padding-bottom:0}}
@media(prefers-reduced-motion:reduce){body.kasumi-enhanced{scroll-behavior:auto}body.kasumi-enhanced *{scroll-behavior:auto}}

/* Calm booking hierarchy. Only explicitly classified action links are affected. */
body.kasumi-cta-ready a.kasumi-cta{
  box-sizing:border-box;justify-content:center;align-items:center;gap:.5rem;
  min-width:0;max-width:100%;min-height:54px;height:auto;
  padding:.875rem 1.375rem;border:2px solid transparent;border-radius:14px;
  font-size:1rem;font-weight:700;line-height:1.6;text-align:center;
  white-space:normal;overflow-wrap:anywhere;word-break:normal;text-decoration:none;
  filter:none;transition:background-color .15s ease,box-shadow .15s ease;
}
body.kasumi-cta-ready a.kasumi-cta:not(.header-cta){display:inline-flex}
body.kasumi-cta-ready a.kasumi-cta.kasumi-cta-booking,
body.kasumi-cta-ready a.kasumi-cta.kasumi-cta-choose{background:#A63D65;border-color:#A63D65;color:#fff;background-image:none;box-shadow:none}
body.kasumi-cta-ready a.kasumi-cta.kasumi-cta-booking:hover,
body.kasumi-cta-ready a.kasumi-cta.kasumi-cta-choose:hover{background:#913353;border-color:#913353;color:#fff;background-image:none;box-shadow:none}
body.kasumi-cta-ready a.kasumi-cta.kasumi-cta-booking:active,
body.kasumi-cta-ready a.kasumi-cta.kasumi-cta-choose:active{background:#7C2946;border-color:#7C2946;color:#fff;background-image:none;box-shadow:none}
body.kasumi-cta-ready a.kasumi-cta.kasumi-cta-secondary{background:#fff;border-color:#48745f;color:#215f44;box-shadow:none}
body.kasumi-cta-ready a.kasumi-cta.kasumi-cta-secondary:hover{background:#f0faf4;border-color:#48745f;color:#215f44;box-shadow:none}
body.kasumi-cta-ready a.kasumi-cta.kasumi-cta-secondary:active{background:#e2f2e8;border-color:#48745f;color:#215f44;box-shadow:none}
body.kasumi-cta-ready a.kasumi-cta.kasumi-cta-neutral{border-color:#61766e;color:#33423e}
body.kasumi-cta-ready a.kasumi-cta.kasumi-cta-neutral:hover{border-color:#61766e;color:#33423e}
body.kasumi-cta-ready a.kasumi-cta.kasumi-cta-neutral:active{border-color:#61766e;color:#33423e}
body.kasumi-cta-ready a.kasumi-cta:active{box-shadow:none}
body.kasumi-cta-ready a.kasumi-cta:focus-visible{outline:3px solid #174f82;outline-offset:4px}
body.kasumi-cta-ready .hero-line-link{color:#215f44;text-decoration:underline;text-underline-offset:4px}
body.kasumi-cta-ready .kasumi-cta ruby{ruby-position:over}
body.kasumi-cta-ready .kasumi-cta rt{font-size:.625em;font-weight:400}
body.kasumi-cta-ready .header-cta.kasumi-cta{flex-direction:row;flex-shrink:1;padding:.75rem 1rem}
body.kasumi-cta-ready .contact-options a.kasumi-cta{width:100%}
@media(max-width:700px){
  body.kasumi-cta-ready .kasumi-mobile-actions a.kasumi-cta{width:100%;padding:.75rem .625rem;min-height:54px;border-radius:12px}
  body.kasumi-cta-ready .kasumi-hero-actions a.kasumi-cta{width:100%}
  body.kasumi-cta-ready .detail-contact>div,body.kasumi-cta-ready .easy-contact>div{gap:14px}
}
@media(prefers-reduced-motion:reduce){body.kasumi-cta-ready a.kasumi-cta{transition:none}}
@media(forced-colors:active){body.kasumi-cta-ready a.kasumi-cta{border-color:ButtonText}body.kasumi-cta-ready a.kasumi-cta:focus-visible{outline-color:Highlight}}
/* Two-line guidance stays readable and grows with text; LINE remains unchanged. */
body.kasumi-cta-ready a.kasumi-cta.kasumi-cta-booking{flex-direction:column;gap:.125rem}
body.kasumi-cta-ready .kasumi-cta-booking .kasumi-cta-caption{display:block;max-width:100%;font-size:14px;font-weight:500;line-height:1.5;white-space:normal;overflow-wrap:anywhere;color:#fff;opacity:1}
body.kasumi-cta-ready .kasumi-cta-booking .kasumi-cta-label{display:block;max-width:100%;font-size:18px;font-weight:700;line-height:1.5;white-space:normal;overflow-wrap:anywhere;color:#fff;opacity:1}
/* Yuikaze interview bookings retain their own brand color, regardless of page. */
body.kasumi-cta-ready a.kasumi-cta.kasumi-cta-booking[href="https://reserve.kasumi-kai.org/yuikaze.php"]{background-color:#26837B;border-color:#26837B}
body.kasumi-cta-ready a.kasumi-cta.kasumi-cta-booking[href="https://reserve.kasumi-kai.org/yuikaze.php"]:hover{background-color:#1C746D;border-color:#1C746D}
body.kasumi-cta-ready a.kasumi-cta.kasumi-cta-booking[href="https://reserve.kasumi-kai.org/yuikaze.php"]:active{background-color:#16665F;border-color:#16665F}
@media(forced-colors:active){
body.kasumi-cta-ready a.kasumi-cta.kasumi-cta-booking[href="https://reserve.kasumi-kai.org/yuikaze.php"],
body.kasumi-cta-ready a.kasumi-cta.kasumi-cta-booking[href="https://reserve.kasumi-kai.org/yuikaze.php"]:hover,
body.kasumi-cta-ready a.kasumi-cta.kasumi-cta-booking[href="https://reserve.kasumi-kai.org/yuikaze.php"]:active{border-color:ButtonText}
}

/* Approved common reservation choices. Contextual service CTAs remain separate. */
body.kasumi-cta-ready .kasumi-booking{box-sizing:border-box;display:block;width:100%;min-width:0;max-width:560px;margin-inline:auto}
body.kasumi-cta-ready .kasumi-booking .kasumi-booking-guide{display:block;margin:0 0 .875rem;font-size:.875rem;font-weight:400;line-height:1.7;text-align:center;white-space:normal;overflow-wrap:anywhere;color:inherit}
body.kasumi-cta-ready .kasumi-booking-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:stretch;min-width:0}
body.kasumi-cta-ready .kasumi-booking a.kasumi-booking-button{display:flex;flex-direction:row;align-items:center;justify-content:center;box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-height:56px;height:auto;gap:0;margin:0;padding:12px 10px;border-width:2px;border-style:solid;border-radius:12px;font-size:1rem;font-weight:700;line-height:1.5;letter-spacing:normal;text-align:center;white-space:normal;overflow-wrap:anywhere;word-break:normal;text-decoration:none;touch-action:manipulation}
body.kasumi-cta-ready .kasumi-booking-label{display:block;min-width:0;max-width:100%;color:inherit}
body.kasumi-cta-ready .kasumi-booking-kind,body.kasumi-cta-ready .kasumi-booking-action{display:inline-block;max-width:100%;overflow-wrap:anywhere;vertical-align:top}
body.kasumi-cta-ready .footer-nav>.kasumi-booking{grid-column:1/-1;margin-top:18px}
body.kasumi-cta-ready .footer-nav .kasumi-booking a:focus-visible{outline-color:#fff}
body.kasumi-cta-ready .mobile-menu-panel>.kasumi-booking{margin-top:8px}
@media(max-width:350px){body.kasumi-cta-ready .kasumi-booking-kind,body.kasumi-cta-ready .kasumi-booking-action{display:block}}
@media(max-width:700px){
  /* In-flow before measurement / without JavaScript; short viewports stay in-flow. */
  .kasumi-mobile-actions{position:static;inset:auto}
  .kasumi-mobile-actions.kasumi-bar-fixed{position:fixed;inset:auto 0 0}
  body.kasumi-has-mobile-actions:not(.kasumi-fixed-actions){padding-bottom:0}
  html:has(.kasumi-mobile-actions:not(.kasumi-bar-fixed)){scroll-padding-bottom:12px}
  .kasumi-mobile-actions.kasumi-mobile-common{grid-template-columns:minmax(0,1fr);gap:10px}
  body.kasumi-cta-ready .kasumi-mobile-common>a.kasumi-cta-line{justify-self:center;width:auto;min-width:144px;max-width:100%;min-height:48px;padding:8px 10px;font-size:1rem;line-height:1.5}
}
@media(forced-colors:active){
  body.kasumi-cta-ready .kasumi-booking a.kasumi-booking-button,
  body.kasumi-cta-ready .kasumi-booking a.kasumi-booking-button:hover,
  body.kasumi-cta-ready .kasumi-booking a.kasumi-booking-button:active{border-color:ButtonText}
  body.kasumi-cta-ready .kasumi-booking a.kasumi-booking-button:focus-visible{outline-color:Highlight}
}

/* Compact desktop choices. Mobile-menu booking choices remain unchanged. */
body.kasumi-cta-ready .site-header>.kasumi-header-booking{display:flex;flex:0 1 auto;flex-wrap:wrap;gap:8px;min-width:0;max-width:100%}
body.kasumi-cta-ready .kasumi-header-booking>a.header-cta.kasumi-cta{display:flex;flex:1 1 auto;flex-direction:row;min-width:0;max-width:100%;min-height:48px;margin:0;padding:10px 12px;border-radius:10px;font-size:1rem;line-height:1.5;letter-spacing:normal;white-space:normal;overflow-wrap:anywhere}
/* The complete desktop row needs about 1310px including its 96px gutters.
   Wrap independently of viewport width so enlarged text can grow vertically. */
@media(min-width:1381px){
  body.kasumi-cta-ready .site-header{position:sticky;top:0;height:auto;min-height:88px;flex-wrap:wrap;gap:12px 16px}
  body.kasumi-cta-ready .site-header>nav{display:flex;flex:1 1 38rem;flex-wrap:wrap;gap:4px 12px;min-width:0;max-width:100%}
  body.kasumi-cta-ready .site-header>nav>a{min-width:0;max-width:100%;font-size:.875rem;white-space:normal;overflow-wrap:anywhere}
}
@media(max-width:1380px){
  body.kasumi-cta-ready .site-header>nav,
  body.kasumi-cta-ready .site-header>.kasumi-header-booking{display:none}
  body.kasumi-cta-ready .site-header>.mobile-menu{display:block}
}

/* Restore production's in-flow sticky header at every width and text size.
   Its natural height already reserves body space: no spacer or padding-top. */
:root{--kasumi-header-height:88px;--kasumi-header-bottom:88px;--kasumi-viewport-bottom:100vh}
html:has(body.kasumi-cta-ready){scroll-padding-top:var(--kasumi-header-height)}
body.kasumi-cta-ready [id]{scroll-margin-top:12px}
body.kasumi-cta-ready .site-header{position:sticky;top:0;height:auto;min-height:88px;overflow:visible}
body.kasumi-cta-ready .site-header>.brand{flex-shrink:1;min-width:0}
body.kasumi-cta-ready .site-header>.brand .site-logo{max-width:100%}
body.kasumi-cta-ready .site-header>.mobile-menu{min-width:0}
body.kasumi-cta-ready .mobile-menu>summary{min-height:48px}
body.kasumi-cta-ready .mobile-menu-panel{
  top:calc(var(--kasumi-header-bottom) + 8px);
  max-height:max(0px,calc(var(--kasumi-viewport-bottom) - var(--kasumi-header-bottom) - 24px - env(safe-area-inset-bottom,0px)));
  overflow-y:auto;scroll-padding-block:8px;
}
@supports(height:100dvh){:root{--kasumi-viewport-bottom:100dvh}}
@media(min-width:1381px){body.kasumi-cta-ready .site-header>.mobile-menu{display:none}}
@media(max-width:700px){
  :root{--kasumi-header-height:72px;--kasumi-header-bottom:72px}
  body.kasumi-cta-ready .site-header{min-height:72px}
}
