@charset "utf-8";

/* Scoped to the revised home and service pages; shared navigation stays intact. */
.homeRefined,
.serviceRefined {
  --editorial-accent: var(--brand-accent);
  --editorial-paper: var(--brand-paper);
  --editorial-line: var(--brand-line);
}

.homeRefined :is(h1, h2, h3),
.serviceRefined :is(h1, h2, h3) {
  text-wrap: balance;
  line-break: strict;
}

.homeRefined a:focus-visible,
.serviceRefined a:focus-visible {
  outline: 3px solid var(--editorial-accent);
  outline-offset: 5px;
}

.homeV3.homeRefined .homeHeroRefined {
  display: grid;
  grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
  align-items: center;
  gap: clamp(28px, 4vw, 64px);
  padding: 116px clamp(24px, 6vw, 96px) 52px;
  background: var(--brand-hero);
}

.homeV3.homeRefined .homeHeroCopy {
  position: relative;
  inset: auto;
  width: auto;
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

.homeV3.homeRefined .homeHeroLead {
  color: var(--editorial-accent) !important;
  font-size: 13px;
  line-height: 1.8;
  letter-spacing: .05em;
}

.homeV3.homeRefined .homeHeroConcept {
  display: block;
  width: 100%;
  margin: 24px 0 0;
  color: var(--brand-heading);
  font-size: clamp(32px, 3.4vw, 52px);
  letter-spacing: .02em;
  text-align: left;
  line-height: 1.6;
}

.homeV3.homeRefined .homeHeroConcept > span {
  display: block;
  width: 100%;
  justify-self: stretch;
  white-space: nowrap;
}

.homeHeroTransportTag {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  width: max-content;
  max-width: 100%;
  min-height: 42px;
  margin: 24px 0 0;
  padding: 8px 14px 8px 12px;
  color: var(--brand-accent);
  background: #fff;
  border-radius: 12px;
  box-shadow: inset 0 0 0 1px var(--editorial-line);
  font-size: 15px;
  font-weight: 800;
  line-height: 1.5;
}

.homeHeroTransportTag img {
  width: 30px;
  height: 30px;
  object-fit: contain;
}

.homeHeroActions {
  display: grid;
  gap: 12px;
  width: min(100%, 430px);
  margin-top: 22px;
}

.homeHeroActions :is(.refinedPrimaryLink, .refinedPhoneLink) {
  width: 100%;
  min-height: 68px;
}

.refinedPrimaryLink,
.refinedPhoneLink,
.refinedTextLink {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 44px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.6;
  text-decoration: none;
}

.refinedPrimaryLink {
  justify-content: center;
  padding: 16px 24px;
  color: var(--brand-button-ink);
  background: var(--brand-button);
  border: 1px solid var(--brand-button);
  border-radius: 999px;
  font-size: 20px;
  letter-spacing: .04em;
}

.refinedPrimaryLink:hover {
  background: var(--brand-button-hover);
}

.refinedPhoneLink {
  justify-content: center;
  padding: 10px 24px;
  color: var(--brand-accent);
  background: #fff;
  border: 2px solid var(--brand-orange);
  border-radius: 999px;
}

.refinedPhoneLink span {
  display: grid;
  gap: 2px;
  font-variant-numeric: tabular-nums;
}

.refinedPhoneLink strong {
  font-size: 22px;
  line-height: 1.1;
}

.refinedPhoneLink small {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45;
}

.homeHeroPhoneIcon {
  width: 26px;
  height: 26px;
  object-fit: contain;
}

.refinedPhoneLink:hover {
  color: var(--brand-button-ink);
  background: var(--brand-button);
  border-color: var(--brand-button);
}

.refinedPhoneLink:hover small {
  color: var(--brand-button-ink);
}

.refinedTextLink {
  color: var(--brown);
  text-decoration: underline;
  text-decoration-color: var(--editorial-line);
  text-underline-offset: 7px;
}

.refinedTextLink:hover {
  color: var(--editorial-accent);
  text-decoration-color: currentColor;
}

.homeHeroScene {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  margin: 0;
}

.homeHeroPhotoFrame {
  height: clamp(360px, 36vw, 520px);
  overflow: hidden;
  border-radius: 4px;
}

.homeV3.homeRefined .homeHeroPhoto {
  top: -100px;
  width: 100%;
  height: calc(100% + 100px);
  object-fit: cover;
  object-position: 59% bottom;
}

.homeRefined :is(.homeDaycare, .homeServices, .homeSituations, .homeFaqPreview, .homeConsult) {
  padding-block: clamp(64px, 7vw, 100px);
}

.homeV3.homeRefined .homeDaycare {
  display: block;
  background: #fff !important;
}

/* Finish the page with the same pale-yellow-and-white invitation as the inner pages. */
.homeV3.homeRefined .homeConsult { background: var(--closing-surface); }
.homeV3.homeRefined .homeConsult .homeEyebrow { color: var(--closing-ink) !important; }

.homeV3.homeRefined .homeConsult h2 { color: var(--closing-ink); }
.homeV3.homeRefined .homeConsultActions a { border-color: var(--closing-line) !important; }
.homeV3.homeRefined .homeConsultActions a[href*="web-form"] { background: var(--closing-button) !important; border-color: var(--closing-button) !important; }
.homeV3.homeRefined .homeConsultActions a[href*="web-form"]:is(:hover,:focus-visible) { background: var(--closing-hover) !important; border-color: var(--closing-hover) !important; }
.homeV3.homeRefined .homeConsultActions a:is([href*="tel"], [data-sp-tel]):is(:hover,:focus-visible) { background: var(--brand-paper) !important; }
.homeV3.homeRefined .homeConsultActions .visitInlineIcon { background: #fff; }
.homeV3.homeRefined .homeConsultActions a:focus-visible { outline-color: var(--closing-ink); }

/* Separate the service and FAQ color fields with a white guide section. */
.homeV3.homeRefined .homeSituations {
  background: #fff !important;
}

.homeDaycareIntro {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  align-items: start;
  gap: clamp(28px, 6vw, 80px);
}

#home-daycare-title,
#home-hours-title {
  scroll-margin-top: 100px;
}

.homeDaycareDescription {
  max-width: 34em;
  margin: 42px 0 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 2;
}

.homeDaycareSchedule {
  --clock-range-fill: #ffcf70;
  --clock-range-line: #de7919;
  display: grid;
  grid-template-columns: minmax(160px, .6fr) minmax(0, 1.4fr);
  align-items: center;
  gap: 32px;
  margin-top: 40px;
  padding: 28px 32px;
  border-block: 1px solid var(--editorial-line);
  background: var(--brand-surface);
}

.homeDaycareScheduleHead h3 {
  margin: 0;
  font-size: 19px;
  line-height: 1.5;
}

.homeDaycareScheduleHead p {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.7;
}

.homeDaycareScheduleHead .refinedTextLink {
  margin-top: 10px;
  font-size: 13px;
}

.homeDaycareScheduleHead .homeTimeLegend {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: 12px;
  font-size: 12px;
}

.homeTimeLegend > span {
  flex: 0 0 12px;
  height: 12px;
  background: var(--clock-range-fill);
  border: 1px solid var(--clock-range-line);
  border-radius: 2px;
}

.homeDaycareHours {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin: 0;
  color: var(--brown);
  font-variant-numeric: tabular-nums;
}

.homeTimeSession {
  min-width: 0;
  border-left: 1px solid var(--editorial-line);
  text-align: center;
}

.homeTimeSession dt {
  color: var(--editorial-accent);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.6;
}

.homeTimeSession dd {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 12px;
  margin: 10px 0 0;
}

.homeTimePoint {
  display: grid;
  justify-items: center;
  gap: 8px;
}

.homeTimeClock {
  display: block;
  width: 112px;
  height: 112px;
}

.homeClockFace {
  fill: #fff;
  stroke: #d9c5af;
  stroke-width: 1.5;
}

.homeClockRange {
  fill: var(--clock-range-fill);
  stroke: var(--clock-range-line);
  stroke-width: 1;
  stroke-linejoin: round;
}

.homeClockTicks {
  fill: none;
  stroke: #b3a18c;
  stroke-width: 1;
  stroke-linecap: round;
}

.homeClockNumbers {
  fill: var(--brown);
  font-family: Arial, sans-serif;
  font-size: 11px;
  font-weight: 600;
  text-anchor: middle;
  dominant-baseline: middle;
}

.homeClockPin {
  fill: var(--clock-range-line);
}

.homeTimeValue {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
  white-space: nowrap;
}

.homeV3.homeRefined .homeDaycarePoints {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 40px;
  margin: 44px 0 0;
}

.homeV3.homeRefined .homeDaycarePoints li {
  display: block;
  min-width: 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
  text-align: center;
}

.homeDaycareIllustration {
  display: block;
  width: 100%;
  max-width: 270px;
  height: 190px;
  margin: 0 auto 18px;
  object-fit: contain;
}

.homeDaycarePoints h3 {
  margin: 8px 0 0;
  font-size: clamp(19px, 1.9vw, 24px);
  line-height: 1.5;
}

.homeDaycarePoints p {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.8;
}

.homeDaycarePoints p.homeDaycarePointLabel {
  margin: 0;
  color: var(--editorial-accent);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .12em;
}

.homeV3.homeRefined .homeDaycareLinks {
  justify-content: center;
  margin-top: 30px;
}

.homeV3.homeRefined .homeDaycareLinks a {
  min-height: 44px;
  margin-top: 0;
}

.homeV3.homeRefined .homeServices {
  background: var(--brand-surface);
}

.homeV3.homeRefined .homeSectionHead {
  margin-bottom: 40px;
}

.homeV3.homeRefined .homeServiceSummary {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(24px, 4vw, 56px);
}

.homeV3.homeRefined .homeServiceFeature {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

.homeV3.homeRefined .homeServiceFeature > img {
  aspect-ratio: 3 / 2;
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: cover;
  border-radius: 4px;
}

.homeServiceBody {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex: 1;
  padding-top: 24px;
}

.homeV3.homeRefined .homeServiceLabel {
  margin: 0 0 10px;
  color: var(--editorial-accent);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .08em;
}

.homeServiceBody h3,
.homeServiceExtras h3 {
  margin: 0;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(25px, 2.4vw, 32px);
  font-weight: 600;
  line-height: 1.5;
}

.homeV3.homeRefined .homeServiceSummary span {
  display: inline;
  margin: 0;
  padding: 0;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
}

.homeV3.homeRefined .homeServiceSummary h3 > span,
.homeServiceExtras h3 > span {
  display: inline-block;
}

.homeServiceBody > p:not(.homeServiceLabel),
.homeServiceExtras div > p:not(.homeServiceLabel) {
  margin: 16px 0 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.9;
}

.homeServiceBody > p.homeServiceSchedule {
  margin-top: 16px;
  padding-left: 12px;
  border-left: 2px solid var(--main-orange);
  color: var(--editorial-accent);
  font-size: 13px;
}

.homeServiceBody .refinedTextLink {
  margin-top: auto;
  padding-top: 20px;
}

.homeServiceExtras {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(24px, 4vw, 56px);
  max-width: 1180px;
  margin: 44px auto 0;
  padding-top: 36px;
  border-top: 1px solid var(--editorial-line);
}

.homeServiceExtras article {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  align-items: start;
  gap: 22px;
}

.homeServiceExtras img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 4px;
}

.homeServiceExtras h3 {
  font-size: 24px;
}

.homeServiceExtras div > p:not(.homeServiceLabel) {
  margin-top: 10px;
  font-size: 14px;
}

.homeServiceExtras .refinedTextLink {
  margin-top: 10px;
  font-size: 13px;
}

.homeRefined #home-faq-title > span {
  display: block;
}

