/* CECIL Official v1.0.90 — sitewide responsive/navigation/hero framework */
/* =========================================================
   v1.0.45 — Unified transparent overlay header on every page
   The home-page header behavior is now the canonical site-wide header.
========================================================= */
@media (min-width:1181px){
  body .site-header{
    position:fixed;
    top:0;
    left:0;
    right:0;
    width:100%;
    height:auto;
    min-height:0;
    z-index:1000;
    background:transparent;
    border:0;
    box-shadow:none;
    backdrop-filter:none;
    transition:background-color .35s ease,color .35s ease,box-shadow .35s ease,border-color .35s ease,backdrop-filter .35s ease;
  }
  body.admin-bar .site-header{top:32px}
  body .site-header .header-main{display:none}
  body .site-header .primary-nav{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:88px;
    margin:0;
    padding:0 32px;
    border:0;
    background:transparent;
    transition:background-color .35s ease,backdrop-filter .35s ease,border-color .35s ease;
  }
  body .site-header .primary-nav>ul{
    width:min(100%,1380px);
    display:flex;
    align-items:center;
    justify-content:center;
    gap:clamp(10px,1vw,20px);
    margin:0 auto;
    padding:0;
  }
  body .site-header .primary-nav>ul>li{height:88px;display:flex;align-items:center}
  body .site-header .primary-nav>ul>li+li{position:relative;padding-left:clamp(10px,1vw,18px)}
  body .site-header .primary-nav>ul>li+li:before{
    content:"";
    position:absolute;
    left:0;
    top:50%;
    width:1px;
    height:16px;
    background:rgba(250,247,239,.34);
    transform:translateY(-50%);
  }
  body .site-header .primary-nav>ul>li>a,
  body .site-header .primary-nav .cecil-menu-parent-label,
  body .site-header .primary-nav .sub-menu a{
    color:rgba(250,247,239,.96);
    text-shadow:0 1px 18px rgba(75,66,56,.34);
  }
  body .site-header .primary-nav>ul>li>a,
  body .site-header .primary-nav .cecil-menu-parent-label{
    font-size:clamp(.72rem,.8vw,.86rem);
    letter-spacing:.08em;
  }
  body .site-header .primary-nav>ul>li.menu-item-has-children>a:before,
  body .site-header .primary-nav>ul>li.menu-item-has-children>.cecil-menu-parent-label:before{
    border-color:rgba(250,247,239,.9);
  }
  body .site-header.is-scrolled{
    background:rgba(102,93,82,.78);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    box-shadow:0 10px 30px rgba(75,66,56,.18);
  }
  body .site-header.is-scrolled .primary-nav{border-bottom:1px solid rgba(201,216,166,.18)}

  /* Generic pages do not have a photographic hero, so preserve readable spacing under the overlay header. */
  body:not(.home) .page-header{padding-top:142px}
}

@media (max-width:1180px){
  body .site-header{
    position:fixed;
    top:0;
    left:0;
    right:0;
    width:100%;
    height:auto;
    min-height:0;
    z-index:1000;
    background:transparent;
    border:0;
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    transition:background-color .35s ease,box-shadow .35s ease,backdrop-filter .35s ease;
  }
  body.admin-bar .site-header{top:32px}
  body .site-header .header-main{
    height:calc(76px + env(safe-area-inset-top));
    width:100%;
    margin:0;
    padding:env(safe-area-inset-top) 20px 0;
    display:flex;
    align-items:center;
    gap:14px;
    background:transparent;
  }
  body .site-header .site-brand{
    display:flex;
    width:112px;
    min-width:112px;
    max-width:112px;
    margin:0 auto 0 0;
  }
  body .site-header .site-brand img{
    width:100%;
    height:auto;
    max-height:54px;
    object-fit:contain;
    filter:drop-shadow(0 3px 18px rgba(75,66,56,.26));
  }
  body .site-header .header-actions{display:none!important}
  body .site-header .menu-toggle{
    display:flex;
    flex:0 0 48px;
    width:48px;
    height:48px;
    min-width:48px;
    min-height:48px;
    margin:0;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    gap:7px;
  }
  body .site-header .menu-toggle span{
    width:29px;
    height:1.5px;
    background:#C9D8A6;
    box-shadow:0 1px 10px rgba(75,66,56,.24);
  }
  body .site-header .primary-nav{display:none;height:auto;padding:0}
  body .site-header.is-scrolled:not(.nav-open){
    background:rgba(102,93,82,.82);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    box-shadow:0 8px 28px rgba(75,66,56,.16);
  }
  body .site-header.nav-open{
    height:auto;
    min-height:calc(76px + env(safe-area-inset-top));
    background:rgba(102,93,82,.98);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
  }
  body .site-header.nav-open .header-main{background:rgba(102,93,82,.98)}
  body .site-header.nav-open .primary-nav{
    display:block;
    position:absolute;
    top:calc(76px + env(safe-area-inset-top));
    left:0;
    right:0;
    max-height:calc(100dvh - 76px - env(safe-area-inset-top));
    overflow-y:auto;
    padding:12px 20px 28px;
    background:rgba(102,93,82,.99);
    border-top:1px solid rgba(201,216,166,.18);
    border-bottom:1px solid rgba(201,216,166,.28);
  }
  body .site-header.nav-open .primary-nav>ul{
    display:flex;
    width:100%;
    flex-direction:column;
    align-items:stretch;
    gap:0;
  }
  body .site-header.nav-open .primary-nav>ul>li{
    display:block;
    width:100%;
    height:auto;
    border-bottom:1px solid rgba(250,247,239,.08);
  }
  body .site-header.nav-open .primary-nav>ul>li>a,
  body .site-header.nav-open .primary-nav>ul>li>.cecil-menu-parent-label{
    display:flex;
    width:100%;
    padding:13px 3px;
    font-size:.9rem;
    color:rgba(250,247,239,.94);
  }
  body .site-header.nav-open .primary-nav .sub-menu{
    display:block;
    position:static;
    transform:none;
    max-height:none;
    overflow:visible;
    min-width:0;
    padding:0 0 10px 16px;
    background:transparent;
    border:0;
    border-radius:0;
    box-shadow:none;
  }
  body .site-header.nav-open .primary-nav .sub-menu li{border:0}
  body .site-header.nav-open .primary-nav .sub-menu a{
    padding:7px 2px;
    font-size:.8rem;
    color:rgba(250,247,239,.68);
    text-shadow:none;
  }
  body:not(.home) .page-header{padding-top:112px}
}

@media (max-width:782px){
  body.admin-bar .site-header{top:46px}
}

@media (max-width:380px) and (max-height:720px){
  body .site-header .header-main{height:68px;padding-left:16px;padding-right:16px}
  body .site-header .site-brand{width:98px;min-width:98px;max-width:98px}
  body .site-header.nav-open{min-height:calc(68px + env(safe-area-inset-top))}
  body .site-header.nav-open .primary-nav{
    top:calc(68px + env(safe-area-inset-top));
    max-height:calc(100dvh - 68px - env(safe-area-inset-top));
  }
}

