:root {
  --yellow: #ffd95c;
  --orange: #ff9d42;
  --pink: #ff7ab6;
  --blue: #69cfff;
  --green: #9fe77a;
  --mint: #c9f8e1;
  --purple: #bda7ff;

  --cream: #fff8e7;
  --white: #ffffff;
  --dark: #253044;
  --text: #5d6574;
  --muted: #7a8291;

  --shadow-soft: 0 18px 45px rgba(37, 48, 68, 0.12);
  --shadow-strong: 0 30px 80px rgba(37, 48, 68, 0.18);

  --radius-xl: 42px;
  --radius-lg: 30px;
  --radius-md: 20px;

  --transition: 0.35s ease;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: "Inter", sans-serif;
  background:
    radial-gradient(circle at 8% 12%, rgba(255, 217, 92, 0.45), transparent 27%),
    radial-gradient(circle at 92% 20%, rgba(105, 207, 255, 0.38), transparent 25%),
    radial-gradient(circle at 70% 88%, rgba(255, 122, 182, 0.30), transparent 28%),
    var(--cream);
  color: var(--text);
  overflow-x: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  display: block;
  max-width: 100%;
}

button,
input,
textarea {
  font-family: inherit;
}

.card-link {
  display: inline-flex;
  margin-top: 22px;
  color: var(--dark);
  font-weight: 900;
  position: relative;
}

.card-link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -5px;
  width: 100%;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--orange), var(--pink));
  transform: scaleX(0.35);
  transform-origin: left;
  transition: var(--transition);
}

.card-link:hover::after {
  transform: scaleX(1);
}

.section-button {
  display: flex;
  justify-content: center;
  margin-top: 46px;
}

.site-wrapper {
  overflow: hidden;
}

.container {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
}

.site-header {
  position: fixed;
  top: 18px;
  left: 0;
  width: 100%;
  z-index: 100;
  padding: 0 18px;
}

.nav-shell {
  width: min(1180px, 100%);
  margin: 0 auto;
  min-height: 86px;
  padding: 12px 16px 12px 20px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.82);
  backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.95);
  box-shadow: var(--shadow-soft);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: max-content;
}

.brand-logo {
  width: 58px;
  height: 64px;
  object-fit: contain;
  filter: drop-shadow(0 10px 18px rgba(37, 48, 68, 0.12));
}

.brand-text strong {
  display: block;
  color: var(--dark);
  font-size: 18px;
  line-height: 1;
  letter-spacing: -0.4px;
}

.brand-text span {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.main-nav {
  display: flex;
  align-items: center;
  gap: 24px;
  color: var(--dark);
  font-size: 14px;
  font-weight: 800;
}

.main-nav a {
  position: relative;
  opacity: 0.82;
  transition: var(--transition);
}

.main-nav a:hover {
  opacity: 1;
  color: #ff7b00;
}

.main-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -9px;
  width: 0;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--orange), var(--pink));
  transition: var(--transition);
}

.main-nav a:hover::after {
  width: 100%;
}

.nav-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.language-switch {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 5px;
  border-radius: 999px;
  background: rgba(37, 48, 68, 0.07);
}

.lang-btn {
  border: none;
  background: transparent;
  cursor: pointer;
  border-radius: 999px;
  padding: 8px 10px;
  color: var(--dark);
  font-size: 12px;
  font-weight: 900;
  transition: var(--transition);
}

.lang-btn.active {
  background: var(--white);
  color: #ff7b00;
  box-shadow: 0 8px 18px rgba(37, 48, 68, 0.13);
}

.nav-cta {
  padding: 13px 19px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--orange), var(--pink));
  color: var(--white);
  font-size: 14px;
  font-weight: 900;
  box-shadow: 0 15px 30px rgba(255, 122, 182, 0.28);
  transition: var(--transition);
}

.nav-cta:hover {
  transform: translateY(-3px);
  box-shadow: 0 22px 44px rgba(255, 122, 182, 0.36);
}

.mobile-menu-btn {
  display: none;
  width: 46px;
  height: 46px;
  border: none;
  border-radius: 50%;
  background: var(--dark);
  color: var(--white);
  cursor: pointer;
}

.mobile-menu-btn svg {
  width: 22px;
  height: 22px;
}

.hero {
  position: relative;
  min-height: 100vh;
  padding: 132px 0 78px;
  display: flex;
  align-items: center;
}

.hero-bg-shape {
  position: absolute;
  border-radius: 999px;
  opacity: 0.55;
  animation: floatShape 8s ease-in-out infinite;
}

.shape-yellow {
  width: 170px;
  height: 170px;
  background: var(--yellow);
  left: -55px;
  top: 190px;
}

.shape-blue {
  width: 210px;
  height: 210px;
  background: var(--blue);
  right: -75px;
  top: 260px;
  animation-delay: 1s;
}

.shape-pink {
  width: 120px;
  height: 120px;
  background: var(--pink);
  left: 52%;
  bottom: 80px;
  animation-delay: 2s;
}

@keyframes floatShape {
  0%, 100% {
    transform: translateY(0) rotate(0deg);
  }

  50% {
    transform: translateY(-28px) rotate(8deg);
  }
}

.hero-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1.02fr 0.98fr;
  gap: 64px;
  align-items: center;
}

.hero-content {
  max-width: 660px;
}

.hero-logo-bubble {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 10px 18px 10px 12px;
  margin-bottom: 18px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: var(--shadow-soft);
  animation: revealUp 0.8s ease both;
}

.hero-logo-bubble img {
  width: 48px;
  height: 52px;
  object-fit: contain;
}

.hero-logo-bubble strong {
  display: block;
  color: var(--dark);
  font-size: 15px;
  font-weight: 900;
}

.hero-logo-bubble span {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.language-badge {
  width: fit-content;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  margin-bottom: 24px;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(255, 217, 92, 0.95), rgba(255, 255, 255, 0.95));
  color: var(--dark);
  font-size: 14px;
  font-weight: 900;
  box-shadow: 0 16px 35px rgba(37, 48, 68, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.9);
  animation: revealUp 0.8s ease 0.08s both;
}

.language-badge svg {
  width: 18px;
  height: 18px;
  color: #ff7b00;
  flex: 0 0 auto;
}

.hero h1 {
  color: var(--dark);
  font-size: clamp(45px, 6vw, 84px);
  line-height: 0.96;
  letter-spacing: -3.4px;
  margin-bottom: 26px;
  animation: revealUp 0.85s ease 0.14s both;
}

.hero h1 span {
  display: inline;
  background: linear-gradient(135deg, #ff7b00, #ff5aa8, #25aeea);
  -webkit-background-clip: text;
  color: transparent;
}

.hero p {
  max-width: 620px;
  font-size: 19px;
  line-height: 1.75;
  color: #646c7a;
  margin-bottom: 34px;
  animation: revealUp 0.85s ease 0.22s both;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
  animation: revealUp 0.85s ease 0.30s both;
}

.hero-actions.center {
  justify-content: center;
}

.btn {
  min-height: 54px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-radius: 999px;
  border: none;
  cursor: pointer;
  padding: 15px 24px;
  font-size: 15px;
  font-weight: 900;
  transition: var(--transition);
}

.btn svg {
  width: 18px;
  height: 18px;
}

.btn-primary {
  color: var(--white);
  background: linear-gradient(135deg, var(--orange), var(--pink));
  box-shadow: 0 20px 40px rgba(255, 122, 182, 0.32);
}

.btn-primary:hover {
  transform: translateY(-4px);
  box-shadow: 0 28px 56px rgba(255, 122, 182, 0.42);
}

.btn-light {
  background: rgba(255, 255, 255, 0.88);
  color: var(--dark);
  box-shadow: 0 16px 34px rgba(37, 48, 68, 0.12);
}

.btn-light:hover {
  transform: translateY(-4px);
}

.hero-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 36px;
  animation: revealUp 0.85s ease 0.38s both;
}

.hero-trust div {
  min-width: 132px;
  padding: 16px 18px;
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 14px 30px rgba(37, 48, 68, 0.09);
}

.hero-trust strong {
  display: block;
  color: var(--dark);
  font-size: 21px;
  line-height: 1;
  margin-bottom: 7px;
}

.hero-trust span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.hero-visual {
  position: relative;
  min-height: 640px;
  animation: revealZoom 1s ease 0.18s both;
}

.visual-card {
  position: absolute;
  overflow: hidden;
  border-radius: 44px;
  background: var(--white);
  box-shadow: var(--shadow-strong);
}

.main-photo-card {
  width: min(470px, 92%);
  height: 575px;
  right: 30px;
  top: 15px;
  transform: rotate(2deg);
  border: 10px solid rgba(255, 255, 255, 0.9);
}

.main-photo-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.photo-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, transparent 45%, rgba(37, 48, 68, 0.32)),
    radial-gradient(circle at 20% 20%, rgba(255, 217, 92, 0.28), transparent 35%);
  pointer-events: none;
}

.floating-card {
  position: absolute;
  z-index: 5;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 17px;
  border-radius: 26px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: var(--shadow-soft);
  animation: floatingCard 6s ease-in-out infinite;
}

.floating-card strong {
  display: block;
  color: var(--dark);
  font-size: 17px;
  margin-bottom: 4px;
}

.floating-card span {
  display: block;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}

.floating-card-one {
  left: 10px;
  top: 110px;
}

.floating-card-two {
  right: 0;
  bottom: 110px;
  animation-delay: 1s;
}

.floating-icon {
  width: 54px;
  height: 54px;
  border-radius: 20px;
  display: grid;
  place-items: center;
}

.floating-icon svg {
  width: 25px;
  height: 25px;
  color: var(--dark);
}

.sun-icon {
  background: var(--yellow);
}

.leaf-icon {
  background: var(--green);
}

.rainbow-card {
  position: absolute;
  left: 35px;
  bottom: 50px;
  width: 180px;
  height: 116px;
  border-radius: 999px 999px 24px 24px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: var(--shadow-soft);
  overflow: hidden;
  padding: 16px;
  display: grid;
  gap: 7px;
  animation: floatingCard 7s ease-in-out 0.5s infinite;
}

.rainbow-card span {
  display: block;
  border-radius: 999px;
}

.rainbow-card span:nth-child(1) {
  background: var(--pink);
}

.rainbow-card span:nth-child(2) {
  background: var(--yellow);
}

.rainbow-card span:nth-child(3) {
  background: var(--green);
}

.rainbow-card span:nth-child(4) {
  background: var(--blue);
}

@keyframes floatingCard {
  0%, 100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-18px);
  }
}