.homeV3.homeRefined .homeNews h2.homeEyebrow {
  font-family: inherit;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.6;
}

.serviceRefined .serviceHeroV5 {
  background: var(--editorial-paper);
  border-color: var(--editorial-line);
}

.serviceRefined .serviceHeroV5 h1 span:last-child {
  color: var(--editorial-accent);
}

.serviceJumpLinks {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 28px;
  margin-top: 32px;
}

.serviceJumpLinks a {
  display: inline-flex;
  align-items: center;
  gap: 20px;
  min-height: 44px;
  padding-block: 8px;
  border-bottom: 1px solid var(--editorial-line);
  color: var(--brown);
  font-size: 14px;
  font-weight: 700;
}

.serviceJumpLinks a:hover,
.serviceJumpLinks a > span {
  color: var(--editorial-accent);
}

.serviceRefined .servicePhotoStories h2 > span,
.serviceRefined .serviceStayPanel h2 > span {
  display: inline-block;
}

.serviceRefined .serviceStStory article {
  border-block: 1px solid var(--editorial-line);
}

.serviceRefined .serviceStStory article > div {
  background: var(--editorial-paper);
}

.serviceRefined .serviceAvailability {
  align-self: flex-start;
  padding-left: 12px;
  border-left: 2px solid var(--main-orange);
  color: var(--editorial-accent);
  line-height: 1.7;
}

