/* Colours sampled from the original Handi Maids logo. */
:root {
  --ink: #0872ba;
  --muted: #426f8d;
  --pink: #29abe2;
  --pink-dark: #0872ba;
  --lilac: #bae5fb;
  --cream: #fff9df;
  --line: #bae5fb;
  --shadow: 0 18px 50px rgba(8, 114, 186, .14);
}

.nav-cta,
.button {
  background: var(--pink);
  box-shadow: 0 8px 20px rgba(41, 171, 226, .25);
}

.nav-cta:hover,
.button:hover { background: var(--pink-dark); }
.card { box-shadow: 0 10px 30px rgba(8, 114, 186, .07); }
.quotes blockquote { border-color: #f2df86; }
.quote-section .eyebrow { color: #ffd53d; }
.quote-form input,
.quote-form select,
.quote-form textarea { border-color: #bae5fb; }
.quote-form input:focus,
.quote-form select:focus,
.quote-form textarea:focus {
  outline-color: #bae5fb;
  border-color: var(--pink);
}
.checks li::before { content: '\2713'; }
.topbar .wrap { align-items: center; }
.topbar-contact { display: flex; align-items: center; gap: 1.4rem; }
.topbar-phone,
.topbar-email { display: inline-flex; align-items: center; gap: .45rem; white-space: nowrap; }
.topbar-phone { font-size: 1.06rem; }
.topbar-phone strong { font-size: 1.18rem; letter-spacing: .01em; }
.topbar-email { font-size: .96rem; }
.naples-top-phone { padding-left: 1.2rem; border-left: 1px solid rgba(255,255,255,.3); }
.header { background: rgba(237, 248, 253, .97); }
.hero { background: linear-gradient(125deg, #bae5fb 0%, #edf8fd 58%, #d8f1fc 100%); }
.page-hero { background: linear-gradient(120deg, #bae5fb, #edf8fd); }
.hero .lead { max-width: 38rem; margin-bottom: 1.25rem; }
.hero .trust { gap: .55rem 1.1rem; margin: 0 0 1.75rem; color: var(--ink); }
.hero .actions { margin: 0 0 .8rem; }
.hero-secondary { display: inline-block; font-size: .9rem; font-weight: 650; color: var(--muted); }
.hero-secondary:hover { color: var(--pink-dark); }
.experience { min-width: 205px; }
.experience strong { font-size: 1.2rem; }
.story-video { padding: 82px 0; background: #0872ba; color: #fff; }
.video-grid { display: grid; grid-template-columns: .82fr 1.18fr; align-items: center; gap: 64px; }
.story-video .eyebrow { color: #bae5fb; }
.story-video h2 { color: #fff; margin-bottom: 18px; }
.story-video p { font-size: 1.08rem; max-width: 34rem; }
.video-text-link { display: inline-block; margin-top: 10px; color: #fff; font-weight: 750; }
.video-frame { position: relative; overflow: hidden; aspect-ratio: 16 / 9; border: 8px solid rgba(255,255,255,.18); border-radius: 22px; box-shadow: 0 20px 55px rgba(0, 42, 78, .3); background: #053c66; }
.video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.naples-callout { padding: 58px 0; background: #fff9df; border-top: 1px solid #f2df86; border-bottom: 1px solid #f2df86; }
.naples-callout-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 54px; }
.naples-callout img { width: 100%; height: 340px; object-fit: cover; border-radius: 22px; box-shadow: var(--shadow); }
.naples-callout h2 { margin-bottom: 12px; font-size: clamp(1.8rem,3vw,2.7rem); }
.naples-callout p:not(.eyebrow) { margin: 0 0 18px; }
.naples-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; }
.naples-phone { color: var(--ink); font-size: 1.25rem; font-weight: 850; }
.call-options { display: grid; gap: 10px; margin-top: 24px; }
.call-options > strong { margin-bottom: 2px; }
.call-options a { display: flex; align-items: baseline; gap: 10px; font-size: 1.18rem; font-weight: 800; }
.call-options a span { min-width: 58px; color: #bae5fb; font-size: .78rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.region-overview { padding-bottom: 48px; }
.region-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.region-card { overflow: hidden; border: 1px solid var(--line); border-radius: 22px; background: #fff; box-shadow: 0 10px 30px rgba(8,114,186,.07); }
.region-card > div { padding: 30px; }
.region-card img { width: 100%; height: 230px; object-fit: cover; }
.region-card h2 { margin-bottom: 12px; }
.region-label { margin: 0 0 8px; color: var(--pink-dark); font-size: .76rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.ontario-region { display: grid; align-items: center; background: linear-gradient(135deg,#bae5fb,#edf8fd); }
#ontario-communities { scroll-margin-top: 150px; }
#ontario-communities > .wrap > h2 { margin-bottom: 30px; }
#ontario-communities .area { background: #fff; }
.naples-page-hero { background: linear-gradient(120deg,#fff9df,#bae5fb); }
.about-intro > img { max-height: 560px; }
.history-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; margin-top: 34px; }
.history-grid article { padding: 26px; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.history-grid strong { display: block; margin-bottom: 12px; color: var(--pink-dark); font-family: Georgia,serif; font-size: 2rem; }
.history-grid h3 { margin-bottom: 10px; }
.history-grid p { margin-bottom: 0; color: var(--muted); }
.about-details { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: start; }
.guarantee-section { background: #0872ba; color: #fff; }
.guarantee-section h2 { color: #fff; }
.guarantee-section .eyebrow { color: #bae5fb; }
.guarantee-section .checks li::before { color: #ffd53d; }
.guarantee-section p { color: rgba(255,255,255,.92); }
.guarantee-section .checks { margin-top: 18px; }
.guarantee-button { margin-top: 8px; background: #ffd53d; color: #073f69 !important; box-shadow: 0 8px 20px rgba(0,0,0,.14); }
.guarantee-button:hover { background: #ffe273; }
.card-image-link { display: block; overflow: hidden; }
.card-image-link img { transition: transform .25s ease; }
.card-image-link:hover img { transform: scale(1.025); }
.card-title-link { color: inherit; text-decoration: none; }
.card-title-link:hover { color: var(--pink-dark); text-decoration: underline; }
.card-image-link:focus-visible,
.card-title-link:focus-visible { outline: 3px solid #bae5fb; outline-offset: 4px; }

.testimonial-carousel-section { overflow: hidden; }
.testimonial-carousel { position: relative; padding: 0 58px; }
.testimonial-stage { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; align-items: stretch; }
.testimonial-slide {
  display: none;
  min-height: 250px;
  margin: 0;
  padding: 30px;
  border: 1px solid #f2df86;
  border-radius: 22px;
  background: #fff9df;
  transition: filter .28s ease, opacity .28s ease, transform .28s ease, box-shadow .28s ease;
}
.testimonial-slide.is-visible { display: flex; flex-direction: column; justify-content: space-between; }
.testimonial-slide.is-prev { order: 1; }
.testimonial-slide.is-current { order: 2; z-index: 1; transform: scale(1.035); border-color: #bae5fb; background: #fff; box-shadow: var(--shadow); }
.testimonial-slide.is-next { order: 3; }
.testimonial-slide.is-prev,
.testimonial-slide.is-next { filter: blur(1.35px); opacity: .52; transform: scale(.94); }
.testimonial-slide p { margin: 0 0 22px; font-family: Georgia,serif; font-size: 1.16rem; }
.testimonial-slide cite { color: var(--pink-dark); font-style: normal; font-weight: 750; }
.testimonial-arrow {
  position: absolute;
  top: 50%;
  z-index: 3;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: #0872ba;
  color: #fff;
  font: 700 2rem/1 Georgia,serif;
  box-shadow: 0 8px 20px rgba(8,114,186,.22);
  cursor: pointer;
  transform: translateY(-50%);
}
.testimonial-arrow:hover { background: #29abe2; }
.testimonial-arrow:focus-visible { outline: 3px solid #ffd53d; outline-offset: 3px; }
.testimonial-prev { left: 0; }
.testimonial-next { right: 0; }
.testimonial-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.testimonial-submit-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 64px; align-items: start; }
.testimonial-form { box-shadow: var(--shadow); }
.testimonial-form .testimonial-permission { display: flex; grid-template-columns: none; align-items: flex-start; gap: 10px; font-weight: 600; }
.testimonial-form .testimonial-permission input { flex: 0 0 auto; width: auto; margin-top: 6px; }
.form-status:focus { outline: 3px solid #ffd53d; outline-offset: 3px; }
.quote-form .button:disabled { cursor: not-allowed; opacity: .68; box-shadow: none; }

.owner-gallery-section { padding-top: 20px; }
.owner-gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.supplied-crop {
  min-height: 310px;
  background-image: var(--gallery-image);
  background-repeat: no-repeat;
  border-radius: 22px;
  box-shadow: var(--shadow);
}
.supplied-crop-top {
  grid-column: 1 / -1;
  min-height: 360px;
  background-size: 100% 200%;
  background-position: center top;
}
.supplied-crop-left,
.supplied-crop-right { background-size: 200% 200%; }
.supplied-crop-left { background-position: left bottom; }
.supplied-crop-right { background-position: right bottom; }

/* The full logo and tagline are central brand elements, not a small icon. */
.nav-wrap { min-height: 132px; }
.brand { flex: 0 0 auto; padding: 10px 0; }
.brand img {
  width: 330px;
  max-height: 108px;
  object-fit: contain;
}
.nav { gap: 18px; }
.nav > a { font-size: .9rem; }
.footer img { width: 290px; }
.copyright { display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.footer .website-credit a { display: inline; margin: 0; color: var(--blue-dark); font-weight: 750; }

@media (max-width: 1050px) {
  .brand img { width: 270px; }
  .nav { gap: 13px; }
  .nav > a { font-size: .84rem; }
}

@media (max-width: 850px) {
  .topbar-contact { gap: .85rem; }
  .topbar-phone { font-size: .96rem; }
  .topbar-phone strong { font-size: 1.06rem; }
  .topbar-email { font-size: .9rem; }
  .video-grid { grid-template-columns: 1fr; gap: 34px; }
  .naples-callout-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
  .region-cards { grid-template-columns: 1fr; }
  .history-grid { grid-template-columns: 1fr 1fr; }
  .about-details { grid-template-columns: 1fr; gap: 38px; }
  .supplied-crop-top { min-height: 290px; }
  .supplied-crop { min-height: 240px; }
  .story-video { padding: 64px 0; }
  .nav-wrap { min-height: 112px; }
  .brand img { width: 270px; max-height: 92px; }
  .nav { top: 112px; }
}

@media (max-width: 580px) {
  .topbar .wrap { justify-content: center; padding: 10px 0; }
  .topbar-contact { width: 100%; justify-content: space-between; gap: .65rem; }
  .topbar-phone { font-size: .82rem; }
  .topbar-phone strong { font-size: .98rem; }
  .topbar-email { font-size: .82rem; }
  .topbar-email { display: none; }
  .naples-top-phone { padding-left: .65rem; }
  .nav-wrap { min-height: 102px; }
  .brand img { width: 230px; max-height: 82px; }
  .nav { top: 102px; }
  .footer img { width: 250px; }
  .copyright { align-items: flex-start; flex-direction: column; }
  .naples-callout-grid { grid-template-columns: 1fr; }
  .naples-callout img { height: 220px; }
  .history-grid { grid-template-columns: 1fr; }
  .owner-gallery { grid-template-columns: 1fr; }
  .supplied-crop-top { grid-column: auto; min-height: 220px; }
  .supplied-crop-left,
  .supplied-crop-right { min-height: 300px; }
  .testimonial-carousel { padding: 0 48px; }
  .testimonial-stage { grid-template-columns: 1fr; }
  .testimonial-slide.is-prev,
  .testimonial-slide.is-next { display: none; }
  .testimonial-slide.is-current { min-height: 285px; transform: none; }
  .testimonial-arrow { width: 38px; height: 38px; font-size: 1.65rem; }
  .testimonial-submit-grid { grid-template-columns: 1fr; gap: 30px; }
}

@media (max-width: 390px) {
  .topbar-contact { align-items: flex-start; flex-direction: column; }
  .brand img { width: 205px; }
}