@keyframes revealUp {
  from {
    opacity: 0;
    transform: translateY(28px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes revealZoom {
  from {
    opacity: 0;
    transform: scale(0.94);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

section {
  position: relative;
  padding: 100px 0;
}

.section-heading {
  max-width: 780px;
  margin: 0 auto 56px;
  text-align: center;
}

.section-kicker {
  display: inline-flex;
  align-items: center;
  padding: 9px 16px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.82);
  color: #ff7b00;
  font-size: 13px;
  font-weight: 900;
  box-shadow: 0 12px 26px rgba(37, 48, 68, 0.08);
  margin-bottom: 18px;
}

.section-heading h2,
.care-content h2,
.contact-box h2 {
  color: var(--dark);
  font-size: clamp(34px, 4.4vw, 58px);
  line-height: 1.04;
  letter-spacing: -2px;
  margin-bottom: 18px;
}

.section-heading p,
.care-content p,
.contact-box p {
  color: #687080;
  font-size: 18px;
  line-height: 1.75;
}

.intro-section {
  background: rgba(255, 255, 255, 0.38);
}

.feature-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
}

.feature-card {
  min-height: 275px;
  padding: 28px;
  border-radius: var(--radius-lg);
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid rgba(255, 255, 255, 0.9);
  box-shadow: 0 18px 42px rgba(37, 48, 68, 0.08);
  transition: var(--transition);
}

.feature-card:hover {
  transform: translateY(-10px) rotate(-1deg);
  box-shadow: 0 28px 60px rgba(37, 48, 68, 0.14);
}

.feature-icon {
  width: 66px;
  height: 66px;
  border-radius: 24px;
  display: grid;
  place-items: center;
  margin-bottom: 24px;
}

.feature-icon svg {
  color: var(--dark);
  width: 28px;
  height: 28px;
}

.feature-icon.yellow {
  background: var(--yellow);
}

.feature-icon.blue {
  background: var(--blue);
}

.feature-icon.green {
  background: var(--green);
}

.feature-icon.pink {
  background: var(--pink);
}

.feature-card h3 {
  color: var(--dark);
  font-size: 22px;
  margin-bottom: 12px;
}

.feature-card p {
  line-height: 1.68;
}

.locations-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
}

.location-card {
  position: relative;
  overflow: hidden;
  min-height: 310px;
  padding: 28px;
  border-radius: var(--radius-xl);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: var(--shadow-soft);
  transition: var(--transition);
}

.location-card:hover {
  transform: translateY(-10px);
  box-shadow: var(--shadow-strong);
}

.location-color {
  position: absolute;
  top: -42px;
  right: -42px;
  width: 145px;
  height: 145px;
  border-radius: 42px;
  transform: rotate(20deg);
  opacity: 0.85;
}

.color-yellow {
  background: var(--yellow);
}

.color-blue {
  background: var(--blue);
}

.color-pink {
  background: var(--pink);
}

.color-green {
  background: var(--green);
}

.location-card > svg {
  position: relative;
  z-index: 2;
  width: 34px;
  height: 34px;
  color: var(--dark);
  margin-bottom: 48px;
}

.location-card h3 {
  position: relative;
  z-index: 2;
  color: var(--dark);
  font-size: 23px;
  margin-bottom: 13px;
}

.location-card p {
  position: relative;
  z-index: 2;
  line-height: 1.66;
  margin-bottom: 22px;
}

.location-card span {
  position: relative;
  z-index: 2;
  color: var(--dark);
  font-weight: 900;
}

.care-section {
  background: linear-gradient(135deg, rgba(255, 217, 92, 0.18), rgba(105, 207, 255, 0.16));
}

.care-grid {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  gap: 60px;
  align-items: center;
}

.care-visual {
  position: relative;
  border-radius: 44px;
  overflow: hidden;
  min-height: 540px;
  box-shadow: var(--shadow-strong);
  border: 10px solid rgba(255, 255, 255, 0.8);
}

.care-visual img {
  width: 100%;
  height: 100%;
  min-height: 540px;
  object-fit: cover;
}

.care-label {
  position: absolute;
  left: 26px;
  bottom: 26px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 18px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: var(--dark);
  font-weight: 900;
  box-shadow: var(--shadow-soft);
}

.care-label svg {
  color: #ff7b00;
}

.care-content {
  max-width: 580px;
}

.care-list {
  display: grid;
  gap: 13px;
  margin: 28px 0 32px;
}

.care-list div {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.82);
  color: var(--dark);
  font-weight: 800;
  box-shadow: 0 12px 26px rgba(37, 48, 68, 0.07);
}

.care-list svg {
  width: 20px;
  height: 20px;
  color: #2fb768;
}

.daily-section {
  background: rgba(255, 255, 255, 0.38);
}

.daily-timeline {
  max-width: 900px;
  margin: 0 auto;
  display: grid;
  gap: 18px;
}

.daily-item {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 20px;
  align-items: stretch;
}

.daily-item strong {
  display: grid;
  place-items: center;
  min-height: 92px;
  border-radius: 26px;
  background: var(--yellow);
  color: var(--dark);
  font-size: 22px;
  box-shadow: 0 14px 30px rgba(37, 48, 68, 0.1);
}

.daily-item:nth-child(2) strong {
  background: var(--blue);
}

.daily-item:nth-child(3) strong {
  background: var(--green);
}

.daily-item:nth-child(4) strong {
  background: var(--pink);
}

.daily-item div {
  padding: 24px;
  border-radius: 26px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 14px 34px rgba(37, 48, 68, 0.08);
}

.daily-item h3 {
  color: var(--dark);
  font-size: 22px;
  margin-bottom: 8px;
}

.daily-item p {
  line-height: 1.65;
}

.contact-cta {
  padding-bottom: 120px;
}

.contact-box {
  position: relative;
  overflow: hidden;
  border-radius: 48px;
  padding: 64px 28px;
  text-align: center;
  background:
    radial-gradient(circle at 12% 18%, rgba(255, 217, 92, 0.75), transparent 24%),
    radial-gradient(circle at 88% 24%, rgba(255, 122, 182, 0.55), transparent 24%),
    linear-gradient(135deg, #ffffff, #e9f9ff);
  box-shadow: var(--shadow-strong);
}

.contact-box img {
  width: 86px;
  margin: 0 auto 20px;
  filter: drop-shadow(0 12px 20px rgba(37, 48, 68, 0.12));
}

.contact-box p {
  max-width: 680px;
  margin: 0 auto 30px;
}

.site-footer {
  padding: 58px 0;
  border-radius: 44px 44px 0 0;
  background: var(--dark);
  color: var(--white);
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.35fr repeat(3, 1fr);
  gap: 34px;
}

.footer-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
}

.footer-brand img {
  width: 50px;
  height: 56px;
  object-fit: contain;
}

.footer-brand strong {
  color: var(--white);
  font-size: 18px;
}

.site-footer h4 {
  margin-bottom: 16px;
}

.site-footer p,
.site-footer a {
  color: rgba(255, 255, 255, 0.72);
  font-size: 14px;
  line-height: 1.8;
}

.site-footer a {
  display: block;
  margin-bottom: 8px;
  transition: var(--transition);
}

.site-footer a:hover {
  color: var(--yellow);
}

.reveal {
  opacity: 0;
  transform: translateY(34px);
  transition: 0.8s ease;
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 1080px) {
  .main-nav {
    position: fixed;
    top: 112px;
    left: 18px;
    right: 18px;
    padding: 28px;
    border-radius: 30px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: var(--shadow-strong);
    display: grid;
    gap: 18px;
    transform: translateY(-16px);
    opacity: 0;
    pointer-events: none;
    transition: var(--transition);
  }

  .main-nav.open {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
  }

  .mobile-menu-btn {
    display: grid;
    place-items: center;
  }

  .hero-grid,
  .care-grid {
    grid-template-columns: 1fr;
  }

  .hero-content {
    max-width: 780px;
  }

  .hero-visual {
    min-height: 610px;
  }

  .main-photo-card {
    left: 50%;
    right: auto;
    transform: translateX(-50%) rotate(2deg);
  }

  .feature-grid,
  .locations-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 720px) {
  .site-header {
    top: 10px;
    padding: 0 10px;
  }

  .nav-shell {
    min-height: auto;
    border-radius: 28px;
    padding: 12px;
  }

  .brand-logo {
    width: 48px;
    height: 54px;
  }

  .brand-text span {
    display: none;
  }

  .nav-cta {
    display: none;
  }

  .language-switch {
    padding: 4px;
  }

  .lang-btn {
    padding: 7px 8px;
  }

  .hero {
    padding-top: 145px;
  }

  .hero-grid {
    gap: 36px;
  }

  .hero h1 {
    letter-spacing: -2.2px;
  }

  .language-badge {
    border-radius: 24px;
    align-items: flex-start;
    line-height: 1.35;
  }

  .hero-visual {
    min-height: 500px;
  }

  .main-photo-card {
    width: 92%;
    height: 470px;
    border-radius: 34px;
  }

  .floating-card {
    padding: 13px;
    border-radius: 22px;
  }

  .floating-card-one {
    left: 0;
    top: 50px;
  }

  .floating-card-two {
    right: 0;
    bottom: 80px;
  }

  .rainbow-card {
    left: 12px;
    bottom: 20px;
    width: 150px;
    height: 96px;
  }

  section {
    padding: 78px 0;
  }

  .feature-grid,
  .locations-grid {
    grid-template-columns: 1fr;
  }

  .care-visual,
  .care-visual img {
    min-height: 420px;
  }

  .daily-item {
    grid-template-columns: 1fr;
  }

  .daily-item strong {
    min-height: 72px;
  }

  .contact-box {
    padding: 46px 22px;
    border-radius: 34px;
  }

  .footer-grid {
    grid-template-columns: 1fr;
  }
}
.active-link {
  color: #ff7b00 !important;
  opacity: 1 !important;
}

.active-link::after {
  width: 100% !important;
}

.page-hero {
  position: relative;
  min-height: 92vh;
  padding: 145px 0 88px;
  display: flex;
  align-items: center;
}

.page-hero-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1.02fr 0.98fr;
  gap: 64px;
  align-items: center;
}

.page-hero-content {
  max-width: 690px;
}

.page-hero-content h1 {
  color: var(--dark);
  font-size: clamp(44px, 5.8vw, 82px);
  line-height: 0.97;
  letter-spacing: -3.2px;
  margin-bottom: 26px;
  animation: revealUp 0.85s ease 0.14s both;
}

.page-hero-content h1 span {
  display: inline;
  background: linear-gradient(135deg, #ff7b00, #ff5aa8, #25aeea);
  -webkit-background-clip: text;
  color: transparent;
}

.page-hero-content p {
  max-width: 650px;
  font-size: 19px;
  line-height: 1.75;
  color: #646c7a;
  margin-bottom: 34px;
  animation: revealUp 0.85s ease 0.22s both;
}

.about-hero-visual {
  position: relative;
  min-height: 620px;
  animation: revealZoom 1s ease 0.18s both;
}

.about-photo-card {
  position: absolute;
  overflow: hidden;
  background: var(--white);
  box-shadow: var(--shadow-strong);
  border: 10px solid rgba(255, 255, 255, 0.9);
}

.about-photo-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.about-photo-main {
  right: 20px;
  top: 30px;
  width: min(455px, 92%);
  height: 540px;
  border-radius: 46px;
  transform: rotate(2deg);
}

.about-photo-small {
  left: 5px;
  bottom: 40px;
  width: 240px;
  height: 250px;
  border-radius: 36px;
  transform: rotate(-5deg);
}

.about-floating-note {
  position: absolute;
  right: 0;
  bottom: 95px;
  z-index: 5;
  width: 275px;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px;
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.95);
  box-shadow: var(--shadow-soft);
  animation: floatingCard 6s ease-in-out infinite;
}

.about-floating-note svg {
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  padding: 10px;
  border-radius: 18px;
  background: var(--yellow);
  color: var(--dark);
}

.about-floating-note strong {
  display: block;
  color: var(--dark);
  font-size: 17px;
  margin-bottom: 4px;
}

.about-floating-note span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.45;
}

.about-facts-section {
  background: rgba(255, 255, 255, 0.38);
}

.about-facts-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
}

.about-fact-card {
  min-height: 260px;
  padding: 28px;
  border-radius: var(--radius-lg);
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(255, 255, 255, 0.9);
  box-shadow: 0 18px 42px rgba(37, 48, 68, 0.08);
  transition: var(--transition);
}

.about-fact-card:hover {
  transform: translateY(-10px) rotate(-1deg);
  box-shadow: 0 28px 60px rgba(37, 48, 68, 0.14);
}

.about-fact-card h3 {
  color: var(--dark);
  font-size: 22px;
  margin-bottom: 12px;
}

.about-fact-card p {
  line-height: 1.68;
}

.about-story-section {
  background: linear-gradient(135deg, rgba(255, 217, 92, 0.16), rgba(105, 207, 255, 0.16));
}

.about-story-grid {
  display: grid;
  grid-template-columns: 1.08fr 0.92fr;
  gap: 44px;
  align-items: stretch;
}

.story-card {
  padding: 46px;
  border-radius: 44px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: var(--shadow-soft);
}

.story-card h2 {
  color: var(--dark);
  font-size: clamp(34px, 4.2vw, 58px);
  line-height: 1.04;
  letter-spacing: -2px;
  margin-bottom: 22px;
}

.story-card p {
  font-size: 17px;
  line-height: 1.8;
  color: #687080;
  margin-bottom: 18px;
}

.story-values-preview {
  display: grid;
  gap: 18px;
}

.story-mini-card {
  padding: 28px;
  border-radius: 30px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 16px 36px rgba(37, 48, 68, 0.08);
  transition: var(--transition);
}

.story-mini-card:hover {
  transform: translateY(-7px);
}

.story-mini-card svg {
  width: 42px;
  height: 42px;
  padding: 9px;
  border-radius: 16px;
  background: var(--mint);
  color: var(--dark);
  margin-bottom: 18px;
}

.story-mini-card strong {
  display: block;
  color: var(--dark);
  font-size: 21px;
  margin-bottom: 8px;
}

.story-mini-card span {
  display: block;
  line-height: 1.65;
  color: #687080;
}

.values-house-section {
  background: rgba(255, 255, 255, 0.36);
}

.values-house {
  max-width: 1050px;
  margin: 0 auto;
}

.values-roof {
  position: relative;
  z-index: 2;
  width: min(620px, 100%);
  margin: 0 auto -18px;
  padding: 26px 30px;
  border-radius: 34px 34px 18px 18px;
  background: linear-gradient(135deg, var(--orange), var(--pink));
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  box-shadow: 0 22px 48px rgba(255, 122, 182, 0.3);
}

.values-roof svg {
  width: 30px;
  height: 30px;
}

.values-roof strong {
  font-size: 22px;
}

.values-grid-page {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  padding: 42px 24px 24px;
  border-radius: 42px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: var(--shadow-soft);
}

.value-card-page {
  position: relative;
  overflow: hidden;
  min-height: 245px;
  padding: 28px;
  border-radius: 30px;
  background: var(--white);
  box-shadow: 0 14px 32px rgba(37, 48, 68, 0.08);
  transition: var(--transition);
}

.value-card-page:hover {
  transform: translateY(-9px);
}

