/* Menu-inspired visual theme. The content and section order are unchanged. */
:root {
  --night: #654b78;
  --night-soft: #f4edfc;
  --night-card: #fffafd;
  --pink: #b65d87;
  --pink-strong: #f1accd;
  --pink-pale: #fce8f4;
  --purple: #d6c3f1;
  --blue: #d7effb;
  --cream: #fff5cf;
  --paper: #fcf8ff;
  --ink: #594465;
  --muted: #796a84;
  --border: rgba(166, 127, 187, .23);
  --shadow: 0 18px 54px rgba(141, 104, 162, .13);
  --cloud-divider-height: clamp(110px, 17vw, 220px);
  --dream-border: 1px solid rgba(255, 255, 255, .95);
}
body {
  background-color: #e9dff2;
  background-image: url('../img/mellowdream-seamless-stars-v2.svg');
  background-repeat: repeat;
  background-size: 1024px 1024px;
  color: var(--ink);
}
::selection { background: #edc6e6; color: #543c6a; }
:focus-visible { outline-color: #a277c2; }
.site-header {
  background: rgba(255, 249, 255, .94);
  border-bottom: 1px solid rgba(219, 191, 232, .8);
  color: var(--ink);
  box-shadow: 0 4px 24px rgba(139, 101, 157, .06);
}
.menu-toggle { background: #f4e4f3; color: #8c658e; }
.global-nav { background: rgba(255, 248, 255, .98); }
.global-nav a { border-color: var(--border); }
.global-nav .nav-primary { background: #f5c3dc; color: #69415f; box-shadow: 0 4px 12px rgba(195, 124, 164, .12); }
.button-primary { background: linear-gradient(110deg, #f6bddb, #e9c5ef); color: #653956; border-color: rgba(255,255,255,.92); box-shadow: 0 8px 22px rgba(192, 132, 172, .18); }
.button-primary:hover { background: linear-gradient(110deg, #f3aed2, #dfb8ed); box-shadow: 0 10px 26px rgba(192, 132, 172, .23); }
.button-outline, .button-map, .button-profile-outline { color: #725181; border-color: #d9bfdf; background: rgba(255,255,255,.86); box-shadow: 0 5px 18px rgba(146, 108, 165, .07); }
.button-cream { color: #79576b; background: #fff5dc; box-shadow: 0 8px 20px rgba(185, 146, 168, .13); }
.section-kicker { color: #a56395; }
.section-heading h2, .light-heading h2 { color: #6d507d; text-shadow: 0 2px 0 rgba(255,255,255,.8); }
.light-heading > p:last-child { color: var(--muted); }
.hero {
  color: var(--ink);
  background: url('../img/mellowdream-seamless-stars-v2.svg') repeat;
  background-size: 1024px 1024px;
  padding-bottom: calc(100px + var(--cloud-divider-height) * .4);
}
.hero-photo { opacity: .09; filter: saturate(.5); mix-blend-mode: multiply; }
.hero-shade { background: linear-gradient(180deg, rgba(248,236,255,.30), rgba(255,246,253,.55) 65%, rgba(248,239,255,.50)); }
.hero-shade::after { background: linear-gradient(0deg, rgba(255,255,255,.5), transparent); }
.hero-logo { filter: drop-shadow(0 8px 16px rgba(153,112,171,.17)); }
.eyebrow { color: #956b9e; }
.hero h1 { color: #785587; text-shadow: 0 3px 0 #fff, 0 7px 18px rgba(162,126,181,.13); }
.hero-copy { color: #695574; }
.hero-badges li { background: rgba(255,255,255,.76); border-color: rgba(255,255,255,.97); color: #725c80; box-shadow: 0 4px 15px rgba(153,115,174,.06); }
.hero-badges span { color: #a15885; }
.hero-social a { color: #88648f; border-color: #c7a7d4; }
.hero-stars span { color: #b088c9; text-shadow: 0 0 10px white; }
.scroll-hint { color: #9976a9; bottom: 64px; }
/* A continuous tiled sky shows through each section's soft color wash. */
main > .section,
.profile-hero, .profile-subsection, .cast-sns-intro, .cast-sns-section {
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,250,255,.22) 200px, rgba(255,251,255,.10) 80%);
  color: var(--ink);
}
main > .section:nth-of-type(2n) { background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,236,249,.23) 200px, rgba(248,239,255,.12) 80%); }
.dream-cloud-section { position: relative; isolation: isolate; overflow: hidden; padding-bottom: calc(88px + var(--cloud-divider-height) * .5); }
.dream-cloud-section > .container, .dream-cloud-section > .container-wide, .dream-cloud-section > .container-narrow { position: relative; z-index: 2; }
.dream-cloud-divider { position: absolute; z-index: 1; bottom: -1px; left: 0; width: 100%; height: var(--cloud-divider-height); overflow: hidden; pointer-events: none; user-select: none; contain: paint; }
.dream-cloud-divider img { position: absolute; top: 0; left: -7%; width: 114%; max-width: none; height: auto; transform: translate3d(0, -34%, 0); }
.dream-cloud-divider img:nth-child(1) { opacity: .55; filter: drop-shadow(0 -8px 14px rgba(222,192,238,.12)); transform: translate3d(0, calc(-34% - 15px), 0) scaleX(-1); }
.dream-cloud-divider img:nth-child(2) { filter: drop-shadow(0 -5px 8px rgba(239,207,236,.12)); }
.feature-card, .cast-card, .price-card, .model-price, .drink-summary div, .rules-card, .access-info, .entrance-guide, .faq-list details, .social-embed-panel, .sns-card, .profile-photo {
  border: var(--dream-border);
  border-radius: 25px;
  background: rgba(255,255,255,.88);
  box-shadow: var(--shadow);
}
.calendar-card { border: 2px solid rgba(255,255,255,.95); border-radius: 24px; box-shadow: var(--shadow); }
.calendar-card::before { background: #e4d4f5; color: #79588d; }
.feature-card:nth-child(2) { background: rgba(248,241,255,.94); }
.feature-card:nth-child(3) { background: rgba(241,250,255,.94); }
.feature-icon { background: linear-gradient(135deg,#fbe6f5,#eee2fc); border-color: white; color: #a77bae; }
.feature-number { color: #b6a1c4; }
.moon-orbit { border-color: rgba(178,146,197,.15); color: rgba(169,133,187,.19); }
.cast-card { overflow: hidden; }
.cast-tag, .profile-photo figcaption { background: rgba(255,247,255,.94); color: #865493; border: 1px solid white; }
.cast-name-ja, .cast-profile-link, .cast-social { color: #a35f93; }
.cast-body h3 { color: #78558c; }
.section-system::before { opacity: .35; }
.price-card h3, .model-price h3 { color: #866096; }
th, td, .price-options li, .access-info dl > div { border-color: rgba(166,127,187,.2); }
thead th { color: #8d7b98; }
tbody th, .price-options li, .system-gift, .model-price > p { color: #74617f; }
tbody td, .price-options strong, .calculation strong { color: #a25c8e; }
.system-gift { background: #fcecf6; border: 1px solid #eed4e9; border-radius: 18px; }
.system-gift span, .system-gift strong, .model-label { color: #9b608f; }
.extension-note { color: #87728f; }
.no-fee { color: #89719e; }
.no-fee span { border-color: #c5add8; }
.calculation b { color: #ab95b5; }
.gallery-item { border: 3px solid white; border-radius: 24px; box-shadow: var(--shadow); }
.menu-slider figure { border-radius: 18px; border: 3px solid white; overflow: hidden; box-shadow: var(--shadow); }
.menu-price-list details { border: 1px solid rgba(255,255,255,.95); border-radius: 22px; padding-inline: 20px; background: rgba(255,255,255,.74); box-shadow: 0 8px 28px rgba(145,108,165,.07); }
.menu-price-list details + details { margin-top: 12px; }
.menu-price-grid dl > div { background: rgba(250,241,253,.75); border-radius: 10px; }
.steps li { border-color: var(--border); }
.steps li > span { background: #f8e7f5; border-color: white; color: #a36c9c; }
.rules-card { background: rgba(255,242,251,.92); }
.access-info dt { color: #a76f9b; }
.access-info dd { color: #6d5879; }
.access-info dd a, .entrance-guide a { color: #9a608d; }
.map-wrap { border: 4px solid white; border-radius: 24px; box-shadow: var(--shadow); }
.entrance-guide { color: #7b6686; }
.entrance-guide h3 { color: #765886; }
.entrance-guide > span { border-color: #e8d3ee; color: #a879ac; }
.faq-list details { padding-inline: 24px; margin-bottom: 14px; }
.faq-list summary span, .faq-list details > div > span { color: #a3689c; background: #f9e7f5; }
.faq-list details > div > span { background: #eee4fa; }
.social-embed-panel { overflow: hidden; }
.sns-mark { background: #dbc7ee; color: #745487; }
.recruit-card { padding: 42px 24px; border: 2px solid rgba(255,255,255,.95); border-radius: 36px; background: linear-gradient(125deg,rgba(255,242,250,.9),rgba(241,232,254,.9)); box-shadow: var(--shadow); }
.recruit-card .section-kicker, .recruit-card h2 { color: #92618c; }
.recruit-stars { color: #c6a1cf; }
.site-footer { background: rgba(255,249,255,.83); color: #927c9e; border-top: 1px solid white; }
.footer-brand { color: #866096; }
.footer-brand span, .site-footer small { color: #ab88b9; }
.bottom-nav { background: rgba(255,248,255,.96); color: #9571a1; border-top: 1px solid white; box-shadow: 0 -5px 22px rgba(157,117,178,.08); }
.bottom-nav a:first-child { color: #b96b9c; }
.profile-hero { background: linear-gradient(180deg,rgba(255,250,255,.45),rgba(255,250,255,.16)); }
.profile-message { background: rgba(255,255,255,.85); border-radius: 0 18px 18px 0; }
.profile-social-links a, .profile-cast-nav a { border-color: white; box-shadow: 0 4px 14px rgba(149,111,166,.08); }
.profile-cast-nav a[aria-current="page"] { background: #dfc4ed; color: #6c467c; }
.cast-sns-intro { background: transparent; }
.cast-sns-section { background: linear-gradient(180deg,rgba(255,255,255,.6),rgba(252,243,255,.2)); }
@media (min-width: 900px) {
  .global-nav { background: transparent; }
  .global-nav a:not(.nav-primary) { color: #8b6b98; }
  .global-nav a:not(.nav-primary):hover { color: #b2659a; }
  .dream-cloud-section { padding-bottom: calc(128px + var(--cloud-divider-height) * .45); }
  .hero.dream-cloud-section { padding-bottom: calc(112px + var(--cloud-divider-height) * .4); }
}
@media (max-width: 639px) {
  body, .hero { background-size: 512px 512px; }
  .hero h1 { font-size: clamp(1.9rem,8vw,3rem); }
  .dream-cloud-divider img { width: 146%; left: -23%; }
}