.serviceSupportAreas {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  margin: 24px 0 0;
  padding: 18px 0 0;
  border-top: 1px solid var(--editorial-line);
  list-style: none;
  font-size: 14px;
  line-height: 1.8;
}

.serviceRefined .serviceInlineFlow h2 {
  margin: 0;
  color: var(--brown);
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(30px, 4vw, 48px);
  font-weight: 600;
  line-height: 1.5;
}

@media (max-width: 1000px) {
  .homeV3.homeRefined .homeHeroRefined {
    gap: 28px;
    padding-inline: 28px;
  }

  .homeV3.homeRefined .homeHeroConcept {
    font-size: clamp(30px, 3.6vw, 36px);
  }

  .homeServiceExtras article {
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 16px;
  }
}

@media (max-width: 900px) {
  .homeDaycareIntro {
    grid-template-columns: minmax(0, 1fr);
    gap: 22px;
  }

  .homeDaycareDescription {
    margin-top: 0;
  }

  .homeDaycareSchedule {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }

  .homeDaycareScheduleHead {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 16px;
  }

  .homeDaycareScheduleHead p {
    margin: 0;
  }

  .homeDaycareScheduleHead .refinedTextLink {
    margin: 0 0 0 auto;
  }

  .homeDaycareScheduleHead .homeTimeLegend {
    margin-top: 0;
  }

  .homeTimeSession:first-child {
    border-left: 0;
  }

  .homeV3.homeRefined .homeDaycarePoints {
    gap: 24px;
  }
}

