/* The native Flatsome rows remain editable; this layer supplies their editorial composition. */
.hatwell-homepage .hw-services > .section-content { padding-top: 100px; padding-bottom: 112px; }
.hatwell-homepage .hw-service-label { margin-bottom: 58px!important; padding-bottom: 28px; }
.hatwell-homepage .hw-service-label h2 {
  color: var(--hw-navy);
  font-size: clamp(62px, 7.3vw, 112px);
  font-weight: 500;
  line-height: 1.04;
  letter-spacing: -.065em;
}
.hatwell-homepage .hw-service-row {
  display: grid!important;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  grid-template-areas: "media copy";
  align-items: center;
  column-gap: clamp(32px, 4.3vw, 82px);
  width: 100%;
  padding: 0 0 58px;
  margin-bottom: 58px!important;
  border-bottom: 1px solid var(--hw-rule);
}
.hatwell-homepage .hw-service-row:last-child { padding-bottom: 0; margin-bottom: 0!important; border-bottom: 0; }
.hatwell-homepage .hw-service-row-reverse {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr);
  grid-template-areas: "copy media";
}
.hatwell-homepage .hw-service-row > .col {
  width: auto!important;
  max-width: none!important;
  min-width: 0;
  flex-basis: auto!important;
  padding: 0!important;
}
.hatwell-homepage .hw-service-media { grid-area: media; }
.hatwell-homepage .hw-service-copy { grid-area: copy; }
.hatwell-homepage .hw-service-row > .col > .col-inner { height: auto; }
.hatwell-homepage .hw-service-copy > .col-inner { display: block; }
.hatwell-homepage .hw-service-photo {
  aspect-ratio: 1.45;
  height: auto;
  margin: 0!important;
  clip-path: inset(0 0 0 0);
  transition: clip-path 1150ms cubic-bezier(.2,.65,.3,1);
}
.hatwell-homepage .hw-service-photo img {
  object-position: center 35%;
  transform: scale(1);
  transition: transform 1400ms cubic-bezier(.2,.65,.3,1);
}
.hatwell-homepage .hw-service-row:last-child .hw-service-photo img { object-position: center 15%; }
.hatwell-homepage.hw-motion-ready .hw-service-row:not(.is-visible) .hw-service-photo { clip-path: inset(0 0 100% 0); }
.hatwell-homepage.hw-motion-ready .hw-service-row:not(.is-visible) .hw-service-photo img { transform: scale(1.07); }
.hatwell-homepage .hw-service-number { margin-bottom: 24px!important; color: #708b9e; font-size: 20px; line-height: 1.2; font-variant-numeric: tabular-nums; }
.hatwell-homepage .hw-service-title h3 {
  font-size: clamp(42px, 4.75vw, 78px);
  line-height: 1.045;
  font-weight: 500;
  letter-spacing: -.06em;
  min-height: 0;
  margin: 0 0 32px;
  max-width: 670px;
}
.hatwell-homepage .hw-service-title h3 br { display: none; }
.hatwell-homepage .hw-service-description {
  font-size: clamp(18px, 1.56vw, 25px);
  line-height: 1.45;
  letter-spacing: -.025em;
  margin-bottom: 38px!important;
  max-width: 660px;
}
.hatwell-homepage .hw-service-link { margin-top: 0; }
.hatwell-homepage .hw-program-link { padding-bottom: 9px; gap: 12px; font-size: clamp(13px, 1.04vw, 16px); letter-spacing: .12em; }
.hatwell-homepage .hw-program-link svg { width: 21px; height: 21px; }

.hatwell-homepage .hw-closing {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: #fff;
  background: radial-gradient(ellipse at 82% 48%, #063051 0, transparent 57%), var(--hw-navy)!important;
  border-top: 0;
}
.hatwell-homepage .hw-closing > .section-content { position: relative; z-index: 1; padding-top: 145px; padding-bottom: 155px; }
.hatwell-homepage .hw-closing-row {
  display: grid!important;
  grid-template-columns: minmax(0, 1fr) clamp(200px, 18vw, 290px);
  align-items: center;
  gap: clamp(50px, 6vw, 110px);
}
.hatwell-homepage .hw-closing-copy,
.hatwell-homepage .hw-closing-action { width: auto; max-width: none; min-width: 0; flex-basis: auto; }
.hatwell-homepage .hw-closing-copy h2 {
  color: #fff;
  font-size: clamp(60px, 7.15vw, 118px);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: -.065em;
  margin-bottom: 42px;
}
.hatwell-homepage .hw-closing-copy p {
  color: #dce9f4;
  font-size: clamp(48px, 5.5vw, 92px);
  font-weight: 400;
  line-height: 1.07;
  letter-spacing: -.055em;
}
.hatwell-homepage .hw-closing-action > .col-inner { display: flex; align-items: center; justify-content: center; }
.hatwell-homepage .hw-closing-action .hw-button {
  width: clamp(190px, 16vw, 260px);
  height: clamp(190px, 16vw, 260px);
  min-width: 0;
  min-height: 0;
  padding: 28px;
  border: 1px solid #ffffffa6;
  border-radius: 50%;
  background: #fff;
  color: var(--hw-navy)!important;
  box-shadow: none;
  display: flex;
  flex-direction: column;
  gap: 24px;
  font-size: clamp(12px, 1.04vw, 16px);
  letter-spacing: .19em;
  white-space: nowrap;
  transition: transform 450ms cubic-bezier(.2,.65,.3,1), background-color 300ms ease, box-shadow 300ms ease;
}
.hw-closing-arrow { width: 54px; height: 54px; display: block; flex-shrink: 0; transition: transform 450ms cubic-bezier(.2,.65,.3,1); }
.hw-closing-globe {
  position: absolute;
  z-index: 0;
  width: min(70vw, 1300px);
  aspect-ratio: 1;
  right: -30vw;
  top: 50%;
  color: #6ab0dd;
  opacity: .34;
  pointer-events: none;
  transform: translateY(-50%) rotate(-12deg);
  animation: hw-editorial-globe 28s ease-in-out infinite alternate;
}
.hw-closing-globe svg { display: block; width: 100%; height: 100%; }
@keyframes hw-editorial-globe {
  from { transform: translateY(-50%) rotate(-12deg) scale(1); }
  to { transform: translateY(-48%) rotate(-6deg) scale(1.035); }
}

.hatwell-homepage .hw-footer { background: #fff; color: var(--hw-navy); padding-top: 52px; }
.hatwell-homepage .hw-footer-top { padding-bottom: 38px; }
.hatwell-homepage .hw-footer .hw-logo img {
  width: clamp(210px, 17vw, 260px);
  height: auto;
  filter: brightness(0) saturate(100%) invert(9%) sepia(46%) saturate(2444%) hue-rotate(181deg) brightness(95%) contrast(109%);
}
.hatwell-homepage .hw-footer-contact > span + span { border-color: #bbc8d1; }
.hatwell-homepage .hw-footer-bottom { border-color: var(--hw-rule); color: var(--hw-muted, #526575); }
.hw-footer-legal { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; }
.hw-legal-link { display: inline-flex; align-items: center; min-height: 32px; font-size: 13px; line-height: 1.3; text-decoration: underline; text-underline-offset: 3px; cursor: default; }
.hatwell-homepage a.hw-logo { width: max-content; max-width: 100%; text-decoration: none; cursor: pointer; }
.hatwell-homepage a.hw-logo img { transition: opacity 250ms ease, transform 300ms ease; }
.hatwell-homepage a.hw-logo:focus-visible { outline: 2px solid #6aa4c5; outline-offset: 8px; }

@media (hover: hover) and (pointer: fine) {
  .hatwell-homepage .hw-service-row:hover .hw-service-photo img { transform: scale(1.035); }
  .hatwell-homepage .hw-service-row:hover .hw-program-link svg { transform: translate(4px, -4px); }
  .hatwell-homepage .hw-closing-action .hw-button:hover { background: #eff6fb; transform: scale(1.035); box-shadow: 0 0 0 12px #ffffff08; }
  .hw-closing-action .hw-button:hover .hw-closing-arrow { transform: translate(4px, -4px); }
  .hatwell-homepage a.hw-logo:hover img { opacity: .85; transform: translateY(-1px); }
}
@media (min-width: 850px) and (max-width: 1200px) {
  .hatwell-homepage .hw-service-title h3 { font-size: clamp(38px, 4.5vw, 54px); }
  .hatwell-homepage .hw-service-number { margin-bottom: 18px!important; font-size: 17px; }
  .hatwell-homepage .hw-service-description { font-size: 18px; margin-bottom: 26px!important; }
  .hatwell-homepage .hw-service-row { align-items: center; }
  .hatwell-homepage .hw-closing-copy h2 { font-size: clamp(57px, 7vw, 84px); }
  .hatwell-homepage .hw-closing-copy p { font-size: clamp(47px, 5.5vw, 66px); }
  .hatwell-homepage .hw-closing-row { gap: 40px; grid-template-columns: minmax(0, 1fr) 190px; }
  .hatwell-homepage .hw-closing-action .hw-button { width: 180px; height: 180px; font-size: 12px; }
  .hw-closing-arrow { width: 44px; height: 44px; }
}
@media (max-width: 849px) {
  .hatwell-homepage .hw-services > .section-content { padding-top: 74px; padding-bottom: 82px; }
  .hatwell-homepage .hw-service-label { margin-bottom: 34px!important; padding-bottom: 22px; }
  .hatwell-homepage .hw-service-label h2 { font-size: clamp(54px, 9.5vw, 80px); }
  .hatwell-homepage .hw-service-row,
  .hatwell-homepage .hw-service-row-reverse { grid-template-columns: minmax(0, 1fr); grid-template-areas: "media" "copy"; row-gap: 30px; padding-bottom: 42px; margin-bottom: 42px!important; }
  .hatwell-homepage .hw-service-row:last-child { margin-bottom: 0!important; padding-bottom: 0; }
  .hatwell-homepage .hw-service-photo { aspect-ratio: 1.25; }
  .hatwell-homepage .hw-service-number { font-size: 17px; margin-bottom: 18px!important; }
  .hatwell-homepage .hw-service-title h3 { font-size: clamp(42px, 7.1vw, 60px); line-height: 1.05; max-width: 650px; margin-bottom: 23px; }
  .hatwell-homepage .hw-service-description { font-size: 18px; max-width: 610px; margin-bottom: 28px!important; }
  .hatwell-homepage .hw-program-link { font-size: 13px; }
  .hatwell-homepage .hw-closing > .section-content { padding-top: 84px; padding-bottom: 80px; }
  .hatwell-homepage .hw-closing-row { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .hatwell-homepage .hw-closing-copy h2 { font-size: clamp(48px, 8.6vw, 78px); line-height: 1.05; margin-bottom: 30px; }
  .hatwell-homepage .hw-closing-copy p { font-size: clamp(43px, 7.4vw, 68px); line-height: 1.08; }
  .hatwell-homepage .hw-closing-action { margin-top: 0; }
  .hatwell-homepage .hw-closing-action > .col-inner { justify-content: flex-start; }
  .hatwell-homepage .hw-closing-action .hw-button { width: 170px; height: 170px; font-size: 12px; gap: 18px; }
  .hw-closing-arrow { width: 44px; height: 44px; }
  .hw-closing-globe { width: 720px; right: -380px; top: 60%; opacity: .23; }
  .hatwell-homepage .hw-footer { padding-top: 44px; }
  .hatwell-homepage .hw-footer-top { padding-bottom: 32px; }
  .hatwell-homepage .hw-footer .hw-logo img { width: 212px; }
  .hatwell-homepage .hw-footer-bottom { flex-direction: column; align-items: flex-start; gap: 10px; }
  .hw-footer-legal { gap: 20px; }
}
@media (max-width: 480px) {
  .hatwell-homepage .hw-service-title h3 { font-size: clamp(34px, 10.8vw, 42px); letter-spacing: -.057em; }
  .hatwell-homepage .hw-service-description { font-size: 17px; }
  .hatwell-homepage .hw-closing-copy h2 { font-size: clamp(43px, 12vw, 56px); }
  .hatwell-homepage .hw-closing-copy p { font-size: clamp(40px, 10.5vw, 50px); }
  .hatwell-homepage .hw-closing-copy br { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .hw-closing-globe { animation: none; }
  .hatwell-homepage .hw-service-photo,
  .hatwell-homepage .hw-service-photo img,
  .hatwell-homepage .hw-closing-action .hw-button,
  .hw-closing-arrow,
  .hatwell-homepage a.hw-logo img { transition: none; }
  .hatwell-homepage.hw-motion-ready .hw-service-row:not(.is-visible) .hw-service-photo { clip-path: none; }
  .hatwell-homepage.hw-motion-ready .hw-service-row:not(.is-visible) .hw-service-photo img,
  .hatwell-homepage .hw-service-row:hover .hw-service-photo img,
  .hatwell-homepage .hw-service-row:hover .hw-program-link svg,
  .hatwell-homepage .hw-closing-action .hw-button:hover,
  .hw-closing-action .hw-button:hover .hw-closing-arrow,
  .hatwell-homepage a.hw-logo:hover img { transform: none; }
}