.value-card-page:nth-child(1) {
  background: linear-gradient(180deg, #ffffff, rgba(255, 217, 92, 0.25));
}

.value-card-page:nth-child(2) {
  background: linear-gradient(180deg, #ffffff, rgba(105, 207, 255, 0.25));
}

.value-card-page:nth-child(3) {
  background: linear-gradient(180deg, #ffffff, rgba(159, 231, 122, 0.25));
}

.value-card-page:nth-child(4) {
  background: linear-gradient(180deg, #ffffff, rgba(255, 122, 182, 0.22));
}

.value-number {
  display: inline-flex;
  margin-bottom: 26px;
  color: rgba(37, 48, 68, 0.22);
  font-size: 38px;
  font-weight: 900;
  letter-spacing: -2px;
}

.value-card-page h3 {
  color: var(--dark);
  font-size: 23px;
  margin-bottom: 12px;
}

.value-card-page p {
  line-height: 1.66;
}

.child-view-section {
  background: linear-gradient(135deg, rgba(201, 248, 225, 0.35), rgba(255, 248, 231, 0.8));
}

.child-view-grid {
  display: grid;
  grid-template-columns: 1.02fr 0.98fr;
  gap: 60px;
  align-items: center;
}

.child-view-content h2 {
  color: var(--dark);
  font-size: clamp(34px, 4.4vw, 58px);
  line-height: 1.04;
  letter-spacing: -2px;
  margin-bottom: 18px;
}

.child-view-content p {
  color: #687080;
  font-size: 18px;
  line-height: 1.75;
  margin-bottom: 28px;
}

.competence-list {
  display: grid;
  gap: 15px;
}

.competence-list > div {
  display: flex;
  gap: 15px;
  padding: 18px;
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 14px 32px rgba(37, 48, 68, 0.08);
}

.competence-list svg {
  flex: 0 0 auto;
  width: 42px;
  height: 42px;
  padding: 10px;
  border-radius: 16px;
  background: var(--yellow);
  color: var(--dark);
}

.competence-list strong {
  display: block;
  color: var(--dark);
  font-size: 18px;
  margin-bottom: 6px;
}

.competence-list span {
  display: block;
  color: #687080;
  line-height: 1.6;
  font-size: 15px;
}

.child-view-visual {
  position: relative;
  min-height: 560px;
  border-radius: 46px;
  overflow: hidden;
  box-shadow: var(--shadow-strong);
  border: 10px solid rgba(255, 255, 255, 0.86);
}

.child-view-visual img {
  width: 100%;
  height: 100%;
  min-height: 560px;
  object-fit: cover;
}

.child-view-badge {
  position: absolute;
  left: 26px;
  bottom: 26px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 15px 18px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  color: var(--dark);
  font-weight: 900;
  box-shadow: var(--shadow-soft);
}

.child-view-badge svg {
  color: #ff7b00;
}


@media (max-width: 1080px) {
  .page-hero-grid,
  .about-story-grid,
  .child-view-grid {
    grid-template-columns: 1fr;
  }

  .about-hero-visual {
    min-height: 600px;
  }

  .about-photo-main {
    left: 50%;
    right: auto;
    transform: translateX(-50%) rotate(2deg);
  }

  .about-facts-grid,
  .values-grid-page {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 720px) {
  .page-hero {
    padding-top: 145px;
  }

  .page-hero-content h1 {
    letter-spacing: -2.2px;
  }

  .about-hero-visual {
    min-height: 510px;
  }

  .about-photo-main {
    width: 92%;
    height: 450px;
    border-radius: 34px;
  }

  .about-photo-small {
    width: 170px;
    height: 180px;
    left: 0;
    bottom: 24px;
  }

  .about-floating-note {
    width: min(255px, 92%);
    right: 0;
    bottom: 48px;
  }

  .about-facts-grid,
  .values-grid-page {
    grid-template-columns: 1fr;
  }

  .story-card {
    padding: 34px 24px;
    border-radius: 34px;
  }

  .values-roof {
    flex-direction: column;
    text-align: center;
    border-radius: 30px;
  }

  .values-grid-page {
    padding: 36px 16px 16px;
    border-radius: 34px;
  }

  .child-view-visual,
  .child-view-visual img {
    min-height: 430px;
  }
}

/* =========================================================
   ABOUT PAGE — MANAGEMENT
========================================================= */

.about-management-section {
  background:
    radial-gradient(circle at 12% 18%, rgba(255, 217, 92, 0.24), transparent 26%),
    radial-gradient(circle at 88% 76%, rgba(105, 207, 255, 0.20), transparent 25%),
    rgba(255, 255, 255, 0.42);
}

.management-grid {
  max-width: 980px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.management-card {
  position: relative;
  overflow: hidden;
  min-height: 360px;
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr);
  align-items: center;
  gap: 28px;
  padding: 28px;
  border: 1px solid rgba(255, 255, 255, 0.94);
  border-radius: 36px;
  background: rgba(255, 255, 255, 0.90);
  box-shadow: var(--shadow-soft);
  transition:
    transform var(--transition),
    box-shadow var(--transition);
}

.management-card::after {
  content: "";
  position: absolute;
  right: -42px;
  bottom: -42px;
  width: 150px;
  height: 150px;
  border-radius: 50%;
  background: rgba(255, 217, 92, 0.24);
  pointer-events: none;
}

.management-card:nth-child(2)::after {
  background: rgba(105, 207, 255, 0.22);
}

.management-card:hover {
  transform: translateY(-9px);
  box-shadow: var(--shadow-strong);
}

.management-photo {
  position: relative;
  z-index: 1;
  height: 270px;
  overflow: hidden;
  border-radius: 28px;
  background: #eef3f7;
  box-shadow: 0 16px 34px rgba(37, 48, 68, 0.14);
}

.management-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transition: transform 0.65s ease;
}

.management-card:hover .management-photo img {
  transform: scale(1.045);
}

.management-card-content {
  position: relative;
  z-index: 2;
}

.management-role {
  display: inline-block;
  margin-bottom: 10px;
  color: #ff7b00;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.management-card h3 {
  margin-bottom: 13px;
  color: var(--dark);
  font-size: 27px;
  letter-spacing: -0.6px;
}

.management-card p {
  color: #687080;
  line-height: 1.7;
}


/* =========================================================
   ABOUT PAGE — LOCATION TEAMS
========================================================= */

.location-team-section {
  background:
    linear-gradient(
      135deg,
      rgba(255, 248, 231, 0.96),
      rgba(233, 249, 255, 0.76)
    );
}

.location-team-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
}

.location-team-card {
  overflow: hidden;
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(255, 255, 255, 0.92);
  border-radius: 34px;
  background: rgba(255, 255, 255, 0.93);
  box-shadow: 0 18px 46px rgba(37, 48, 68, 0.10);
  transition:
    transform var(--transition),
    box-shadow var(--transition);
}

.location-team-card:hover {
  transform: translateY(-10px);
  box-shadow: var(--shadow-strong);
}

.location-team-photo {
  position: relative;
  height: 315px;
  overflow: hidden;
  background: #eef3f7;
}

.location-team-photo::after {
  content: "";
  position: absolute;
  inset: 48% 0 0;
  z-index: 1;
  background: linear-gradient(180deg, transparent, rgba(37, 48, 68, 0.30));
  pointer-events: none;
}

.location-team-photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transition: transform 0.65s ease;
}

.location-team-card:hover .location-team-photo > img {
  transform: scale(1.055);
}

.location-team-photo.dual-photo {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.location-team-photo.dual-photo > img {
  min-width: 0;
}

.location-team-photo.dual-photo > img:first-child {
  object-position: 55% top;
}

.location-team-photo.dual-photo > img:nth-child(2) {
  object-position: 58% top;
}

.location-team-tag,
.team-language {
  position: absolute;
  z-index: 2;
  border-radius: 999px;
  color: var(--dark);
  font-size: 11px;
  font-weight: 900;
  box-shadow: 0 12px 24px rgba(37, 48, 68, 0.14);
}

.location-team-tag {
  left: 16px;
  bottom: 16px;
  padding: 10px 13px;
}

.team-language {
  top: 16px;
  right: 16px;
  padding: 8px 11px;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(10px);
}

.tag-yellow {
  background: var(--yellow);
}

.tag-blue {
  background: var(--blue);
}

.tag-pink {
  background: var(--pink);
}

.tag-green {
  background: var(--green);
}

.location-team-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 25px;
}

.team-member-role {
  display: inline-block;
  margin-bottom: 8px;
  color: #ff7b00;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.location-team-content h3 {
  margin-bottom: 11px;
  color: var(--dark);
  font-size: 24px;
  letter-spacing: -0.5px;
}

.location-team-content p {
  margin-bottom: 20px;
  color: #687080;
  font-size: 14px;
  line-height: 1.65;
}

.team-location-link {
  margin-top: auto;
  padding-top: 17px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-top: 1px solid rgba(37, 48, 68, 0.09);
  color: var(--dark);
  font-size: 13px;
  font-weight: 900;
  transition: color var(--transition);
}

.team-location-link:hover {
  color: #ff7b00;
}

.team-location-link svg {
  width: 18px;
  height: 18px;
  transition: transform var(--transition);
}

.team-location-link:hover svg {
  transform: translate(3px, -3px);
}

.team-page-note {
  margin-top: 46px;
  padding: 26px 28px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 22px;
  border: 1px solid rgba(255, 255, 255, 0.94);
  border-radius: 30px;
  background: rgba(255, 255, 255, 0.90);
  box-shadow: var(--shadow-soft);
}

.team-page-note-icon {
  width: 62px;
  height: 62px;
  display: grid;
  place-items: center;
  border-radius: 22px;
  background: var(--mint);
  color: var(--dark);
}

.team-page-note-icon svg {
  width: 29px;
  height: 29px;
}

.team-page-note strong {
  display: block;
  margin-bottom: 6px;
  color: var(--dark);
  font-size: 18px;
}

.team-page-note p {
  color: #687080;
  font-size: 14px;
  line-height: 1.6;
}


/* =========================================================
   ABOUT TEAM RESPONSIVE
========================================================= */

@media (max-width: 1180px) {
  .location-team-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .location-team-photo {
    height: 390px;
  }
}

@media (max-width: 900px) {
  .management-grid {
    grid-template-columns: 1fr;
  }

  .management-card {
    grid-template-columns: 190px minmax(0, 1fr);
  }

  .team-page-note {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .team-page-note .btn {
    grid-column: 1 / -1;
    width: 100%;
  }
}

@media (max-width: 680px) {
  .management-card {
    grid-template-columns: 1fr;
    min-height: 0;
    padding: 24px;
    border-radius: 30px;
  }

  .management-photo {
    height: 340px;
  }

  .location-team-grid {
    grid-template-columns: 1fr;
  }

  .location-team-photo {
    height: 410px;
  }

  .team-page-note {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .team-page-note-icon {
    margin: 0 auto;
  }
}


/* =========================================================
   MOTION & INTERACTION ENHANCEMENTS
========================================================= */

.btn,
.nav-cta,
.card-link,
.team-location-link,
.map-tab {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.btn::before,
.nav-cta::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -40%;
  left: -36%;
  width: 28%;
  height: 180%;
  background: rgba(255, 255, 255, 0.38);
  transform: rotate(18deg) translateX(-220%);
  transition: transform 0.65s ease;
}

.btn:hover::before,
.nav-cta:hover::before {
  transform: rotate(18deg) translateX(620%);
}

.btn svg,
.nav-cta svg,
.card-link svg,
.team-location-link svg {
  transition: transform 0.3s ease;
}

.btn:hover svg,
.card-link:hover svg,
.team-location-link:hover svg {
  transform: translateX(4px);
}

.btn:active,
.nav-cta:active,
.map-tab:active {
  transform: translateY(1px) scale(0.985);
}

.reveal {
  transition-delay: var(--reveal-delay, 0ms);
}

.tilt-ready {
  --tilt-x: 0deg;
  --tilt-y: 0deg;
  transform: perspective(950px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));
  transform-style: preserve-3d;
  will-change: transform;
}

.tilt-ready:hover {
  transform: perspective(950px) translateY(-9px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));
}

.feature-card,
.location-card,
.about-fact-card,
.management-card,
.location-team-card,
.care-pillar-card,
.care-topic-card,
.rhythm-card,
.location-directory-card,
.all-contact-card {
  transition:
    transform 0.38s cubic-bezier(0.2, 0.75, 0.25, 1),
    box-shadow 0.38s ease,
    border-color 0.38s ease,
    background 0.38s ease;
}

.feature-card:hover,
.about-fact-card:hover,
.care-pillar-card:hover,
.care-topic-card:hover,
.rhythm-card:hover,
.all-contact-card:hover {
  border-color: rgba(255, 157, 66, 0.34);
}

.care-list > div,
.animated-list > div {
  position: relative;
  overflow: hidden;
  transition:
    transform 0.32s ease,
    box-shadow 0.32s ease,
    background 0.32s ease;
}

.care-list > div::after,
.animated-list > div::after {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  border-radius: inherit;
  background: linear-gradient(180deg, var(--orange), var(--pink));
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform 0.32s ease;
}

.care-list > div:hover,
.animated-list > div:hover {
  transform: translateX(7px);
  background: #fff;
  box-shadow: 0 18px 38px rgba(37, 48, 68, 0.12);
}

.care-list > div:hover::after,
.animated-list > div:hover::after {
  transform: scaleY(1);
}

.care-list > div svg {
  transition: transform 0.32s ease, background 0.32s ease;
}

.care-list > div:hover svg {
  transform: scale(1.13) rotate(-7deg);
}

.nav-cta-active {
  box-shadow: 0 0 0 4px rgba(255, 157, 66, 0.18), 0 18px 34px rgba(255, 122, 182, 0.34);
}

.page-badge {
  width: fit-content;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  margin-bottom: 24px;
  border: 1px solid rgba(255, 255, 255, 0.94);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.82);
  color: var(--dark);
  font-size: 14px;
  font-weight: 900;
  box-shadow: 0 16px 35px rgba(37, 48, 68, 0.1);
  animation: revealUp 0.8s ease 0.08s both;
}

.page-badge svg {
  width: 18px;
  height: 18px;
  color: #ff7b00;
}

.compact-page-hero {
  min-height: 78vh;
}

.page-visual {
  position: relative;
  min-height: 610px;
  animation: revealZoom 1s ease 0.18s both;
}

/* =========================================================
   LOCATIONS PAGE
========================================================= */

.locations-page-hero {
  overflow: hidden;
}

.collage-visual {
  min-height: 625px;
}

.collage-photo {
  position: absolute;
  overflow: hidden;
  border: 9px solid rgba(255, 255, 255, 0.9);
  background: #fff;
  box-shadow: var(--shadow-strong);
}

.collage-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s ease;
}

.collage-photo:hover img {
  transform: scale(1.055);
}

.collage-photo-main {
  top: 18px;
  right: 12px;
  width: min(455px, 88%);
  height: 525px;
  border-radius: 48px;
  transform: rotate(2deg);
}

.collage-photo-small {
  left: 0;
  bottom: 24px;
  width: 245px;
  height: 270px;
  border-radius: 36px;
  transform: rotate(-5deg);
}

.floating-location-count {
  position: absolute;
  z-index: 4;
  right: 0;
  bottom: 62px;
  width: 245px;
  padding: 22px;
  display: flex;
  align-items: center;
  gap: 14px;
  border: 1px solid rgba(255, 255, 255, 0.94);
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: var(--shadow-soft);
  animation: floatingCard 6s ease-in-out infinite;
}

.floating-location-count strong {
  font-size: 43px;
  line-height: 1;
  color: #ff7b00;
}

.floating-location-count span {
  color: var(--dark);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.45;
}