/* =========================================================
   v1.0.46 — Unified fixed-page hero system
   Hero = photo + eyebrow + page title only.
   Copy, features and CTA are separated into the section below.
========================================================= */
.cecil-simple-hero{
  position:relative!important;
  min-height:clamp(500px,58vh,620px)!important;
  height:auto!important;
  display:flex!important;
  align-items:stretch!important;
  overflow:hidden!important;
  background:#665D52!important;
  color:#FAF7EF!important;
  isolation:isolate;
}
.cecil-simple-hero>[class*="-hero-bg"],
.cecil-simple-hero>[class*="-hero-media"]{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  z-index:0!important;
}
.cecil-simple-hero>[class*="-hero-bg"]{background-size:cover!important;background-position:center!important}
.cecil-simple-hero>[class*="-hero-media"] img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  display:block!important;
}
.cecil-simple-hero>[class*="-hero-shade"]{
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  background:linear-gradient(180deg,rgba(102,93,82,.56) 0%,rgba(102,93,82,.28) 34%,rgba(102,93,82,.42) 70%,rgba(102,93,82,.60) 100%)!important;
}
.cecil-simple-hero:after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  pointer-events:none!important;
  background:radial-gradient(circle at 50% 48%,rgba(102,93,82,.10) 0%,rgba(102,93,82,.22) 46%,rgba(102,93,82,.42) 100%)!important;
}
.cecil-simple-hero-inner{
  position:relative!important;
  z-index:3!important;
  width:min(calc(100% - 40px),1200px)!important;
  min-height:inherit!important;
  height:auto!important;
  margin:0 auto!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
}
.cecil-simple-breadcrumb{
  position:absolute!important;
  top:112px!important;
  left:0!important;
  right:0!important;
  z-index:5!important;
  display:flex!important;
  align-items:center!important;
  gap:9px!important;
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  white-space:nowrap!important;
  scrollbar-width:none!important;
  -webkit-overflow-scrolling:touch!important;
  color:rgba(250,247,239,.78)!important;
  font-size:.68rem!important;
  line-height:1.5!important;
  letter-spacing:.08em!important;
  text-align:left!important;
}
.cecil-simple-breadcrumb::-webkit-scrollbar{display:none}
.cecil-simple-breadcrumb a{color:inherit!important;flex:0 0 auto!important}
.cecil-simple-breadcrumb>span{flex:0 0 auto!important}
.cecil-simple-hero-copy{
  position:relative!important;
  z-index:4!important;
  width:min(100%,920px)!important;
  max-width:920px!important;
  margin:0 auto!important;
  padding:54px 20px 0!important;
  text-align:center!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:18px!important;
  transform:none!important;
}
.cecil-simple-eyebrow{
  display:block!important;
  margin:0!important;
  padding:0!important;
  color:#C9D8A6!important;
  font-size:clamp(.72rem,.85vw,.88rem)!important;
  line-height:1.5!important;
  letter-spacing:.22em!important;
  text-align:center!important;
  text-transform:uppercase!important;
}
.cecil-simple-title{
  display:block!important;
  width:100%!important;
  max-width:900px!important;
  margin:0!important;
  padding:0!important;
  color:#FAF7EF!important;
  font-family:Georgia,"Yu Mincho","Hiragino Mincho ProN",serif!important;
  font-size:clamp(2.65rem,4.4vw,4.85rem)!important;
  font-weight:500!important;
  line-height:1.3!important;
  letter-spacing:.06em!important;
  text-align:center!important;
  text-shadow:0 8px 28px rgba(75,66,56,.32)!important;
}
/* The portrait on media page remains a background-like visual, never a second text column. */
.cecil-simple-hero .media-hero-portrait{
  position:absolute!important;
  right:max(2vw,20px)!important;
  bottom:0!important;
  width:min(30vw,390px)!important;
  height:86%!important;
  z-index:1!important;
  opacity:.48!important;
  pointer-events:none!important;
}
.cecil-simple-hero .media-hero-portrait img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:right bottom!important}

