:root {
  --sky: #e9f6fd;
  --sky-deep: #cfe8f5;
  --navy-soft: #123764;
}

.site-header {
  height: 76px;
  border-bottom-color: rgba(7, 28, 73, .12);
}

.brand img {
  width: 64px;
  height: 38px;
}

.hero {
  min-height: min(760px, calc(100svh - 76px));
  position: relative;
  display: block;
  overflow: hidden;
  background: var(--sky);
}

.hero-visual {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.hero-inner {
  min-height: min(760px, calc(100svh - 76px));
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
}

.hero-copy {
  width: min(680px, 54%);
  padding: 36px 0 72px;
}

.hero h1 {
  margin: 0;
  color: var(--navy);
  font-size: clamp(50px, 5.15vw, 76px);
  line-height: 1.34;
  letter-spacing: .015em;
  font-weight: 800;
}

.hero-copy p {
  margin: 25px 0 0;
  color: var(--navy);
  font-size: clamp(16px, 1.35vw, 21px);
  font-weight: 700;
}

.hero-link {
  width: fit-content;
  margin-top: 42px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--navy);
  display: flex;
  align-items: center;
  gap: 46px;
  color: var(--navy);
  font-size: 13px;
  font-weight: 700;
}

.hero-link svg {
  width: 32px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.4;
  transition: transform .25s ease;
}

.hero-link:hover svg { transform: translateX(5px); }

.hero-scroll {
  position: absolute;
  z-index: 1;
  left: max(48px, calc((100vw - var(--max)) / 2));
  bottom: 24px;
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--navy);
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.hero-scroll span { width: 62px; height: 1px; background: currentColor; opacity: .35; }

.business {
  border-top: 0;
  padding-top: 116px;
}

.business::before {
  content: "";
  display: block;
  width: 1px;
  height: 76px;
  margin: -154px auto 76px;
  background: var(--navy);
  position: relative;
  z-index: 2;
}