.location-directory-section {
  background: rgba(255, 255, 255, 0.42);
}

.location-directory-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.location-directory-card {
  position: relative;
  min-height: 285px;
  padding: 28px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.92);
  border-radius: 34px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: var(--shadow-soft);
}

.location-directory-card::before {
  content: "";
  position: absolute;
  top: -55px;
  right: -45px;
  width: 150px;
  height: 150px;
  border-radius: 50%;
  background: var(--yellow);
  opacity: 0.42;
  transition: transform 0.5s ease;
}

.location-directory-card:nth-child(2)::before { background: var(--blue); }
.location-directory-card:nth-child(3)::before { background: var(--pink); }
.location-directory-card:nth-child(4)::before { background: var(--green); }

.location-directory-card:hover::before {
  transform: scale(1.22);
}

.directory-number {
  position: absolute;
  top: 22px;
  right: 24px;
  z-index: 2;
  color: rgba(37, 48, 68, 0.22);
  font-size: 34px;
  font-weight: 900;
}

.location-directory-card > svg {
  width: 45px;
  height: 45px;
  margin-bottom: 36px;
  padding: 10px;
  border-radius: 17px;
  background: var(--yellow);
  color: var(--dark);
}

.location-directory-card:nth-child(2) > svg { background: var(--blue); }
.location-directory-card:nth-child(3) > svg { background: var(--pink); }
.location-directory-card:nth-child(4) > svg { background: var(--green); }

.location-directory-card h3 {
  margin-bottom: 10px;
  color: var(--dark);
  font-size: 22px;
}

.location-directory-card p {
  min-height: 50px;
  color: #687080;
  font-size: 14px;
  line-height: 1.6;
}

.directory-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 25px;
  color: var(--dark);
  font-size: 13px;
  font-weight: 900;
}

.directory-link svg {
  width: 17px;
  height: 17px;
  transition: transform 0.3s ease;
}

.location-directory-card:hover .directory-link svg {
  transform: translate(3px, 3px);
}

.location-detail-section {
  scroll-margin-top: 125px;
}

.location-tone-yellow { background: linear-gradient(135deg, rgba(255, 217, 92, 0.2), rgba(255,255,255,0.58)); }
.location-tone-blue { background: linear-gradient(135deg, rgba(105, 207, 255, 0.19), rgba(255,255,255,0.6)); }
.location-tone-pink { background: linear-gradient(135deg, rgba(255, 122, 182, 0.16), rgba(255,255,255,0.6)); }
.location-tone-green { background: linear-gradient(135deg, rgba(159, 231, 122, 0.2), rgba(255,255,255,0.62)); }

.location-detail-grid {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  gap: 60px;
  align-items: center;
}

.location-detail-grid.reverse .location-detail-image {
  order: 2;
}

.location-detail-image {
  position: relative;
  min-height: 565px;
  overflow: hidden;
  border: 10px solid rgba(255, 255, 255, 0.88);
  border-radius: 46px;
  box-shadow: var(--shadow-strong);
}

.location-detail-image img {
  width: 100%;
  height: 100%;
  min-height: 565px;
  object-fit: cover;
  transition: transform 0.75s ease;
}

.location-detail-image:hover img {
  transform: scale(1.05);
}

.image-label {
  position: absolute;
  left: 24px;
  bottom: 24px;
  padding: 13px 17px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  color: var(--dark);
  font-size: 14px;
  font-weight: 900;
  box-shadow: var(--shadow-soft);
}

.location-detail-content h2 {
  margin-bottom: 18px;
  color: var(--dark);
  font-size: clamp(38px, 4.6vw, 62px);
  line-height: 1;
  letter-spacing: -2px;
}

.location-detail-content > p {
  margin-bottom: 27px;
  color: #687080;
  font-size: 17px;
  line-height: 1.75;
}

.location-facts {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  margin-bottom: 30px;
}

.location-facts > div {
  display: flex;
  gap: 12px;
  padding: 17px;
  border: 1px solid rgba(255, 255, 255, 0.92);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 12px 28px rgba(37, 48, 68, 0.07);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.location-facts > div:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 35px rgba(37, 48, 68, 0.12);
}

.location-facts svg {
  flex: 0 0 auto;
  width: 21px;
  height: 21px;
  color: #ff7b00;
}

.location-facts span {
  color: #687080;
  font-size: 13px;
  line-height: 1.55;
}

.location-facts strong {
  display: block;
  margin-bottom: 4px;
  color: var(--dark);
  font-size: 13px;
}

.map-explorer-section,
.contact-map-section {
  background: rgba(255, 255, 255, 0.42);
}

.map-tabs {
  width: fit-content;
  max-width: 100%;
  margin: 0 auto 34px;
  padding: 7px;
  display: flex;
  gap: 5px;
  overflow-x: auto;
  border: 1px solid rgba(37, 48, 68, 0.1);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.86);
  box-shadow: 0 15px 35px rgba(37, 48, 68, 0.09);
}

.map-tab {
  flex: 0 0 auto;
  padding: 13px 19px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--dark);
  font-weight: 850;
  cursor: pointer;
  transition: background 0.3s ease, color 0.3s ease, transform 0.3s ease;
}

.map-tab.active {
  background: linear-gradient(135deg, var(--yellow), var(--orange));
  box-shadow: 0 12px 24px rgba(255, 157, 66, 0.25);
}

.map-layout,
.contact-map-layout {
  display: grid;
  grid-template-columns: 1.35fr 0.65fr;
  gap: 22px;
  align-items: stretch;
}

.map-frame {
  position: relative;
  min-height: 570px;
  overflow: hidden;
  border: 8px solid rgba(255, 255, 255, 0.88);
  border-radius: 38px;
  background: #e9eef1;
  box-shadow: var(--shadow-strong);
}

.map-frame iframe {
  width: 100%;
  height: 100%;
  min-height: 570px;
  border: 0;
}

.map-address-bar {
  position: absolute;
  left: 22px;
  right: 22px;
  bottom: 20px;
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 17px 20px;
  border-radius: 24px;
  background: rgba(37, 48, 68, 0.93);
  color: #fff;
  box-shadow: 0 18px 38px rgba(0,0,0,0.2);
}

.map-address-bar svg {
  color: var(--yellow);
}

.map-address-bar strong,
.map-address-bar span {
  display: block;
}

.map-address-bar span {
  margin-top: 4px;
  color: rgba(255,255,255,0.72);
  font-size: 13px;
}

.map-info-panel,
.contact-location-panel {
  padding: 32px;
  border: 1px solid rgba(255, 255, 255, 0.92);
  border-radius: 38px;
  background:
    radial-gradient(circle at 100% 0, rgba(255, 217, 92, 0.22), transparent 32%),
    rgba(255, 255, 255, 0.86);
  box-shadow: var(--shadow-soft);
}

.map-info-panel h3,
.contact-location-panel h2 {
  margin-bottom: 25px;
  color: var(--dark);
  font-size: clamp(30px, 3vw, 46px);
  line-height: 1.05;
  letter-spacing: -1.5px;
}

.map-option-list,
.contact-option-list {
  display: grid;
  gap: 13px;
  margin-bottom: 27px;
}

.map-option-list > div,
.contact-option-list > a,
.contact-option-list > div {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 17px;
  border: 1px solid rgba(37,48,68,0.08);
  border-radius: 22px;
  background: rgba(255,255,255,0.82);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.map-option-list > div:hover,
.contact-option-list > a:hover,
.contact-option-list > div:hover {
  transform: translateX(5px);
  box-shadow: 0 15px 30px rgba(37,48,68,0.1);
}

.map-option-list svg,
.contact-option-list svg {
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  padding: 10px;
  border-radius: 16px;
  background: var(--yellow);
  color: var(--dark);
}

.map-option-list strong,
.map-option-list small,
.contact-option-list strong,
.contact-option-list small {
  display: block;
}

.map-option-list strong,
.contact-option-list strong {
  margin-bottom: 4px;
  color: var(--dark);
  font-size: 14px;
}

.map-option-list small,
.contact-option-list small {
  color: #687080;
  line-height: 1.5;
}

/* =========================================================
   CHILDCARE PAGE
========================================================= */

.childcare-hero-visual {
  display: grid;
  place-items: center;
}

.childcare-main-photo {
  width: min(480px, 90%);
  height: 565px;
  overflow: hidden;
  border: 10px solid rgba(255,255,255,0.9);
  border-radius: 50% 50% 42px 42px;
  background: #fff;
  box-shadow: var(--shadow-strong);
}

.childcare-main-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s ease;
}

.childcare-main-photo:hover img { transform: scale(1.05); }

.care-orbit {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 13px 17px;
  border: 1px solid rgba(255,255,255,0.94);
  border-radius: 999px;
  background: rgba(255,255,255,0.95);
  color: var(--dark);
  font-size: 13px;
  font-weight: 900;
  box-shadow: var(--shadow-soft);
  animation: floatingCard 6s ease-in-out infinite;
}

.care-orbit svg {
  width: 22px;
  height: 22px;
  color: #ff7b00;
}

.orbit-one { top: 75px; left: 0; }
.orbit-two { top: 255px; right: -5px; animation-delay: 1s; }
.orbit-three { bottom: 50px; left: 20px; animation-delay: 2s; }

.care-philosophy-section {
  background: rgba(255,255,255,0.4);
}

.care-pillar-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 21px;
}

.care-pillar-card {
  min-height: 285px;
  padding: 28px;
  border: 1px solid rgba(255,255,255,0.94);
  border-radius: 32px;
  background: rgba(255,255,255,0.88);
  box-shadow: var(--shadow-soft);
}

.care-pillar-card h3,
.care-topic-card h3,
.rhythm-card h3 {
  margin-bottom: 11px;
  color: var(--dark);
  font-size: 21px;
}

.care-pillar-card p,
.care-topic-card p,
.rhythm-card p {
  color: #687080;
  line-height: 1.66;
}

.settling-section {
  background: linear-gradient(135deg, rgba(255,217,92,0.18), rgba(105,207,255,0.17));
}

.settling-grid,
.parent-partnership-grid,
.daily-balance-grid,
.general-contact-grid {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 58px;
  align-items: center;
}

.settling-content h2,
.parent-partnership-content h2,
.daily-balance-content h2,
.general-contact-intro h2 {
  margin-bottom: 18px;
  color: var(--dark);
  font-size: clamp(36px,4.4vw,60px);
  line-height: 1.03;
  letter-spacing: -2px;
}

.settling-content > p,
.parent-partnership-content > p,
.daily-balance-content > p,
.general-contact-intro > p {
  margin-bottom: 28px;
  color: #687080;
  font-size: 17px;
  line-height: 1.75;
}

.settling-steps {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: 14px;
}

.settling-steps > div {
  padding: 20px;
  border: 1px solid rgba(255,255,255,0.92);
  border-radius: 24px;
  background: rgba(255,255,255,0.84);
  box-shadow: 0 13px 30px rgba(37,48,68,0.08);
  transition: transform 0.32s ease, box-shadow 0.32s ease;
}

.settling-steps > div:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 38px rgba(37,48,68,0.13);
}

.settling-steps span {
  display: block;
  margin-bottom: 15px;
  color: rgba(37,48,68,0.25);
  font-size: 27px;
  font-weight: 900;
}

.settling-steps strong {
  display: block;
  margin-bottom: 7px;
  color: var(--dark);
}

.settling-steps p {
  color: #687080;
  font-size: 13px;
  line-height: 1.55;
}

.settling-image,
.parent-partnership-image,
.daily-balance-image {
  position: relative;
  min-height: 565px;
  overflow: hidden;
  border: 10px solid rgba(255,255,255,0.87);
  border-radius: 44px;
  box-shadow: var(--shadow-strong);
}

.settling-image img,
.parent-partnership-image img,
.daily-balance-image img {
  width: 100%;
  height: 100%;
  min-height: 565px;
  object-fit: cover;
  transition: transform 0.72s ease;
}

.settling-image:hover img,
.parent-partnership-image:hover img,
.daily-balance-image:hover img { transform: scale(1.045); }

.image-callout {
  position: absolute;
  left: 22px;
  right: 22px;
  bottom: 22px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 18px;
  border-radius: 22px;
  background: rgba(255,255,255,0.94);
  color: var(--dark);
  font-size: 13px;
  font-weight: 900;
  box-shadow: var(--shadow-soft);
}

.image-callout svg { color: #ff7b00; }

.care-topics-section { background: rgba(255,255,255,0.4); }

.care-topic-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 20px;
}

.care-topic-card {
  min-height: 255px;
  padding: 27px;
  border: 1px solid rgba(255,255,255,0.94);
  border-radius: 30px;
  background: rgba(255,255,255,0.89);
  box-shadow: 0 17px 40px rgba(37,48,68,0.08);
}

.care-topic-card > svg {
  width: 56px;
  height: 56px;
  margin-bottom: 23px;
  padding: 14px;
  border-radius: 20px;
  background: var(--yellow);
  color: var(--dark);
}

.care-topic-card:nth-child(2) > svg { background: var(--green); }
.care-topic-card:nth-child(3) > svg { background: var(--blue); }
.care-topic-card:nth-child(4) > svg { background: var(--pink); }
.care-topic-card:nth-child(5) > svg { background: var(--purple); }
.care-topic-card:nth-child(6) > svg { background: var(--mint); }

.parent-partnership-section {
  background: linear-gradient(135deg, rgba(201,248,225,0.32), rgba(255,248,231,0.78));
}

/* =========================================================
   DAILY LIFE PAGE
========================================================= */

.daily-clock-visual {
  display: grid;
  place-items: center;
}

.daily-photo {
  width: min(470px,90%);
  height: 565px;
  overflow: hidden;
  border: 10px solid rgba(255,255,255,0.9);
  border-radius: 46px;
  box-shadow: var(--shadow-strong);
  transform: rotate(2deg);
}