.cecil-hero-details{
  position:relative;
  z-index:2;
  padding:60px 0 56px!important;
  background:linear-gradient(180deg,#FAF7EF 0%,#F7F3EA 100%)!important;
  color:#756A5D!important;
  text-align:center!important;
  overflow:hidden;
}
.cecil-hero-details-inner{
  width:min(calc(100% - 40px),960px)!important;
  margin:0 auto!important;
  padding:0!important;
  text-align:center!important;
}
.cecil-hero-detail-catch{
  display:block!important;
  max-width:820px!important;
  margin:0 auto!important;
  padding:0!important;
  color:#756A5D!important;
  font-family:Georgia,"Yu Mincho","Hiragino Mincho ProN",serif!important;
  font-size:clamp(1.8rem,2.8vw,2.6rem)!important;
  font-weight:500!important;
  line-height:1.55!important;
  letter-spacing:.04em!important;
  text-align:center!important;
}
.cecil-hero-detail-lead{
  display:block!important;
  max-width:820px!important;
  margin:20px auto 0!important;
  padding:0!important;
  color:#4B4238!important;
  font-size:.95rem!important;
  line-height:2!important;
  letter-spacing:.02em!important;
  text-align:center!important;
}
.cecil-hero-detail-lead strong{color:#756A5D!important}
.cecil-hero-detail-features{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:0!important;
  width:min(100%,820px)!important;
  margin:34px auto 0!important;
  padding:0!important;
  border-top:1px solid rgba(146,136,116,.14)!important;
  border-bottom:1px solid rgba(146,136,116,.14)!important;
  background:transparent!important;
}
.cecil-hero-detail-features>span{
  min-width:0!important;
  min-height:88px!important;
  margin:0!important;
  padding:15px 10px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#756A5D!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  text-align:center!important;
  font-size:.78rem!important;
  line-height:1.45!important;
  letter-spacing:.02em!important;
  box-shadow:none!important;
}
.cecil-hero-detail-features>span+span{border-left:1px solid rgba(146,136,116,.14)!important}
.cecil-hero-detail-features svg{width:25px!important;height:25px!important;margin:0!important;color:#C9D8A6!important;stroke:currentColor!important}
.cecil-hero-detail-features b{font-size:.64rem!important;font-weight:500!important;letter-spacing:.12em!important;color:#C9D8A6!important}
.cecil-hero-detail-actions{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  justify-content:center!important;
  gap:14px!important;
  width:100%!important;
  margin:30px auto 0!important;
  padding:0!important;
}
.cecil-hero-detail-actions .btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:10px!important;
  min-width:230px!important;
  min-height:54px!important;
  margin:0!important;
  padding:13px 22px!important;
  white-space:nowrap!important;
}
.cecil-hero-detail-actions .btn svg{width:20px!important;height:20px!important;flex:0 0 20px!important;margin:0!important}

@media (max-width:1180px){
  .cecil-simple-hero{min-height:clamp(470px,56vh,570px)!important}
  .cecil-simple-breadcrumb{top:calc(92px + env(safe-area-inset-top))!important}
  .cecil-simple-hero-copy{padding-top:62px!important}
  .cecil-simple-title{font-size:clamp(2.2rem,5vw,3.6rem)!important}
}

@media (max-width:760px){
  .cecil-simple-hero{
    min-height:520px!important;
    height:520px!important;
    align-items:stretch!important;
  }
  .cecil-simple-hero-inner{
    width:calc(100% - 24px)!important;
    min-height:520px!important;
  }
  .cecil-simple-breadcrumb{
    top:calc(88px + env(safe-area-inset-top))!important;
    gap:7px!important;
    font-size:.58rem!important;
    letter-spacing:.04em!important;
    padding-right:6px!important;
  }
  .cecil-simple-hero-copy{
    width:100%!important;
    max-width:100%!important;
    padding:68px 12px 0!important;
    gap:13px!important;
  }
  .cecil-simple-eyebrow{
    font-size:.64rem!important;
    line-height:1.5!important;
    letter-spacing:.18em!important;
  }
  .cecil-simple-title{
    max-width:94%!important;
    font-size:clamp(1.85rem,8vw,2.6rem)!important;
    line-height:1.38!important;
    letter-spacing:.04em!important;
  }
  .cecil-simple-hero .media-hero-portrait{width:48vw!important;height:68%!important;right:-5vw!important;opacity:.32!important}

  .cecil-hero-details{padding:46px 0 44px!important}
  .cecil-hero-details-inner{width:calc(100% - 28px)!important}
  .cecil-hero-detail-catch{
    max-width:100%!important;
    font-size:clamp(1.55rem,7vw,2rem)!important;
    line-height:1.65!important;
    letter-spacing:.025em!important;
  }
  .cecil-hero-detail-lead{
    max-width:100%!important;
    margin-top:17px!important;
    font-size:.8rem!important;
    line-height:1.92!important;
  }
  .cecil-hero-detail-lead br{display:none!important}
  .cecil-hero-detail-features{
    grid-template-columns:1fr 1fr!important;
    width:100%!important;
    margin-top:28px!important;
  }
  .cecil-hero-detail-features>span{
    min-height:86px!important;
    padding:13px 8px!important;
    font-size:.72rem!important;
  }
  .cecil-hero-detail-features>span+span{border-left:0!important}
  .cecil-hero-detail-features>span:nth-child(even){border-left:1px solid rgba(146,136,116,.14)!important}
  .cecil-hero-detail-features>span:nth-child(n+3){border-top:1px solid rgba(146,136,116,.14)!important}
  .cecil-hero-detail-features svg{width:24px!important;height:24px!important}
  .cecil-hero-detail-actions{
    flex-direction:column!important;
    gap:13px!important;
    margin-top:26px!important;
  }
  .cecil-hero-detail-actions .btn{
    width:100%!important;
    min-width:0!important;
    min-height:56px!important;
    padding:14px 18px!important;
    font-size:.88rem!important;
    white-space:nowrap!important;
  }
}

@media (max-width:390px){
  .cecil-simple-hero{min-height:500px!important;height:500px!important}
  .cecil-simple-hero-inner{min-height:500px!important}
  .cecil-simple-title{font-size:clamp(1.7rem,8vw,2.25rem)!important}
  .cecil-hero-detail-catch{font-size:clamp(1.4rem,7vw,1.8rem)!important}
}


/* --------------------------------------------------------------------------
   Back to top button (v1.0.56)
   -------------------------------------------------------------------------- */
.back-to-top{
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:985;
  width:52px;
  height:52px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0;
  border:1px solid rgba(201,216,166,.55);
  border-radius:8px;
  background:rgba(102,93,82,.88);
  color:#C9D8A6;
  box-shadow:0 12px 30px rgba(75,66,56,.18);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(10px);
  transition:opacity .28s ease,visibility .28s ease,transform .28s ease,background-color .28s ease,border-color .28s ease,color .28s ease;
}
.back-to-top.is-visible{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
}
.back-to-top__icon,
.back-to-top__icon svg{
  display:block;
  width:23px;
  height:23px;
}
.back-to-top__icon svg{
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.back-to-top:hover,
.back-to-top:focus-visible{
  background:#C9D8A6;
  border-color:#C9D8A6;
  color:#665D52;
  outline:none;
}
.back-to-top:focus-visible{
  box-shadow:0 0 0 3px rgba(201,216,166,.22),0 12px 30px rgba(75,66,56,.18);
}
@media (max-width:760px){
  .back-to-top{
    right:14px;
    bottom:calc(76px + env(safe-area-inset-bottom));
    width:46px;
    height:46px;
    border-radius:7px;
    z-index:989;
  }
  .back-to-top__icon,
  .back-to-top__icon svg{
    width:21px;
    height:21px;
  }
}

/* --------------------------------------------------------------------------
   Official LINE promotion popup (v1.0.57)
   - Appears after 3 seconds on the first homepage visit of each tab/session.
   -------------------------------------------------------------------------- */
.cecil-line-promo{
  position:fixed;
  right:22px;
  bottom:22px;
  z-index:995;
  width:min(360px,calc(100vw - 44px));
  aspect-ratio:4/3;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(18px) scale(.985);
  transition:opacity .32s ease,visibility .32s ease,transform .32s ease;
}
.cecil-line-promo.is-visible{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0) scale(1);
}
.cecil-line-promo__link{
  display:block;
  width:100%;
  height:100%;
  overflow:hidden;
  border:1px solid rgba(201,216,166,.58);
  border-radius:6px;
  background:#665D52;
  box-shadow:0 18px 52px rgba(75,66,56,.28);
}
.cecil-line-promo__link picture,
.cecil-line-promo__image{
  display:block;
  width:100%;
  height:100%;
}
.cecil-line-promo__image{object-fit:cover}
.cecil-line-promo__close{
  position:absolute;
  top:-12px;
  right:-12px;
  z-index:2;
  width:34px;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  border:1px solid rgba(201,216,166,.72);
  border-radius:999px;
  background:#756A5D;
  color:#EAE2D3;
  box-shadow:0 8px 22px rgba(75,66,56,.24);
  cursor:pointer;
  font:400 24px/1 Arial,sans-serif;
  transition:background-color .2s ease,color .2s ease,transform .2s ease;
}
.cecil-line-promo__close:hover,
.cecil-line-promo__close:focus-visible{
  background:#C9D8A6;
  color:#665D52;
  transform:scale(1.04);
  outline:none;
}
body.cecil-line-promo-visible .back-to-top{
  right:400px;
}
@media (max-width:760px){
  .cecil-line-promo{
    right:12px;
    bottom:calc(72px + env(safe-area-inset-bottom));
    width:min(74vw,280px);
    aspect-ratio:4/3;
  }
  .cecil-line-promo__close{
    top:-10px;
    right:-7px;
    width:32px;
    height:32px;
    font-size:22px;
  }
  body.cecil-line-promo-visible .back-to-top{
    right:14px;
    bottom:calc(300px + env(safe-area-inset-bottom));
  }
}
@media (prefers-reduced-motion:reduce){
  .cecil-line-promo{transition:none}
}

/* =========================================================
   v1.0.65 — Smartphone hamburger menu motion
   Calm fade/slide reveal with subtle stagger. Smartphone only.
========================================================= */
@media (max-width:760px){
  body .site-header .primary-nav{
    display:block;
    visibility:hidden;
    opacity:0;
    pointer-events:none;
    transform:translate3d(0,-14px,0) scale(.992);
    transform-origin:top center;
    transition:
      opacity .28s ease,
      transform .38s cubic-bezier(.22,1,.36,1),
      visibility 0s linear .38s;
    will-change:opacity,transform;
  }
  body .site-header.nav-open .primary-nav{
    visibility:visible;
    opacity:1;
    pointer-events:auto;
    transform:translate3d(0,0,0) scale(1);
    transition:
      opacity .28s ease,
      transform .38s cubic-bezier(.22,1,.36,1),
      visibility 0s linear 0s;
  }

  /* Each main menu group follows the panel with a restrained stagger. */
  body .site-header .primary-nav>ul>li{
    opacity:0;
    transform:translate3d(0,-7px,0);
    transition:opacity .22s ease,transform .34s cubic-bezier(.22,1,.36,1);
  }
  body .site-header.nav-open .primary-nav>ul>li{
    opacity:1;
    transform:translate3d(0,0,0);
  }
  body .site-header.nav-open .primary-nav>ul>li:nth-child(1){transition-delay:.035s}
  body .site-header.nav-open .primary-nav>ul>li:nth-child(2){transition-delay:.065s}
  body .site-header.nav-open .primary-nav>ul>li:nth-child(3){transition-delay:.095s}
  body .site-header.nav-open .primary-nav>ul>li:nth-child(4){transition-delay:.125s}
  body .site-header.nav-open .primary-nav>ul>li:nth-child(5){transition-delay:.155s}
  body .site-header.nav-open .primary-nav>ul>li:nth-child(6){transition-delay:.185s}
  body .site-header.nav-open .primary-nav>ul>li:nth-child(7){transition-delay:.215s}
  body .site-header.nav-open .primary-nav>ul>li:nth-child(8){transition-delay:.245s}
  body .site-header.nav-open .primary-nav>ul>li:nth-child(n+9){transition-delay:.265s}

  /* Hamburger morphs into a refined close icon. */
  body .site-header .menu-toggle span{
    transform-origin:center;
    transition:
      transform .34s cubic-bezier(.22,1,.36,1),
      opacity .18s ease,
      width .28s ease;
  }
  body .site-header .menu-toggle[aria-expanded="true"] span:nth-child(1){
    transform:translateY(8.5px) rotate(45deg);
  }
  body .site-header .menu-toggle[aria-expanded="true"] span:nth-child(2){
    opacity:0;
    transform:scaleX(.35);
  }
  body .site-header .menu-toggle[aria-expanded="true"] span:nth-child(3){
    transform:translateY(-8.5px) rotate(-45deg);
  }

  /* Slightly soften the opening header so the menu feels integrated. */
  body .site-header.nav-open,
  body .site-header.nav-open .header-main{
    transition:background-color .32s ease,backdrop-filter .32s ease,-webkit-backdrop-filter .32s ease;
  }
}

@media (max-width:760px) and (prefers-reduced-motion:reduce){
  body .site-header .primary-nav,
  body .site-header .primary-nav>ul>li,
  body .site-header .menu-toggle span{
    transition:none!important;
    transform:none!important;
  }
}

/* =========================================================
   v1.0.66 — Site-wide Japanese typography / natural line breaks
   PC + smartphone: phrase-aware wrapping, balanced headings,
   readable body copy, and targeted fixes for menu/FAQ headings.
========================================================= */

/* Japanese copy should wrap by phrases instead of visually awkward characters. */
main h1,
main h2,
main h3,
main h4,
main h5,
main h6,
.section-title,
[class*="section-head"] h2,
[class*="section-heading"] h2,
[class*="final"] h2,
[class*="hero"] h1,
[class*="hero"] h2,
[class*="card"] h2,
[class*="card"] h3,
[class*="faq"] summary,
[class*="faq"] summary span {
  line-break: strict;
  word-break: normal;
  word-break: auto-phrase;
  overflow-wrap: normal;
  text-wrap: balance;
  font-kerning: normal;
}

main p,
main li,
main blockquote,
main small,
main figcaption,
[class*="lead"],
[class*="intro"],
[class*="description"],
[class*="caption"] {
  line-break: strict;
  word-break: normal;
  word-break: auto-phrase;
  overflow-wrap: break-word;
  text-wrap: pretty;
  font-kerning: normal;
}

/* Prevent inherited emergency wrapping rules from splitting Japanese headings. */
main h1,
main h2,
main h3,
main h4,
main h5,
main h6 {
  max-inline-size: 100%;
  hyphens: none;
}

/* Menu page: the two headings visible in the reported mobile screenshots. */
.service-menu-faq .service-menu-section-head {
  width: min(100%, 980px);
  max-width: 980px;
}
.service-menu-faq .service-menu-section-head h2 {
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  letter-spacing: .025em;
  line-height: 1.55;
}
.service-menu-final-inner {
  width: min(100%, 960px);
  margin-left: auto;
  margin-right: auto;
}
.service-menu-final-inner h2 {
  max-width: 920px;
  margin-left: auto;
  margin-right: auto;
  letter-spacing: .025em;
}
.service-menu-final-inner > p {
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.95;
}

/* Keep short CTA/button labels intact. */
.btn,
.btn span,
.header-btn,
.mobile-fixed-cta a,
[class*="final-actions"] a,
[class*="hero-actions"] a {
  line-break: strict;
  word-break: keep-all;
  overflow-wrap: normal;
}

@media (max-width: 900px) {
  main h1,
  main h2,
  main h3,
  main h4 {
    letter-spacing: .025em;
  }
}

@media (max-width: 760px) {
  /* Give Japanese copy more usable width before reducing type size. */
  .section-head,
  [class*="section-head"],
  [class*="section-heading"],
  [class*="final-inner"],
  [class*="hero-copy"] {
    max-width: 100%;
  }

  main h1,
  main h2,
  main h3,
  main h4,
  .section-title {
    letter-spacing: .015em!important;
    text-wrap: balance;
  }

  main p,
  main li,
  main blockquote {
    letter-spacing: .005em;
    text-wrap: pretty;
  }

  /* FAQ heading: keep “質問” together and use the available width cleanly. */
  .service-menu-faq .service-menu-section-head {
    width: 100%;
    margin-bottom: 30px;
    padding-inline: 0;
  }
  .service-menu-faq .service-menu-section-head h2 {
    width: 100%;
    max-width: 100%;
    padding-inline: 0;
    font-size: clamp(1.28rem, 5.9vw, 1.55rem)!important;
    line-height: 1.55!important;
    letter-spacing: .01em!important;
    white-space: nowrap;
  }

  /* The existing explicit BR is semantic: preserve two clean lines and stop each line splitting. */
  .service-menu-final-inner {
    width: 100%;
    padding-inline: 0;
  }
  .service-menu-final-inner h2[data-cecil-key="menu.t085"] {
    width: 100%;
    max-width: 100%;
    padding-inline: 0;
    font-size: clamp(1.36rem, 6.15vw, 1.72rem)!important;
    line-height: 1.62!important;
    letter-spacing: .005em!important;
    white-space: nowrap;
  }
  .service-menu-final-inner > p {
    max-width: 34em;
    padding-inline: 3px;
    font-size: clamp(.78rem, 3.55vw, .88rem)!important;
    line-height: 1.95!important;
    letter-spacing: 0!important;
  }

  /* FAQ questions/answers: readable size and comfortable rhythm without forced tiny type. */
  .service-menu-faq-list summary {
    line-height: 1.65!important;
    letter-spacing: .005em!important;
  }
  .service-menu-faq-list summary > span:first-child {
    min-width: 0;
    padding-right: 10px;
    word-break: auto-phrase;
    text-wrap: pretty;
  }
  .service-menu-faq-list details p {
    font-size: clamp(.76rem, 3.35vw, .86rem)!important;
    line-height: 1.95!important;
    letter-spacing: 0!important;
  }

  /* Common section headings: avoid a lone final character/word where possible. */
  .dispatch-contact-section-head h2,
  .dispatch-hotel-section-head h2,
  .couple-section-head h2,
  .about-v2-section-head h2,
  .flow-v2-section-heading h2,
  .first-section-head h2,
  .faq-section-head h2,
  .access-section-head h2 {
    width: min(100%, 17em);
    margin-left: auto;
    margin-right: auto;
    line-height: 1.55!important;
    letter-spacing: .01em!important;
  }

  /* Long final CTA headings need a little more horizontal room than card headings. */
  .dispatch-contact-final h2,
  .dispatch-hotel-final h2,
  .couple-final-inner h2,
  .about-v2-final h2,
  .concern-final-inner h2,
  .faq-final-inner h2,
  .access-final-inner h2,
  .reservation-final-inner h2 {
    width: 100%;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.58!important;
    letter-spacing: .01em!important;
    text-wrap: balance;
  }
}

@media (max-width: 360px) {
  .service-menu-faq .service-menu-section-head h2 {
    font-size: 1.22rem!important;
  }
  .service-menu-final-inner h2[data-cecil-key="menu.t085"] {
    font-size: 1.28rem!important;
  }
}

/* =========================================================
   v1.0.67 — Smartphone navigation accordion
   All submenu groups start closed. Tap a parent to reveal its children with
   a restrained slide/fade motion; tap again to collapse. Smartphone only.
========================================================= */
@media (max-width:760px){
  body .site-header.nav-open .primary-nav li.menu-item-has-children > .sub-menu{
    display:block;
    visibility:hidden;
    opacity:0;
    pointer-events:none;
    max-height:0;
    overflow:hidden;
    margin:0;
    padding-top:0;
    padding-bottom:0;
    transform:translate3d(0,-7px,0);
    transition:
      max-height .44s cubic-bezier(.22,1,.36,1),
      opacity .22s ease,
      transform .36s cubic-bezier(.22,1,.36,1),
      padding .34s cubic-bezier(.22,1,.36,1),
      visibility 0s linear .44s;
    will-change:max-height,opacity,transform;
  }

  body .site-header.nav-open .primary-nav li.menu-item-has-children.is-submenu-open > .sub-menu{
    visibility:visible;
    opacity:1;
    pointer-events:auto;
    max-height:900px;
    padding-top:2px;
    padding-bottom:10px;
    transform:translate3d(0,0,0);
    transition:
      max-height .5s cubic-bezier(.22,1,.36,1),
      opacity .25s ease .04s,
      transform .4s cubic-bezier(.22,1,.36,1),
      padding .36s cubic-bezier(.22,1,.36,1),
      visibility 0s linear 0s;
  }

  /* Nested groups remain independently collapsible as well. */
  body .site-header.nav-open .primary-nav .sub-menu li.menu-item-has-children > .sub-menu{
    margin-left:0;
    padding-left:18px;
    background:transparent;
  }

  /* Parent rows read as accordion controls rather than always-open sections. */
  body .site-header.nav-open .primary-nav .cecil-submenu-trigger{
    position:relative;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    cursor:pointer;
    user-select:none;
    -webkit-tap-highlight-color:transparent;
  }
  body .site-header.nav-open .primary-nav .cecil-submenu-trigger::after{
    content:"";
    display:block;
    flex:0 0 8px;
    width:8px;
    height:8px;
    margin-right:5px;
    border-right:1.5px solid #C9D8A6;
    border-bottom:1.5px solid #C9D8A6;
    opacity:.9;
    transform:translateY(-2px) rotate(45deg);
    transition:transform .34s cubic-bezier(.22,1,.36,1),opacity .2s ease;
  }
  body .site-header.nav-open .primary-nav li.is-submenu-open > .cecil-submenu-trigger::after{
    transform:translateY(2px) rotate(225deg);
    opacity:1;
  }

  body .site-header.nav-open .primary-nav li.is-submenu-open > .cecil-submenu-trigger{
    color:#FAF7EF;
  }

  /* Submenu rows enter softly after the accordion opens. */
  body .site-header.nav-open .primary-nav li.menu-item-has-children > .sub-menu > li{
    opacity:0;
    transform:translate3d(0,-4px,0);
    transition:opacity .2s ease,transform .3s cubic-bezier(.22,1,.36,1);
  }
  body .site-header.nav-open .primary-nav li.menu-item-has-children.is-submenu-open > .sub-menu > li{
    opacity:1;
    transform:translate3d(0,0,0);
  }
  body .site-header.nav-open .primary-nav li.menu-item-has-children.is-submenu-open > .sub-menu > li:nth-child(1){transition-delay:.035s}
  body .site-header.nav-open .primary-nav li.menu-item-has-children.is-submenu-open > .sub-menu > li:nth-child(2){transition-delay:.06s}
  body .site-header.nav-open .primary-nav li.menu-item-has-children.is-submenu-open > .sub-menu > li:nth-child(3){transition-delay:.085s}
  body .site-header.nav-open .primary-nav li.menu-item-has-children.is-submenu-open > .sub-menu > li:nth-child(4){transition-delay:.11s}
  body .site-header.nav-open .primary-nav li.menu-item-has-children.is-submenu-open > .sub-menu > li:nth-child(n+5){transition-delay:.13s}
}

@media (max-width:760px) and (prefers-reduced-motion:reduce){
  body .site-header.nav-open .primary-nav li.menu-item-has-children > .sub-menu,
  body .site-header.nav-open .primary-nav .cecil-submenu-trigger::after,
  body .site-header.nav-open .primary-nav li.menu-item-has-children > .sub-menu > li{
    transition:none!important;
    transform:none!important;
  }
}

/* Multilingual refinement v1.0.71 */
.mobile-lang-switch{display:none}
.language-page{background:#FAF7EF;color:#4B4238;overflow-x:hidden}
.language-page .container{width:min(calc(100% - 32px),1180px)}
.language-hero{position:relative;min-height:470px!important;height:470px!important;background:#665D52;color:#FAF7EF;overflow:hidden}
.language-hero-media,.language-hero-shade{position:absolute;inset:0}
.language-hero-media img{width:100%;height:100%;object-fit:cover;object-position:center}
.language-hero-shade{background:linear-gradient(180deg,rgba(102,93,82,.48),rgba(102,93,82,.78))}
.language-hero .cecil-simple-hero-inner{position:relative;z-index:2;min-height:470px!important}
.language-page .cecil-simple-hero-copy{max-width:820px;text-align:center!important;align-items:center!important;margin-inline:auto}
.language-page .cecil-simple-title{max-width:820px;text-wrap:balance;overflow-wrap:normal;word-break:keep-all;hyphens:none}
.language-page .cecil-simple-eyebrow{text-wrap:balance}
.language-intro,.language-content{padding:76px 0 88px}
.language-narrow{max-width:1040px;margin-inline:auto}
.language-lead{max-width:780px;margin:0 auto 34px;text-align:center;font-size:1rem;line-height:2;color:#4B4238;text-wrap:pretty;overflow-wrap:break-word}
.language-feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid #EAE2D3;border-bottom:1px solid #EAE2D3;margin:30px 0 58px}
.language-feature-grid span{display:flex;align-items:center;justify-content:center;gap:8px;min-height:82px;padding:16px 12px;text-align:center;font-size:.88rem;line-height:1.5;color:#756A5D;word-break:keep-all}
.language-feature-grid span:not(:last-child){border-right:1px solid #EAE2D3}
.language-feature-grid svg{width:22px;height:22px;color:#C9D8A6;flex:0 0 auto}
.language-section-head{text-align:center;margin:0 0 34px}.language-section-head h2{margin:0;font-family:Georgia,"Noto Serif JP","Yu Mincho",serif;font-size:clamp(1.9rem,3vw,2.7rem);line-height:1.45;font-weight:500;color:#756A5D;text-wrap:balance;word-break:keep-all}
.language-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.language-card-grid a{background:#FAF7EF;border:1px solid #EAE2D3;overflow:hidden}.language-card-grid img{width:100%;height:230px;object-fit:cover}.language-card-grid div{padding:24px}.language-card-grid h3{margin:0 0 10px;font-family:Georgia,"Noto Serif JP","Yu Mincho",serif;font-size:1.35rem;font-weight:500;color:#756A5D;text-wrap:balance;word-break:keep-all}.language-card-grid p{margin:0;line-height:1.85;color:#4B4238;font-size:.9rem}.language-card-grid b{display:block;margin-top:16px;color:#C9D8A6}
.language-treatment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:36px 0 64px}.language-treatment-grid article{padding:28px 24px;background:#FAF7EF;border:1px solid #EAE2D3}.language-treatment-grid svg{width:34px;height:34px;color:#C9D8A6}.language-treatment-grid h2{margin:16px 0 10px;font-size:1.35rem;font-family:Georgia,"Noto Serif JP","Yu Mincho",serif;font-weight:500;color:#756A5D;text-wrap:balance;word-break:keep-all}.language-treatment-grid p{margin:0;font-size:.9rem;line-height:1.9;color:#4B4238}
.language-price-list{max-width:760px;margin:0 auto;border-top:1px solid #EAE2D3}.language-price-list div{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 12px;border-bottom:1px solid #EAE2D3}.language-price-list strong{font-size:1.05rem;color:#756A5D}.language-price-list span{font-family:Georgia,serif;font-size:1.28rem;color:#C9D8A6}.language-note{text-align:center;font-size:.82rem;color:#4B4238;margin-top:18px}
.language-alert{max-width:800px;margin:0 auto 32px;padding:18px 20px;background:#FAF7EF;border-left:3px solid #C9D8A6;color:#4B4238;line-height:1.85;text-align:center}
.language-split{display:grid;grid-template-columns:1fr 1fr;gap:42px;align-items:center;margin:48px 0}.language-split img{width:100%;aspect-ratio:4/3;object-fit:cover}.language-split h2{font-family:Georgia,"Noto Serif JP","Yu Mincho",serif;font-size:clamp(1.7rem,2.6vw,2.35rem);font-weight:500;line-height:1.5;color:#756A5D;text-wrap:balance;word-break:keep-all}.language-split p{font-size:.95rem;line-height:2;color:#4B4238}.language-actions{display:flex;justify-content:center;gap:16px;flex-wrap:wrap}.language-actions .btn{min-width:220px;justify-content:center;white-space:normal;text-align:center}
.language-access-box{max-width:820px;margin:0 auto 44px;padding:28px;background:#FAF7EF;border:1px solid #EAE2D3}.language-access-box h2{margin:0 0 18px;font-size:1.25rem;line-height:1.6;color:#756A5D;overflow-wrap:anywhere}.language-access-box ul{margin:0;padding-left:1.2em;color:#4B4238;line-height:2}.language-map{margin-top:40px}.language-map iframe{width:100%;height:440px;border:0;display:block}
.language-faq-list{max-width:860px;margin:0 auto}.language-faq-list details{border-bottom:1px solid #EAE2D3;background:#FAF7EF}.language-faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px;cursor:pointer;list-style:none;font-size:1rem;line-height:1.6;color:#756A5D}.language-faq-list summary::-webkit-details-marker{display:none}.language-faq-list summary span{text-wrap:pretty;word-break:keep-all}.language-faq-list summary svg{width:18px;height:18px;flex:0 0 auto;color:#C9D8A6}.language-faq-list p{margin:0;padding:0 20px 20px;font-size:.92rem;line-height:1.95;color:#4B4238}
.language-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.language-contact-grid article{padding:30px;background:#FAF7EF;border:1px solid #EAE2D3}.language-contact-grid h2{margin:0 0 14px;font-family:Georgia,"Noto Serif JP","Yu Mincho",serif;font-size:1.55rem;font-weight:500;color:#756A5D;text-wrap:balance}.language-contact-grid p{min-height:112px;margin:0 0 22px;font-size:.92rem;line-height:1.9;color:#4B4238}.language-contact-grid .btn{width:100%;justify-content:center}
.language-final{padding:52px 0;background:#756A5D;color:#FAF7EF;text-align:center}.language-final p{margin:0 0 20px;color:#C9D8A6;letter-spacing:.08em}.language-final small{display:block;max-width:760px;margin:22px auto 0;color:rgba(250,247,239,.7);line-height:1.7}
.language-page--en{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}.language-page--ko{font-family:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic",sans-serif}.language-page--zh{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif}
.language-page--en h1,.language-page--en h2,.language-page--en h3{word-break:normal;hyphens:none}.language-page--ko h1,.language-page--ko h2,.language-page--ko h3,.language-page--zh h1,.language-page--zh h2,.language-page--zh h3{word-break:keep-all;overflow-wrap:normal}
@media(max-width:980px){.language-card-grid,.language-treatment-grid{grid-template-columns:1fr}.language-card-grid img{height:260px}.language-feature-grid{grid-template-columns:1fr 1fr}.language-feature-grid span:nth-child(2){border-right:0}.language-feature-grid span:nth-child(-n+2){border-bottom:1px solid #EAE2D3}.language-split,.language-contact-grid{grid-template-columns:1fr}.language-contact-grid p{min-height:0}}
@media(max-width:760px){
  .mobile-lang-switch{display:flex;gap:8px;align-items:center;justify-content:center;padding:18px 2px 4px;border-top:1px solid rgba(250,247,239,.09);margin-top:14px}.mobile-lang-switch a{min-width:54px!important;width:auto!important;padding:8px 10px!important;border:1px solid rgba(201,216,166,.25)!important;text-align:center!important;font-size:.74rem!important;color:rgba(250,247,239,.78)!important}.mobile-lang-switch a.active{border-color:#C9D8A6!important;color:#C9D8A6!important;background:rgba(201,216,166,.08)!important}
  .language-page .container{width:calc(100% - 24px)}.language-hero{min-height:410px!important;height:410px!important}.language-hero .cecil-simple-hero-inner{min-height:410px!important}.language-page .cecil-simple-title{font-size:clamp(1.7rem,8vw,2.25rem)!important;line-height:1.35!important;max-width:94%;margin-inline:auto}.language-page .cecil-simple-eyebrow{font-size:.66rem!important;letter-spacing:.15em!important;max-width:94%;line-height:1.5}.language-intro,.language-content{padding:52px 0 62px}.language-lead{font-size:.86rem;line-height:1.9;margin-bottom:28px;text-align:left}.language-feature-grid{margin:24px 0 42px}.language-feature-grid span{min-height:76px;padding:12px 8px;font-size:.76rem;line-height:1.45}.language-feature-grid svg{width:19px;height:19px}.language-section-head h2{font-size:1.55rem;line-height:1.5;padding-inline:6px}.language-card-grid img{height:210px}.language-card-grid div{padding:20px}.language-card-grid h3{font-size:1.2rem}.language-card-grid p{font-size:.82rem}.language-treatment-grid{gap:12px;margin:26px 0 46px}.language-treatment-grid article{padding:22px 18px}.language-treatment-grid h2{font-size:1.2rem}.language-treatment-grid p{font-size:.82rem}.language-price-list div{padding:16px 8px}.language-price-list strong{font-size:.92rem}.language-price-list span{font-size:1.15rem}.language-split{gap:22px;margin:38px 0}.language-split img{aspect-ratio:16/10}.language-split h2{font-size:1.45rem;line-height:1.55}.language-split p{font-size:.84rem;line-height:1.9}.language-actions{flex-direction:column}.language-actions .btn{width:100%;min-width:0}.language-access-box{padding:22px 18px}.language-access-box h2{font-size:1.03rem}.language-access-box ul{font-size:.83rem}.language-map iframe{height:340px}.language-faq-list summary{padding:17px 14px;font-size:.88rem}.language-faq-list p{padding:0 14px 17px;font-size:.82rem}.language-contact-grid article{padding:24px 18px}.language-contact-grid h2{font-size:1.35rem}.language-contact-grid p{font-size:.83rem}.language-final{padding:44px 0}.language-final small{font-size:.72rem;padding-inline:8px}
}

/* =========================================================
   v1.0.72 — Smartphone navigation visual cleanup
   Remove legacy pseudo decorations and render one consistent accordion chevron.
========================================================= */
@media (max-width:760px){
  body .site-header.nav-open .primary-nav{
    overflow-x:hidden;
  }

  body .site-header.nav-open .primary-nav ul,
  body .site-header.nav-open .primary-nav li{
    list-style:none!important;
  }

  /* Remove every legacy marker that can leak into the mobile accordion. */
  body .site-header.nav-open .primary-nav li::before,
  body .site-header.nav-open .primary-nav a::before,
  body .site-header.nav-open .primary-nav .cecil-menu-parent-label::before{
    content:none!important;
    display:none!important;
  }

  /* Reset old hover/underline pseudo elements on normal mobile links. */
  body .site-header.nav-open .primary-nav a:not(.cecil-submenu-trigger)::after{
    content:none!important;
    display:none!important;
  }

  /* Main rows: identical horizontal rhythm and one quiet divider. */
  body .site-header.nav-open .primary-nav>ul{
    margin:0!important;
    padding:0!important;
  }
  body .site-header.nav-open .primary-nav>ul>li{
    margin:0!important;
    padding:0!important;
    border-bottom:1px solid rgba(250,247,239,.09)!important;
  }
  body .site-header.nav-open .primary-nav>ul>li:last-child{
    border-bottom:0!important;
  }
  body .site-header.nav-open .primary-nav>ul>li>a,
  body .site-header.nav-open .primary-nav>ul>li>.cecil-menu-parent-label{
    min-height:58px;
    margin:0!important;
    padding:16px 8px!important;
    align-items:center;
    line-height:1.45;
    letter-spacing:.015em;
  }

  /* Parent rows get exactly one chevron, regardless of whether the row is <a> or <span>. */
  body .site-header.nav-open .primary-nav .cecil-submenu-trigger{
    display:flex!important;
    width:100%!important;
    justify-content:space-between!important;
    align-items:center!important;
    gap:18px!important;
    padding-right:12px!important;
  }
  body .site-header.nav-open .primary-nav .cecil-submenu-trigger::after{
    content:""!important;
    display:block!important;
    position:static!important;
    inset:auto!important;
    flex:0 0 9px!important;
    width:9px!important;
    height:9px!important;
    margin:0 3px 4px 0!important;
    padding:0!important;
    border:0!important;
    border-right:1.5px solid #C9D8A6!important;
    border-bottom:1.5px solid #C9D8A6!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    opacity:1!important;
    transform:rotate(45deg)!important;
    transform-origin:center!important;
    transition:transform .34s cubic-bezier(.22,1,.36,1),margin .34s cubic-bezier(.22,1,.36,1)!important;
  }
  body .site-header.nav-open .primary-nav li.is-submenu-open > .cecil-submenu-trigger::after{
    margin-bottom:-4px!important;
    transform:rotate(225deg)!important;
  }

  /* Submenu rows align to a single clean text column; no dashes, diamonds or duplicate arrows. */
  body .site-header.nav-open .primary-nav .sub-menu{
    margin:0!important;
    padding-left:18px!important;
    padding-right:4px!important;
  }
  body .site-header.nav-open .primary-nav .sub-menu li{
    margin:0!important;
    padding:0!important;
    border:0!important;
  }
  body .site-header.nav-open .primary-nav .sub-menu a,
  body .site-header.nav-open .primary-nav .sub-menu .cecil-menu-parent-label{
    min-height:44px;
    padding:10px 8px!important;
    line-height:1.55;
  }
  body .site-header.nav-open .primary-nav .sub-menu .sub-menu{
    padding-left:16px!important;
  }

  /* Keep the language switch visually separate from the navigation list. */
  body .site-header.nav-open .primary-nav .mobile-lang-switch a::before,
  body .site-header.nav-open .primary-nav .mobile-lang-switch a::after{
    content:none!important;
    display:none!important;
  }
}

@media (max-width:760px) and (prefers-reduced-motion:reduce){
  body .site-header.nav-open .primary-nav .cecil-submenu-trigger::after{
    transition:none!important;
  }
}

/* =========================================================
   v1.0.73 — Complete EN / KO / ZH language pages
   Full route parity, resilient CJK/Latin wrapping and responsive content blocks.
========================================================= */
.language-page--complete{background:#FAF7EF;color:#4B4238;overflow-x:clip}
.language-page--complete .language-intro{padding-bottom:34px}
.language-page--complete .language-block{padding-top:42px;padding-bottom:72px}
.language-page--complete .language-block:nth-of-type(even){background:#F7F3EA}
.language-page--complete .language-section-head{max-width:860px;margin:0 auto 32px}
.language-page--complete .language-section-head h2{overflow-wrap:anywhere}
.language-page--complete .language-card-grid{align-items:stretch}
.language-page--complete .language-card{display:flex;flex-direction:column;min-width:0;color:inherit;text-decoration:none;background:#FAF7EF;border:1px solid #EAE2D3;overflow:hidden;box-shadow:0 12px 34px rgba(117,106,93,.045)}
.language-page--complete .language-card>div{display:flex;flex:1;flex-direction:column}
.language-page--complete .language-card b{margin-top:auto;padding-top:16px}
.language-page--complete .language-step-list{max-width:900px;margin:0 auto;display:grid;gap:12px}
.language-page--complete .language-step-list article{display:grid;grid-template-columns:58px minmax(0,1fr);gap:18px;align-items:start;padding:22px 24px;background:#FAF7EF;border:1px solid #EAE2D3}
.language-page--complete .language-step-no{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:999px;border:1px solid #C9D8A6;color:#C9D8A6;font-family:Georgia,serif;font-size:.9rem}
.language-page--complete .language-step-list h3{margin:2px 0 7px;font-size:1.08rem;line-height:1.55;color:#756A5D;font-weight:600;text-wrap:pretty;overflow-wrap:anywhere}
.language-page--complete .language-step-list p{margin:0;color:#4B4238;font-size:.91rem;line-height:1.9;text-wrap:pretty;overflow-wrap:anywhere}
.language-page--complete .language-check-list{max-width:900px;margin:0 auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.language-page--complete .language-check-list>div{display:flex;align-items:flex-start;gap:12px;padding:18px 20px;background:#FAF7EF;border:1px solid #EAE2D3;color:#756A5D;line-height:1.7;min-width:0}
.language-page--complete .language-check-list svg{width:20px;height:20px;flex:0 0 auto;margin-top:.18em;color:#C9D8A6}
.language-page--complete .language-check-list span{min-width:0;text-wrap:pretty;overflow-wrap:anywhere}
.language-page--complete .language-alert{max-width:860px;margin:0 auto;padding:24px 26px;background:#FAF7EF;border:1px solid #EAE2D3;border-left:4px solid #C9D8A6;color:#4B4238;text-align:left;line-height:1.85}
.language-page--complete .language-alert strong{display:block;margin-bottom:8px;color:#756A5D;font-size:1.08rem}
.language-page--complete .language-alert p{margin:0;color:#4B4238;line-height:1.9}
.language-page--complete .language-prose{max-width:860px;margin:0 auto;padding:28px 30px;background:#FAF7EF;border:1px solid #EAE2D3}
.language-page--complete .language-prose p{margin:0;font-size:.95rem;line-height:2;color:#4B4238;text-wrap:pretty;overflow-wrap:anywhere}
.language-page--complete .language-lead--section{margin-top:-10px}
.language-page--complete .language-final h2{max-width:840px;margin:0 auto 12px;font-family:Georgia,"Noto Serif JP","Yu Mincho",serif;font-size:clamp(1.65rem,3vw,2.35rem);line-height:1.45;font-weight:500;color:#FAF7EF;text-wrap:balance;overflow-wrap:anywhere}
.language-page--complete .language-final .language-final-copy{max-width:760px;margin:0 auto 16px;color:rgba(250,247,239,.78);letter-spacing:0;line-height:1.8}
.language-page--complete .language-final .language-final-hours{margin:0 0 20px;color:#C9D8A6;letter-spacing:.06em}
.language-page--complete .language-price-list{background:#FAF7EF}
.language-page--complete .language-faq-list details:first-child{border-top:1px solid #EAE2D3}

html[lang="en"] .primary-nav>ul{gap:clamp(6px,.58vw,11px)}
html[lang="en"] .primary-nav>ul>li>a,
html[lang="en"] .primary-nav>ul>li>.cecil-menu-parent-label{font-size:clamp(.66rem,.68vw,.76rem);letter-spacing:0}
html[lang="ko"] .primary-nav>ul,
html[lang="zh-CN"] .primary-nav>ul{gap:clamp(7px,.68vw,12px)}
html[lang="ko"] .primary-nav>ul>li>a,
html[lang="ko"] .primary-nav>ul>li>.cecil-menu-parent-label,
html[lang="zh-CN"] .primary-nav>ul>li>a,
html[lang="zh-CN"] .primary-nav>ul>li>.cecil-menu-parent-label{font-size:clamp(.7rem,.72vw,.8rem)}

@media(max-width:980px){
  .language-page--complete .language-check-list{grid-template-columns:1fr}
}
@media(max-width:760px){
  .language-page--complete .language-intro{padding:46px 0 20px}
  .language-page--complete .language-block{padding:38px 0 52px}
  .language-page--complete .language-section-head{margin-bottom:24px}
  .language-page--complete .language-section-head h2{font-size:clamp(1.42rem,6.2vw,1.72rem)!important;line-height:1.48!important;word-break:normal!important;overflow-wrap:anywhere!important}
  .language-page--complete .language-card-grid{gap:14px}
  .language-page--complete .language-card img{height:190px}
  .language-page--complete .language-step-list{gap:10px}
  .language-page--complete .language-step-list article{grid-template-columns:42px minmax(0,1fr);gap:12px;padding:18px 16px}
  .language-page--complete .language-step-no{width:38px;height:38px;font-size:.74rem}
  .language-page--complete .language-step-list h3{font-size:1rem;word-break:normal!important;overflow-wrap:anywhere!important}
  .language-page--complete .language-step-list p{font-size:.84rem;line-height:1.85}
  .language-page--complete .language-check-list>div{padding:15px 14px;font-size:.85rem}
  .language-page--complete .language-alert{padding:19px 17px;font-size:.84rem}
  .language-page--complete .language-alert strong{font-size:1rem}
  .language-page--complete .language-prose{padding:22px 18px}
  .language-page--complete .language-prose p{font-size:.85rem;line-height:1.9}
  .language-page--complete .language-final h2{font-size:1.5rem;padding-inline:8px}
  .language-page--complete .language-final .language-final-copy{font-size:.82rem;line-height:1.8;padding-inline:8px}
  .language-page--en .cecil-simple-title{word-break:normal!important;overflow-wrap:anywhere!important}
  .language-page--ko .cecil-simple-title,.language-page--zh .cecil-simple-title{word-break:keep-all!important;overflow-wrap:anywhere!important}
  .language-page--ko .language-lead,.language-page--zh .language-lead{word-break:keep-all;overflow-wrap:anywhere}
  .mobile-contact.mobile-contact--dispatch{grid-template-columns:repeat(3,1fr)}
}


/* =========================================================
   v1.0.75 — Semantic line-breaking system
   Goal: break by meaning, not by viewport accidents.
   - Body copy: natural wrapping; fixed <br> is suppressed.
   - Headings/catches: balanced wrapping and Japanese phrase-aware breaks.
   - Mobile: inherited desktop heading <br> is released so narrow screens can reflow.
   - EN/KO/ZH: language-specific wrapping rules; no arbitrary anywhere breaks.
========================================================= */

/* Base reading rules. Fallback first, newer phrase-aware behavior second. */
main :where(h1,h2,h3,h4,h5,h6,p,li,dt,dd,summary,blockquote,figcaption,small,.btn,.cecil-hero-detail-catch,.cecil-hero-detail-lead){
  line-break:strict;
  word-break:normal;
  overflow-wrap:normal;
}
html[lang="ja"] main :where(h1,h2,h3,h4,h5,h6,p,li,dt,dd,summary,blockquote,figcaption,small,.btn,.cecil-hero-detail-catch,.cecil-hero-detail-lead){
  word-break:normal;
  word-break:auto-phrase;
}
main :where(h1,h2,h3,h4,h5,h6,.cecil-hero-detail-catch,.section-title,.language-section-head h2,.language-card h3,.language-final h2){
  text-wrap:balance;
}
main :where(p,li,dd,summary,blockquote,figcaption,.cecil-hero-detail-lead,.language-lead,.language-prose p,.language-step-list p,.language-alert p){
  text-wrap:pretty;
}

/* Normal prose should follow the available measure instead of carrying desktop hard breaks. */
main p:not(.cecil-hero-detail-catch) br{
  display:none;
}

/* Give longer lead copy a readable measure; cards retain their own layout widths. */
main :where(.cecil-hero-detail-lead,.language-lead,.language-final-copy){
  max-inline-size:46rem;
  margin-inline:auto;
}

/* CTA / compact UI copy: wrap by phrase and never split a word just to fill a box. */
main :where(.btn,a[class*="btn"],button) :where(span,strong),
main :where(.btn,a[class*="btn"],button){
  text-wrap:balance;
  overflow-wrap:normal;
}

/* English: whole words, no automatic hyphenation. */
html[lang="en"] main :where(h1,h2,h3,h4,h5,h6,p,li,dd,summary,small,.btn),
.language-page--en :where(h1,h2,h3,h4,h5,h6,p,li,dd,summary,small,.btn){
  word-break:normal!important;
  overflow-wrap:normal!important;
  hyphens:none!important;
}
/* Emergency protection is restricted to body-sized copy, never headlines. */
html[lang="en"] main :where(p,li,dd,summary,small),
.language-page--en :where(p,li,dd,summary,small){
  overflow-wrap:break-word!important;
}

/* Korean: keep Korean word units together. */
html[lang="ko"] main :where(h1,h2,h3,h4,h5,h6,p,li,dd,summary,small,.btn),
.language-page--ko :where(h1,h2,h3,h4,h5,h6,p,li,dd,summary,small,.btn){
  word-break:keep-all!important;
  overflow-wrap:normal!important;
  hyphens:none!important;
}
html[lang="ko"] main :where(p,li,dd,summary,small),
.language-page--ko :where(p,li,dd,summary,small){
  overflow-wrap:break-word!important;
}

/* Simplified Chinese: allow normal CJK line opportunities, but keep strict punctuation rules. */
html[lang="zh-CN"] main :where(h1,h2,h3,h4,h5,h6,p,li,dd,summary,small,.btn),
.language-page--zh :where(h1,h2,h3,h4,h5,h6,p,li,dd,summary,small,.btn){
  word-break:normal!important;
  overflow-wrap:normal!important;
  line-break:strict!important;
  hyphens:none!important;
}

/* Remove the v1.0.73 emergency "anywhere" behavior from multilingual headline systems. */
.language-page--complete .language-section-head h2,
.language-page--complete .language-step-list h3,
.language-page--complete .language-check-list span,
.language-page--complete .language-prose p,
.language-page--complete .language-final h2,
.language-page .cecil-simple-title{
  overflow-wrap:normal!important;
}
.language-page--complete .language-step-list h3,
.language-page--complete .language-card h3,
.language-page--complete .language-section-head h2,
.language-page--complete .language-final h2{
  text-wrap:balance!important;
}
.language-page--complete .language-step-list p,
.language-page--complete .language-prose p,
.language-page--complete .language-lead,
.language-page--complete .language-alert p,
.language-page--complete .language-faq-list summary span,
.language-page--complete .language-faq-list p{
  text-wrap:pretty!important;
}

/* Desktop keeps intentional headline choreography. Mobile gets its own natural composition. */
@media(max-width:760px){
  main :where(h2,h3,h4,h5,h6,.cecil-hero-detail-catch,strong) br,
  main span > br{
    display:none;
  }

  main :where(h1,h2,h3,h4,h5,h6,.cecil-hero-detail-catch){
    text-wrap:balance;
  }
  main :where(p,li,dd,summary,blockquote,figcaption,.cecil-hero-detail-lead){
    text-wrap:pretty;
  }

  /* Japanese mobile headings: phrase-aware wrapping avoids particles becoming isolated line starts where supported. */
  html[lang="ja"] main :where(h1,h2,h3,h4,h5,h6,.cecil-hero-detail-catch,.btn){
    word-break:normal!important;
    word-break:auto-phrase!important;
    overflow-wrap:normal!important;
  }

  /* Multilingual mobile overrides previous anywhere rules. */
  .language-page--complete .language-section-head h2,
  .language-page--complete .language-step-list h3,
  .language-page .cecil-simple-title{
    overflow-wrap:normal!important;
  }
  .language-page--en :where(.cecil-simple-title,.language-section-head h2,.language-step-list h3,.language-card h3,.language-final h2){
    word-break:normal!important;
    overflow-wrap:normal!important;
  }
  .language-page--ko :where(.cecil-simple-title,.language-section-head h2,.language-step-list h3,.language-card h3,.language-final h2){
    word-break:keep-all!important;
    overflow-wrap:normal!important;
  }
  .language-page--zh :where(.cecil-simple-title,.language-section-head h2,.language-step-list h3,.language-card h3,.language-final h2){
    word-break:normal!important;
    overflow-wrap:normal!important;
  }

  /* Mobile copy measure: enough width to avoid choppy 3–5 character lines while preserving gutters. */
  main :where(.cecil-hero-detail-lead,.language-lead,.language-final-copy){
    max-inline-size:min(100%,34rem);
  }
}

/* Preserve deliberate structural breaks that are not prose line-breaking decisions. */
.choose-price-mini b br,
.access-summary dd br,
small.cecil-preserve-breaks br,
.cecil-preserve-breaks br{
  display:initial!important;
}

/* v1.0.75 specificity guards for legacy multilingual !important rules. */
.language-page--en .cecil-simple-title{
  word-break:normal!important;
  overflow-wrap:normal!important;
}
.language-page--ko .cecil-simple-title{
  word-break:keep-all!important;
  overflow-wrap:normal!important;
}
.language-page--zh .cecil-simple-title{
  word-break:normal!important;
  overflow-wrap:normal!important;
  line-break:strict!important;
}
.language-page .language-access-box h2{
  overflow-wrap:normal!important;
  text-wrap:balance;
}


/* v1.0.89 — Local SEO: sitewide, human-visible NAP block */
.footer-local-nap{font-style:normal;margin-top:18px;padding-top:16px;border-top:1px solid rgba(201,216,166,.22);display:grid;gap:7px;max-width:320px;color:rgba(250,247,239,.72);font-size:.72rem;line-height:1.65}
.footer-local-nap span{display:block}
.footer-local-nap b{display:block;margin-bottom:1px;color:var(--cecil-gold-light);font-size:.66rem;letter-spacing:.08em;font-weight:700}
.footer-local-nap a{color:rgba(250,247,239,.92);text-decoration:none}
.footer-local-nap a:hover{color:#FAF7EF}
.footer-local-map{width:max-content;margin-top:2px;color:var(--cecil-gold-light)!important;font-weight:700;letter-spacing:.03em}
@media (max-width:900px){.footer-local-nap{max-width:520px;margin-top:14px}.footer-brand{align-items:start}}
@media (max-width:620px){.footer-local-nap{max-width:none;margin-top:16px;padding-top:14px;font-size:.73rem}}

@media(max-width:760px){.mobile-contact.mobile-contact--dispatch-contact{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v1.0.93: mobile-service reservation is phone-only. */
.mobile-contact.mobile-contact--dispatch{grid-template-columns:1fr}