.section-head p { color: #56738f; }
.section-head h2 { letter-spacing: .01em; }

.business-list {
  margin-top: 50px;
  border-top: 1px solid var(--line);
}

.business-item {
  min-height: 460px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 0;
  padding: 46px 38px 42px;
  border-bottom: 0;
  border-right: 1px solid var(--line);
}

.business-item:last-child { border-right: 0; }
.business-item .route { width: 42px; height: 2px; margin-bottom: 44px; }
.business-item .route::after { width: 10px; height: 10px; }
.business-item img { width: 100%; height: 118px; margin-bottom: 34px; object-fit: contain; }
.business-item h3 { margin-bottom: 15px; font-size: 21px; }
.business-item p { font-size: 16px; line-height: 1.95; }
.business-logo-link { width: 100%; }

.quote-graphic { min-height: 0; overflow: hidden; }
.message-illustration { align-self: start; background: #fff; }
.message-illustration img { width: 100%; height: auto; max-height: 760px; object-fit: contain; object-position: center top; }

.business-parent {
  min-height: 330px;
  display: grid;
  grid-template-columns: 76px minmax(220px, 300px) minmax(0, 1fr);
  gap: 42px;
  align-items: center;
  padding: 54px 38px;
  border-right: 0;
  border-bottom: 1px solid var(--line);
}

.business-parent .route { margin: 0; }
.business-parent img { height: 140px; margin: 0; }
.business-parent h3 { font-size: 28px; }
.business-parent p { max-width: 760px; font-size: 15px; }
.business-detail-button { margin: 26px 0 0; }

.business-ventures {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.business-ventures .business-item {
  min-height: 500px;
  display: flex;
  padding: 0 38px 46px;
}

.business-logo-panel {
  width: calc(100% + 76px);
  height: auto;
  margin: 0 -38px 38px;
  display: grid;
  place-items: center;
  overflow: hidden;
}

.business-logo-panel img {
  width: min(72%, 360px);
  height: auto;
  margin: 0;
  object-fit: contain;
}

.business-ventures .plavo .business-logo-panel { background: #3761ac; }
.business-ventures .pet .business-logo-panel { background: #ce1a80; }

.business-ventures .business-logo-panel img {
  mix-blend-mode: normal;
}

.message-body { font-size: 16px; }
.contact p { font-size: 15px; }

.collection-modal { width: min(980px, calc(100% - 32px)); }
.collection-guide { padding: 36px; }
.collection-lead { margin: 0 0 32px; color: var(--navy); font-size: 17px; font-weight: 700; }
.collection-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.collection-grid section { padding: 30px 28px 34px; border-right: 1px solid var(--line); }
.collection-grid section:last-child { border-right: 0; }
.collection-illustration { width: 100%; height: 150px; margin: 0 0 22px; padding: 10px; object-fit: contain; background: #eef5fb; }
.collection-grid span { color: var(--blue); font-size: 12px; font-weight: 800; }
.collection-grid h3 { margin: 8px 0 16px; color: var(--navy); font-size: 20px; }
.collection-grid p { margin: 0; font-size: 15px; line-height: 1.9; }
.collection-grid small { display: block; margin-top: 14px; color: var(--muted); font-size: 12px; }
.collection-contact { display: grid; grid-template-columns: 1.25fr .75fr; gap: 48px; margin-top: 34px; padding: 30px; background: var(--pale); }
.collection-contact h3 { margin: 0 0 10px; color: var(--navy); font-size: 20px; }
.collection-contact p { margin: 0; font-size: 14px; }
.collection-contact dl { margin: 0; }
.collection-contact dl div { display: grid; grid-template-columns: 90px 1fr; padding: 8px 0; border-bottom: 1px solid #c7d3e2; }
.collection-contact dt { color: var(--muted); font-size: 12px; font-weight: 700; }
.collection-contact dd { margin: 0; color: var(--navy); font-size: 16px; font-weight: 800; }
.collection-contact a { text-decoration: underline; text-underline-offset: 4px; }

.call-confirm-modal { width: min(500px, calc(100% - 32px)); }
.call-confirm-body { padding: 36px 34px; text-align: center; }
.call-confirm-body p { margin: 0 0 10px; font-size: 15px; }
.call-confirm-body > strong { display: block; color: var(--navy); font-size: 28px; letter-spacing: .04em; }
.call-hours { width: min(300px, 100%); margin: 20px auto 0; }
.call-hours div { display: grid; grid-template-columns: 90px 1fr; padding: 8px 0; border-top: 1px solid var(--line); text-align: left; }
.call-hours dt { color: var(--muted); font-size: 12px; font-weight: 700; }
.call-hours dd { margin: 0; color: var(--navy); font-size: 14px; font-weight: 700; }
.call-confirm-actions { display: grid; grid-template-columns: 1fr 1.25fr; gap: 12px; margin-top: 30px; }
.call-confirm-actions button,
.call-confirm-actions a { min-height: 54px; padding: 14px 18px; border: 1px solid var(--navy); font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; }
.call-confirm-actions button { color: var(--navy); background: #fff; }
.call-confirm-actions a { display: flex; align-items: center; justify-content: space-between; color: #fff; background: var(--navy); }
.call-confirm-actions button:hover { color: #fff; background: var(--navy); }
}

.message {
  width: 100%;
  max-width: none;
  padding-inline: max(48px, calc((100vw - var(--max)) / 2));
  border-top: 0;
  background: #fff;
}

.message-layout { grid-template-columns: minmax(0, 1.2fr) minmax(360px, .8fr); gap: 70px; align-items: start; margin-top: 0; }
.message-copy .section-head { margin-bottom: 52px; }
.message-copy .section-head h2 { font-size: clamp(40px, 3.7vw, 54px); }
.quote-graphic span { color: var(--navy-soft); opacity: .96; }
.quote-graphic svg { stroke: #77a9c6; }

.services { padding-top: 140px; }
.service-rows > div { grid-template-columns: 64px 1fr; padding-block: 27px; }
.service-no { color: #3e789d; }
.service-rows h3 { font-size: 19px; font-weight: 600; }
.service-rows h3 em { font-style: normal; font-weight: 600; }
.plavo-color { color: var(--blue); }
.pet-color { color: var(--pink); }

.company { background: #edf6fa; }
.history-teaser { border-left-color: #86adc2; }

.partners { min-height: 340px; }
.partner-list { list-style: none; margin: 50px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 36px; border-top: 1px solid var(--line); }
.partner-list li { position: relative; padding: 16px 0 16px 18px; border-bottom: 1px solid var(--line); font-size: 12px; line-height: 1.65; }
.partner-list li::before { content: ""; position: absolute; left: 0; top: 25px; width: 5px; height: 5px; border-radius: 50%; background: var(--navy); }
.partners-note { text-align: right; }

.permits-modal { width: min(980px, calc(100% - 32px)); }
.permit-list { list-style: none; margin: 0; padding: 0; counter-reset: permit; }
.permit-list li { counter-increment: permit; display: grid; grid-template-columns: 42px 1fr minmax(220px, auto); gap: 16px; align-items: baseline; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.permit-list li::before { content: counter(permit, decimal-leading-zero); color: #3e789d; font-size: 11px; font-weight: 700; }
.permit-list strong { color: var(--navy); font-size: 12px; text-align: right; }

.contact {
  background: #092d58;
  position: relative;
  overflow: hidden;
}

.contact::after {
  content: "";
  position: absolute;
  width: 380px;
  height: 380px;
  right: -150px;
  top: -190px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 50%;
}

.contact .section-shell { position: relative; z-index: 1; }

@media (max-width: 1100px) {
  .hero, .hero-inner { min-height: 670px; }
  .hero-copy { width: 64%; }
  .hero h1 { font-size: clamp(46px, 6.2vw, 66px); }
  .business-item { min-height: 0; display: grid; grid-template-columns: 76px 210px 1fr; gap: 26px; align-items: center; padding: 38px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .business-item:last-child { border-bottom: 0; }
  .business-item .route { margin: 0; }
  .business-item img { height: 100px; margin: 0; }
  .business-parent { grid-template-columns: 76px 210px 1fr; padding-inline: 0; }
  .business-parent img { height: 110px; }
  .business-parent h3 { font-size: 24px; }
  .business-parent p { font-size: 14px; }
  .collection-grid { grid-template-columns: 1fr; }
  .collection-grid section { border-right: 0; border-bottom: 1px solid var(--line); }
  .collection-grid section:last-child { border-bottom: 0; }
  .collection-contact { grid-template-columns: 1fr; gap: 24px; }
  .business-ventures { grid-template-columns: 1fr; }
  .business-ventures .business-item { min-height: 0; display: flex; padding: 0 0 38px; }
  .business-logo-panel { width: 100%; height: auto; margin: 0 0 34px; }
  .business-logo-panel img { width: min(58%, 330px); height: auto; }
  .message { background: #fff; }
  .message-layout { grid-template-columns: 1fr; gap: 54px; }
  .message-illustration { width: min(620px, 100%); margin-inline: auto; }
  .partner-list { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
  .site-header { height: 68px; }
  .hero { min-height: 0; display: flex; flex-direction: column; background: #fff; padding-bottom: 58px; }
  .hero-inner { min-height: 0; order: 2; align-items: flex-start; }
  .hero-visual { position: relative; inset: auto; order: 1; height: 310px; object-position: 69% center; }
  .hero-copy { width: 100%; padding: 42px 0 0; }
  .hero h1 { font-size: 39px; line-height: 1.38; }
  .hero h1 span { white-space: normal; }
  .hero-copy p { max-width: 250px; margin-top: 17px; font-size: 14px; }
  .hero-link { margin-top: 28px; }
  .hero-scroll { display: none; }
  .business { padding-top: 88px; }
  .business::before { margin-top: -126px; margin-bottom: 62px; }
  .business-list { margin-top: 36px; }
  .business-item { grid-template-columns: 42px 1fr; gap: 18px; padding: 30px 0; }
  .business-item .route { grid-row: 1 / 3; }
  .business-item img, .business-item .business-logo-link { grid-column: 2; width: 170px; }
  .business-item > div:last-child { grid-column: 2; }
  .business-parent { grid-template-columns: 42px 1fr; gap: 18px; padding: 34px 0; }
  .business-parent .route { grid-row: 1 / 3; }
  .business-parent img { grid-column: 2; width: 170px; height: 90px; }
  .business-parent > div:last-child { grid-column: 2; }
  .business-parent h3 { font-size: 21px; }
  .business-parent p { font-size: 13px; }
  .business-item p, .business-parent p { font-size: 15px; }
  .business-ventures .business-item { display: flex; padding: 0 0 34px; }
  .business-item .business-logo-panel,
  .business-item .business-logo-link { grid-column: auto; width: 100%; }
  .business-logo-panel { height: auto; margin-bottom: 28px; }
  .business-logo-panel img { width: min(70%, 250px); height: auto; }
  .business-detail-button { width: 100%; min-width: 0; }
  .collection-guide { padding: 24px 20px; }
  .collection-modal .modal-head { padding-inline: 20px; }
  .collection-modal .modal-head h2 { font-size: 21px; letter-spacing: 0; }
  .collection-lead { font-size: 15px; }
  .collection-grid section { padding: 24px 0; }
  .collection-illustration { height: 190px; margin-bottom: 20px; }
  .collection-grid h3 { font-size: 18px; }
  .collection-grid p { font-size: 14px; }
  .collection-contact { margin-inline: -4px; padding: 22px 18px; }
  .call-confirm-modal .modal-head h2 { font-size: 22px; }
  .call-confirm-body { padding: 30px 20px 24px; }
  .call-confirm-body > strong { font-size: 24px; }
  .call-confirm-actions { grid-template-columns: 1fr; }
  .message { padding-inline: 20px; }
  .message-layout { gap: 36px; }
  .message-copy .section-head { margin-bottom: 36px; }
  .message-illustration img { max-height: 560px; }
  .service-rows > div { grid-template-columns: 38px 1fr; gap: 12px; padding-block: 22px; }
  .service-rows h3 { font-size: 16px; }
  .partner-list { grid-template-columns: 1fr; margin-top: 34px; }
  .permit-list li { grid-template-columns: 32px 1fr; gap: 8px 10px; }
  .permit-list strong { grid-column: 2; text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-link svg { transition: none; }
}

/* Logged-in page controls */
.member-tools {
  position: relative;
  border-top: 1px solid #b9d1e1;
  background: #edf6fa;
  color: var(--navy);
}

.member-tools__inner {
  min-height: 112px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 32px;
  padding-block: 24px;
}

.member-tools__inner p { margin: 0; font-size: 13px; }
.member-tools__actions { grid-column: 2; display: flex; align-items: center; justify-content: center; gap: 14px; }
.member-tools__actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  padding: 11px 22px;
  border: 1px solid #86adc2;
  border-radius: 999px;
  background: #fff;
  color: var(--navy);
  font-size: 14px;
  font-weight: 700;
  transition: color .2s, background-color .2s, border-color .2s;
}

.member-tools__actions svg,
.page-top svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.member-tools__actions a:hover { color: #fff; background: var(--navy); border-color: var(--navy); }
.member-tools__edit { min-width: 230px; }
.page-top {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 50;
  width: 82px;
  height: 82px;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 1px;
  border: 2px solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 1px #86adc2;
  background: var(--navy);
  color: #fff;
  cursor: pointer;
}

.page-top span { font-size: 9px; font-weight: 800; letter-spacing: .12em; }

@media (max-width: 640px) {
  .member-tools__inner { min-height: 0; display: flex; align-items: stretch; flex-direction: column; gap: 16px; padding-block: 24px; }
  .member-tools__actions { align-items: stretch; flex-direction: column; }
  .member-tools__actions a { width: 100%; }
  .page-top { right: 16px; bottom: 16px; width: 72px; height: 72px; }
}