.daily-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.clock-orbit {
  position: absolute;
  left: 5px;
  bottom: 25px;
  width: 210px;
  height: 210px;
  border: 3px dashed rgba(37,48,68,0.18);
  border-radius: 50%;
  animation: slowSpin 18s linear infinite;
}

.clock-center {
  position: absolute;
  inset: 34px;
  display: grid;
  place-items: center;
  text-align: center;
  border-radius: 50%;
  background: rgba(255,255,255,0.95);
  color: var(--dark);
  box-shadow: var(--shadow-soft);
  animation: reverseSpin 18s linear infinite;
}

.clock-center svg { color: #ff7b00; }
.clock-center strong { font-size: 13px; }

.clock-dot {
  position: absolute;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--yellow);
}
.dot-one { top: -10px; left: 95px; }
.dot-two { right: 13px; bottom: 26px; background: var(--pink); }
.dot-three { left: 6px; bottom: 44px; background: var(--blue); }

@keyframes slowSpin { to { transform: rotate(360deg); } }
@keyframes reverseSpin { to { transform: rotate(-360deg); } }

.daily-flow-section { background: rgba(255,255,255,0.42); }

.expanded-timeline {
  position: relative;
  max-width: 960px;
  margin: 0 auto;
  display: grid;
  gap: 15px;
}

.expanded-timeline::before {
  content: "";
  position: absolute;
  top: 18px;
  bottom: 18px;
  left: 179px;
  width: 3px;
  border-radius: 999px;
  background: linear-gradient(var(--yellow),var(--blue),var(--green),var(--pink));
  opacity: 0.48;
}

.timeline-row {
  position: relative;
  display: grid;
  grid-template-columns: 135px 60px 1fr;
  gap: 20px;
  align-items: center;
}

.timeline-row time {
  color: var(--dark);
  font-size: 14px;
  font-weight: 900;
  text-align: right;
}

.timeline-icon {
  position: relative;
  z-index: 2;
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border: 5px solid var(--cream);
  border-radius: 50%;
  background: var(--yellow);
  color: var(--dark);
  box-shadow: 0 12px 25px rgba(37,48,68,0.12);
  transition: transform 0.3s ease;
}

.timeline-row:nth-child(2) .timeline-icon,
.timeline-row:nth-child(6) .timeline-icon { background: var(--blue); }
.timeline-row:nth-child(3) .timeline-icon,
.timeline-row:nth-child(7) .timeline-icon { background: var(--pink); }
.timeline-row:nth-child(4) .timeline-icon,
.timeline-row:nth-child(8) .timeline-icon { background: var(--green); }

.timeline-row:hover .timeline-icon { transform: scale(1.1) rotate(-6deg); }

.timeline-row > div:last-child {
  padding: 22px 25px;
  border: 1px solid rgba(255,255,255,0.94);
  border-radius: 25px;
  background: rgba(255,255,255,0.88);
  box-shadow: 0 13px 32px rgba(37,48,68,0.07);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.timeline-row:hover > div:last-child {
  transform: translateX(6px);
  box-shadow: 0 20px 42px rgba(37,48,68,0.12);
}

.timeline-row h3 {
  margin-bottom: 7px;
  color: var(--dark);
  font-size: 20px;
}

.timeline-row p {
  color: #687080;
  font-size: 14px;
  line-height: 1.6;
}

.daily-rhythm-section {
  background: linear-gradient(135deg, rgba(255,217,92,0.15), rgba(105,207,255,0.15));
}

.rhythm-card-grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 20px;
}

.rhythm-card {
  min-height: 255px;
  padding: 27px;
  border: 1px solid rgba(255,255,255,0.94);
  border-radius: 30px;
  background: rgba(255,255,255,0.88);
  box-shadow: var(--shadow-soft);
}

.rhythm-card > svg {
  width: 56px;
  height: 56px;
  margin-bottom: 23px;
  padding: 14px;
  border-radius: 20px;
  background: var(--yellow);
  color: var(--dark);
}

.rhythm-card:nth-child(2) > svg { background: var(--pink); }
.rhythm-card:nth-child(3) > svg { background: var(--blue); }
.rhythm-card:nth-child(4) > svg { background: var(--green); }

.daily-balance-section { background: rgba(255,255,255,0.4); }

/* =========================================================
   REGISTRATION PAGE
========================================================= */

.registration-visual,
.contact-hero-visual {
  display: grid;
  place-items: center;
}

.registration-photo,
.contact-photo {
  width: min(450px,88%);
  height: 500px;
  overflow: hidden;
  border: 10px solid rgba(255,255,255,0.9);
  border-radius: 48px;
  box-shadow: var(--shadow-strong);
  transform: rotate(2deg);
}

.registration-photo img,
.contact-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.registration-float,
.contact-floating-card {
  position: absolute;
  left: 0;
  bottom: 65px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 17px 20px;
  border: 1px solid rgba(255,255,255,0.94);
  border-radius: 25px;
  background: rgba(255,255,255,0.95);
  color: var(--dark);
  font-size: 13px;
  font-weight: 900;
  box-shadow: var(--shadow-soft);
  animation: floatingCard 6s ease-in-out infinite;
}