@media (max-width: 760px) {
  .homeV3.homeRefined .homeHeroRefined {
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
    padding: 36px 22px;
  }

  .homeV3.homeRefined .homeHeroConcept {
    margin-top: 18px;
    font-size: clamp(28px, 8.3vw, 40px);
  }

  .homeHeroTransportTag {
    min-height: 40px;
    margin-top: 18px;
    padding: 7px 12px 7px 10px;
    font-size: 14px;
  }

  .homeHeroActions {
    margin-top: 20px;
  }

  .homeHeroPhotoFrame {
    height: clamp(230px, 64vw, 380px);
  }

  .homeV3.homeRefined .homeHeroPhoto {
    top: -72px;
    height: calc(100% + 72px);
    object-position: 55% bottom;
  }

  .homeDaycareIntro {
    gap: 20px;
  }

  .homeDaycareDescription {
    font-size: 15px;
    line-height: 1.9;
  }

  .homeDaycareSchedule {
    gap: 16px;
    margin-top: 28px;
    padding: 22px 18px;
  }

  .homeDaycareScheduleHead .refinedTextLink {
    flex-basis: 100%;
    justify-content: flex-start;
    gap: 12px;
    min-height: 36px;
    margin: 0;
  }

  .homeDaycareHours {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
  }

  .homeTimeSession {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    border-left: 0;
    text-align: left;
  }

  .homeTimeSession + .homeTimeSession {
    padding-top: 18px;
    border-top: 1px solid var(--editorial-line);
  }

  .homeTimeSession dd {
    gap: 8px;
    margin: 0;
  }

  .homeTimeClock {
    width: 92px;
    height: 92px;
  }

  .homeTimeValue {
    font-size: 17px;
  }

  .homeV3.homeRefined .homeDaycarePoints {
    grid-template-columns: minmax(0, 1fr);
    gap: 26px;
    margin-top: 32px;
  }

  .homeV3.homeRefined .homeDaycarePoints li {
    display: grid;
    grid-template-columns: clamp(104px, 32vw, 140px) minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    text-align: left;
  }

  .homeDaycareIllustration {
    height: 136px;
    margin: 0;
  }

  .homeDaycarePoints h3 {
    font-size: clamp(18px, 4.9vw, 19px);
    text-wrap: pretty;
  }

  .homeDaycarePoints p {
    margin-top: 8px;
    font-size: 13px;
  }

  .homeV3.homeRefined .homeServiceSummary,
  .homeServiceExtras {
    grid-template-columns: minmax(0, 1fr);
    gap: 36px;
  }

  .homeV3.homeRefined .homeServiceFeature > img {
    aspect-ratio: 3 / 2;
  }

  .homeServiceBody {
    padding-top: 20px;
  }

  .homeServiceBody h3 {
    font-size: clamp(24px, 6.5vw, 28px);
  }

  .homeServiceBody > p:not(.homeServiceLabel) {
    font-size: 15px;
  }

  .homeServiceBody > p.homeServiceSchedule {
    font-size: 13px;
  }

  .homeServiceExtras h3 {
    font-size: 22px;
  }

  .serviceJumpLinks {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 18px;
    margin-top: 24px;
  }

  .serviceJumpLinks a {
    justify-content: space-between;
    gap: 8px;
    font-size: 13px;
  }

  .serviceRefined .servicePhotoStories h2 {
    font-size: clamp(25px, 7vw, 30px);
  }
}