.registration-float svg,
.contact-floating-card > svg { color: #ff7b00; }

.registration-steps-section {
  padding: 55px 0;
  background: rgba(255,255,255,0.42);
}

.registration-steps {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 16px;
}

.registration-steps > div {
  position: relative;
  padding: 22px;
  display: flex;
  align-items: center;
  gap: 12px;
  border: 1px solid rgba(255,255,255,0.94);
  border-radius: 25px;
  background: rgba(255,255,255,0.9);
  box-shadow: 0 13px 30px rgba(37,48,68,0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.registration-steps > div:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 38px rgba(37,48,68,0.13);
}

.registration-steps span {
  color: rgba(37,48,68,0.22);
  font-size: 25px;
  font-weight: 900;
}

.registration-steps svg { color: #ff7b00; }
.registration-steps strong { color: var(--dark); font-size: 14px; }

.registration-form-section {
  background: linear-gradient(135deg, rgba(255,217,92,0.12), rgba(105,207,255,0.13));
}

.registration-layout {
  display: grid;
  grid-template-columns: minmax(0,1.25fr) minmax(300px,0.75fr);
  gap: 30px;
  align-items: start;
}

.registration-form,
.contact-form {
  padding: 38px;
  border: 1px solid rgba(255,255,255,0.94);
  border-radius: 40px;
  background: rgba(255,255,255,0.9);
  box-shadow: var(--shadow-strong);
}

.form-heading h2 {
  margin-bottom: 10px;
  color: var(--dark);
  font-size: clamp(35px,4vw,54px);
  letter-spacing: -1.6px;
}

.form-heading p { color: #687080; }

.form-section-title {
  margin: 34px 0 20px;
  display: flex;
  align-items: center;
  gap: 14px;
}

.form-section-title > span {
  flex: 0 0 auto;
  width: 45px;
  height: 45px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  background: var(--yellow);
  color: var(--dark);
  font-weight: 900;
}

.form-section-title strong,
.form-section-title small { display: block; }
.form-section-title strong { margin-bottom: 4px; color: var(--dark); }
.form-section-title small { color: #687080; }

.form-grid {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: 16px;
}

.form-field {
  display: grid;
  gap: 8px;
}

.form-field.full { grid-column: 1 / -1; }

.form-field > span,
.weekday-field legend {
  color: var(--dark);
  font-size: 13px;
  font-weight: 850;
}

.form-field input,
.form-field select,
.form-field textarea {
  width: 100%;
  border: 1px solid rgba(37,48,68,0.14);
  border-radius: 16px;
  background: rgba(255,255,255,0.92);
  color: var(--dark);
  font-size: 15px;
  outline: 0;
  transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.form-field input,
.form-field select { min-height: 52px; padding: 0 15px; }
.form-field textarea { padding: 15px; resize: vertical; }

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
  border-color: var(--orange);
  box-shadow: 0 0 0 4px rgba(255,157,66,0.15);
  transform: translateY(-1px);
}

.weekday-field { border: 0; }

.weekday-options {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.weekday-options label {
  cursor: pointer;
}

.weekday-options input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.weekday-options span {
  display: inline-flex;
  padding: 11px 14px;
  border: 1px solid rgba(37,48,68,0.12);
  border-radius: 999px;
  background: #fff;
  color: var(--dark);
  font-size: 13px;
  font-weight: 800;
  transition: background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}

.weekday-options input:checked + span {
  background: var(--yellow);
  box-shadow: 0 9px 20px rgba(255,217,92,0.3);
  transform: translateY(-2px);
}

.consent-field {
  margin: 23px 0;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: #687080;
  font-size: 13px;
  line-height: 1.55;
}

.consent-field input {
  margin-top: 3px;
  accent-color: var(--orange);
}

.form-status {
  display: none;
  margin-top: 18px;
  padding: 15px 17px;
  border-radius: 17px;
  font-size: 13px;
  line-height: 1.55;
}

.form-status.success {
  display: block;
  background: rgba(159,231,122,0.25);
  color: #244327;
}

.registration-sidebar {
  position: sticky;
  top: 125px;
  display: grid;
  gap: 18px;
}

.registration-contact-card,
.registration-help-card,
.registration-note {
  padding: 27px;
  border: 1px solid rgba(255,255,255,0.94);
  border-radius: 30px;
  background: rgba(255,255,255,0.88);
  box-shadow: var(--shadow-soft);
}

.registration-contact-card h3,
.registration-help-card h3 {
  margin-bottom: 10px;
  color: var(--dark);
  font-size: 22px;
}

.registration-contact-card p,
.registration-help-card p,
.registration-note p {
  color: #687080;
  font-size: 14px;
  line-height: 1.65;
}

.registration-contact-card > a {
  display: block;
  margin-top: 10px;
  color: var(--dark);
  font-size: 13px;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.registration-help-card > svg,
.registration-note > svg {
  width: 48px;
  height: 48px;
  margin-bottom: 18px;
  padding: 12px;
  border-radius: 18px;
  background: var(--mint);
  color: var(--dark);
}

.registration-help-card .btn { margin-top: 20px; width: 100%; }
.registration-note { display: flex; gap: 14px; }
.registration-note > svg { flex: 0 0 auto; margin: 0; }

.faq-section { background: rgba(255,255,255,0.42); }
.faq-list { max-width: 900px; margin: 0 auto; display: grid; gap: 13px; }
.faq-item { overflow: hidden; border: 1px solid rgba(255,255,255,0.94); border-radius: 24px; background: rgba(255,255,255,0.9); box-shadow: 0 13px 30px rgba(37,48,68,0.07); }
.faq-item > button { width: 100%; padding: 20px 22px; display: flex; justify-content: space-between; align-items: center; gap: 15px; border: 0; background: transparent; color: var(--dark); font-size: 16px; font-weight: 900; text-align: left; cursor: pointer; }
.faq-item > button svg { transition: transform 0.3s ease; }
.faq-item.open > button svg { transform: rotate(180deg); }
.faq-answer { max-height: 0; overflow: hidden; transition: max-height 0.4s ease; }
.faq-answer p { padding: 0 22px 22px; color: #687080; line-height: 1.7; }
.faq-item.open .faq-answer { max-height: 220px; }

/* =========================================================
   CONTACT PAGE
========================================================= */

.contact-floating-card {
  max-width: 290px;
}

.contact-floating-card strong,
.contact-floating-card span { display: block; }
.contact-floating-card strong { margin-bottom: 4px; color: var(--dark); }
.contact-floating-card span { color: #687080; font-size: 12px; overflow-wrap: anywhere; }

.contact-map-layout { grid-template-columns: 1.25fr 0.75fr; }
.contact-main-map { min-height: 630px; }
.contact-main-map iframe { min-height: 630px; }

.all-contact-cards-section { background: linear-gradient(135deg, rgba(255,217,92,0.14), rgba(105,207,255,0.14)); }
.all-contact-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 19px; }
.all-contact-card { position: relative; min-height: 280px; padding: 28px; overflow: hidden; border: 1px solid rgba(255,255,255,0.94); border-radius: 31px; background: rgba(255,255,255,0.9); box-shadow: var(--shadow-soft); }
.contact-color { position: absolute; top: -45px; right: -45px; width: 135px; height: 135px; border-radius: 50%; opacity: 0.5; }
.all-contact-card h3 { margin: 35px 0 12px; color: var(--dark); font-size: 21px; }
.all-contact-card p { margin-bottom: 18px; color: #687080; line-height: 1.65; }
.all-contact-card a { display: block; margin-top: 9px; color: var(--dark); font-size: 12px; font-weight: 800; overflow-wrap: anywhere; transition: color 0.25s ease, transform 0.25s ease; }
.all-contact-card a:hover { color: #ff7b00; transform: translateX(4px); }

.general-contact-section { background: rgba(255,255,255,0.42); }
.general-contact-grid { align-items: start; }
.general-contact-email { margin-top: 26px; display: flex; align-items: center; gap: 14px; padding: 20px; border-radius: 24px; background: rgba(255,255,255,0.88); box-shadow: var(--shadow-soft); }
.general-contact-email svg { width: 48px; height: 48px; padding: 12px; border-radius: 18px; background: var(--yellow); color: var(--dark); }
.general-contact-email strong,.general-contact-email span { display: block; }
.general-contact-email strong { color: var(--dark); overflow-wrap: anywhere; }
.general-contact-email span { margin-top: 4px; color: #687080; font-size: 13px; }

/* =========================================================
   RESPONSIVE — NEW PAGES
========================================================= */

@media (max-width: 1080px) {
  .location-directory-grid,
  .care-pillar-grid,
  .rhythm-card-grid,
  .all-contact-grid,
  .registration-steps {
    grid-template-columns: repeat(2,1fr);
  }

  .location-detail-grid,
  .location-detail-grid.reverse,
  .settling-grid,
  .parent-partnership-grid,
  .daily-balance-grid,
  .general-contact-grid,
  .registration-layout,
  .map-layout,
  .contact-map-layout {
    grid-template-columns: 1fr;
  }

  .location-detail-grid.reverse .location-detail-image { order: initial; }
  .care-topic-grid { grid-template-columns: repeat(2,1fr); }
  .registration-sidebar { position: static; grid-template-columns: repeat(2,1fr); }
  .registration-note { grid-column: 1 / -1; }
  .map-info-panel,
  .contact-location-panel { padding: 30px; }
}

@media (max-width: 720px) {
  .page-visual,
  .collage-visual {
    min-height: 510px;
  }

  .collage-photo-main,
  .childcare-main-photo,
  .daily-photo,
  .registration-photo,
  .contact-photo {
    width: 92%;
    height: 455px;
  }

  .collage-photo-small { width: 165px; height: 190px; }
  .floating-location-count { width: 210px; right: 0; bottom: 36px; }
  .floating-location-count strong { font-size: 34px; }

  .location-directory-grid,
  .care-pillar-grid,
  .care-topic-grid,
  .rhythm-card-grid,
  .all-contact-grid,
  .registration-steps,
  .registration-sidebar,
  .settling-steps,
  .location-facts {
    grid-template-columns: 1fr;
  }

  .location-detail-image,
  .location-detail-image img,
  .settling-image,
  .settling-image img,
  .parent-partnership-image,
  .parent-partnership-image img,
  .daily-balance-image,
  .daily-balance-image img {
    min-height: 420px;
  }

  .map-layout,
  .contact-map-layout { gap: 17px; }
  .map-frame,
  .map-frame iframe,
  .contact-main-map,
  .contact-main-map iframe { min-height: 480px; }
  .map-address-bar { left: 12px; right: 12px; bottom: 12px; }
  .map-info-panel,
  .contact-location-panel { border-radius: 30px; padding: 24px; }

  .orbit-one { top: 30px; }
  .orbit-two { top: 230px; }
  .orbit-three { bottom: 25px; }

  .expanded-timeline::before { left: 28px; }
  .timeline-row { grid-template-columns: 58px 1fr; gap: 14px; }
  .timeline-row time { grid-column: 2; text-align: left; color: #ff7b00; }
  .timeline-icon { grid-column: 1; grid-row: 1 / span 2; }
  .timeline-row > div:last-child { grid-column: 2; }

  .registration-form,
  .contact-form { padding: 27px 20px; border-radius: 30px; }
  .form-grid { grid-template-columns: 1fr; }
  .form-field.full { grid-column: auto; }
  .registration-note { grid-column: auto; }

  .clock-orbit { width: 165px; height: 165px; left: 0; bottom: 8px; }
  .clock-center { inset: 27px; }
  .dot-one { left: 72px; }

  .map-tabs { justify-content: flex-start; width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  .reveal { opacity: 1; transform: none; }
}


/* =========================================================
   GLOBAL MOTION SYSTEM — DEANEX-INSPIRED, JOEY-TONED
========================================================= */

.footer-bottom {
  margin-top: 38px;
  padding-top: 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
}

.footer-bottom p {
  margin: 0;
  color: rgba(255, 255, 255, 0.58);
  font-size: 13px;
}

.site-credit {
  display: flex;
  align-items: center;
  gap: 7px;
}

.site-credit a {
  display: inline-flex;
  margin: 0;
  color: var(--yellow);
  font-weight: 900;
  letter-spacing: 0.08em;
  transition: transform 0.28s ease, color 0.28s ease, text-shadow 0.28s ease;
}

.site-credit a:hover {
  color: #fff;
  transform: translateY(-2px);
  text-shadow: 0 0 18px rgba(255, 217, 92, 0.55);
}

/* Ambient orbit and floating pills are injected by main.js into every hero. */
.hero-visual,
.page-visual,
.about-hero-visual {
  isolation: isolate;
}

.joey-motion-orbit {
  position: absolute;
  z-index: 7;
  right: 3%;
  top: 3%;
  width: 118px;
  height: 118px;
  border: 1px dashed rgba(37, 48, 68, 0.2);
  border-radius: 50%;
  pointer-events: none;
  animation: joeyOrbitSpin 14s linear infinite;
}

.joey-motion-orbit::before {
  content: "";
  position: absolute;
  inset: 28px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #fff 0 11%, var(--yellow) 12% 58%, var(--orange) 100%);
  box-shadow: 0 14px 34px rgba(255, 157, 66, 0.3);
  animation: joeyOrbitCounter 14s linear infinite;
}

.joey-motion-orbit span {
  position: absolute;
  top: 4px;
  left: 50%;
  width: 19px;
  height: 19px;
  margin-left: -9.5px;
  border: 4px solid rgba(255, 255, 255, 0.94);
  border-radius: 50%;
  background: var(--blue);
  box-shadow: 0 7px 18px rgba(37, 48, 68, 0.2);
}

.joey-motion-orbit span:nth-child(2) {
  top: auto;
  bottom: 9px;
  width: 13px;
  height: 13px;
  margin-left: -6.5px;
  border-width: 3px;
  background: var(--pink);
}

.hero-motion-pill {
  position: absolute;
  z-index: 9;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 11px 15px;
  border: 1px solid rgba(255, 255, 255, 0.92);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.9);
  color: var(--dark);
  font-size: 12px;
  font-weight: 900;
  box-shadow: 0 16px 36px rgba(37, 48, 68, 0.13);
  backdrop-filter: blur(12px);
  pointer-events: none;
}

.hero-motion-pill svg {
  width: 17px;
  height: 17px;
  color: #ff7b00;
}

.hero-motion-pill.pill-one {
  left: -4px;
  top: 24%;
  animation: joeyPillFloatOne 6.2s ease-in-out infinite;
}

.hero-motion-pill.pill-two {
  right: -3px;
  top: 48%;
  animation: joeyPillFloatTwo 7.1s ease-in-out 0.7s infinite;
}

.hero-motion-pill.pill-three {
  left: 10%;
  bottom: 7%;
  animation: joeyPillFloatThree 6.7s ease-in-out 1.2s infinite;
}

@keyframes joeyOrbitSpin { to { transform: rotate(360deg); } }
@keyframes joeyOrbitCounter { to { transform: rotate(-360deg); } }
@keyframes joeyPillFloatOne {
  0%,100% { transform: translate3d(0,0,0) rotate(-1deg); }
  50% { transform: translate3d(12px,-16px,0) rotate(2deg); }
}
@keyframes joeyPillFloatTwo {
  0%,100% { transform: translate3d(0,0,0) rotate(1deg); }
  50% { transform: translate3d(-13px,15px,0) rotate(-2deg); }
}
@keyframes joeyPillFloatThree {
  0%,100% { transform: translate3d(0,0,0); }
  50% { transform: translate3d(10px,-13px,0); }
}

.motion-surface {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  transition:
    transform 0.38s cubic-bezier(0.2, 0.75, 0.25, 1),
    box-shadow 0.38s ease,
    border-color 0.38s ease,
    background 0.38s ease;
}

.motion-surface::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -65%;
  left: -45%;
  width: 42%;
  height: 230%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.56), transparent);
  transform: rotate(18deg) translateX(-260%);
  transition: transform 0.9s ease;
  pointer-events: none;
}

.motion-surface:hover::before {
  transform: rotate(18deg) translateX(720%);
}

.motion-surface:hover {
  border-color: rgba(255, 157, 66, 0.32);
  box-shadow: 0 28px 62px rgba(37, 48, 68, 0.14);
}

.motion-icon {
  transition: transform 0.42s cubic-bezier(0.2, 0.75, 0.25, 1), filter 0.32s ease;
}

.motion-surface:hover .motion-icon,
.motion-surface:hover > svg:first-child,
.motion-surface:hover .feature-icon,
.motion-surface:hover .timeline-icon {
  transform: translateY(-4px) rotate(-5deg) scale(1.08);
  filter: drop-shadow(0 10px 12px rgba(37, 48, 68, 0.13));
}

.motion-row {
  transition: transform 0.32s ease, box-shadow 0.32s ease, background 0.32s ease;
}

.motion-row:hover {
  transform: translateX(7px);
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 18px 38px rgba(37, 48, 68, 0.11);
}

.btn {
  will-change: transform;
}

.btn:hover {
  transform: translateY(-4px) scale(1.018);
}

.btn:hover svg {
  animation: joeyArrowNudge 0.8s ease-in-out infinite alternate;
}

@keyframes joeyArrowNudge {
  from { transform: translateX(2px); }
  to { transform: translateX(7px); }
}

.nav-shell {
  transition: transform 0.35s ease, box-shadow 0.35s ease, background 0.35s ease;
}

.site-header.is-scrolled .nav-shell {
  transform: translateY(-5px);
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 22px 52px rgba(37, 48, 68, 0.16);
}

/* =========================================================
   JOBS PAGE
========================================================= */

.jobs-page-hero { background: linear-gradient(135deg, rgba(255,217,92,0.13), rgba(105,207,255,0.12)); }
.jobs-hero-visual { min-height: 560px; }
.jobs-photo { position:absolute; inset: 25px 15px 25px 45px; overflow:hidden; border:10px solid rgba(255,255,255,0.9); border-radius:45px; box-shadow:var(--shadow-strong); transform:rotate(1.5deg); }
.jobs-photo img { width:100%; height:100%; object-fit:cover; }
.jobs-float { position:absolute; z-index:5; display:flex; align-items:center; gap:10px; padding:14px 17px; border-radius:999px; background:rgba(255,255,255,0.94); color:var(--dark); font-size:13px; font-weight:900; box-shadow:var(--shadow-soft); }
.jobs-float svg { width:19px; color:#ff7b00; }
.jobs-float-one { left:0; top:110px; animation:floatingCard 6s ease-in-out infinite; }
.jobs-float-two { right:0; bottom:95px; animation:floatingCard 6.8s ease-in-out 1s infinite; }
.jobs-values-section { background:rgba(255,255,255,0.42); }
.jobs-value-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.jobs-value-card { padding:31px; min-height:250px; border:1px solid rgba(255,255,255,0.94); border-radius:32px; background:rgba(255,255,255,0.88); box-shadow:var(--shadow-soft); }
.jobs-value-card > svg { width:60px; height:60px; margin-bottom:25px; padding:15px; border-radius:22px; background:var(--yellow); color:var(--dark); }
.jobs-value-card:nth-child(2) > svg { background:var(--blue); }
.jobs-value-card:nth-child(3) > svg { background:var(--green); }
.jobs-value-card h3 { margin-bottom:11px; color:var(--dark); font-size:23px; }
.jobs-value-card p { line-height:1.7; }
.apprenticeship-section { background:linear-gradient(135deg,rgba(201,248,225,0.34),rgba(255,248,231,0.88)); }
.apprenticeship-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center; }
.apprenticeship-content h2 { margin-bottom:18px; color:var(--dark); font-size:clamp(34px,4.4vw,58px); line-height:1.04; letter-spacing:-2px; }
.apprenticeship-content > p { margin-bottom:26px; font-size:18px; line-height:1.75; }
.apprenticeship-card { padding:38px; border:1px solid rgba(255,255,255,0.94); border-radius:38px; background:rgba(255,255,255,0.9); box-shadow:var(--shadow-strong); }
.apprenticeship-card > svg { width:66px; height:66px; margin-bottom:24px; padding:17px; border-radius:24px; background:var(--pink); color:var(--dark); }
.apprenticeship-card h3 { margin-bottom:13px; color:var(--dark); font-size:27px; }
.apprenticeship-card p { margin-bottom:24px; line-height:1.72; }

/* =========================================================
   PARTNERS PAGE
========================================================= */
.partners-page-hero { background:linear-gradient(135deg,rgba(105,207,255,0.13),rgba(255,217,92,0.13)); }
.partners-visual { display:grid; place-items:center; min-height:540px; }
.partners-orbit { position:relative; width:370px; height:370px; border:2px dashed rgba(37,48,68,0.18); border-radius:50%; animation:joeyOrbitSpin 23s linear infinite; }
.partners-orbit::before { content:""; position:absolute; inset:52px; border:1px solid rgba(37,48,68,0.12); border-radius:50%; }
.partners-center { position:absolute; inset:105px; display:grid; place-items:center; border-radius:50%; background:linear-gradient(135deg,var(--yellow),var(--pink)); box-shadow:0 28px 60px rgba(255,122,182,.3); animation:joeyOrbitCounter 23s linear infinite; }
.partners-center svg { width:70px; height:70px; color:var(--white); }
.partner-orbit-dot { position:absolute; width:74px; height:74px; border:9px solid rgba(255,255,255,.94); border-radius:50%; box-shadow:var(--shadow-soft); }
.partner-dot-one { top:-20px; left:145px; background:var(--blue); }
.partner-dot-two { right:-15px; bottom:60px; background:var(--green); }
.partner-dot-three { left:5px; bottom:35px; background:var(--pink); }
.partner-cards-section { background:rgba(255,255,255,.42); }
.partner-card-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.partner-card { min-height:270px; padding:31px; border:1px solid rgba(255,255,255,.94); border-radius:32px; background:rgba(255,255,255,.9); box-shadow:var(--shadow-soft); }
.partner-card > svg { width:62px; height:62px; margin-bottom:25px; padding:16px; border-radius:22px; background:var(--mint); color:var(--dark); }
.partner-card h3 { margin-bottom:12px; color:var(--dark); font-size:24px; }
.partner-card p { line-height:1.72; }
.business-service-section { background:linear-gradient(135deg,rgba(255,217,92,.16),rgba(255,122,182,.12)); }
.business-service-box { padding:48px; display:grid; grid-template-columns:1fr auto; gap:36px; align-items:center; border:1px solid rgba(255,255,255,.94); border-radius:42px; background:rgba(255,255,255,.88); box-shadow:var(--shadow-strong); }
.business-service-box h2 { margin-bottom:16px; color:var(--dark); font-size:clamp(32px,4vw,52px); line-height:1.06; letter-spacing:-1.8px; }
.business-service-box p { max-width:760px; font-size:17px; line-height:1.75; }

/* =========================================================
   LEGAL & 404 PAGES
========================================================= */
.legal-hero { padding:150px 0 55px; }
.legal-hero-card { position:relative; overflow:hidden; padding:54px; border:1px solid rgba(255,255,255,.94); border-radius:44px; background:radial-gradient(circle at 88% 12%,rgba(105,207,255,.38),transparent 26%),rgba(255,255,255,.88); box-shadow:var(--shadow-strong); }
.privacy-legal-hero .legal-hero-card { background:radial-gradient(circle at 88% 12%,rgba(159,231,122,.36),transparent 26%),rgba(255,255,255,.88); }
.legal-icon { width:74px; height:74px; margin-bottom:24px; display:grid; place-items:center; border-radius:26px; background:var(--yellow); box-shadow:var(--shadow-soft); }
.legal-icon svg { width:34px; height:34px; color:var(--dark); }
.legal-hero h1 { margin-bottom:15px; color:var(--dark); font-size:clamp(46px,6vw,76px); letter-spacing:-3px; }
.legal-hero p { max-width:700px; font-size:18px; line-height:1.7; }
.legal-content-section { padding-top:45px; background:rgba(255,255,255,.38); }
.legal-layout { display:grid; grid-template-columns:320px 1fr; gap:34px; align-items:start; }
.legal-company-card { position:sticky; top:128px; padding:30px; border:1px solid rgba(255,255,255,.94); border-radius:32px; background:rgba(255,255,255,.9); box-shadow:var(--shadow-soft); }
.legal-company-card img { width:78px; margin-bottom:18px; }
.legal-company-card > svg { width:62px; height:62px; margin-bottom:20px; padding:15px; border-radius:22px; background:var(--mint); color:var(--dark); }
.legal-company-card h2 { margin-bottom:12px; color:var(--dark); font-size:24px; }
.legal-company-card p { margin-bottom:17px; line-height:1.7; }
.legal-company-card a { color:#ff7b00; font-weight:800; overflow-wrap:anywhere; }
.legal-article { padding:42px; border:1px solid rgba(255,255,255,.94); border-radius:38px; background:rgba(255,255,255,.9); box-shadow:var(--shadow-soft); }
.legal-article h2 { margin-bottom:26px; color:var(--dark); font-size:34px; letter-spacing:-1px; }
.legal-article h3 { margin:28px 0 10px; color:var(--dark); font-size:20px; }
.legal-article p { line-height:1.82; }
.not-found-section { min-height:100vh; padding:150px 0 90px; display:grid; place-items:center; position:relative; overflow:hidden; text-align:center; }
.not-found-content { position:relative; z-index:2; max-width:820px; }
.not-found-content h1 { margin-bottom:20px; color:var(--dark); font-size:clamp(48px,7vw,90px); line-height:.98; letter-spacing:-3px; }
.not-found-content h1 span { background:linear-gradient(135deg,#ff7b00,#ff5aa8,#25aeea); -webkit-background-clip:text; color:transparent; }
.not-found-content p { max-width:650px; margin:0 auto 30px; font-size:18px; line-height:1.75; }
.not-found-orbit { position:absolute; left:50%; top:50%; width:620px; height:620px; margin:-310px 0 0 -310px; border:1px dashed rgba(37,48,68,.12); border-radius:50%; animation:joeyOrbitSpin 30s linear infinite; }
.not-found-planet { position:absolute; inset:180px; display:grid; place-items:center; border-radius:50%; background:linear-gradient(135deg,var(--yellow),var(--pink)); box-shadow:0 35px 90px rgba(255,122,182,.25); opacity:.22; }
.not-found-planet img { width:100px; }
.not-found-moon { position:absolute; top:30px; left:50%; width:60px; height:60px; margin-left:-30px; border:8px solid rgba(255,255,255,.92); border-radius:50%; background:var(--blue); box-shadow:var(--shadow-soft); }

@media (max-width:1080px) {
  .jobs-value-grid,.partner-card-grid { grid-template-columns:repeat(2,1fr); }
  .apprenticeship-grid,.business-service-box,.legal-layout { grid-template-columns:1fr; }
  .legal-company-card { position:static; }
  .business-service-box .btn { justify-self:start; }
}

@media (max-width:720px) {
  .hero { padding-top:116px; }
  .page-hero { padding-top:126px; }
  .footer-bottom { flex-direction:column; align-items:flex-start; }
  .hero-motion-pill.pill-two { right:0; top:56%; }
  .hero-motion-pill.pill-three { display:none; }
  .joey-motion-orbit { width:92px; height:92px; }
  .joey-motion-orbit::before { inset:22px; }
  .jobs-value-grid,.partner-card-grid { grid-template-columns:1fr; }
  .jobs-photo { inset:20px 0; }
  .jobs-float-one { top:55px; }
  .jobs-float-two { bottom:55px; }
  .partners-orbit { width:290px; height:290px; }
  .partners-center { inset:82px; }
  .partner-dot-one { left:108px; }
  .business-service-box,.legal-hero-card,.legal-article { padding:30px 22px; border-radius:32px; }
  .legal-hero { padding-top:125px; }
  .not-found-orbit { width:430px; height:430px; margin:-215px 0 0 -215px; }
  .not-found-planet { inset:125px; }
}

.site-footer > .container.footer-grid > .footer-bottom {
  grid-column: 1 / -1;
}

.motion-surface::before { z-index: 1; }
.motion-surface > * { position: relative; z-index: 2; }


/* =========================================================
   REFINED INTERACTIONS & VISUAL FIXES
   ========================================================= */

/* Footer identity */
.footer-brand {
  gap: 17px;
  width: fit-content;
  padding: 8px 14px 8px 8px;
  border-radius: 24px;
  background: rgba(255,255,255,0.055);
  transition: transform .35s ease, background .35s ease, box-shadow .35s ease;
}
.footer-brand:hover {
  transform: translateY(-4px);
  background: rgba(255,255,255,0.09);
  box-shadow: 0 18px 38px rgba(0,0,0,.18);
}
.footer-brand img {
  width: 82px;
  height: 92px;
  object-fit: contain;
  filter: drop-shadow(0 14px 22px rgba(0,0,0,.26));
}
.footer-brand strong { font-size: 21px; letter-spacing: -.5px; }

/* More pronounced, asymmetric floating hero cards */
.floating-card-one {
  animation: joeyFloatCardOne 5.2s cubic-bezier(.45,.05,.55,.95) infinite !important;
  will-change: transform;
}
.floating-card-two {
  animation: joeyFloatCardTwo 6.1s cubic-bezier(.45,.05,.55,.95) .65s infinite !important;
  will-change: transform;
}
@keyframes joeyFloatCardOne {
  0%,100% { transform: translate3d(0,0,0) rotate(-1.2deg); }
  48% { transform: translate3d(8px,-24px,0) rotate(1.5deg); }
  72% { transform: translate3d(-3px,-13px,0) rotate(.4deg); }
}
@keyframes joeyFloatCardTwo {
  0%,100% { transform: translate3d(0,0,0) rotate(1deg); }
  45% { transform: translate3d(-9px,-22px,0) rotate(-1.6deg); }
  72% { transform: translate3d(3px,-10px,0) rotate(-.4deg); }
}

/* Reliable icon rendering */
.story-mini-card > svg,
.care-pillar-card .feature-icon > svg,
.timeline-icon > svg {
  display: block !important;
  width: 26px;
  height: 26px;
  stroke: currentColor;
  opacity: 1 !important;
  visibility: visible !important;
}
.story-mini-card > svg {
  width: 48px;
  height: 48px;
  padding: 11px;
  border-radius: 17px;
  background: linear-gradient(135deg,var(--mint),#fff);
  box-shadow: 0 12px 25px rgba(37,48,68,.1);
}

/* Team layout: two clear cards per row; the co-leadership card shows both people fully. */
.location-team-grid {
  max-width: 1120px;
  margin-inline: auto;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 28px;
}
.location-team-photo { height: 430px; }
.team-duo-stage {
  display: grid !important;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 10px;
  padding: 10px;
  background: linear-gradient(135deg,rgba(105,207,255,.22),rgba(255,217,92,.2));
}
.team-duo-stage::after { display: none; }
.team-person-photo {
  position: relative;
  min-width: 0;
  height: 100%;
  overflow: hidden;
  border-radius: 25px;
  background: #eef3f7;
}
.team-person-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transition: transform .65s cubic-bezier(.2,.75,.25,1);
}
.team-person-photo figcaption {
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 12px;
  z-index: 2;
  padding: 10px 12px;
  border-radius: 16px;
  background: rgba(255,255,255,.92);
  color: var(--dark);
  font-size: 13px;
  font-weight: 900;
  text-align: center;
  box-shadow: 0 12px 25px rgba(37,48,68,.13);
  backdrop-filter: blur(10px);
}
.team-card-duo:hover .team-person-photo:first-child img { transform: scale(1.045) translateX(2px); }
.team-card-duo:hover .team-person-photo:nth-child(2) img { transform: scale(1.045) translateX(-2px); }
.team-duo-stage .location-team-tag { left: 50%; transform: translateX(-50%); white-space: nowrap; }

/* Location directory — numbers are a deliberate badge, never behind text. */
.location-directory-card {
  min-height: 310px;
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-areas:
    "number icon"
    "title title"
    "address address"
    "link link";
  align-content: start;
  gap: 0;
}
.directory-number {
  position: static;
  grid-area: number;
  justify-self: start;
  align-self: center;
  display: inline-flex;
  min-width: 52px;
  min-height: 38px;
  align-items: center;
  justify-content: center;
  padding: 7px 12px;
  border-radius: 999px;
  background: rgba(37,48,68,.075);
  color: var(--dark);
  font-size: 16px;
  letter-spacing: .08em;
}
.location-directory-card > svg {
  grid-area: icon;
  justify-self: end;
  margin: 0 0 28px;
}
.location-directory-card h3 { grid-area: title; }
.location-directory-card p { grid-area: address; min-height: 48px; }
.location-directory-card .directory-link { grid-area: link; }

/* Text content must never receive the shiny bordered card treatment. */
.location-detail-content,
.location-detail-content:hover,
.location-detail-content.motion-surface,
.location-detail-content.motion-surface:hover {
  overflow: visible !important;
  border: 0 !important;
  outline: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
}
.location-detail-content::before,
.location-detail-content::after { display: none !important; }

/* Remove generic border-colour animation; motion stays through elevation and shine. */
.motion-surface { transition: transform .38s cubic-bezier(.2,.75,.25,1), box-shadow .38s ease, background .38s ease; }
.motion-surface:hover { border-color: inherit; }

/* Childcare hero orbit labels now follow distinct motion paths. */
.care-orbit { will-change: transform; }
.care-orbit.orbit-one { animation: careFloatOne 5.5s ease-in-out infinite !important; }
.care-orbit.orbit-two { animation: careFloatTwo 6.4s ease-in-out .7s infinite !important; }
.care-orbit.orbit-three { animation: careFloatThree 5.9s ease-in-out 1.1s infinite !important; }
@keyframes careFloatOne { 0%,100%{transform:translate3d(0,0,0) rotate(-1deg)} 50%{transform:translate3d(12px,-22px,0) rotate(2deg)} }
@keyframes careFloatTwo { 0%,100%{transform:translate3d(0,0,0) rotate(1deg)} 50%{transform:translate3d(-14px,18px,0) rotate(-2deg)} }
@keyframes careFloatThree { 0%,100%{transform:translate3d(0,0,0)} 50%{transform:translate3d(10px,-18px,0) rotate(1deg)} }

.care-pillar-card .feature-icon {
  position: relative;
  overflow: visible;
  transition: transform .42s cubic-bezier(.2,.75,.25,1), box-shadow .35s ease;
}
.care-pillar-card .feature-icon::after {
  content:"";
  position:absolute;
  inset:-7px;
  border:1px dashed rgba(37,48,68,.18);
  border-radius:28px;
  opacity:0;
  transform:scale(.8) rotate(0);
  transition:opacity .35s ease, transform .65s ease;
}
.care-pillar-card:hover .feature-icon { transform:translateY(-7px) rotate(-4deg) scale(1.06); box-shadow:0 18px 34px rgba(37,48,68,.14); }
.care-pillar-card:hover .feature-icon::after { opacity:1; transform:scale(1) rotate(18deg); }

/* Settling-in steps: staggered, warm, interactive rather than outlined. */
.settling-steps > div {
  position: relative;
  overflow: hidden;
  min-height: 185px;
  background: linear-gradient(145deg,rgba(255,255,255,.94),rgba(255,255,255,.72));
  border-color: transparent;
  transition: transform .38s cubic-bezier(.2,.75,.25,1), box-shadow .38s ease, background .38s ease;
}
.settling-steps > div::after {
  content:"";
  position:absolute;
  width:100px;
  height:100px;
  right:-42px;
  bottom:-42px;
  border-radius:50%;
  background:var(--yellow);
  opacity:.22;
  transition:transform .45s ease, opacity .45s ease;
}
.settling-steps > div:nth-child(2)::after { background:var(--blue); }
.settling-steps > div:nth-child(3)::after { background:var(--pink); }
.settling-steps > div:nth-child(4)::after { background:var(--green); }
.settling-steps > div:hover {
  transform: translateY(-10px) rotate(-.5deg);
  border-color: transparent;
  background:#fff;
  box-shadow:0 26px 52px rgba(37,48,68,.14);
}
.settling-steps > div:hover::after { transform:scale(1.45); opacity:.3; }
.settling-steps span { position:relative; z-index:2; width:48px; height:48px; display:grid; place-items:center; margin-bottom:18px; border-radius:16px; background:rgba(37,48,68,.06); color:var(--dark); font-size:16px; }
.settling-steps strong,.settling-steps p { position:relative; z-index:2; }

/* Daily clock: obvious orbit, breathing centre and pulsing satellites. */
.clock-orbit {
  box-shadow: 0 0 0 12px rgba(255,255,255,.34), 0 22px 50px rgba(37,48,68,.11);
  animation: slowSpin 14s linear infinite;
}
.clock-center {
  animation: reverseSpin 14s linear infinite, clockCenterPulse 4.8s ease-in-out infinite;
}
.clock-dot { box-shadow:0 8px 18px rgba(37,48,68,.18); animation:clockDotPulse 2.4s ease-in-out infinite; }
.clock-dot.dot-two { animation-delay:.7s; }
.clock-dot.dot-three { animation-delay:1.3s; }
@keyframes clockCenterPulse { 0%,100%{box-shadow:var(--shadow-soft); filter:saturate(1)} 50%{box-shadow:0 24px 48px rgba(255,157,66,.24); filter:saturate(1.12)} }
@keyframes clockDotPulse { 0%,100%{scale:1} 50%{scale:1.32} }

/* Contact floating card */
.contact-floating-card { animation:contactCardFloat 5.7s ease-in-out infinite !important; will-change:transform; }
@keyframes contactCardFloat { 0%,100%{transform:translate3d(0,0,0) rotate(-1deg)} 50%{transform:translate3d(13px,-23px,0) rotate(1.5deg)} }

/* Complete redesign of location contact cards. */
.all-contact-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; max-width:1080px; margin-inline:auto; }
.all-contact-card {
  min-height:0;
  padding:28px;
  overflow:hidden;
  border-color:transparent;
  border-radius:34px;
  background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(255,255,255,.82));
  box-shadow:0 20px 48px rgba(37,48,68,.1);
}
.all-contact-card::after {
  content:"";
  position:absolute;
  right:-70px;
  bottom:-80px;
  width:190px;
  height:190px;
  border-radius:50%;
  background:var(--yellow);
  opacity:.13;
  transition:transform .55s ease, opacity .55s ease;
}
.contact-card-blue::after{background:var(--blue)}
.contact-card-pink::after{background:var(--pink)}
.contact-card-green::after{background:var(--green)}
.all-contact-card:hover::after{transform:scale(1.38);opacity:.22}
.contact-card-top { position:relative; z-index:2; display:flex; justify-content:space-between; align-items:center; margin-bottom:26px; }
.contact-location-icon { width:58px; height:58px; display:grid; place-items:center; border-radius:20px; background:var(--yellow); color:var(--dark); box-shadow:0 14px 28px rgba(37,48,68,.12); }
.contact-card-blue .contact-location-icon{background:var(--blue)}
.contact-card-pink .contact-location-icon{background:var(--pink)}
.contact-card-green .contact-location-icon{background:var(--green)}
.contact-location-icon svg{width:27px;height:27px}
.contact-location-number{color:rgba(37,48,68,.18);font-size:34px;font-weight:900;letter-spacing:-1px}
.all-contact-card h3{position:relative;z-index:2;margin:0 0 16px;font-size:27px;letter-spacing:-.7px}
.contact-address-row{position:relative;z-index:2;display:flex;gap:12px;align-items:flex-start;padding:15px 16px;border-radius:20px;background:rgba(37,48,68,.045);margin-bottom:15px}
.contact-address-row>svg{flex:0 0 auto;width:19px;height:19px;margin-top:2px;color:#ff7b00}
.contact-address-row p{margin:0;font-size:14px;line-height:1.6}
.contact-card-links{position:relative;z-index:2;display:grid;gap:9px;margin-bottom:20px}
.contact-card-links a{display:flex;align-items:center;gap:11px;margin:0;padding:12px 14px;border-radius:17px;background:rgba(255,255,255,.76);box-shadow:0 8px 20px rgba(37,48,68,.055);font-size:13px}
.contact-card-links a:hover{transform:translateX(6px);background:#fff}
.contact-card-links svg{flex:0 0 auto;width:18px;height:18px;color:#ff7b00}
.contact-card-route{position:relative;z-index:2;display:flex!important;align-items:center;justify-content:space-between;margin:0!important;padding-top:18px;border-top:1px solid rgba(37,48,68,.09);font-size:13px!important}
.contact-card-route svg{width:18px;height:18px;transition:transform .3s ease}
.contact-card-route:hover svg{transform:translate(4px,-4px)}

/* Registration motion */
.registration-float { animation:registrationFloatPath 5.9s ease-in-out infinite !important; will-change:transform; }
@keyframes registrationFloatPath { 0%,100%{transform:translate3d(0,0,0) rotate(-1deg)} 50%{transform:translate3d(14px,-22px,0) rotate(1.4deg)} }
.registration-steps > div {
  overflow:hidden;
  border-color:transparent;
  background:linear-gradient(145deg,#fff,rgba(255,255,255,.76));
  transition:transform .4s cubic-bezier(.2,.75,.25,1),box-shadow .4s ease,background .4s ease;
}
.registration-steps > div::after {
  content:"";position:absolute;right:-35px;bottom:-45px;width:95px;height:95px;border-radius:50%;background:var(--yellow);opacity:.18;transition:transform .45s ease;
}
.registration-steps > div:nth-child(2)::after{background:var(--blue)}
.registration-steps > div:nth-child(3)::after{background:var(--pink)}
.registration-steps > div:nth-child(4)::after{background:var(--green)}
.registration-steps > div:hover{transform:translateY(-9px);border-color:transparent;background:#fff;box-shadow:0 25px 48px rgba(37,48,68,.14)}
.registration-steps > div:hover::after{transform:scale(1.55)}
.registration-steps > div>*{position:relative;z-index:2}
.registration-steps > div:hover svg{transform:translateY(-3px) rotate(-7deg) scale(1.1)}
.registration-steps svg{transition:transform .38s ease}

/* Prominent Jobs and Partnerships pathways */
.opportunities-section,.contact-pathways-section { background:linear-gradient(135deg,rgba(255,217,92,.14),rgba(105,207,255,.13)); }
.opportunities-grid,.contact-pathways-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px; }
.opportunity-card,.contact-path-card {
  position:relative;isolation:isolate;overflow:hidden;min-height:300px;padding:34px;border-radius:38px;background:rgba(255,255,255,.92);box-shadow:var(--shadow-soft);transition:transform .42s cubic-bezier(.2,.75,.25,1),box-shadow .42s ease;
}
.opportunity-card:hover,.contact-path-card:hover{transform:translateY(-11px);box-shadow:var(--shadow-strong)}
.opportunity-glow{position:absolute;z-index:-1;right:-80px;bottom:-95px;width:240px;height:240px;border-radius:50%;background:var(--yellow);opacity:.22;transition:transform .6s ease}
.opportunity-partners .opportunity-glow{background:var(--blue)}
.opportunity-card:hover .opportunity-glow{transform:scale(1.45)}
.opportunity-icon,.contact-path-icon{width:68px;height:68px;display:grid;place-items:center;margin-bottom:30px;border-radius:24px;background:var(--yellow);color:var(--dark);box-shadow:0 16px 32px rgba(37,48,68,.12);transition:transform .45s ease}
.opportunity-partners .opportunity-icon,.contact-path-partners .contact-path-icon{background:var(--blue)}
.opportunity-card:hover .opportunity-icon,.contact-path-card:hover .contact-path-icon{transform:translateY(-6px) rotate(-6deg) scale(1.07)}
.opportunity-icon svg,.contact-path-icon svg{width:30px;height:30px}
.opportunity-copy>span,.contact-path-card>div:nth-child(2)>span{display:block;margin-bottom:10px;color:#ff7b00;font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.opportunity-copy h3,.contact-path-card h3{max-width:470px;margin-bottom:13px;color:var(--dark);font-size:clamp(25px,3vw,36px);line-height:1.08;letter-spacing:-1px}
.opportunity-copy p,.contact-path-card p{max-width:520px;line-height:1.7}
.opportunity-arrow,.contact-path-arrow{position:absolute;right:28px;top:28px;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:rgba(37,48,68,.06);color:var(--dark);transition:transform .35s ease,background .35s ease}
.opportunity-card:hover .opportunity-arrow,.contact-path-card:hover .contact-path-arrow{transform:translate(4px,-4px);background:var(--dark);color:#fff}
.contact-path-card{min-height:260px;display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:start}
.contact-path-card .contact-path-icon{margin:0}
.contact-path-card .contact-path-arrow{top:26px;right:26px}

/* Partnership meaning clarified visually */
.partner-meaning-section{background:rgba(255,255,255,.42)}
.partner-type-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.partner-type-card{position:relative;overflow:hidden;min-height:285px;padding:30px;border-radius:32px;background:rgba(255,255,255,.92);box-shadow:var(--shadow-soft);transition:transform .4s cubic-bezier(.2,.75,.25,1),box-shadow .4s ease}
.partner-type-card:hover{transform:translateY(-10px);box-shadow:var(--shadow-strong)}
.partner-type-card>svg{width:62px;height:62px;padding:16px;margin-bottom:24px;border-radius:22px;background:var(--yellow);color:var(--dark);transition:transform .4s ease}
.partner-type-card:nth-child(2)>svg{background:var(--blue)}
.partner-type-card:nth-child(3)>svg{background:var(--green)}
.partner-type-card:hover>svg{transform:translateY(-5px) rotate(-5deg) scale(1.06)}
.partner-type-card>span{position:absolute;right:25px;top:25px;color:rgba(37,48,68,.16);font-size:30px;font-weight:900}
.partner-type-card h3{margin-bottom:12px;color:var(--dark);font-size:24px}
.partner-type-card p{line-height:1.7}

@media(max-width:1080px){
  .location-team-grid,.all-contact-grid,.opportunities-grid,.contact-pathways-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .partner-type-grid{grid-template-columns:1fr}
}
@media(max-width:720px){
  .footer-brand img{width:70px;height:78px}
  .location-team-grid,.all-contact-grid,.opportunities-grid,.contact-pathways-grid{grid-template-columns:1fr}
  .location-team-photo{height:390px}
  .team-duo-stage{height:500px}
  .contact-path-card{grid-template-columns:1fr;padding-top:80px}
  .contact-path-card .contact-path-icon{position:absolute;top:24px;left:24px}
  .opportunity-card{min-height:285px;padding:28px}
}

/* =========================================================
   ABOUT TEAM — PFÄFFIKON CO-LEADERSHIP
   The featured card keeps the existing text panel on the right.
   Jeannine and Muriel each use the exact same 430px photo treatment
   as the three single location-manager cards below.
========================================================= */
.location-team-grid {
  max-width: 1180px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  align-items: stretch;
}

.team-card-duo {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr);
  align-items: stretch;
  overflow: hidden;
}

.team-card-duo .team-duo-stage {
  position: relative;
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  padding: 18px;
  align-items: start;
  background:
    radial-gradient(circle at 12% 10%, rgba(255, 217, 92, 0.22), transparent 34%),
    radial-gradient(circle at 88% 12%, rgba(105, 207, 255, 0.22), transparent 34%),
    linear-gradient(145deg, #fffdf6, #eefaff);
}

.team-card-duo .team-duo-photo {
  position: relative;
  width: 100%;
  height: 430px;
  min-height: 430px;
  overflow: hidden;
  border-radius: 28px;
  background: #eef3f7;
  box-shadow: 0 18px 40px rgba(37, 48, 68, 0.12);
  transition:
    transform 0.42s cubic-bezier(.2, .75, .25, 1),
    box-shadow 0.42s ease;
}

.team-card-duo .team-duo-photo::after {
  content: "";
  position: absolute;
  inset: 48% 0 0;
  z-index: 1;
  background: linear-gradient(180deg, transparent, rgba(37, 48, 68, 0.30));
  pointer-events: none;
}

.team-card-duo .team-duo-photo img {
  display: block;
  width: 100%;
  max-width: none;
  height: 100%;
  object-fit: cover;
  object-position: 74% center;
  transition: transform 0.65s cubic-bezier(.2, .75, .25, 1);
}

.team-card-duo .team-duo-photo:nth-child(2) img {
  object-position: 76% center;
}

.team-card-duo .team-duo-name {
  position: absolute;
  left: 16px;
  bottom: 16px;
  z-index: 2;
  padding: 10px 14px;
  border-radius: 999px;
  color: var(--dark);
  font-size: 12px;
  font-weight: 900;
  box-shadow: 0 12px 24px rgba(37, 48, 68, 0.14);
}

.team-card-duo .team-duo-photo:hover {
  transform: translateY(-7px);
  box-shadow: 0 26px 52px rgba(37, 48, 68, 0.17);
}

.team-card-duo .team-duo-photo:hover img,
.team-card-duo:hover .team-duo-photo img {
  transform: scale(1.045);
}

.team-card-duo .location-team-content {
  justify-content: center;
  padding: 44px 38px;
  background:
    radial-gradient(circle at 100% 0%, rgba(105, 207, 255, 0.18), transparent 35%),
    rgba(255, 255, 255, 0.96);
}

.team-card-duo .location-team-content h3 {
  font-size: clamp(30px, 3vw, 43px);
  line-height: 1.05;
}

.team-card-duo .location-team-content p {
  font-size: 16px;
  line-height: 1.75;
}

@media (max-width: 980px) {
  .location-team-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .team-card-duo {
    grid-template-columns: 1fr;
  }

  .team-card-duo .location-team-content {
    padding: 34px;
  }
}

@media (max-width: 680px) {
  .location-team-grid {
    grid-template-columns: 1fr;
  }

  .team-card-duo {
    grid-column: 1;
  }

  .team-card-duo .team-duo-stage {
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 14px;
  }

  .team-card-duo .team-duo-photo {
    height: 390px;
    min-height: 390px;
  }

  .team-card-duo .location-team-content {
    padding: 28px 24px;
  }
}
