.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 60;
  height: 94px;
  padding: 22px var(--gutter) 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 34px;
  pointer-events: none;
  will-change: transform, opacity;
}
.site-brand-lockup,
.site-wordmark,
.site-leadingre,
.site-top-nav { pointer-events: auto; }
.site-brand-lockup {
  display: flex;
  align-items: center;
  gap: 18px;
  flex: 0 0 auto;
}
.site-wordmark { display: inline-block; flex: 0 0 auto; }
.site-wordmark img {
  width: 190px;
  max-height: 48px;
  object-fit: contain;
  object-position: left center;
  filter: brightness(0) invert(1);
}

.site-brand-divider {
  width: 1px;
  height: 46px;
  background: rgba(255,255,255,.66);
  flex: 0 0 auto;
}
.site-leadingre {
  display: inline-flex;
  align-items: center;
  height: 48px;
}
.site-leadingre img {
  display: block;
  width: 92px;
  max-height: 48px;
  object-fit: contain;
  object-position: left center;
}
.site-top-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(16px, 1.65vw, 26px);
  padding-top: 5px;
  color: var(--white);
  white-space: nowrap;
}
.site-top-nav a {
  position: relative;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .11em;
  text-transform: uppercase;
  opacity: .92;
}
.site-top-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -7px;
  height: 1px;
  background: currentColor;
  transition: right .25s ease;
}
.site-top-nav a:hover::after { right: 0; }

/* HERO */
.hero-scroll {
  position: relative;
  z-index: 1;
  height: 340vh;
  min-height: 2400px;
  background: #0c1016;
}
.hero-sticky {
  position: sticky;
  top: 0;
  height: 100svh;
  overflow: hidden;
  color: var(--white);
  background: #0c1016;
}
.hero-video {
  position: absolute;
  left: 0;
  top: -26vh;
  width: 100%;
  height: 156vh;
  object-fit: cover;
  object-position: center center;
  opacity: 0;
  transform: translate3d(0, 0, 0) scale(1.005);
  transition: opacity .28s ease;
  will-change: transform;
}
.hero-video.is-ready { opacity: 1; }
.hero-overlay {
  position: absolute;
  inset: 0;
  background: rgba(5, 8, 12, .27);
  pointer-events: none;
}
.hero-stage {
  position: relative;
  min-height: 100svh;
  z-index: 1;
}
#hero-title {
  position: absolute;
  left: 0;
  top: 51%;
  width: min(900px, 64vw);
  margin: 0;
  text-align: left;
  font-size: clamp(58px, 5.9vw, 94px);
  line-height: .98;
  font-weight: 700;
  letter-spacing: -.055em;
  transform: translate3d(0, -50%, 0);
  will-change: transform;
}
.hero-search-stage {
  position: absolute;
  left: 0;
  right: 0;
  bottom: clamp(250px, 28vh, 312px);
  opacity: 0;
  transform: translate3d(0, 22px, 0);
  will-change: transform, opacity;
}
.hero-search {
  display: grid;
  grid-template-columns: 150px 164px minmax(360px, 1fr) 102px;
  gap: clamp(18px, 2vw, 30px);
  width: min(1180px, calc(100% - 126px));
  min-height: 64px;
  margin: 0;
}
.hero-search-selects,
.hero-search-query { display: contents; }
.hero-search select,
.hero-search input,
.hero-search button {
  border: 0;
  border-radius: 0;
  color: var(--white);
  background: transparent;
}
.hero-search select {
  width: 100%;
  min-width: 0;
  height: 64px;
  padding: 0 16px 0 2px;
  border-bottom: 1px solid rgba(255,255,255,.68);
  appearance: none;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .17em;
  text-transform: uppercase;
  cursor: pointer;
}
.hero-search select option { color: var(--ink); background: var(--white); }
.hero-search input {
  width: 100%;
  height: 64px;
  padding: 0 4px;
  outline: 0;
  border-bottom: 1px solid rgba(255,255,255,.68);
  font-size: clamp(17px, 1.35vw, 21px);
  letter-spacing: -.018em;
}
.hero-search input::placeholder { color: rgba(255,255,255,.78); }
.hero-search input:focus { border-bottom-color: var(--white); }
.hero-search button {
  position: relative;
  height: 64px;
  padding: 0 2px;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  cursor: pointer;
  border-bottom: 1px solid rgba(255,255,255,.68);
  transition: opacity .2s ease, border-color .2s ease;
}
.hero-search button:hover { opacity: .65; border-bottom-color: var(--white); }
.hero-socials {
  position: absolute;
  right: 0;
  top: 51%;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  gap: 15px;
  align-items: center;
  color: var(--white);
  opacity: .94;
}
.hero-socials a {
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: inherit;
  transition: opacity .2s ease, transform .2s ease;
}
.hero-socials a:hover { opacity: .62; transform: translateX(-2px); }
.hero-socials svg { width: 22px; height: 22px; fill: currentColor; stroke: none; overflow: visible; }
.hero-socials svg.is-stroked { fill: none; stroke: currentColor; stroke-width: 1.65; }
.hero-socials svg.is-stroked .is-filled-dot { fill: currentColor; stroke: none; }
body.is-after-hero .site-header { opacity: 0; visibility: hidden; }

/* WHITE SECTION RISES OVER THE FINAL HERO FRAME — NO GRADIENT. */
.selling-intro {
  position: relative;
  z-index: 8;
  margin-top: -16vh;
  background: var(--white);
  min-height: 96vh;
  padding: calc(16vh + 150px) 0 150px;
  display: flex;
  align-items: center;
}
.selling-intro-inner {
  display: grid;
  grid-template-columns: 1fr;
  justify-items: center;
  text-align: center;
}
.selling-intro h2 {
  max-width: 1100px;
  margin: 0 auto 48px;
  font-size: clamp(58px, 6.6vw, 102px);
}
.selling-intro p {
  max-width: 720px;
  margin: 0 auto;
  color: #5f6771;
  font-size: 17px;
  line-height: 1.7;
}

/* SELLING STORIES */
.selling-stories {
  background: var(--white);
  padding: 20px 0 210px;
}
.selling-stories-shell {
  position: relative;
  border-top: 1px solid var(--line);
  padding-top: 52px;
}
.selling-story {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: center;
  min-height: 95vh;
  padding: 70px 0;
}
.selling-story-media {
  overflow: hidden;
  background: #eceff2;
}
.selling-story-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .8s cubic-bezier(.2,.7,.2,1);
}
.selling-story:hover .selling-story-media img { transform: scale(1.018); }
.selling-story-copy { align-self: center; }
.selling-story-copy h3 {
  margin-bottom: 28px;
  font-size: clamp(42px, 4.3vw, 70px);
}
.selling-story-copy p {
  margin-bottom: 30px;
  color: #5f6771;
  line-height: 1.68;
}
.selling-story-value .selling-story-media {
  grid-column: 2 / 8;
  height: min(72vh, 760px);
}
.selling-story-value .selling-story-copy { grid-column: 9 / 13; padding-left: 24px; }
.selling-story-online .selling-story-copy { grid-column: 2 / 6; padding-right: 36px; }
.selling-story-online .selling-story-media {
  grid-column: 8 / 13;
  height: min(62vh, 650px);
}
.selling-story-agent .selling-story-media {
  grid-column: 4 / 9;
  height: min(68vh, 700px);
}
.selling-story-agent .selling-story-copy { grid-column: 10 / 13; padding-left: 26px; }

/* WHY CHAS — IMMERSIVE BLUE SCENE */
.why-immersive {
  position: relative;
  min-height: 122vh;
  background: var(--ce-dark);
  color: var(--white);
  overflow: hidden;
  padding: 110px 0 120px;
}
.why-scene { position: relative; min-height: 900px; }
.why-image {
  position: absolute;
  left: 16%;
  top: 110px;
  width: 68%;
  height: 690px;
  object-fit: cover;
  filter: saturate(.88) brightness(.74);
}
.why-scene h2 {
  position: absolute;
  left: 0;
  top: 355px;
  z-index: 2;
  width: 41%;
  margin: 0;
  font-size: clamp(56px, 6vw, 94px);
}
.why-copy {
  position: absolute;
  right: 0;
  top: 345px;
  z-index: 2;
  width: min(360px, 28%);
  padding-top: 22px;
  border-top: 1px solid rgba(255,255,255,.28);
  color: rgba(255,255,255,.76);
}
.why-copy .why-lead { color: var(--white); font-size: 19px; line-height: 1.45; }
.why-copy p:last-child { margin-bottom: 0; }

/* PROPERTY JOURNEYS — RULED INDEX */
.journey-index {
  background: var(--white);
  padding: 160px 0 200px;
}
.journey-list { border-top: 1px solid var(--line); }
.journey-row {
  display: grid;
  grid-template-columns: 160px minmax(260px, .8fr) minmax(300px, 1.15fr) auto;
  gap: 34px;
  align-items: center;
  min-height: 126px;
  padding: 28px 0;
  border-bottom: 1px solid var(--line);
  transition: color .2s ease, padding .25s ease;
}
.journey-row:hover { padding-left: 10px; padding-right: 10px; }
.journey-name { font-size: 24px; color: #7c838c; letter-spacing: -.035em; }
.journey-row h3 { margin: 0; font-size: clamp(28px, 2.45vw, 40px); }
.journey-row p { margin: 0; color: #6f7680; font-size: 14px; line-height: 1.6; }
.journey-row > a {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  white-space: nowrap;
}
.journey-gallery {
  position: relative;
  min-height: 940px;
  margin-top: 150px;
}
.journey-gallery img { position: absolute; object-fit: cover; }
.journey-gallery-small { left: 15%; top: 170px; width: 32%; height: 540px; }
.journey-gallery-large { right: 0; top: 0; width: 55%; height: 760px; }

/* TESTIMONIALS */
.testimonials {
  background: var(--white);
  padding: 0 0 200px;
}
.testimonial-topline {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 24px;
  align-items: center;
  min-height: 86px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.testimonial-tabs { display: flex; gap: 24px; margin: 0; }
.tab-button {
  min-height: 42px;
  padding: 0;
  border: 0;
  border-bottom: 1px solid transparent;
  font-size: 10px;
  letter-spacing: .16em;
  color: #838a93;
}
.tab-button.is-active,
.tab-button:hover { border-color: var(--ink); color: var(--ink); }
.testimonial-index {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .18em;
  color: #69717a;
}
.testimonial-controls { display: flex; gap: 8px; }
.testimonial-controls button {
  width: 44px;
  height: 44px;
  border: 1px solid var(--line);
  background: transparent;
  cursor: pointer;
}
.testimonial-layout {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  gap: 76px;
  align-items: start;
  padding-top: 86px;
  min-height: 720px;
}
.testimonial-portrait { width: 150px; height: 190px; object-fit: cover; filter: grayscale(1); }
.testimonial-panel { display: none; }
.testimonial-panel.is-active { display: block; }
.testimonial-panel blockquote {
  margin: 0;
  max-width: 1000px;
  font-size: clamp(44px, 4.65vw, 72px);
  line-height: 1.02;
}
.testimonial-author { margin-top: 48px; font-size: 17px; line-height: 1.5; }

/* CAREER */
.career { background: var(--white); padding: 0 0 180px; }
.career-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(360px, .8fr);
  gap: 100px;
  padding: 140px 0 120px;
  border-top: 1px solid var(--line);
}
.career-intro h2 { margin: 0; max-width: 760px; }
.career-copy { max-width: 560px; padding-top: 10px; }
.career-copy p { color: #656d77; line-height: 1.68; }
.career-copy .button-link { margin-top: 20px; }
.career-image { width: 100%; height: 92vh; min-height: 680px; overflow: hidden; }
.career-image img { width: 100%; height: 100%; object-fit: cover; }

/* PARTNERS */
.partners { background: var(--white); padding: 150px 0; }
.partners-grid {
  display: grid;
  grid-template-columns: .7fr 1.3fr;
  gap: 110px;
  align-items: start;
  border-top: 1px solid var(--line);
  padding-top: 56px;
}
.partners-grid h2 { margin: 0; }
.partner-list { border-top: 1px solid var(--line); }
.partner-list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  min-height: 78px;
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
  font-size: clamp(20px, 2vw, 30px);
  color: #6a717a;
  transition: color .2s ease, padding .2s ease;
}
.partner-list a:hover { color: var(--ink); padding-left: 8px; }

/* NEWS */
.news-section { background: var(--white); padding: 40px 0 200px; }
.news-head {
  display: grid;
  grid-template-columns: 1fr minmax(360px, .6fr);
  gap: 90px;
  align-items: end;
  padding: 110px 0 70px;
  border-top: 1px solid var(--line);
}
.news-head h2 { margin: 0; }
.news-head p { margin: 0; color: #666e77; line-height: 1.68; }
.news-list { border-top: 1px solid var(--line); }
.news-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 40px;
  align-items: center;
  min-height: 128px;
  padding: 28px 0;
  border-bottom: 1px solid var(--line);
}
.news-row h3 { margin: 0; max-width: 1000px; font-size: clamp(28px, 2.75vw, 44px); }
.news-row a { font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.news-images { position: relative; min-height: 900px; margin-top: 130px; }
.news-images img { position: absolute; object-fit: cover; }
.news-image-small { left: 12%; top: 190px; width: 31%; height: 500px; }
.news-image-large { right: 0; top: 0; width: 55%; height: 720px; }

/* ACCOLADES — SECOND IMMERSIVE BLUE MOMENT */
.accolades {
  background: var(--ce-dark);
  color: var(--white);
  padding: 150px 0 170px;
}
.accolades-layout {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(520px, 1.1fr);
  gap: 110px;
}
.accolades-intro h2 { margin: 0 0 44px; max-width: 720px; }
.accolades-copy { max-width: 590px; color: rgba(255,255,255,.72); }
.accolades-copy p { line-height: 1.68; }
.rating { margin-top: 26px; color: var(--white); font-size: 21px; letter-spacing: .12em; }
.accolade-list { border-top: 1px solid rgba(255,255,255,.22); }
.accolade-list article {
  display: grid;
  grid-template-columns: 180px 1fr auto;
  gap: 24px;
  align-items: center;
  min-height: 110px;
  padding: 24px 0;
  border-bottom: 1px solid rgba(255,255,255,.22);
}
.accolade-list h3 { margin: 0; font-size: 26px; }
.accolade-list p { margin: 0; color: rgba(255,255,255,.68); }
.accolade-list a { font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }

/* CONTACT */
.contact-section { background: var(--white); padding: 170px 0 180px; }
.contact-grid {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(520px, 1.15fr);
  gap: 110px;
  border-top: 1px solid var(--line);
  padding-top: 72px;
}
.contact-heading h2 { margin-bottom: 34px; }
.contact-heading p { max-width: 500px; color: #656d77; line-height: 1.68; }
.concept-form { display: grid; align-content: start; gap: 16px; }
.field {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 18px;
  align-items: end;
  min-height: 60px;
  border-bottom: 1px solid var(--line);
}
.field > span {
  padding-bottom: 14px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #727983;
}
.field input,
.field textarea {
  width: 100%;
  border: 0;
  background: transparent;
  outline: 0;
  padding: 10px 0 13px;
  resize: vertical;
}
.field-message { align-items: start; }
.field-message > span { padding-top: 16px; }
.field textarea { min-height: 120px; }
.form-check { display: flex; gap: 10px; align-items: flex-start; margin-top: 8px; font-size: 12px; color: var(--muted); }
.form-check input { margin-top: 3px; accent-color: var(--ce-dark); }
.form-check a,
.form-small a { text-decoration: underline; }
.form-small { margin: 0; font-size: 10px; color: #858b92; line-height: 1.45; }
.form-submit { justify-self: start; margin-top: 12px; }

/* FOOTER */
.site-footer {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  background: #101722;
  color: var(--white);
}
.footer-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.footer-shade { position: absolute; inset: 0; background: rgba(10, 16, 25, .43); }
.footer-logo {
  position: absolute;
  top: 28px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
}
.footer-logo img { width: 170px; filter: brightness(0) invert(1); }
.footer-giant {
  position: absolute;
  left: -1.5vw;
  right: -1.5vw;
  bottom: 56px;
  z-index: 1;
  white-space: nowrap;
  font-size: clamp(120px, 18vw, 285px);
  line-height: .75;
  letter-spacing: -.075em;
  color: rgba(255,255,255,.15);
  pointer-events: none;
}
.footer-left,
.footer-right {
  position: absolute;
  bottom: 20px;
  z-index: 3;
  display: flex;
  gap: 16px;
  align-items: center;
  font-size: 10px;
  color: rgba(255,255,255,.74);
}
.footer-left { left: var(--gutter); flex-wrap: wrap; max-width: 48%; }
.footer-right { right: var(--gutter); justify-content: flex-end; flex-wrap: wrap; max-width: 45%; }
.footer-socials { display: flex; gap: 14px; flex-wrap: wrap; }
.footer-site-links {
  position: absolute;
  right: var(--gutter);
  bottom: 60px;
  z-index: 4;
  width: min(820px, calc(100% - var(--gutter) * 2));
  color: var(--white);
  text-align: right;
}
.footer-site-links summary {
  margin-left: auto;
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255,255,255,.28);
  cursor: pointer;
  list-style: none;
  font-size: 18px;
  line-height: 1;
}
.footer-site-links summary::-webkit-details-marker { display: none; }
.footer-site-links-panel {
  margin-top: 14px;
  padding: 26px;
  background: rgba(24,47,88,.98);
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 24px;
  max-height: 58vh;
  overflow: auto;
  text-align: left;
  box-shadow: 0 18px 60px rgba(0,0,0,.2);
}
.footer-site-links-panel h3 { margin: 0 0 10px; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; }
.footer-site-links-panel a,
.footer-site-links-panel span { display: block; padding: 3px 0; font-size: 11px; color: rgba(255,255,255,.72); }

/* Gentle non-hero content reveal. */
html.reveal-ready [data-reveal] {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
  transition: opacity .7s ease, transform .85s cubic-bezier(.2,.75,.2,1);
}
html.reveal-ready [data-reveal].is-revealed { opacity: 1; transform: translate3d(0,0,0); }

@media (max-width: 1160px) {
  .site-top-nav { gap: 13px; }
  .site-top-nav a { font-size: 9px; letter-spacing: .08em; }
  #hero-title { width: min(720px, 66vw); }
  .hero-search { grid-template-columns: 132px 142px minmax(250px, 1fr) 90px; gap: 16px; width: min(1040px, calc(100% - 72px)); }
  .selling-story-value .selling-story-media { grid-column: 1 / 8; }
  .selling-story-value .selling-story-copy { grid-column: 9 / 13; }
  .selling-story-online .selling-story-copy { grid-column: 1 / 5; }
  .selling-story-online .selling-story-media { grid-column: 7 / 13; }
  .selling-story-agent .selling-story-media { grid-column: 3 / 9; }
  .selling-story-agent .selling-story-copy { grid-column: 10 / 13; }
  .why-image { left: 12%; width: 76%; }
  .why-scene h2 { width: 47%; }
  .why-copy { width: 31%; }
  .journey-row { grid-template-columns: 120px 1fr; }
  .journey-row p,
  .journey-row > a { grid-column: 2; }
  .partners-grid,
  .news-head,
  .career-intro,
  .accolades-layout,
  .contact-grid { gap: 64px; }
  .accolades-layout { grid-template-columns: .85fr 1.15fr; }
  .contact-grid { grid-template-columns: .8fr 1.2fr; }
  .footer-site-links-panel { grid-template-columns: repeat(3, minmax(0,1fr)); }
}

@media (max-width: 820px) {
  .site-header { height: 74px; padding: 16px 18px 0; }
  .site-wordmark img { width: 150px; }
  .site-top-nav { display: none; }
  .hero-scroll { height: 285vh; min-height: 1800px; }
  .hero-video { top: -18vh; height: 140vh; }
  #hero-title {
    top: 47%;
    width: min(80vw, 560px);
    font-size: clamp(46px, 11vw, 64px);
  }
  .hero-search-stage { bottom: 142px; }
  .hero-search {
    grid-template-columns: 1fr 1fr;
    width: calc(100% - 54px);
    gap: 10px 14px;
  }
  .hero-search select { height: 50px; font-size: 8px; }
  .hero-search input { grid-column: 1 / -1; height: 54px; font-size: 14px; }
  .hero-search button { grid-column: 1 / -1; height: 44px; width: 100%; }
  .hero-socials { right: 0; gap: 10px; }
  .hero-socials a { width: 24px; height: 24px; }
  .hero-socials svg { width: 18px; height: 18px; }

  .selling-intro { margin-top: -10vh; padding: calc(10vh + 110px) 0 110px; min-height: 76vh; }
  .selling-intro h2 { font-size: clamp(46px, 11vw, 64px); margin-bottom: 34px; }
  .selling-intro p { font-size: 15px; }
  .selling-stories { padding-bottom: 120px; }
  .selling-stories-shell { padding-top: 20px; }
  .selling-story {
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 80px 0;
  }
  .selling-story-media,
  .selling-story-copy { grid-column: 1 !important; padding: 0 !important; }
  .selling-story-media { height: 68vw !important; min-height: 380px; }
  .selling-story-copy { max-width: 640px; }
  .selling-story-copy h3 { font-size: clamp(38px, 9vw, 54px); }
  .selling-story-online .selling-story-media { order: 1; }
  .selling-story-online .selling-story-copy { order: 2; }

  .why-immersive { min-height: 1080px; padding: 90px 0 70px; }
  .why-scene { min-height: 920px; }
  .why-image { left: 0; top: 180px; width: 100%; height: 540px; }
  .why-scene h2 { left: 0; top: 70px; width: 94%; z-index: 3; }
  .why-copy { left: 0; right: auto; top: 750px; width: 100%; }

  .journey-index { padding: 110px 0 130px; }
  .journey-row { grid-template-columns: 1fr; gap: 12px; padding: 28px 0; }
  .journey-row p,
  .journey-row > a { grid-column: 1; }
  .journey-name { font-size: 18px; }
  .journey-row h3 { font-size: 30px; }
  .journey-gallery { min-height: 620px; margin-top: 90px; }
  .journey-gallery-small { left: 0; top: 170px; width: 54%; height: 360px; }
  .journey-gallery-large { right: 0; width: 70%; height: 470px; }

  .testimonials { padding-bottom: 120px; }
  .testimonial-topline { grid-template-columns: 1fr auto; gap: 16px; }
  .testimonial-tabs { grid-column: 1 / -1; padding-top: 14px; }
  .testimonial-layout { grid-template-columns: 1fr; gap: 30px; padding-top: 60px; min-height: 0; }
  .testimonial-portrait { width: 110px; height: 140px; }
  .testimonial-panel blockquote { font-size: clamp(34px, 9vw, 48px); }

  .career { padding-bottom: 100px; }
  .career-intro { grid-template-columns: 1fr; gap: 34px; padding: 90px 0 80px; }
  .career-image { height: 72vh; min-height: 520px; }

  .partners { padding: 100px 0; }
  .partners-grid { grid-template-columns: 1fr; gap: 44px; padding-top: 44px; }
  .partner-list a { min-height: 68px; font-size: 20px; }

  .news-section { padding: 20px 0 130px; }
  .news-head { grid-template-columns: 1fr; gap: 30px; padding: 80px 0 54px; }
  .news-row { grid-template-columns: 1fr; gap: 16px; }
  .news-row h3 { font-size: 28px; }
  .news-images { min-height: 580px; margin-top: 90px; }
  .news-image-small { left: 0; top: 160px; width: 52%; height: 330px; }
  .news-image-large { right: 0; width: 70%; height: 440px; }

  .accolades { padding: 100px 0 120px; }
  .accolades-layout { grid-template-columns: 1fr; gap: 60px; }
  .accolade-list article { grid-template-columns: 1fr; gap: 10px; }

  .contact-section { padding: 110px 0 120px; }
  .contact-grid { grid-template-columns: 1fr; gap: 52px; padding-top: 48px; }
  .field { grid-template-columns: 72px 1fr; }

  .site-footer { min-height: 92vh; }
  .footer-logo img { width: 146px; }
  .footer-giant { font-size: 28vw; bottom: 118px; }
  .footer-left,
  .footer-right { left: 18px; right: 18px; max-width: none; justify-content: flex-start; }
  .footer-left { bottom: 70px; }
  .footer-right { bottom: 18px; }
  .footer-left > div:first-child { display: none; }
  .footer-site-links { left: 18px; right: 18px; bottom: 118px; width: auto; }
  .footer-site-links summary { margin-left: 0; }
  .footer-site-links-panel { grid-template-columns: 1fr 1fr; max-height: 60vh; }
}

@media (prefers-reduced-motion: reduce) {
  html.reveal-ready [data-reveal] { opacity: 1; transform: none; transition: none; }
  .selling-story-media img { transition: none; }
}

/* =========================================================
   REFINEMENT V7
   Compact first white section, smaller testimonial type,
   instant post-hero dock, and fixed video footer reveal.
   ========================================================= */

/* The first white panel should feel like the hero lifting away, not a second hero. */
.selling-intro {
  margin-top: 0;
  min-height: 0;
  padding: clamp(92px, 8vw, 132px) 0 clamp(82px, 7vw, 118px);
  align-items: flex-start;
}
.selling-intro-inner {
  justify-items: start;
  text-align: left;
  max-width: 980px;
}
.selling-intro h2 {
  max-width: 860px;
  margin: 0 0 28px;
  font-size: clamp(46px, 4.9vw, 72px);
  line-height: 1.01;
}
.selling-intro p {
  max-width: 650px;
  margin: 0;
  font-size: 16px;
  line-height: 1.62;
}

/* The quote remains the focus, but no longer overwhelms the viewport. */
.testimonial-layout {
  min-height: 590px;
  padding-top: 72px;
}
.testimonial-panel blockquote {
  max-width: 900px;
  font-size: clamp(32px, 3.15vw, 50px);
  line-height: 1.075;
  letter-spacing: -.045em;
}
.testimonial-author { margin-top: 36px; }

/* Footer is fixed beneath the page. The transparent spacer lets the final
   white section physically scroll away to reveal it, with no gradient. */
body { background: #101722; }
main {
  position: relative;
  z-index: 2;
  background: var(--white);
}
.footer-reveal-spacer {
  position: relative;
  z-index: 1;
  height: 100svh;
  pointer-events: none;
  background: transparent;
}
.site-footer {
  position: fixed;
  inset: auto 0 0 0;
  z-index: 0;
  width: 100%;
  height: 100svh;
  min-height: 100svh;
}
.footer-video {
  opacity: 0;
  transform: scale(1.035);
  transition: opacity .35s ease;
}
.footer-video.is-ready { opacity: 1; }
.footer-shade { background: rgba(8, 14, 23, .34); }
.footer-logo { top: 34px; }
.footer-logo img { width: 184px; }
.footer-giant {
  bottom: 92px;
  font-size: clamp(130px, 17vw, 270px);
  color: rgba(255,255,255,.16);
}
.footer-left,
.footer-right {
  bottom: 24px;
  gap: 17px;
  font-size: 13px;
  line-height: 1.45;
  color: rgba(255,255,255,.88);
}
.footer-socials { gap: 18px; }
.footer-left a,
.footer-right a,
.footer-socials a {
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  text-underline-offset: 4px;
}
.footer-left a:hover,
.footer-right a:hover,
.footer-socials a:hover { text-decoration: underline; }
.footer-site-links {
  bottom: 76px;
  width: min(900px, calc(100% - var(--gutter) * 2));
}
.footer-site-links summary {
  width: 44px;
  height: 44px;
  font-size: 21px;
  border-color: rgba(255,255,255,.48);
  background: rgba(24,47,88,.34);
}
.footer-site-links summary:hover { background: rgba(24,47,88,.64); }
.footer-site-links-panel {
  padding: 30px;
  gap: 28px;
  background: rgba(24,47,88,.985);
}
.footer-site-links-panel h3 {
  margin-bottom: 12px;
  font-size: 12px;
}
.footer-site-links-panel a,
.footer-site-links-panel span {
  padding: 5px 0;
  font-size: 13px;
  line-height: 1.35;
  color: rgba(255,255,255,.82);
}
.footer-site-links-panel a:hover { color: var(--white); text-decoration: underline; }

@media (max-width: 820px) {
  .selling-intro {
    margin-top: 0;
    min-height: 0;
    padding: 78px 0 74px;
  }
  .selling-intro h2 {
    font-size: clamp(40px, 10vw, 56px);
    margin-bottom: 24px;
  }
  .selling-intro p { font-size: 15px; }

  .testimonial-layout { min-height: 0; padding-top: 52px; }
  .testimonial-panel blockquote {
    font-size: clamp(28px, 7.4vw, 38px);
    line-height: 1.1;
  }

  .site-footer { min-height: 100svh; height: 100svh; }
  .footer-logo img { width: 154px; }
  .footer-giant { bottom: 165px; font-size: 27vw; }
  .footer-left,
  .footer-right { font-size: 12px; }
  .footer-left { bottom: 82px; }
  .footer-right { bottom: 22px; }
  .footer-site-links { bottom: 142px; }
  .footer-site-links-panel { grid-template-columns: 1fr 1fr; }
  .footer-site-links-panel a,
  .footer-site-links-panel span { font-size: 12px; }
}

/* V7 final type calibration after visual QA. */
.testimonial-panel blockquote { font-size: clamp(30px, 2.85vw, 46px); }
.footer-left,
.footer-right { font-size: 14px; }
.footer-site-links-panel a,
.footer-site-links-panel span { font-size: 14px; }
@media (max-width: 820px) {
  .testimonial-panel blockquote { font-size: clamp(27px, 7vw, 36px); }
  .footer-left,
  .footer-right { font-size: 13px; }
  .footer-site-links-panel a,
  .footer-site-links-panel span { font-size: 13px; }
}

/* =========================================================
   REFINEMENT V8
   Restore clean hero overlap; simplify and fully expose footer links.
   ========================================================= */

/* The first white section should physically rise over the last hero frame. */
.selling-intro {
  z-index: 8;
  margin-top: -11vh;
  padding: calc(11vh + 72px) 0 76px;
  background: var(--white);
}
.selling-intro-inner { max-width: 920px; }
.selling-intro h2 {
  max-width: 760px;
  margin-bottom: 22px;
  font-size: clamp(42px, 4.2vw, 64px);
}
.selling-intro p {
  max-width: 610px;
  font-size: 15px;
  line-height: 1.58;
}

/* Footer: keep the video below the page, remove the giant wordmark, and
   keep every footer destination visible at the left/right edges. */
.footer-giant,
.footer-left,
.footer-right,
.footer-site-links { display: none !important; }

.site-footer {
  overflow: hidden;
}
.footer-shade { background: rgba(8, 14, 23, .40); }
.footer-logo {
  top: 28px;
  z-index: 3;
}
.footer-logo img { width: 170px; }

.footer-nav-side {
  position: absolute;
  z-index: 3;
  top: 118px;
  bottom: 42px;
  width: min(34vw, 470px);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px 34px;
  align-content: start;
  color: rgba(255,255,255,.88);
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.32) transparent;
}
.footer-nav-left { left: clamp(24px, 3.2vw, 52px); }
.footer-nav-right { right: clamp(24px, 3.2vw, 52px); }
.footer-group {
  min-width: 0;
}
.footer-group h3 {
  margin: 0 0 9px;
  color: rgba(255,255,255,.62);
  font-size: 10px;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.footer-group a,
.footer-group span,
.footer-meta-left,
.footer-meta-right a {
  display: block;
  width: fit-content;
  max-width: 100%;
  padding: 3px 0;
  color: rgba(255,255,255,.88);
  font-size: 13px;
  line-height: 1.32;
  text-decoration: none;
}
.footer-group a:hover,
.footer-meta-right a:hover {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.footer-group span { color: rgba(255,255,255,.68); }
.footer-group-agents { grid-row: span 2; }
.footer-meta-left,
.footer-meta-right {
  align-self: end;
  color: rgba(255,255,255,.62);
}
.footer-meta-right {
  display: flex;
  flex-wrap: wrap;
  gap: 3px 14px;
  grid-column: 1 / -1;
}
.footer-meta-right a {
  font-size: 11px;
  color: rgba(255,255,255,.66);
}

@media (max-width: 980px) {
  .footer-nav-side {
    width: min(38vw, 390px);
    grid-template-columns: 1fr;
    gap: 18px;
    top: 100px;
    bottom: 28px;
  }
  .footer-group-agents { grid-row: auto; }
}

@media (max-width: 720px) {
  .selling-intro {
    margin-top: -7vh;
    padding: calc(7vh + 64px) 0 66px;
  }
  .site-footer {
    position: relative;
    height: auto;
    min-height: 100svh;
    padding: 100px 20px 120px;
  }
  .footer-reveal-spacer { display: none; }
  .footer-nav-side {
    position: relative;
    inset: auto;
    width: 100%;
    grid-template-columns: 1fr 1fr;
    margin-bottom: 26px;
    overflow: visible;
  }
  .footer-nav-left,
  .footer-nav-right { left: auto; right: auto; }
  .footer-logo { top: 24px; }
  .footer-logo img { width: 145px; }
  .footer-meta-left,
  .footer-meta-right { grid-column: 1 / -1; }
}

/* =========================================================
   FOOTER REFINEMENT V9
   Bottom-align both footer link groups, increase legibility,
   and keep the centre clear for the persistent navigation dock.
   ========================================================= */
@media (min-width: 721px) {
  .footer-nav-side {
    top: auto;
    bottom: 28px;
    max-height: calc(100svh - 132px);
    align-content: end;
    overflow: visible;
  }

  .footer-nav-left,
  .footer-nav-right {
    bottom: 28px;
  }

  .footer-group h3 {
    margin-bottom: 10px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .14em;
  }

  .footer-group a,
  .footer-group span,
  .footer-meta-left,
  .footer-meta-right a {
    padding: 4px 0;
    font-size: 15px;
    line-height: 1.35;
    font-weight: 600;
  }

  .footer-group span {
    font-weight: 500;
  }

  .footer-meta-left,
  .footer-meta-right {
    margin-top: 4px;
  }

  .footer-meta-right a {
    font-size: 14px;
    font-weight: 600;
  }
}

/* =========================================================
   CONTENT REBUILD V10
   The approved hero, floating menu and footer are intentionally
   untouched. Everything between them is rebuilt to share the same
   crisp Chas blue / white / image-led visual language.
   ========================================================= */

.ce-action {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 38px;
  padding: 0 0 9px;
  border-bottom: 1px solid currentColor;
  color: var(--ce-dark);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .17em;
  text-transform: uppercase;
  transition: opacity .2s ease, padding-right .2s ease;
}
.ce-action:hover { opacity: .64; padding-right: 8px; }
.ce-action-light { color: var(--white); }

/* SELLING — approved intro + three compact panoramic content bands */
.ce-sell {
  position: relative;
  z-index: 8;
  margin-top: -11vh;
  padding: calc(11vh + 58px) 0 clamp(72px, 7vw, 104px);
  background: var(--white);
}
.ce-sell-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
  gap: clamp(52px, 7vw, 110px);
  align-items: end;
  padding-bottom: clamp(50px, 5vw, 72px);
}
.ce-sell-intro h2 {
  margin: 0;
  max-width: 760px;
  font-size: clamp(46px, 4.6vw, 70px);
  line-height: .99;
}
.ce-sell-intro p {
  margin: 0 0 6px;
  max-width: 610px;
  color: #616975;
  font-size: 15px;
  line-height: 1.62;
}
.ce-sell-bands {
  display: grid;
  gap: 14px;
}
.ce-sell-band {
  position: relative;
  min-height: 330px;
  height: clamp(330px, 28vw, 410px);
  overflow: hidden;
  background: var(--ce-dark);
  color: var(--white);
}
.ce-sell-band-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: scale(1.01);
  transition: transform .7s cubic-bezier(.22,.61,.36,1);
}
.ce-sell-band:hover .ce-sell-band-image { transform: scale(1.025); }
.ce-sell-band-scrim {
  position: absolute;
  inset: 0 auto 0 0;
  width: min(52%, 760px);
  background: rgba(13,29,54,.84);
  border-right: 1px solid rgba(255,255,255,.16);
  backdrop-filter: blur(2px);
}
.ce-sell-band-right .ce-sell-band-scrim {
  inset: 0 0 0 auto;
  border-right: 0;
  border-left: 1px solid rgba(255,255,255,.16);
}
.ce-sell-band-copy {
  position: relative;
  z-index: 2;
  width: min(50%, 720px);
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(34px, 4vw, 58px);
}
.ce-sell-band-right .ce-sell-band-copy { margin-left: auto; }
.ce-sell-band-copy h3 {
  margin: 0 0 16px;
  max-width: 560px;
  font-size: clamp(30px, 3vw, 46px);
  line-height: 1.02;
  letter-spacing: -.04em;
}
.ce-sell-band-copy p {
  margin: 0 0 24px;
  max-width: 58ch;
  color: rgba(255,255,255,.76);
  font-size: 13px;
  line-height: 1.58;
}
.ce-sell-band .ce-action {
  align-self: flex-start;
  color: var(--white);
  padding-bottom: 7px;
  border-bottom: 1px solid rgba(255,255,255,.55);
}

/* WHY CHAS — one immersive, image-led scene */
.ce-why {
  position: relative;
  min-height: 640px;
  height: 72svh;
  max-height: 760px;
  overflow: hidden;
  background: var(--ce-dark);
}
.ce-why-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ce-why::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(8, 17, 31, .22);
  pointer-events: none;
}
.ce-why-panel {
  position: absolute;
  z-index: 2;
  left: var(--gutter);
  top: 50%;
  transform: translateY(-50%);
  width: min(560px, calc(100% - var(--gutter) * 2));
  padding: clamp(44px, 5vw, 70px);
  background: rgba(24,47,88,.93);
  color: var(--white);
}
.ce-why-panel h2 { margin: 0 0 34px; font-size: clamp(48px, 5vw, 76px); }
.ce-why-panel p {
  margin: 0 0 18px;
  max-width: 48ch;
  color: rgba(255,255,255,.74);
  font-size: 14px;
  line-height: 1.62;
}
.ce-why-panel .ce-why-lead {
  color: var(--white);
  font-size: 18px;
  line-height: 1.4;
}
.ce-why-panel p:last-child { margin-bottom: 0; }

/* BUY / RENT / AFFORDABILITY / DISCOVER — compact ruled pathways */
.ce-paths {
  background: var(--white);
  padding: clamp(70px, 7vw, 104px) 0;
}
.ce-paths-list { border-top: 1px solid var(--line); }
.ce-path-row {
  display: grid;
  grid-template-columns: minmax(110px, .45fr) minmax(0, 1.8fr) minmax(150px, .55fr);
  gap: clamp(24px, 4vw, 64px);
  align-items: center;
  min-height: 142px;
  padding: 26px 0;
  border-bottom: 1px solid var(--line);
  transition: padding .28s ease, background-color .28s ease, color .28s ease;
}
.ce-path-row:hover {
  padding-left: 18px;
  padding-right: 18px;
  background: var(--ce-dark);
  color: var(--white);
}
.ce-path-name {
  font-size: clamp(22px, 2.1vw, 30px);
  letter-spacing: -.035em;
  color: #707883;
}
.ce-path-row:hover .ce-path-name,
.ce-path-row:hover .ce-path-content p { color: rgba(255,255,255,.68); }
.ce-path-content {
  display: grid;
  grid-template-columns: minmax(260px, .8fr) minmax(280px, 1.2fr);
  gap: clamp(28px, 4vw, 60px);
  align-items: center;
}
.ce-path-content h3 {
  margin: 0;
  font-size: clamp(26px, 2.45vw, 38px);
  line-height: 1.02;
}
.ce-path-content p {
  margin: 0;
  max-width: 58ch;
  color: #68717b;
  font-size: 13px;
  line-height: 1.58;
}
.ce-path-link {
  justify-self: end;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  border-bottom: 1px solid currentColor;
  padding-bottom: 8px;
}

/* TESTIMONIALS — retain the approved structure, tighten the pace */
.testimonials {
  padding: clamp(76px, 7vw, 108px) 0 clamp(88px, 8vw, 120px);
  background: #f8f9fb;
}
.testimonial-topline { padding-bottom: 20px; }
.testimonial-layout {
  min-height: 0;
  padding-top: clamp(52px, 5vw, 72px);
  grid-template-columns: 180px minmax(0, 1fr);
  gap: clamp(48px, 7vw, 100px);
}
.testimonial-portrait { width: 150px; height: 186px; }
.testimonial-panel blockquote {
  max-width: 980px;
  font-size: clamp(29px, 2.6vw, 42px);
  line-height: 1.08;
}
.testimonial-author { margin-top: 30px; }

/* CAREER — another cinematic image scene, visually related to hero/footer */
.ce-career {
  position: relative;
  min-height: 620px;
  height: 72svh;
  max-height: 760px;
  overflow: hidden;
  background: var(--ce-dark);
}
.ce-career-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ce-career::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(7, 15, 28, .20);
  pointer-events: none;
}
.ce-career-panel {
  position: absolute;
  z-index: 2;
  right: var(--gutter);
  top: 50%;
  transform: translateY(-50%);
  width: min(610px, calc(100% - var(--gutter) * 2));
  padding: clamp(42px, 5vw, 70px);
  background: rgba(24,47,88,.93);
  color: var(--white);
}
.ce-career-panel h2 {
  margin: 0 0 28px;
  font-size: clamp(44px, 4.6vw, 70px);
}
.ce-career-panel p {
  margin: 0 0 16px;
  color: rgba(255,255,255,.74);
  font-size: 14px;
  line-height: 1.58;
}
.ce-career-panel .ce-action { margin-top: 12px; }

/* PARTNERS — a short credibility band, deliberately not a full-screen section */
.ce-partners {
  background: var(--white);
  padding: 58px 0 64px;
  border-bottom: 1px solid var(--line);
}
.ce-partners-inner {
  display: grid;
  grid-template-columns: minmax(180px, .45fr) minmax(0, 1.55fr);
  gap: 56px;
  align-items: start;
}
.ce-partners h2 {
  margin: 0;
  font-size: clamp(34px, 3.4vw, 50px);
}
.ce-partner-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 34px;
  padding-top: 4px;
}
.ce-partner-links a {
  padding: 9px 0;
  border-bottom: 1px solid var(--line);
  color: var(--ce-dark);
  font-size: 17px;
  font-weight: 600;
}
.ce-partner-links a:hover { border-bottom-color: var(--ce-dark); }

/* NEWS — dark editorial panel beside two strong image stories */
.ce-news {
  display: grid;
  grid-template-columns: minmax(360px, .72fr) minmax(0, 1.28fr);
  min-height: 660px;
  background: var(--ce-dark);
  color: var(--white);
}
.ce-news-panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(48px, 6vw, 88px);
}
.ce-news-panel h2 { margin: 0 0 30px; font-size: clamp(48px, 5vw, 76px); }
.ce-news-panel p {
  margin: 0;
  max-width: 47ch;
  color: rgba(255,255,255,.7);
  font-size: 14px;
  line-height: 1.65;
}
.ce-news-stories {
  display: grid;
  grid-template-rows: 1fr 1fr;
  min-height: 660px;
}
.ce-news-story {
  position: relative;
  min-height: 330px;
  overflow: hidden;
  border-left: 1px solid rgba(255,255,255,.18);
  border-bottom: 1px solid rgba(255,255,255,.18);
}
.ce-news-story img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s cubic-bezier(.22,.61,.36,1);
}
.ce-news-story::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(7,14,24,.42);
}
.ce-news-story:hover img { transform: scale(1.025); }
.ce-news-story-copy {
  position: absolute;
  z-index: 2;
  left: clamp(30px, 4vw, 58px);
  right: clamp(30px, 4vw, 58px);
  bottom: clamp(28px, 4vw, 52px);
}
.ce-news-story h3 {
  margin: 0 0 22px;
  max-width: 850px;
  font-size: clamp(28px, 2.7vw, 42px);
  color: var(--white);
}

/* ACCOLADES — compact copy + ruled list */
.ce-accolades {
  background: var(--white);
  padding: clamp(80px, 7vw, 108px) 0;
}
.ce-accolades-grid {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(520px, 1.15fr);
  gap: clamp(60px, 8vw, 120px);
  align-items: start;
}
.ce-accolades-copy h2 {
  margin: 0 0 30px;
  max-width: 680px;
  font-size: clamp(46px, 4.6vw, 68px);
}
.ce-accolades-copy p {
  margin: 0 0 16px;
  max-width: 58ch;
  color: #68717b;
  font-size: 14px;
  line-height: 1.62;
}
.ce-accolades-copy .rating { color: var(--ce-dark); }
.ce-accolade-list { border-top: 1px solid var(--line); }
.ce-accolade-list article {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 30px;
  align-items: center;
  min-height: 118px;
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
}
.ce-accolade-list h3 { margin: 0 0 7px; font-size: 25px; }
.ce-accolade-list p { margin: 0; color: #737b84; font-size: 13px; }
.ce-accolade-list a {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  border-bottom: 1px solid currentColor;
  padding-bottom: 7px;
}

/* CONTACT — lighter Chas blue, lined, and concise before the footer reveal */
.ce-contact {
  background: var(--ce-blue);
  color: var(--white);
  padding: clamp(78px, 7vw, 110px) 0 clamp(92px, 8vw, 124px);
}
.ce-contact-grid {
  display: grid;
  grid-template-columns: minmax(0, .72fr) minmax(520px, 1.28fr);
  gap: clamp(66px, 9vw, 130px);
  align-items: start;
}
.ce-contact-heading h2 {
  margin: 0 0 28px;
  font-size: clamp(48px, 5vw, 76px);
}
.ce-contact-heading p {
  margin: 0;
  max-width: 470px;
  color: rgba(255,255,255,.7);
  font-size: 15px;
  line-height: 1.62;
}
.ce-contact-form { gap: 12px; }
.ce-contact .field {
  grid-template-columns: 94px 1fr;
  min-height: 58px;
  border-bottom-color: rgba(255,255,255,.28);
}
.ce-contact .field > span {
  color: rgba(255,255,255,.58);
}
.ce-contact .field input,
.ce-contact .field textarea {
  color: var(--white);
}
.ce-contact .field input::placeholder,
.ce-contact .field textarea::placeholder { color: rgba(255,255,255,.42); }
.ce-contact .form-check,
.ce-contact .form-small { color: rgba(255,255,255,.56); }
.ce-contact .form-check a,
.ce-contact .form-small a { color: var(--white); }
.ce-contact .form-check input { accent-color: var(--white); }
.ce-contact-submit {
  margin-top: 18px;
  min-height: 48px;
  padding: 0 28px;
  background: var(--ce-red);
  color: var(--white);
  border: 1px solid var(--ce-red);
  border-radius: 2px;
  cursor: pointer;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  transition: background .22s ease, border-color .22s ease, transform .22s ease;
}
.ce-contact-submit:hover {
  background: #c9002f;
  border-color: #c9002f;
  transform: translateY(-1px);
}

@media (max-width: 1080px) {
  .ce-sell-intro { grid-template-columns: 1fr; gap: 28px; }
  .ce-sell-intro p { max-width: 720px; }
  .ce-sell-band-scrim { width: 62%; }
  .ce-sell-band-copy { width: 60%; }
  .ce-path-content { grid-template-columns: 1fr; gap: 12px; }
  .ce-accolades-grid,
  .ce-contact-grid { grid-template-columns: 1fr; gap: 54px; }
  .ce-contact-grid { max-width: 900px; }
}

@media (max-width: 820px) {
  .ce-sell {
    margin-top: -7vh;
    padding-top: calc(7vh + 52px);
  }
  .ce-sell-intro { padding-bottom: 44px; }
  .ce-sell-intro h2 { font-size: clamp(40px, 10.5vw, 58px); }
  .ce-sell-bands { gap: 10px; }
  .ce-sell-band { min-height: 420px; height: auto; }
  .ce-sell-band-scrim,
  .ce-sell-band-right .ce-sell-band-scrim {
    inset: auto 0 0 0;
    width: 100%;
    height: 64%;
    border: 0;
    border-top: 1px solid rgba(255,255,255,.16);
    background: rgba(13,29,54,.88);
  }
  .ce-sell-band-copy,
  .ce-sell-band-right .ce-sell-band-copy {
    width: 100%;
    min-height: 420px;
    justify-content: flex-end;
    margin-left: 0;
    padding: 210px 24px 34px;
  }
  .ce-sell-band-copy h3 { font-size: clamp(30px, 8.5vw, 40px); }

  .ce-why,
  .ce-career { height: auto; min-height: 0; padding-top: 58svh; }
  .ce-why-image,
  .ce-career-image { height: 58svh; object-position: center; }
  .ce-why-panel,
  .ce-career-panel {
    position: relative;
    inset: auto;
    transform: none;
    width: 100%;
    padding: 44px var(--gutter) 50px;
    background: var(--ce-dark);
  }

  .ce-paths { padding: 58px 0; }
  .ce-path-row {
    grid-template-columns: 1fr;
    gap: 12px;
    min-height: 0;
    padding: 28px 0;
  }
  .ce-path-row:hover { padding-left: 12px; padding-right: 12px; }
  .ce-path-content { grid-template-columns: 1fr; gap: 12px; }
  .ce-path-link { justify-self: start; margin-top: 8px; }

  .testimonials { padding: 64px 0 78px; }
  .testimonial-layout { grid-template-columns: 1fr; gap: 28px; padding-top: 44px; }
  .testimonial-portrait { width: 108px; height: 136px; }
  .testimonial-panel blockquote { font-size: clamp(27px, 7vw, 36px); }

  .ce-partners { padding: 50px 0 54px; }
  .ce-partners-inner { grid-template-columns: 1fr; gap: 26px; }
  .ce-partner-links { gap: 4px 24px; }

  .ce-news { grid-template-columns: 1fr; min-height: 0; }
  .ce-news-panel { padding: 56px var(--gutter) 60px; }
  .ce-news-stories { min-height: 0; }
  .ce-news-story { min-height: 360px; border-left: 0; }

  .ce-accolades { padding: 64px 0 72px; }
  .ce-accolades-grid { grid-template-columns: 1fr; gap: 48px; }
  .ce-accolade-list article { min-height: 100px; }

  .ce-contact { padding: 64px 0 140px; }
  .ce-contact-grid { grid-template-columns: 1fr; gap: 44px; }
}

@media (max-width: 560px) {
  .ce-sell-band { min-height: 400px; }
  .ce-sell-band-copy { padding-top: 200px; }
  .ce-sell-band-copy p,
  .ce-why-panel p,
  .ce-career-panel p,
  .ce-news-panel p,
  .ce-accolades-copy p { font-size: 13px; }
  .ce-partner-links { display: grid; grid-template-columns: 1fr; }
  .ce-news-story { min-height: 330px; }
  .ce-accolade-list article { grid-template-columns: 1fr; gap: 12px; }
  .ce-accolade-list a { justify-self: start; }
  .ce-contact .field { grid-template-columns: 76px 1fr; }
}

/* =========================================================
   SELLING BANDS V12
   Halston-inspired panoramic image bands with ruled headings,
   visible copy below and a restrained hover reveal on desktop.
   ========================================================= */
.ce-sell-bands {
  display: grid;
  gap: clamp(34px, 4vw, 56px);
}

.ce-sell-card {
  position: relative;
  min-width: 0;
}

.ce-sell-card-media {
  position: relative;
  height: clamp(330px, 30vw, 430px);
  overflow: hidden;
  background: #152746;
  color: #fff;
}

.ce-sell-card-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: scale(1.005);
  transition: transform .85s cubic-bezier(.2,.7,.2,1);
}

.ce-sell-card-shade {
  position: absolute;
  inset: 0;
  background: rgba(8,18,33,.20);
  transition: background .55s ease;
}

.ce-sell-card-heading {
  position: absolute;
  z-index: 2;
  left: clamp(24px, 3vw, 48px);
  right: clamp(24px, 3vw, 48px);
  bottom: clamp(28px, 3vw, 42px);
  transition: bottom .6s cubic-bezier(.2,.7,.2,1);
}

.ce-sell-card-rule {
  display: block;
  width: 100%;
  height: 1px;
  margin-bottom: 18px;
  background: rgba(255,255,255,.62);
  transform-origin: left center;
  transition: opacity .45s ease, transform .55s cubic-bezier(.2,.7,.2,1);
}

.ce-sell-card-heading h3 {
  margin: 0;
  max-width: 900px;
  font-size: clamp(34px, 3.2vw, 52px);
  line-height: 1.02;
  font-weight: 500;
  letter-spacing: -.035em;
  text-wrap: balance;
}

.ce-sell-card-hover-copy {
  position: absolute;
  z-index: 2;
  left: clamp(24px, 3vw, 48px);
  bottom: clamp(32px, 3.2vw, 50px);
  width: min(560px, 52%);
  color: rgba(255,255,255,.92);
  font-size: 14px;
  line-height: 1.6;
  opacity: 0;
  transform: translateY(12px);
  pointer-events: none;
  transition: opacity .4s ease .06s, transform .5s cubic-bezier(.2,.7,.2,1);
}

.ce-sell-card-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(28px, 5vw, 84px);
  align-items: start;
  padding: 22px 0 0;
}

.ce-sell-card-body p {
  margin: 0;
  max-width: 760px;
  color: #59616d;
  font-size: 15px;
  line-height: 1.62;
}

.ce-sell-card-cta {
  min-width: 190px;
  display: inline-flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding: 15px 17px;
  background: var(--ce-dark);
  border: 1px solid var(--ce-dark);
  color: #fff;
  font-size: 10px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background .25s ease, color .25s ease, transform .25s ease;
}

.ce-sell-card-cta span {
  font-size: 16px;
  line-height: 1;
  font-weight: 400;
  letter-spacing: 0;
}

.ce-sell-card-cta:hover {
  background: transparent;
  color: var(--ce-dark);
  transform: translateY(-2px);
}

@media (hover: hover) and (pointer: fine) {
  .ce-sell-card:hover .ce-sell-card-image {
    transform: scale(1.02);
  }

  .ce-sell-card:hover .ce-sell-card-shade {
    background: rgba(8,18,33,.46);
  }

  .ce-sell-card:hover .ce-sell-card-heading {
    bottom: 52%;
  }

  .ce-sell-card:hover .ce-sell-card-rule {
    opacity: .9;
    transform: scaleX(.88);
  }

  .ce-sell-card:hover .ce-sell-card-hover-copy {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (max-width: 820px) {
  .ce-sell-bands { gap: 34px; }

  .ce-sell-card-media {
    height: clamp(280px, 64vw, 390px);
  }

  .ce-sell-card-heading {
    left: 22px;
    right: 22px;
    bottom: 24px;
  }

  .ce-sell-card-rule { margin-bottom: 14px; }

  .ce-sell-card-heading h3 {
    font-size: clamp(30px, 8vw, 42px);
  }

  .ce-sell-card-hover-copy { display: none; }

  .ce-sell-card-body {
    grid-template-columns: 1fr;
    gap: 20px;
    padding-top: 18px;
  }

  .ce-sell-card-body p {
    font-size: 14px;
    line-height: 1.6;
  }

  .ce-sell-card-cta {
    min-width: 0;
    width: fit-content;
  }
}

@media (max-width: 560px) {
  .ce-sell-card-media { height: 300px; }
  .ce-sell-card-heading h3 { font-size: clamp(28px, 9vw, 38px); }
  .ce-sell-card-body { padding-top: 16px; }
}

/* =========================================================
   SELLING BANDS V13
   Keep all selling copy inside the image treatment: reveal on
   desktop hover, show by default on touch/mobile. CTA lives on
   the image and uses Chas red.
   ========================================================= */
.ce-sell-card {
  overflow: hidden;
}

.ce-sell-card-media {
  min-height: clamp(340px, 31vw, 450px);
}

.ce-sell-card-heading {
  right: clamp(220px, 19vw, 300px);
}

.ce-sell-card-hover-copy {
  bottom: clamp(34px, 3.2vw, 50px);
  max-width: 620px;
  width: min(620px, 54%);
  padding-right: 20px;
}

.ce-sell-card-cta {
  position: absolute;
  z-index: 4;
  right: clamp(24px, 3vw, 48px);
  bottom: clamp(28px, 3vw, 42px);
  min-width: 0;
  padding: 15px 20px;
  justify-content: center;
  background: #E00034;
  border-color: #E00034;
  color: #fff;
  box-shadow: none;
  transition: background .25s ease, border-color .25s ease, transform .25s ease;
}

.ce-sell-card-cta:hover,
.ce-sell-card-cta:focus-visible {
  background: #c5002e;
  border-color: #c5002e;
  color: #fff;
  transform: translateY(-2px);
}

.ce-sell-card-cta:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

.ce-sell-card-body {
  display: none !important;
}

@media (hover: hover) and (pointer: fine) {
  .ce-sell-card:hover .ce-sell-card-heading {
    bottom: 54%;
  }

  .ce-sell-card:hover .ce-sell-card-hover-copy {
    opacity: 1;
    transform: translateY(0);
  }

  .ce-sell-card:hover .ce-sell-card-cta {
    bottom: clamp(34px, 3.2vw, 50px);
  }
}

@media (max-width: 820px), (hover: none) {
  .ce-sell-card-media {
    height: auto;
    min-height: 430px;
  }

  .ce-sell-card-heading {
    left: 22px;
    right: 22px;
    bottom: auto;
    top: 42px;
  }

  .ce-sell-card-hover-copy {
    display: block;
    left: 22px;
    right: 22px;
    bottom: 88px;
    width: auto;
    max-width: 620px;
    padding-right: 0;
    opacity: 1;
    transform: none;
    font-size: 14px;
    line-height: 1.55;
  }

  .ce-sell-card-cta {
    left: 22px;
    right: auto;
    bottom: 24px;
    padding: 14px 18px;
  }

  .ce-sell-card-shade {
    background: rgba(8,18,33,.42);
  }
}

@media (max-width: 560px) {
  .ce-sell-card-media { min-height: 460px; }
  .ce-sell-card-heading { top: 34px; }
  .ce-sell-card-hover-copy {
    bottom: 86px;
    font-size: 13px;
  }
}

/* =========================================================
   SELLING BANDS V14
   Fixed full-width rule, hover treatment restricted below it,
   stable CTA position, and a very subtle card radius.
   ========================================================= */
.ce-sell-card {
  border-radius: 4px;
  overflow: hidden;
}

.ce-sell-card-media {
  border-radius: inherit;
  overflow: hidden;
}

.ce-sell-card-shade {
  background: rgba(8,18,33,.16);
}

.ce-sell-card-lower {
  position: absolute;
  z-index: 3;
  left: 0;
  right: 0;
  bottom: 0;
  min-height: 46%;
  padding: 0 clamp(24px, 3vw, 48px) clamp(26px, 2.8vw, 40px);
  background: rgba(8,18,33,0);
  transition: background .42s cubic-bezier(.2,.7,.2,1);
}

.ce-sell-card-rule {
  display: block;
  width: 100%;
  height: 1px;
  margin: 0 0 18px;
  background: rgba(255,255,255,.70);
  transform: none !important;
  opacity: 1 !important;
}

.ce-sell-card-heading {
  position: static;
  width: min(720px, calc(100% - 240px));
  transition: none;
}

.ce-sell-card-heading h3 {
  margin: 0;
}

.ce-sell-card-hover-copy {
  position: static;
  width: min(620px, 100%);
  max-width: 620px;
  margin: 22px 0 0;
  padding: 0;
  color: rgba(255,255,255,.94);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .34s ease, transform .46s cubic-bezier(.2,.7,.2,1);
}

.ce-sell-card-cta {
  position: absolute;
  right: clamp(24px, 3vw, 48px);
  bottom: clamp(26px, 2.8vw, 40px);
  left: auto;
  min-width: 0;
  margin: 0;
  padding: 15px 20px;
  background: #E00034;
  border-color: #E00034;
  color: #fff;
  transform: none !important;
  transition: background .22s ease, border-color .22s ease;
}

.ce-sell-card-cta:hover,
.ce-sell-card-cta:focus-visible {
  background: #c5002e;
  border-color: #c5002e;
  color: #fff;
  transform: none !important;
}

@media (hover: hover) and (pointer: fine) {
  .ce-sell-card:hover .ce-sell-card-image {
    transform: scale(1.018);
  }

  .ce-sell-card:hover .ce-sell-card-shade {
    background: rgba(8,18,33,.16);
  }

  .ce-sell-card:hover .ce-sell-card-lower {
    background: rgba(8,18,33,.44);
  }

  .ce-sell-card:hover .ce-sell-card-heading {
    bottom: auto;
  }

  .ce-sell-card:hover .ce-sell-card-hover-copy {
    opacity: 1;
    transform: translateY(0);
  }

  .ce-sell-card:hover .ce-sell-card-cta {
    bottom: clamp(26px, 2.8vw, 40px);
  }
}

@media (max-width: 820px), (hover: none) {
  .ce-sell-card-media {
    min-height: 470px;
  }

  .ce-sell-card-lower {
    min-height: 58%;
    padding: 0 22px 22px;
    background: rgba(8,18,33,.42);
  }

  .ce-sell-card-rule {
    margin-bottom: 14px;
  }

  .ce-sell-card-heading {
    position: static;
    width: 100%;
  }

  .ce-sell-card-heading h3 {
    font-size: clamp(28px, 8vw, 40px);
  }

  .ce-sell-card-hover-copy {
    display: block;
    width: min(620px, 100%);
    margin-top: 16px;
    opacity: 1;
    transform: none;
    font-size: 14px;
    line-height: 1.55;
  }

  .ce-sell-card-cta {
    left: 22px;
    right: auto;
    bottom: 22px;
    padding: 14px 18px;
  }
}

/* =========================================================
   SELLING BANDS V15
   Keep the image and rule completely stable. Only the title moves,
   and the paragraph reveals when the pointer is in the area below
   the rule. CTA remains fixed.
   ========================================================= */
@media (hover: hover) and (pointer: fine) {
  .ce-sell-card-media {
    min-height: clamp(340px, 31vw, 450px);
  }

  .ce-sell-card-lower {
    top: 54%;
    bottom: 0;
    min-height: 0;
    padding: 0 clamp(24px, 3vw, 48px) clamp(26px, 2.8vw, 40px);
    background: transparent !important;
  }

  .ce-sell-card-rule {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    margin: 0;
    transform: none !important;
    opacity: 1 !important;
  }

  .ce-sell-card-heading {
    position: absolute;
    left: clamp(24px, 3vw, 48px);
    right: clamp(240px, 22vw, 330px);
    top: calc(100% - 86px);
    width: auto;
    transform: none !important;
    transition: top .58s cubic-bezier(.22,.61,.36,1);
  }

  .ce-sell-card-heading h3 {
    margin: 0;
  }

  .ce-sell-card-hover-copy {
    position: static;
    width: min(620px, 100%);
    max-width: 620px;
    margin: 18px 0 0;
    padding: 0;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity .3s ease .08s, transform .45s cubic-bezier(.22,.61,.36,1);
  }

  /* Cancel the old whole-card hover treatment. */
  .ce-sell-card:hover .ce-sell-card-image {
    transform: scale(1.005);
  }

  .ce-sell-card:hover .ce-sell-card-shade {
    background: rgba(8,18,33,.20);
  }

  .ce-sell-card:hover .ce-sell-card-lower {
    background: transparent !important;
  }

  .ce-sell-card:hover .ce-sell-card-heading {
    top: calc(100% - 86px);
    transform: none !important;
  }

  .ce-sell-card:hover .ce-sell-card-hover-copy {
    opacity: 0;
    transform: translateY(10px);
  }

  /* The interaction is intentionally limited to the lower half. */
  .ce-sell-card-lower:hover .ce-sell-card-heading {
    top: 24px;
  }

  .ce-sell-card-lower:hover .ce-sell-card-hover-copy {
    opacity: 1;
    transform: translateY(0);
  }

  .ce-sell-card-cta,
  .ce-sell-card:hover .ce-sell-card-cta,
  .ce-sell-card-lower:hover .ce-sell-card-cta {
    right: clamp(24px, 3vw, 48px);
    bottom: clamp(26px, 2.8vw, 40px);
    transform: none !important;
  }
}

/* =========================================================
   SELLING BANDS V16
   Restore the original interaction rhythm: the rule and heading
   begin low in the image, then travel upward together when the
   pointer enters the lower interaction zone. Supporting copy fades
   in below the heading. Image and CTA stay completely fixed.
   ========================================================= */
@media (hover: hover) and (pointer: fine) {
  .ce-sell-card-lower {
    --sell-pad: clamp(24px, 3vw, 48px);
    top: 54%;
    bottom: 0;
    min-height: 0;
    padding: 0 var(--sell-pad) clamp(26px, 2.8vw, 40px);
    background: transparent !important;
  }

  .ce-sell-card-rule {
    position: absolute;
    left: calc(var(--sell-pad) * -1);
    right: calc(var(--sell-pad) * -1);
    top: calc(100% - 116px);
    width: auto;
    height: 1px;
    margin: 0;
    background: rgba(255,255,255,.72);
    opacity: 1 !important;
    transform: none !important;
    transition: top .58s cubic-bezier(.22,.61,.36,1);
  }

  .ce-sell-card-heading {
    position: absolute;
    left: var(--sell-pad);
    right: clamp(240px, 22vw, 330px);
    top: calc(100% - 92px);
    width: auto;
    transform: none !important;
    transition: top .58s cubic-bezier(.22,.61,.36,1);
  }

  .ce-sell-card-hover-copy {
    position: static;
    width: min(620px, 100%);
    max-width: 620px;
    margin: 18px 0 0;
    padding: 0;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity .30s ease .10s, transform .46s cubic-bezier(.22,.61,.36,1);
  }

  /* Keep the visual itself completely stable. */
  .ce-sell-card:hover .ce-sell-card-image,
  .ce-sell-card-lower:hover ~ .ce-sell-card-image {
    transform: none;
  }

  .ce-sell-card:hover .ce-sell-card-shade {
    background: rgba(8,18,33,.16);
  }

  /* Cancel earlier whole-card hover movement. */
  .ce-sell-card:hover .ce-sell-card-rule {
    top: calc(100% - 116px);
  }

  .ce-sell-card:hover .ce-sell-card-heading {
    top: calc(100% - 92px);
  }

  .ce-sell-card:hover .ce-sell-card-hover-copy {
    opacity: 0;
    transform: translateY(10px);
  }

  /* Only entering the bottom half triggers the reveal. */
  .ce-sell-card-lower:hover .ce-sell-card-rule {
    top: 18px;
  }

  .ce-sell-card-lower:hover .ce-sell-card-heading {
    top: 44px;
  }

  .ce-sell-card-lower:hover .ce-sell-card-hover-copy {
    opacity: 1;
    transform: translateY(0);
  }

  .ce-sell-card-cta,
  .ce-sell-card:hover .ce-sell-card-cta,
  .ce-sell-card-lower:hover .ce-sell-card-cta {
    right: clamp(24px, 3vw, 48px);
    bottom: clamp(26px, 2.8vw, 40px);
    transform: none !important;
  }
}

/* =========================================================
   WHY CHAS V17 — image-led cinematic brand moment
   Full-image composition with no boxed copy panel.
   ========================================================= */
.ce-why {
  min-height: 620px;
  height: 76svh;
  max-height: 780px;
  background: var(--ce-dark);
}

.ce-why-image {
  object-position: center 46%;
}

.ce-why::after {
  background: rgba(7, 16, 29, .34);
}

.ce-why-panel {
  left: var(--gutter);
  right: var(--gutter);
  top: auto;
  bottom: clamp(42px, 6vh, 72px);
  width: auto;
  padding: 0;
  transform: none;
  background: transparent;
  color: var(--white);
}

.ce-why-panel h2 {
  margin: 0 0 clamp(26px, 3.2vh, 38px);
  max-width: 760px;
  font-size: clamp(50px, 5.5vw, 82px);
  line-height: .96;
  letter-spacing: -.045em;
}

.ce-why-rule {
  width: 100%;
  height: 1px;
  background: rgba(255,255,255,.62);
  margin-bottom: clamp(24px, 3vh, 34px);
}

.ce-why-details {
  display: grid;
  grid-template-columns: minmax(260px, .9fr) minmax(260px, 1fr) minmax(300px, 1.2fr);
  gap: clamp(28px, 4.5vw, 72px);
  align-items: start;
}

.ce-why-panel .ce-why-details p {
  margin: 0;
  max-width: none;
  color: rgba(255,255,255,.82);
  font-size: 14px;
  line-height: 1.62;
}

.ce-why-panel .ce-why-details .ce-why-lead {
  color: var(--white);
  font-size: clamp(18px, 1.65vw, 24px);
  line-height: 1.32;
  font-weight: 600;
  letter-spacing: -.02em;
}

/* Keep the Buy / Rent / Affordability / Discover structure,
   but remove the unsuccessful full-row hover transformation. */
.ce-path-row,
.ce-path-row:hover {
  padding-left: 0;
  padding-right: 0;
  background: transparent;
  color: inherit;
}

.ce-path-row:hover .ce-path-name,
.ce-path-row:hover .ce-path-content p {
  color: inherit;
}

.ce-path-row:hover .ce-path-name {
  color: #707883;
}

.ce-path-row:hover .ce-path-content p {
  color: #68717b;
}

.ce-path-link {
  transition: color .22s ease, border-color .22s ease;
}

.ce-path-link:hover {
  color: var(--ce-red);
  border-color: var(--ce-red);
}

@media (max-width: 980px) {
  .ce-why {
    min-height: 760px;
    height: auto;
    max-height: none;
  }

  .ce-why-panel {
    bottom: 42px;
  }

  .ce-why-details {
    grid-template-columns: 1fr 1fr;
    gap: 22px 36px;
  }

  .ce-why-panel .ce-why-details .ce-why-lead {
    grid-column: 1 / -1;
    max-width: 560px;
  }
}

@media (max-width: 640px) {
  .ce-why {
    min-height: 860px;
  }

  .ce-why-image {
    object-position: 58% center;
  }

  .ce-why::after {
    background: rgba(7, 16, 29, .46);
  }

  .ce-why-panel {
    left: 24px;
    right: 24px;
    bottom: 34px;
  }

  .ce-why-panel h2 {
    font-size: clamp(44px, 13vw, 62px);
  }

  .ce-why-details {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .ce-why-panel .ce-why-details .ce-why-lead {
    grid-column: auto;
  }
}

/* =========================================================
   WHY CHAS V18 — campaign video chapter
   Dark-blue chapter rises out of the white selling section.
   The contained campaign film grows toward an immersive frame.
   Playback remains user-controlled via the square PLAY cursor.
   ========================================================= */
.ce-why.ce-why-campaign {
  --why-scale: 1;
  --why-y: 42px;
  --why-dim: .06;
  --why-heading-opacity: 0;
  --why-heading-y: 28px;
  --why-body-opacity: 0;
  --why-body-y: 22px;
  --why-cursor-scale: 1;
  position: relative;
  z-index: 3;
  height: 158svh;
  min-height: 1080px;
  max-height: none;
  overflow: visible;
  padding: 0;
  background: #182F58;
  color: var(--white);
}

.ce-why-campaign .ce-why-sticky {
  position: sticky;
  top: 0;
  height: 100svh;
  min-height: 640px;
  overflow: hidden;
  background: #182F58;
}

.ce-why-campaign .ce-why-media {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 62vw;
  height: 52svh;
  min-width: 700px;
  min-height: 420px;
  max-width: none;
  overflow: hidden;
  border-radius: 4px;
  background: #0d1d38;
  transform: translate3d(-50%, calc(-50% + var(--why-y)), 0) scale(var(--why-scale));
  transform-origin: center center;
  will-change: transform;
}

.ce-why-campaign .ce-why-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  background: #0d1d38;
  opacity: 0;
  transition: opacity .18s ease;
}

.ce-why-campaign .ce-why-video.is-ready { opacity: 1; }

.ce-why-campaign .ce-why-video-wash {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(5, 12, 24, var(--why-dim));
  pointer-events: none;
}

.ce-why-campaign .ce-why-video-trigger {
  position: absolute;
  inset: 0;
  z-index: 4;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  border-radius: inherit;
  background: transparent;
  color: inherit;
  cursor: pointer;
}

.ce-why-campaign .ce-why-video-trigger:focus-visible {
  outline: 1px solid rgba(255,255,255,.82);
  outline-offset: -5px;
}

.ce-why-campaign .ce-why-play-cursor {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 6;
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  border: 1px solid rgba(255,255,255,.48);
  border-radius: 3px;
  background: rgba(10, 24, 47, .86);
  color: var(--white);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  opacity: 0;
  pointer-events: none;
  transform: translate3d(-50%, -50%, 0) scale(var(--why-cursor-scale));
  transform-origin: center;
  transition: opacity .14s ease, background-color .2s ease;
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
}

.ce-why-campaign .ce-why-play-cursor.is-visible { opacity: 1; }

.ce-why-campaign .ce-why-touch-control { display: none; }

.ce-why-campaign .ce-why-copy {
  position: absolute;
  z-index: 2;
  left: clamp(30px, 4vw, 72px);
  right: clamp(30px, 4vw, 72px);
  bottom: clamp(30px, 4.4vh, 58px);
  pointer-events: none;
}

.ce-why-campaign .ce-why-copy h2,
.ce-why-campaign .ce-why-lead {
  opacity: var(--why-heading-opacity);
  transform: translate3d(0, var(--why-heading-y), 0);
  will-change: opacity, transform;
}

.ce-why-campaign .ce-why-copy h2 {
  margin: 0 0 18px;
  max-width: 760px;
  font-size: clamp(50px, 4.8vw, 76px);
  line-height: .96;
  letter-spacing: -.045em;
  color: var(--white);
}

.ce-why-campaign .ce-why-lead {
  margin: 0 0 22px;
  max-width: 720px;
  color: var(--white);
  font-size: clamp(20px, 1.65vw, 27px);
  line-height: 1.25;
  font-weight: 600;
  letter-spacing: -.02em;
}

.ce-why-campaign .ce-why-copy-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(26px, 4vw, 66px);
  max-width: 1020px;
  opacity: var(--why-body-opacity);
  transform: translate3d(0, var(--why-body-y), 0);
  will-change: opacity, transform;
}

.ce-why-campaign .ce-why-copy-grid p {
  margin: 0;
  max-width: 49ch;
  color: rgba(255,255,255,.80);
  font-size: 13px;
  line-height: 1.62;
}

/* Clean physical release back into the white action rows — no gradient. */
.ce-why-campaign + .ce-paths {
  position: relative;
  z-index: 4;
  margin-top: 0;
  background: var(--white);
}

@media (hover: hover) and (pointer: fine) {
  .ce-why-campaign .ce-why-video-trigger { cursor: none; }
}

@media (max-width: 980px) {
  .ce-why.ce-why-campaign {
    height: 150svh;
    min-height: 1000px;
  }

  .ce-why-campaign .ce-why-media {
    width: 80vw;
    height: 54svh;
    min-width: 0;
    min-height: 410px;
  }

  .ce-why-campaign .ce-why-copy h2 {
    font-size: clamp(44px, 8vw, 66px);
  }

  .ce-why-campaign .ce-why-copy-grid {
    gap: 20px 32px;
  }
}

@media (max-width: 640px) {
  .ce-why.ce-why-campaign {
    height: 140svh;
    min-height: 880px;
  }

  .ce-why-campaign .ce-why-sticky { min-height: 560px; }

  .ce-why-campaign .ce-why-media {
    width: 88vw;
    height: 50svh;
    min-height: 380px;
  }

  .ce-why-campaign .ce-why-copy {
    left: 22px;
    right: 22px;
    bottom: 22px;
  }

  .ce-why-campaign .ce-why-copy h2 {
    margin-bottom: 12px;
    font-size: clamp(38px, 11.5vw, 54px);
  }

  .ce-why-campaign .ce-why-lead {
    margin-bottom: 14px;
    font-size: 18px;
  }

  .ce-why-campaign .ce-why-copy-grid {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .ce-why-campaign .ce-why-copy-grid p {
    font-size: 11.5px;
    line-height: 1.48;
  }

  .ce-why-campaign .ce-why-touch-control {
    position: absolute;
    right: 14px;
    top: 14px;
    display: grid;
    place-items: center;
    min-width: 58px;
    height: 42px;
    padding: 0 12px;
    border: 1px solid rgba(255,255,255,.48);
    border-radius: 3px;
    background: rgba(10, 24, 47, .86);
    color: var(--white);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ce-why.ce-why-campaign {
    height: auto;
    min-height: 0;
    padding: 72px var(--gutter);
  }

  .ce-why-campaign .ce-why-sticky {
    position: relative;
    height: auto;
    min-height: 0;
    overflow: visible;
  }

  .ce-why-campaign .ce-why-media {
    position: relative;
    left: auto;
    top: auto;
    width: 100%;
    height: min(68svh, 680px);
    min-width: 0;
    min-height: 520px;
    transform: none;
  }

  .ce-why-campaign .ce-why-copy h2,
  .ce-why-campaign .ce-why-lead,
  .ce-why-campaign .ce-why-copy-grid {
    opacity: 1;
    transform: none;
  }
}

/* =========================================================
   WHY CHAS V19 — simple brand interlude
   Compact typographic chapter matching the restrained hero/header language.
   ========================================================= */
.ce-why.ce-why-simple {
  position: relative;
  z-index: 3;
  height: auto;
  min-height: 0;
  max-height: none;
  overflow: hidden;
  padding: clamp(88px, 9vw, 138px) 0 clamp(82px, 8vw, 124px);
  background: #182F58;
  color: var(--white);
}

.ce-why-simple .ce-why-simple-inner {
  position: relative;
}

.ce-why-simple .ce-why-simple-heading h2 {
  margin: 0;
  max-width: 920px;
  color: var(--white);
  font-size: clamp(54px, 6vw, 88px);
  font-weight: 600;
  line-height: .96;
  letter-spacing: -.05em;
}

.ce-why-simple .ce-why-simple-rule {
  width: 100%;
  height: 1px;
  margin: clamp(44px, 5vw, 72px) 0 clamp(34px, 3.6vw, 52px);
  background: rgba(255,255,255,.34);
}

.ce-why-simple .ce-why-simple-grid {
  display: grid;
  grid-template-columns: 1.15fr 1fr 1fr;
  gap: clamp(34px, 4.2vw, 72px);
  align-items: start;
}

.ce-why-simple .ce-why-simple-grid p {
  margin: 0;
  max-width: 44ch;
  color: rgba(255,255,255,.76);
  font-size: clamp(14px, 1vw, 16px);
  line-height: 1.62;
}

.ce-why-simple .ce-why-simple-grid .ce-why-simple-lead {
  max-width: 18ch;
  color: var(--white);
  font-size: clamp(26px, 2.4vw, 38px);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -.035em;
}

.ce-why-simple + .ce-paths {
  position: relative;
  z-index: 4;
  margin-top: 0;
  background: var(--white);
}

@media (max-width: 980px) {
  .ce-why.ce-why-simple {
    padding: 82px 0 78px;
  }

  .ce-why-simple .ce-why-simple-grid {
    grid-template-columns: 1fr 1fr;
  }

  .ce-why-simple .ce-why-simple-grid .ce-why-simple-lead {
    grid-column: 1 / -1;
    max-width: 22ch;
  }
}

@media (max-width: 640px) {
  .ce-why.ce-why-simple {
    padding: 66px 0 62px;
  }

  .ce-why-simple .ce-why-simple-heading h2 {
    font-size: clamp(46px, 14vw, 64px);
  }

  .ce-why-simple .ce-why-simple-rule {
    margin: 34px 0 30px;
  }

  .ce-why-simple .ce-why-simple-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .ce-why-simple .ce-why-simple-grid .ce-why-simple-lead {
    grid-column: auto;
    max-width: 18ch;
    font-size: 28px;
  }
}

/* =========================================================
   WHY CHAS + PROPERTY JOURNEYS V20 — one horizontal chapter
   Two full-viewport dark-blue panels: brand story, then the
   complete Buy / Rent / Affordability / Discover index.
   ========================================================= */
.ce-horizontal-chapter {
  --chapter-progress: 0;
  position: relative;
  z-index: 3;
  height: 190svh;
  min-height: 1200px;
  background: #182F58;
  color: var(--white);
}

.ce-horizontal-sticky {
  position: sticky;
  top: 0;
  height: 100svh;
  min-height: 680px;
  overflow: hidden;
  background: #182F58;
}

.ce-horizontal-track {
  display: flex;
  width: 200%;
  height: 100%;
  transform: translate3d(calc(var(--chapter-progress) * -50%), 0, 0);
  will-change: transform;
}

.ce-horizontal-panel {
  flex: 0 0 50%;
  width: 50%;
  height: 100%;
  min-width: 0;
  overflow: hidden;
  background: #182F58;
}

/* First horizontal state — Why Chas Everitt */
.ce-horizontal-why {
  display: flex;
  align-items: center;
}

.ce-horizontal-why-inner {
  width: 100%;
  padding-top: clamp(36px, 5vh, 64px);
  padding-bottom: clamp(36px, 5vh, 64px);
}

.ce-horizontal-why h2 {
  margin: 0;
  max-width: 1050px;
  color: rgba(255,255,255,.96);
  font-size: clamp(58px, 6.2vw, 94px);
  font-weight: 600;
  line-height: .95;
  letter-spacing: -.05em;
}

.ce-horizontal-rule {
  width: 100%;
  height: 1px;
  margin: clamp(42px, 5.6vh, 72px) 0 clamp(34px, 4.8vh, 58px);
  background: rgba(255,255,255,.28);
}

.ce-horizontal-why-grid {
  display: grid;
  grid-template-columns: minmax(250px, 1.05fr) minmax(260px, .9fr) minmax(260px, .9fr);
  gap: clamp(38px, 5vw, 84px);
  align-items: start;
}

.ce-horizontal-why-grid p {
  margin: 0;
  max-width: 46ch;
  color: rgba(255,255,255,.72);
  font-size: clamp(14px, 1vw, 16px);
  line-height: 1.62;
}

.ce-horizontal-why-grid .ce-horizontal-why-lead {
  max-width: 18ch;
  color: rgba(255,255,255,.96);
  font-size: clamp(28px, 2.55vw, 40px);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -.035em;
}

/* Second horizontal state — existing action index, now dark */
.ce-horizontal-paths {
  display: flex;
  align-items: center;
}

.ce-horizontal-paths-list {
  width: 100%;
  border-top: 1px solid rgba(255,255,255,.24);
}

.ce-horizontal-path-row {
  display: grid;
  grid-template-columns: minmax(150px, .7fr) minmax(260px, 1.05fr) minmax(320px, 1.6fr) minmax(160px, .65fr);
  gap: clamp(24px, 3.4vw, 58px);
  align-items: center;
  min-height: clamp(126px, 16.5vh, 154px);
  padding: clamp(20px, 2.5vh, 28px) 0;
  border-bottom: 1px solid rgba(255,255,255,.24);
}

.ce-horizontal-path-name {
  color: rgba(255,255,255,.54);
  font-size: clamp(23px, 2.15vw, 32px);
  letter-spacing: -.035em;
}

.ce-horizontal-path-heading h3 {
  margin: 0;
  max-width: 14ch;
  color: rgba(255,255,255,.96);
  font-size: clamp(28px, 2.55vw, 40px);
  font-weight: 500;
  line-height: 1.01;
  letter-spacing: -.045em;
}

.ce-horizontal-path-copy {
  margin: 0;
  max-width: 58ch;
  color: rgba(255,255,255,.64);
  font-size: clamp(12px, .92vw, 14px);
  line-height: 1.6;
}

.ce-horizontal-path-link {
  justify-self: end;
  color: rgba(255,255,255,.96);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  white-space: nowrap;
  border-bottom: 1px solid rgba(255,255,255,.72);
  padding-bottom: 8px;
  transition: color .2s ease, border-color .2s ease;
}

.ce-horizontal-path-link:hover,
.ce-horizontal-path-link:focus-visible {
  color: #E00034;
  border-bottom-color: #E00034;
}

/* The next section returns the page to normal white vertical scrolling. */
.ce-horizontal-chapter + .testimonials {
  position: relative;
  z-index: 4;
}

@media (max-width: 1100px) {
  .ce-horizontal-path-row {
    grid-template-columns: minmax(120px, .55fr) minmax(230px, 1fr) minmax(260px, 1.25fr) minmax(145px, .55fr);
    gap: 24px;
  }

  .ce-horizontal-path-heading h3 { font-size: clamp(26px, 3vw, 34px); }
  .ce-horizontal-path-copy { font-size: 12px; }
}

@media (max-width: 820px) {
  .ce-horizontal-chapter {
    height: auto;
    min-height: 0;
  }

  .ce-horizontal-sticky {
    position: relative;
    top: auto;
    height: auto;
    min-height: 0;
    overflow: visible;
  }

  .ce-horizontal-track {
    display: block;
    width: 100%;
    height: auto;
    transform: none !important;
  }

  .ce-horizontal-panel {
    width: 100%;
    height: auto;
  }

  .ce-horizontal-why {
    padding: 76px 0 70px;
  }

  .ce-horizontal-why h2 {
    font-size: clamp(48px, 10vw, 68px);
  }

  .ce-horizontal-why-grid {
    grid-template-columns: 1fr 1fr;
    gap: 28px 34px;
  }

  .ce-horizontal-why-grid .ce-horizontal-why-lead {
    grid-column: 1 / -1;
  }

  .ce-horizontal-paths {
    padding: 0 0 72px;
  }

  .ce-horizontal-path-row {
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 16px 30px;
    min-height: 0;
    padding: 30px 0;
  }

  .ce-horizontal-path-heading,
  .ce-horizontal-path-copy,
  .ce-horizontal-path-link {
    grid-column: 2;
  }

  .ce-horizontal-path-name {
    grid-row: 1 / span 3;
    align-self: start;
  }

  .ce-horizontal-path-link {
    justify-self: start;
    margin-top: 2px;
  }
}

@media (max-width: 560px) {
  .ce-horizontal-why {
    padding: 62px 0 56px;
  }

  .ce-horizontal-rule {
    margin: 32px 0 28px;
  }

  .ce-horizontal-why-grid {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .ce-horizontal-why-grid .ce-horizontal-why-lead {
    grid-column: auto;
    font-size: 28px;
  }

  .ce-horizontal-paths {
    padding-bottom: 56px;
  }

  .ce-horizontal-path-row {
    display: block;
    padding: 28px 0;
  }

  .ce-horizontal-path-name {
    margin-bottom: 16px;
    font-size: 22px;
  }

  .ce-horizontal-path-heading h3 {
    margin-bottom: 16px;
    max-width: 18ch;
    font-size: 30px;
  }

  .ce-horizontal-path-copy {
    margin-bottom: 20px;
    max-width: 50ch;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ce-horizontal-chapter {
    height: auto;
    min-height: 0;
  }

  .ce-horizontal-sticky {
    position: relative;
    height: auto;
    min-height: 0;
    overflow: visible;
  }

  .ce-horizontal-track {
    display: block;
    width: 100%;
    height: auto;
    transform: none !important;
  }

  .ce-horizontal-panel {
    width: 100%;
    height: auto;
  }

  .ce-horizontal-why,
  .ce-horizontal-paths {
    padding-top: 76px;
    padding-bottom: 76px;
  }
}

/* Horizontal chapter uses explicit internal gutters so each 100% panel
   lands cleanly without depending on the global shell width calculation. */
.ce-horizontal-why-inner,
.ce-horizontal-paths-list {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
  box-sizing: border-box;
}

/* =========================================================
   HORIZONTAL CHAPTER V21
   Three-state dark chapter: simplified Why Chas typography,
   full-screen image pause, then the complete action index.
   ========================================================= */
@media (min-width: 821px) {
  .ce-horizontal-chapter {
    height: 230svh;
    min-height: 1450px;
  }

  .ce-horizontal-track {
    width: 300%;
    transform: translate3d(calc(var(--chapter-progress) * -66.6666667%), 0, 0);
  }

  .ce-horizontal-panel {
    flex-basis: 33.3333333%;
    width: 33.3333333%;
  }

  /* Match the simple heading/body hierarchy established by the
     "Go from homeowner to home offer" section: only two text scales. */
  .ce-horizontal-why-inner {
    padding-top: clamp(48px, 6vh, 78px);
    padding-bottom: clamp(48px, 6vh, 78px);
  }

  .ce-horizontal-why-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
    gap: clamp(52px, 7vw, 110px);
    align-items: center;
    width: 100%;
  }

  .ce-horizontal-why h2 {
    margin: 0;
    max-width: 760px;
    color: rgba(255,255,255,.98);
    font-size: clamp(46px, 4.6vw, 70px);
    font-weight: 500;
    line-height: .99;
    letter-spacing: -.04em;
  }

  .ce-horizontal-why-copy {
    max-width: 610px;
  }

  .ce-horizontal-why-copy p,
  .ce-horizontal-why-copy .ce-horizontal-why-lead {
    margin: 0 0 18px;
    max-width: 610px;
    color: rgba(255,255,255,.72);
    font-size: 15px;
    font-weight: 400;
    line-height: 1.62;
    letter-spacing: 0;
  }

  .ce-horizontal-why-copy .ce-horizontal-why-lead {
    color: rgba(255,255,255,.98);
    font-weight: 600;
  }

  .ce-horizontal-why-copy p:last-child { margin-bottom: 0; }

  .ce-horizontal-rule { display: none; }

  /* Full-screen visual pause between the brand story and action index. */
  .ce-horizontal-break {
    position: relative;
    background: #182F58;
  }

  .ce-horizontal-break img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }
}

@media (max-width: 820px) {
  .ce-horizontal-why-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .ce-horizontal-why h2 {
    max-width: 760px;
    font-size: clamp(40px, 10.5vw, 58px);
    line-height: .99;
  }

  .ce-horizontal-why-copy p,
  .ce-horizontal-why-copy .ce-horizontal-why-lead {
    margin: 0 0 16px;
    color: rgba(255,255,255,.74);
    font-size: 15px;
    font-weight: 400;
    line-height: 1.62;
  }

  .ce-horizontal-why-copy .ce-horizontal-why-lead {
    color: rgba(255,255,255,.98);
    font-weight: 600;
  }

  .ce-horizontal-rule { display: none; }

  .ce-horizontal-break {
    height: min(72vh, 680px);
    min-height: 440px;
  }

  .ce-horizontal-break img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }
}

/* =========================================================
   HORIZONTAL CHAPTER V22
   Why Chas + full-screen image only. The image becomes the final
   horizontal state, then normal white vertical scrolling resumes
   into the existing Buy / Rent / Affordability / Discover index.
   ========================================================= */
@media (min-width: 821px) {
  .ce-horizontal-chapter {
    height: 178svh;
    min-height: 1180px;
  }

  .ce-horizontal-track {
    width: 200%;
    transform: translate3d(calc(var(--chapter-progress) * -50%), 0, 0);
  }

  .ce-horizontal-panel {
    flex: 0 0 50%;
    width: 50%;
  }

  .ce-horizontal-why-inner {
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding: clamp(54px, 6vh, 82px) var(--gutter);
    box-sizing: border-box;
  }

  /* Match the approved selling-intro typography: one heading size,
     one body size, with weight rather than scale creating hierarchy. */
  .ce-horizontal-why h2 {
    margin: 0;
    max-width: 760px;
    color: rgba(255,255,255,.98);
    font-size: clamp(46px, 4.6vw, 70px);
    font-weight: 500;
    line-height: .99;
    letter-spacing: -.04em;
  }

  .ce-horizontal-rule {
    display: block;
    width: 100%;
    height: 1px;
    margin: clamp(42px, 5vh, 64px) 0 clamp(32px, 4vh, 48px);
    background: rgba(255,255,255,.30);
  }

  .ce-horizontal-why-grid {
    display: grid;
    grid-template-columns: minmax(240px, .9fr) minmax(280px, 1fr) minmax(280px, 1fr);
    gap: clamp(38px, 5vw, 80px);
    align-items: start;
    width: 100%;
  }

  .ce-horizontal-why-grid p,
  .ce-horizontal-why-grid .ce-horizontal-why-lead {
    margin: 0;
    max-width: 48ch;
    color: rgba(255,255,255,.72);
    font-size: 15px;
    font-weight: 400;
    line-height: 1.62;
    letter-spacing: 0;
  }

  .ce-horizontal-why-grid .ce-horizontal-why-lead {
    color: rgba(255,255,255,.98);
    font-weight: 600;
  }

  .ce-horizontal-break {
    position: relative;
    height: 100%;
    background: #182F58;
  }

  .ce-horizontal-break img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }

  /* White action index starts immediately after the image panel releases
     the sticky horizontal chapter back into normal vertical scrolling. */
  .ce-horizontal-chapter + .ce-paths {
    position: relative;
    z-index: 4;
    margin-top: 0;
  }
}

@media (max-width: 820px) {
  .ce-horizontal-why {
    padding: 76px 0 68px;
  }

  .ce-horizontal-why-inner {
    padding-left: var(--gutter);
    padding-right: var(--gutter);
  }

  .ce-horizontal-why h2 {
    font-size: clamp(40px, 10.5vw, 58px);
    line-height: .99;
  }

  .ce-horizontal-rule {
    display: block;
    margin: 34px 0 28px;
    background: rgba(255,255,255,.28);
  }

  .ce-horizontal-why-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .ce-horizontal-why-grid p,
  .ce-horizontal-why-grid .ce-horizontal-why-lead {
    margin: 0;
    max-width: 54ch;
    color: rgba(255,255,255,.74);
    font-size: 15px;
    font-weight: 400;
    line-height: 1.62;
  }

  .ce-horizontal-why-grid .ce-horizontal-why-lead {
    color: rgba(255,255,255,.98);
    font-weight: 600;
  }

  .ce-horizontal-break {
    height: min(72vh, 680px);
    min-height: 440px;
  }

  .ce-horizontal-break img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }
}

/* =========================================================
   WHY COPY REFINEMENT V24
   Match the approved selling-intro hierarchy: heading left,
   one coherent body-copy block right, with a full-width rule.
   ========================================================= */
@media (min-width: 821px) {
  .ce-horizontal-why-inner {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  .ce-horizontal-why-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
    gap: clamp(52px, 7vw, 110px);
    align-items: center;
    width: 100%;
  }

  .ce-horizontal-why h2 {
    margin: 0;
    max-width: 760px;
    font-size: clamp(46px, 4.6vw, 70px);
    font-weight: 400;
    line-height: .99;
    letter-spacing: -.055em;
  }

  .ce-horizontal-why-copy {
    max-width: 610px;
  }

  .ce-horizontal-why-copy p,
  .ce-horizontal-why-copy .ce-horizontal-why-lead {
    margin: 0 0 18px;
    max-width: 610px;
    color: rgba(255,255,255,.72);
    font-size: 15px;
    font-weight: 400;
    line-height: 1.62;
    letter-spacing: 0;
  }

  .ce-horizontal-why-copy .ce-horizontal-why-lead {
    color: rgba(255,255,255,.98);
    font-weight: 600;
  }

  .ce-horizontal-why-copy p:last-child { margin-bottom: 0; }

  .ce-horizontal-rule {
    display: block;
    width: 100%;
    height: 1px;
    margin: clamp(42px, 5vh, 64px) 0 0;
    background: rgba(255,255,255,.30);
  }

  /* Explicitly keep the two approved large H2s at the same weight. */
  .ce-sell-intro h2,
  .ce-horizontal-why h2 {
    font-weight: 400;
  }
}

@media (max-width: 820px) {
  .ce-horizontal-why-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 26px;
  }

  .ce-horizontal-why h2 {
    font-weight: 400;
  }

  .ce-horizontal-why-copy p,
  .ce-horizontal-why-copy .ce-horizontal-why-lead {
    margin: 0 0 16px;
    max-width: 54ch;
    color: rgba(255,255,255,.74);
    font-size: 15px;
    font-weight: 400;
    line-height: 1.62;
  }

  .ce-horizontal-why-copy .ce-horizontal-why-lead {
    color: rgba(255,255,255,.98);
    font-weight: 600;
  }

  .ce-horizontal-why-copy p:last-child { margin-bottom: 0; }

  .ce-horizontal-rule {
    display: block;
    margin: 30px 0 0;
    background: rgba(255,255,255,.28);
  }
}

/* =========================================================
   WHY / HERO / ACTION REFINEMENT V25
   Keep the Why chapter aligned with the approved selling intro,
   test the hero statement in uppercase, and standardise journey CTAs.
   ========================================================= */

/* The two large section H2s intentionally share the same weight. */
.ce-sell-intro h2,
.ce-horizontal-why h2 {
  font-weight: 400;
}

/* Keep the requested banner treatment explicit even if the source copy changes case. */
#hero-title {
  text-transform: uppercase;
}

/* Standard Chas red actions for Buy / Rent / Affordability / Discover. */
.ce-path-link,
.ce-path-link:hover,
.ce-path-link:focus-visible {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-height: 44px;
  padding: 0 18px;
  background: var(--ce-red);
  border: 1px solid var(--ce-red);
  border-radius: 2px;
  color: var(--white);
  text-decoration: none;
  line-height: 1;
  transition: background .22s ease, border-color .22s ease, transform .22s ease;
}

.ce-path-link:hover {
  background: #c9002f;
  border-color: #c9002f;
  color: var(--white);
  transform: translateY(-1px);
}

.ce-path-link:focus-visible {
  outline: 2px solid var(--ce-dark);
  outline-offset: 3px;
}

@media (max-width: 820px) {
  .ce-path-link {
    min-height: 42px;
    padding: 0 16px;
  }
}

/* =========================================================
   WHY ALIGNMENT + JOURNEY CTA SIZING V26
   Align the two Why Chas columns from the same top edge and
   standardise the four red journey CTAs to one fixed size.
   ========================================================= */
@media (min-width: 821px) {
  .ce-horizontal-why-grid {
    align-items: start;
  }

  .ce-horizontal-why-copy {
    margin-top: 0;
    padding-top: 0;
  }

  .ce-path-link,
  .ce-path-link:hover,
  .ce-path-link:focus-visible {
    width: 200px;
    min-height: 50px;
    padding-left: 14px;
    padding-right: 14px;
  }
}

/* =========================================================
   TESTIMONIAL REFINEMENT V27
   Add a clear section heading and make category / quote changes
   feel continuous, with a dedicated image for every quote.
   ========================================================= */
.testimonial-heading {
  margin: 0 0 clamp(44px, 4.5vw, 68px);
  max-width: 980px;
  font-size: clamp(42px, 4.15vw, 62px);
  line-height: 1.02;
  font-weight: 400;
  letter-spacing: -.045em;
}

.testimonial-panels {
  position: relative;
  min-width: 0;
}

.testimonial-panel {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(14px);
  transition:
    opacity .34s ease,
    transform .48s cubic-bezier(.22,.61,.36,1),
    visibility 0s linear .48s;
}

.testimonial-panel.is-active {
  position: relative;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
  transition-delay: .07s, .07s, 0s;
}

.testimonial-portrait {
  width: 210px;
  height: 258px;
  object-fit: cover;
  object-position: center;
  filter: grayscale(1);
  opacity: 1;
  transform: scale(1);
  transition:
    opacity .2s ease,
    transform .46s cubic-bezier(.22,.61,.36,1);
}

.testimonial-portrait.is-changing {
  opacity: 0;
  transform: scale(.985);
}

.testimonial-layout {
  grid-template-columns: 230px minmax(0, 1fr);
  align-items: start;
}

.tab-button,
.testimonial-controls button {
  transition: color .22s ease, border-color .22s ease, background .22s ease, transform .22s ease;
}

.testimonial-controls button:hover {
  transform: translateY(-1px);
}

@media (max-width: 820px) {
  .testimonial-heading {
    margin-bottom: 34px;
    font-size: clamp(36px, 9.5vw, 52px);
  }

  .testimonial-portrait {
    width: 138px;
    height: 168px;
  }

  .testimonial-layout {
    grid-template-columns: 1fr;
  }
}

/* Ensure the transition model supersedes the older display:none panel rule. */
.testimonial-panel,
.testimonial-panel.is-active {
  display: block;
}

/* =========================================================
   PARTNERS / TESTIMONIALS / ACCOLADES / CONTACT V28
   - real partner marks instead of text links
   - subtle timed testimonial dots below reviewer name
   - full-colour testimonial imagery
   - appreciation CTAs use the standard Chas red action treatment
   - contact blue panel gets a larger lower radius
   ========================================================= */

/* Testimonials: remove the bulky arrow/index controls and keep navigation quiet. */
.testimonial-topline {
  grid-template-columns: 1fr;
}

.testimonial-index,
.testimonial-controls {
  display: none !important;
}

.testimonial-portrait {
  filter: none !important;
}

.testimonial-dots {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-top: 16px;
  min-height: 18px;
}

.testimonial-dot {
  width: 7px;
  height: 7px;
  padding: 0;
  border: 1px solid rgba(24,47,88,.42);
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
  transition: background .22s ease, border-color .22s ease, transform .22s ease;
}

.testimonial-dot:hover,
.testimonial-dot:focus-visible {
  border-color: var(--ce-blue);
  transform: scale(1.12);
}

.testimonial-dot.is-active {
  background: var(--ce-blue);
  border-color: var(--ce-blue);
}

.testimonial-dot:focus-visible {
  outline: 2px solid rgba(44,86,151,.22);
  outline-offset: 4px;
}

/* Partners: treat the actual marks as a single clean credibility row. */
.ce-partners {
  padding: 52px 0 58px;
}

.ce-partners-inner {
  grid-template-columns: minmax(180px, .42fr) minmax(0, 1.58fr);
  gap: clamp(44px, 7vw, 104px);
  align-items: center;
}

.ce-partners h2 {
  font-size: clamp(34px, 3vw, 46px);
}

.ce-partner-links {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(24px, 3vw, 46px);
  align-items: center;
  padding-top: 0;
}

.ce-partner-links a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 72px;
  padding: 8px 0;
  border: 0;
}

.ce-partner-links a:hover {
  border: 0;
}

.ce-partner-links img {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: 58px;
  object-fit: contain;
  transition: opacity .2s ease, transform .22s ease;
}

.ce-partner-links a:hover img {
  opacity: .72;
  transform: translateY(-1px);
}

/* Appreciation and acknowledgement: no stars; one consistent red action weight. */
.ce-accolades-copy .rating,
.rating[aria-label="5 star rating"] {
  display: none !important;
}

.ce-accolade-list a,
.ce-accolade-list a:hover,
.ce-accolade-list a:focus-visible {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 146px;
  min-height: 44px;
  padding: 0 18px;
  border: 1px solid var(--ce-red);
  border-radius: 2px;
  background: var(--ce-red);
  color: var(--white);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .15em;
  line-height: 1;
  text-transform: uppercase;
  text-decoration: none;
  transition: background .22s ease, border-color .22s ease, transform .22s ease;
}

.ce-accolade-list a:hover {
  background: #c9002f;
  border-color: #c9002f;
  transform: translateY(-1px);
}

.ce-accolade-list a:focus-visible {
  outline: 2px solid var(--ce-dark);
  outline-offset: 3px;
}

/* Contact: keep the lighter Chas blue, but soften the bottom edge before the footer. */
.ce-contact {
  border-radius: 0 0 32px 32px;
  overflow: hidden;
}

@media (max-width: 1080px) {
  .ce-partners-inner {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .ce-partner-links {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 820px) {
  .testimonial-dots {
    margin-top: 14px;
  }

  .ce-partner-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 28px;
  }

  .ce-partner-links a {
    justify-content: flex-start;
    min-height: 58px;
  }

  .ce-partner-links img {
    max-height: 48px;
  }

  .ce-accolade-list article {
    grid-template-columns: minmax(0, 1fr) auto;
  }
}

@media (max-width: 560px) {
  .ce-partner-links {
    grid-template-columns: 1fr 1fr;
  }

  .ce-accolade-list article {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .ce-accolade-list a {
    justify-self: start;
  }

  .ce-contact {
    border-radius: 0 0 24px 24px;
  }
}

/* V28.1 placement / partner-surface correction */
.ce-partners {
  background: rgb(244,242,249);
}

.testimonial-panels > .testimonial-dots {
  position: relative;
}

/* =========================================================
   V29 — TYPE SCALE / TESTIMONIAL STABILITY / CAREER / NEWS
   Scoped refinement based on the approved Concept 01 system.
   ========================================================= */

/* Slightly lift the general reading scale without changing the established
   display-heading hierarchy or compact navigation UI. */
body { font-size: 17.5px; }

.ce-sell-intro p,
.ce-sell-card-body p,
.ce-path-content p,
.ce-horizontal-chapter p,
.ce-career-copy p,
.ce-news-intro p,
.ce-accolades-copy p,
.ce-contact-heading p {
  font-size: 17px;
}

.ce-sell-band-copy p { font-size: 14px; }
.ce-accolade-list p { font-size: 15px; }
.ce-contact .form-check { font-size: 14px; }
.ce-contact .form-small { font-size: 13px; }

/* The main surface is transparent so the rounded lower corners of the final
   blue contact panel reveal the footer beneath rather than a white parent. */
main { background: transparent !important; }

/* Testimonials remain manually selectable, but reserve the tallest quote
   height so switching cannot make the page jump vertically. */
.testimonial-panels {
  min-height: var(--testimonial-max-height, 0px);
}
.testimonial-panels > .testimonial-dots {
  position: absolute !important;
  left: 0;
  bottom: 0;
  margin-top: 0;
}
.testimonial-author { font-size: 18px; }
.testimonial-tabs .tab-button { font-size: 12px; }

/* CAREER — reuse the approved headline/body composition from the selling
   introduction, then let one large human image do the visual work. */
.ce-career {
  position: relative;
  height: auto;
  min-height: 0;
  max-height: none;
  padding: clamp(84px, 7vw, 112px) 0 clamp(84px, 7vw, 112px);
  overflow: visible;
  background: var(--white);
  color: var(--ink);
}
.ce-career::after { display: none; }
.ce-career-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(420px, .82fr);
  gap: clamp(64px, 9vw, 140px);
  align-items: start;
  padding-top: clamp(26px, 2.4vw, 38px);
  padding-bottom: clamp(46px, 4vw, 62px);
  border-top: 1px solid var(--line);
}
.ce-career-intro h2 {
  max-width: 720px;
  margin: 0;
  font-size: clamp(46px, 4.5vw, 68px);
  line-height: 1;
  font-weight: 400;
  letter-spacing: -.05em;
}
.ce-career-copy {
  max-width: 650px;
  padding-top: 4px;
}
.ce-career-copy p {
  margin: 0 0 16px;
  color: #67707c;
  line-height: 1.66;
}
.ce-career-cta,
.ce-news-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 190px;
  min-height: 50px;
  margin-top: 16px;
  padding: 0 22px;
  border: 1px solid var(--ce-red);
  border-radius: 2px;
  background: var(--ce-red);
  color: var(--white);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .15em;
  line-height: 1;
  text-transform: uppercase;
  transition: background .22s ease, border-color .22s ease, transform .22s ease;
}
.ce-career-cta:hover,
.ce-news-cta:hover {
  background: #c9002f;
  border-color: #c9002f;
  transform: translateY(-1px);
}
.ce-career-visual {
  overflow: hidden;
  border-radius: 4px;
}
.ce-career-visual img {
  width: 100%;
  height: clamp(420px, 43vw, 620px);
  object-fit: cover;
  object-position: center 52%;
  transition: transform .8s cubic-bezier(.22,.61,.36,1);
}
.ce-career-visual:hover img { transform: scale(1.012); }

/* NEWS — clean editorial continuation: one familiar heading/body intro,
   followed by two large image-led stories rather than a separate dark block. */
.ce-news {
  display: block;
  min-height: 0;
  padding: clamp(84px, 7vw, 112px) 0 clamp(96px, 8vw, 132px);
  background: var(--white);
  color: var(--ink);
}
.ce-news-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(420px, .82fr);
  gap: clamp(64px, 9vw, 140px);
  align-items: start;
  padding-top: clamp(26px, 2.4vw, 38px);
  border-top: 1px solid var(--line);
}
.ce-news-intro h2 {
  max-width: 720px;
  margin: 0;
  font-size: clamp(46px, 4.5vw, 68px);
  line-height: 1;
  font-weight: 400;
  letter-spacing: -.05em;
}
.ce-news-intro p {
  margin: 0;
  max-width: 650px;
  color: #67707c;
  line-height: 1.66;
}
.ce-news-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
  gap: clamp(24px, 2.4vw, 38px);
  align-items: start;
  margin-top: clamp(52px, 5vw, 76px);
}
.ce-news-card {
  min-width: 0;
}
.ce-news-card img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 4px;
  transition: transform .7s cubic-bezier(.22,.61,.36,1), opacity .25s ease;
}
.ce-news-card:hover img {
  transform: scale(1.01);
  opacity: .96;
}
.ce-news-card-copy {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(22px, 3vw, 46px);
  align-items: end;
  min-height: 162px;
  padding: 24px 0 0;
  border-top: 1px solid var(--line);
  margin-top: 16px;
}
.ce-news-card h3 {
  margin: 0;
  max-width: 760px;
  font-size: clamp(28px, 2.45vw, 38px);
  line-height: 1.04;
  font-weight: 400;
  letter-spacing: -.045em;
}
.ce-news-cta {
  min-width: 132px;
  margin-top: 0;
}

@media (max-width: 1080px) {
  .ce-career-intro,
  .ce-news-intro {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .ce-career-copy,
  .ce-news-intro p { max-width: 760px; }
  .ce-news-grid { grid-template-columns: 1fr 1fr; }
  .ce-news-card-copy {
    grid-template-columns: 1fr;
    align-items: start;
  }
  .ce-news-cta { justify-self: start; }
}

@media (max-width: 820px) {
  body { font-size: 16.5px; }

  .ce-career {
    height: auto;
    min-height: 0;
    max-height: none;
    padding: 64px 0 74px;
  }
  .ce-career-intro,
  .ce-news-intro {
    padding-top: 24px;
    padding-bottom: 38px;
  }
  .ce-career-intro h2,
  .ce-news-intro h2 {
    font-size: clamp(38px, 10.5vw, 54px);
  }
  .ce-career-visual { border-radius: 3px; }
  .ce-career-visual img {
    height: min(72vw, 460px);
    object-position: center;
  }

  .ce-news {
    padding: 64px 0 86px;
  }
  .ce-news-grid {
    grid-template-columns: 1fr;
    gap: 54px;
    margin-top: 10px;
  }
  .ce-news-card-copy { min-height: 0; }
  .ce-news-card h3 { font-size: clamp(28px, 7.5vw, 36px); }

  .testimonial-panels > .testimonial-dots { bottom: 0; }
}

/* V29.1 — final reading-scale and contact-edge cleanup */
.ce-career-copy p,
.ce-news-intro p,
.ce-accolades-copy p,
.ce-contact-heading p,
.ce-path-content p,
.ce-horizontal-why-copy p,
.ce-sell-intro p {
  font-size: 17px;
}

.ce-career-copy p,
.ce-news-intro p,
.ce-accolades-copy p,
.ce-contact-heading p {
  line-height: 1.64;
}

/* The blue contact panel is the final main-page surface. Its rounded lower
   corners now cut through to the transparent main canvas, revealing the
   fixed footer beneath rather than a white parent background. */
.ce-contact {
  position: relative;
  z-index: 2;
  border-radius: 0 0 34px 34px;
  overflow: hidden;
}

@media (max-width: 560px) {
  .ce-contact { border-radius: 0 0 26px 26px; }
}

/* =========================================================
   NEWS / TESTIMONIAL / CTA REFINEMENT V30
   - Fluid Collection-inspired editorial news layout
   - longer seller testimonial is the default state
   - solid red CTA hover keeps text perfectly stationary
   ========================================================= */

/* Prevent the global underlined-link hover rule from nudging solid CTAs. */
.ce-career-cta,
.ce-career-cta:hover,
.ce-career-cta:focus-visible,
.ce-news-cta,
.ce-news-cta:hover,
.ce-news-cta:focus-visible {
  padding-right: 22px;
  opacity: 1;
}
.ce-career-cta:hover,
.ce-career-cta:focus-visible,
.ce-news-cta:hover,
.ce-news-cta:focus-visible {
  transform: none;
}

/* NEWS — editorial collection: fixed narrative on the left, image-led
   article collection on the right. The whole tile is the link. */
.ce-news {
  display: block;
  min-height: 0;
  padding: clamp(86px, 7vw, 116px) 0 clamp(104px, 9vw, 148px);
  background: var(--white);
  color: var(--ink);
}
.ce-news-collection {
  display: grid;
  grid-template-columns: minmax(310px, .72fr) minmax(0, 1.28fr);
  gap: clamp(56px, 8vw, 132px);
  align-items: start;
  border-top: 1px solid var(--line);
  padding-top: clamp(28px, 2.8vw, 44px);
}
.ce-news-sticky-copy {
  position: sticky;
  top: 15vh;
  min-height: 68vh;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-bottom: clamp(26px, 4vw, 62px);
}
.ce-news-sticky-copy h2 {
  margin: 0 0 28px;
  max-width: 640px;
  font-size: clamp(48px, 4.5vw, 68px);
  line-height: 1;
  font-weight: 400;
  letter-spacing: -.05em;
}
.ce-news-sticky-copy p {
  margin: 0;
  max-width: 560px;
  color: #67707c;
  font-size: 17px;
  line-height: 1.64;
}
.ce-news-collection-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(42px, 4vw, 68px) clamp(20px, 2vw, 32px);
}
.ce-news-tile {
  display: block;
  min-width: 0;
  color: inherit;
  text-decoration: none;
}
.ce-news-tile img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: 3px;
  transition: transform .72s cubic-bezier(.22,.61,.36,1), opacity .24s ease;
}
.ce-news-tile:hover img,
.ce-news-tile:focus-visible img {
  transform: scale(1.012);
  opacity: .97;
}
.ce-news-tile-copy {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px;
  align-items: end;
  padding-top: 15px;
}
.ce-news-tile h3 {
  margin: 0;
  font-size: clamp(21px, 1.6vw, 28px);
  line-height: 1.12;
  font-weight: 400;
  letter-spacing: -.03em;
}
.ce-news-read {
  position: relative;
  align-self: end;
  padding: 0 0 6px;
  color: var(--ce-red);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .14em;
  line-height: 1;
  white-space: nowrap;
}
.ce-news-read::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: currentColor;
  transform-origin: left center;
  transition: transform .28s ease;
}
.ce-news-tile:hover .ce-news-read::after,
.ce-news-tile:focus-visible .ce-news-read::after {
  transform: scaleX(.58);
}

@media (max-width: 1080px) {
  .ce-news-collection {
    grid-template-columns: minmax(260px, .62fr) minmax(0, 1.38fr);
    gap: 46px;
  }
  .ce-news-sticky-copy { top: 12vh; }
  .ce-news-tile-copy { grid-template-columns: 1fr; }
  .ce-news-read { justify-self: start; }
}

@media (max-width: 820px) {
  .ce-news { padding: 66px 0 86px; }
  .ce-news-collection {
    grid-template-columns: 1fr;
    gap: 42px;
    padding-top: 24px;
  }
  .ce-news-sticky-copy {
    position: static;
    min-height: 0;
    padding-bottom: 0;
  }
  .ce-news-sticky-copy h2 {
    margin-bottom: 20px;
    font-size: clamp(38px, 10.5vw, 54px);
  }
  .ce-news-collection-grid {
    grid-template-columns: 1fr;
    gap: 46px;
  }
  .ce-news-tile img { aspect-ratio: 16 / 11; }
  .ce-news-tile h3 { font-size: clamp(25px, 7vw, 34px); }
}

/* =========================================================
   V31 — NEWS ALIGNMENT / PARTNERS / AGENT IMAGE
   ========================================================= */

/* Latest news: anchor the editorial introduction at the actual top-left
   of the collection rather than vertically dropping it into the section. */
.ce-news-sticky-copy {
  top: 11vh;
  min-height: 0;
  justify-content: flex-start;
  padding-bottom: 0;
}

/* READ MORE now uses the same solid Chas-red CTA language as the rest of
   the site, at a deliberately smaller article-action size. */
.ce-news-read {
  position: static;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 122px;
  height: 40px;
  padding: 0 14px;
  border: 1px solid var(--ce-red);
  border-radius: 2px;
  background: var(--ce-red);
  color: var(--white);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .14em;
  line-height: 1;
  white-space: nowrap;
  transition: background .22s ease, border-color .22s ease;
}
.ce-news-read::after { display: none; }
.ce-news-tile:hover .ce-news-read,
.ce-news-tile:focus-visible .ce-news-read {
  background: #c9002f;
  border-color: #c9002f;
}

/* Partners: move the short credibility band onto the approved lighter
   Chas blue while keeping the monochrome marks crisp and legible. */
.ce-partners {
  background: #2C5697;
  color: var(--white);
  border-bottom-color: rgba(255,255,255,.18);
}
.ce-partners h2 { color: var(--white); }
.ce-partner-links img {
  filter: brightness(0) invert(1);
}
.ce-partner-links a:hover img { opacity: .82; }

@media (max-width: 820px) {
  .ce-news-sticky-copy { top: auto; }
  .ce-news-read {
    width: 118px;
    height: 38px;
  }
}

/* =========================================================
   V32 — ACCOLADES / NEWS CROP / CONTACT CTA HOVER
   ========================================================= */

/* Keep Appreciation and acknowledgement on the exact same soft surface
   as the approved testimonials section so the two sections feel related. */
.ce-accolades {
  background: #f8f9fb;
}

/* Bring the editorial news crops slightly closer to square without
   changing the approved two-column collection structure. */
.ce-news-tile img {
  aspect-ratio: 1 / 1.06;
}

/* The generic .ce-action hover reduces right padding. Explicitly lock the
   contact submit padding so START YOUR JOURNEY never shifts horizontally. */
.ce-contact-submit,
.ce-contact-submit:hover,
.ce-contact-submit:focus-visible {
  padding: 0 28px;
  opacity: 1;
}
.ce-contact-submit:hover,
.ce-contact-submit:focus-visible {
  background: #c9002f;
  border-color: #c9002f;
  transform: none;
}

@media (max-width: 820px) {
  .ce-news-tile img {
    aspect-ratio: 16 / 11;
  }
}

/* =========================================================
   OPTION 1 V1 — RESTRAINED MOTION LANGUAGE V33
   Motion is intentionally quiet: small travel, soft easing, no spring,
   no colour tweening between sections, and no scroll hijacking.
   ========================================================= */
:root {
  --ce-motion-ease: cubic-bezier(.22, 1, .36, 1);
  --ce-motion-soft: cubic-bezier(.2, .72, .2, 1);
}

/* Existing reveal treatment, reduced from the earlier 28px travel. */
html.reveal-ready [data-reveal] {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition:
    opacity .56s ease,
    transform .68s var(--ce-motion-ease);
}
html.reveal-ready [data-reveal].is-revealed {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* One-time composition reveals. The whole layout enters together rather
   than animating every line of copy independently. */
html.motion-language-ready .motion-reveal {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition:
    opacity .54s ease var(--motion-delay, 0ms),
    transform .68s var(--ce-motion-ease) var(--motion-delay, 0ms);
  will-change: transform, opacity;
}
html.motion-language-ready .motion-reveal.is-motion-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* Selling cards: preserve the locked interaction, but make the line,
   heading and supporting copy read as one calm surface transition. */
.ce-sell-card-image {
  transition: transform .78s var(--ce-motion-ease), opacity .24s ease;
}
.ce-sell-card-lower {
  transition: background .46s var(--ce-motion-soft);
}
.ce-sell-card-rule,
.ce-sell-card-heading {
  transition: transform .48s var(--ce-motion-ease);
  will-change: transform;
}
.ce-sell-card-hover-copy {
  transform: translate3d(0, 9px, 0);
  transition:
    opacity .32s ease,
    transform .46s var(--ce-motion-ease);
}

@media (hover: hover) and (pointer: fine) {
  .ce-sell-card:hover .ce-sell-card-rule,
  .ce-sell-card:hover .ce-sell-card-heading {
    transform: translate3d(0, -14px, 0);
  }
  .ce-sell-card:hover .ce-sell-card-image {
    transform: scale(1.015);
  }
}

/* Horizontal chapter: normal vertical scroll still drives the chapter.
   The image itself only lags by a few pixels to create depth. */
.ce-horizontal-break img {
  will-change: transform;
  transform-origin: center center;
}

/* News keeps the same editorial structure; hover movement stays almost
   imperceptible and the text/CTA never shifts. */
.ce-news-tile img {
  transition: transform .52s var(--ce-motion-ease), opacity .22s ease;
}
.ce-news-tile:hover img,
.ce-news-tile:focus-visible img {
  transform: scale(1.012);
}

/* Solid CTAs are deliberately stable. Hover is colour only. */
.ce-path-link,
.ce-path-link:hover,
.ce-path-link:focus-visible,
.ce-sell-card-cta,
.ce-sell-card-cta:hover,
.ce-sell-card-cta:focus-visible,
.ce-career-cta,
.ce-career-cta:hover,
.ce-career-cta:focus-visible,
.ce-news-read,
.ce-news-tile:hover .ce-news-read,
.ce-news-tile:focus-visible .ce-news-read,
.ce-accolade-list a,
.ce-accolade-list a:hover,
.ce-accolade-list a:focus-visible,
.ce-contact-submit,
.ce-contact-submit:hover,
.ce-contact-submit:focus-visible {
  transform: none !important;
  transition:
    background .2s ease,
    border-color .2s ease,
    color .2s ease,
    opacity .2s ease;
}

@media (prefers-reduced-motion: reduce) {
  html.motion-language-ready .motion-reveal,
  html.reveal-ready [data-reveal],
  .ce-sell-card-image,
  .ce-sell-card-lower,
  .ce-sell-card-rule,
  .ce-sell-card-heading,
  .ce-sell-card-hover-copy,
  .ce-news-tile img {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* =========================================================
   OPTION 1 V1.1 — TYPOGRAPHY / SPACING / CTA / CROP POLISH V34
   Scoped craft pass only. Approved structure, hero, navigation, footer,
   horizontal chapter architecture and Selling Cards V16 behaviour remain intact.
   ========================================================= */
:root {
  --ce-h2-size: clamp(48px, 4.45vw, 68px);
  --ce-h2-line: 1.01;
  --ce-h2-weight: 400;
  --ce-h2-track: -.047em;
  --ce-body-size: 17.5px;
  --ce-body-line: 1.62;
  --ce-body-colour: #68717d;
  --ce-section-space: clamp(82px, 7vw, 112px);
  --ce-cta-height: 48px;
  --ce-cta-radius: 4px;
  --ce-cta-font: 10px;
  --ce-cta-track: .145em;
}

/* ---------- Typography hierarchy ---------- */
body {
  font-size: 18px;
}

.ce-sell-intro h2,
.ce-horizontal-why h2,
.testimonial-heading,
.ce-career-intro h2,
.ce-news-sticky-copy h2,
.ce-accolades-copy h2,
.ce-contact-heading h2 {
  font-size: var(--ce-h2-size);
  line-height: var(--ce-h2-line);
  font-weight: var(--ce-h2-weight);
  letter-spacing: var(--ce-h2-track);
}

.ce-sell-intro p,
.ce-horizontal-why-copy p,
.ce-path-content p,
.ce-career-copy p,
.ce-news-sticky-copy p,
.ce-accolades-copy p,
.ce-contact-heading p {
  font-size: var(--ce-body-size);
  line-height: var(--ce-body-line);
}

.ce-sell-intro p,
.ce-career-copy p,
.ce-news-sticky-copy p,
.ce-accolades-copy p {
  color: var(--ce-body-colour);
}

.ce-horizontal-why-copy p,
.ce-contact-heading p {
  line-height: 1.64;
}

/* Keep supporting headings in one deliberate secondary scale. */
.ce-sell-card-heading h3,
.ce-horizontal-path-heading h3,
.ce-path-content h3,
.ce-accolade-list h3,
.ce-news-tile h3 {
  font-weight: 400;
  letter-spacing: -.035em;
}

.ce-accolade-list h3 {
  font-size: clamp(24px, 2vw, 29px);
  line-height: 1.08;
}

.ce-accolade-list p {
  font-size: 15.5px;
  line-height: 1.55;
}

.testimonial-panel blockquote {
  line-height: 1.075;
  letter-spacing: -.035em;
}

.testimonial-author {
  font-size: 18px;
  line-height: 1.35;
}

/* ---------- Spacing / alignment ---------- */
.ce-career,
.ce-news,
.ce-accolades {
  padding-top: var(--ce-section-space);
  padding-bottom: var(--ce-section-space);
}

.testimonials {
  padding-top: var(--ce-section-space);
  padding-bottom: var(--ce-section-space);
}

.ce-career-intro,
.ce-news-collection,
.ce-accolades-grid,
.ce-contact-grid {
  align-items: start;
}

.ce-career-intro {
  padding-top: 30px;
  padding-bottom: clamp(48px, 4.5vw, 66px);
}

.ce-news-collection {
  padding-top: 30px;
}

.ce-news-sticky-copy {
  margin: 0;
  padding-top: 0;
}

.ce-news-sticky-copy h2,
.ce-career-intro h2,
.ce-accolades-copy h2,
.ce-contact-heading h2 {
  margin-top: 0;
}

.ce-accolades-copy h2 {
  margin-bottom: 26px;
}

.ce-accolade-list article {
  min-height: 112px;
  padding: 22px 0;
  align-items: center;
}

.ce-contact-grid {
  gap: clamp(60px, 8vw, 118px);
}

.ce-partners-inner {
  align-items: center;
}

.ce-partner-links a {
  min-height: 66px;
}

/* ---------- One CTA system ---------- */
.ce-path-link,
.ce-career-cta,
.ce-accolade-list a,
.ce-contact-submit {
  min-height: var(--ce-cta-height);
  padding: 0 22px;
  border: 1px solid var(--ce-red);
  border-radius: var(--ce-cta-radius);
  background: var(--ce-red);
  color: var(--white);
  font-size: var(--ce-cta-font);
  font-weight: 700;
  letter-spacing: var(--ce-cta-track);
  line-height: 1;
  text-transform: uppercase;
  text-decoration: none;
  opacity: 1;
  transform: none !important;
  transition: background .2s ease, border-color .2s ease, color .2s ease;
}

.ce-path-link:hover,
.ce-path-link:focus-visible,
.ce-career-cta:hover,
.ce-career-cta:focus-visible,
.ce-accolade-list a:hover,
.ce-accolade-list a:focus-visible,
.ce-contact-submit:hover,
.ce-contact-submit:focus-visible {
  background: #c9002f;
  border-color: #c9002f;
  color: var(--white);
  opacity: 1;
  transform: none !important;
}

/* Journey rows keep their approved equal width. */
.ce-path-link,
.ce-path-link:hover,
.ce-path-link:focus-visible {
  width: 200px;
  min-height: 50px;
  padding-left: 14px;
  padding-right: 14px;
}

/* Selling CTA uses the same visual language without disturbing its locked position. */
.ce-sell-card-cta,
.ce-sell-card-cta:hover,
.ce-sell-card-cta:focus-visible {
  min-height: 44px;
  padding: 0 19px;
  border-radius: var(--ce-cta-radius);
  font-size: var(--ce-cta-font);
  font-weight: 700;
  letter-spacing: var(--ce-cta-track);
  line-height: 1;
  text-transform: uppercase;
  opacity: 1;
  transform: none !important;
}

/* News deliberately keeps a smaller CTA variant. */
.ce-news-read,
.ce-news-tile:hover .ce-news-read,
.ce-news-tile:focus-visible .ce-news-read {
  width: auto;
  min-width: 116px;
  height: 40px;
  padding: 0 15px;
  border-radius: var(--ce-cta-radius);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: .14em;
  transform: none !important;
}

/* ---------- Image crop consistency ---------- */
.ce-career-visual img,
.testimonial-portrait,
.ce-news-tile img,
.ce-sell-card-image,
.ce-horizontal-break img {
  display: block;
}

.ce-career-visual img {
  object-position: center 44%;
}

.testimonial-portrait {
  object-position: center 30%;
}

.ce-news-tile img {
  aspect-ratio: 1 / 1.02;
  object-position: center;
}

/* ---------- Restore the approved Selling Cards V16 interaction ----------
   V33 accidentally introduced transform movement on the rule/heading and image.
   The rule + heading must begin low, travel upward together only when the lower
   interaction zone is entered, while the image and CTA stay fixed. */
@media (hover: hover) and (pointer: fine) {
  .ce-sell-card-lower {
    --sell-pad: clamp(24px, 3vw, 48px);
    top: 54%;
    bottom: 0;
    min-height: 0;
    padding: 0 var(--sell-pad) clamp(26px, 2.8vw, 40px);
    background: transparent !important;
    transition: none;
  }

  .ce-sell-card-rule {
    position: absolute;
    left: calc(var(--sell-pad) * -1);
    right: calc(var(--sell-pad) * -1);
    top: calc(100% - 116px);
    width: auto;
    height: 1px;
    margin: 0;
    background: rgba(255,255,255,.72);
    opacity: 1 !important;
    transform: none !important;
    transition: top .58s cubic-bezier(.22,.61,.36,1);
    will-change: top;
  }

  .ce-sell-card-heading {
    position: absolute;
    left: var(--sell-pad);
    right: clamp(240px, 22vw, 330px);
    top: calc(100% - 92px);
    width: auto;
    transform: none !important;
    transition: top .58s cubic-bezier(.22,.61,.36,1);
    will-change: top;
  }

  .ce-sell-card-hover-copy {
    position: static;
    width: min(620px, 100%);
    max-width: 620px;
    margin: 18px 0 0;
    padding: 0;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity .30s ease .10s, transform .46s cubic-bezier(.22,.61,.36,1);
  }

  .ce-sell-card-image,
  .ce-sell-card:hover .ce-sell-card-image {
    transform: none !important;
  }

  .ce-sell-card:hover .ce-sell-card-rule {
    top: calc(100% - 116px);
    transform: none !important;
  }

  .ce-sell-card:hover .ce-sell-card-heading {
    top: calc(100% - 92px);
    transform: none !important;
  }

  .ce-sell-card:hover .ce-sell-card-hover-copy {
    opacity: 0;
    transform: translateY(10px);
  }

  .ce-sell-card-lower:hover .ce-sell-card-rule {
    top: 18px;
  }

  .ce-sell-card-lower:hover .ce-sell-card-heading {
    top: 44px;
  }

  .ce-sell-card-lower:hover .ce-sell-card-hover-copy {
    opacity: 1;
    transform: translateY(0);
  }

  .ce-sell-card-cta,
  .ce-sell-card:hover .ce-sell-card-cta,
  .ce-sell-card-lower:hover .ce-sell-card-cta {
    right: clamp(24px, 3vw, 48px);
    bottom: clamp(26px, 2.8vw, 40px);
    transform: none !important;
  }
}

@media (max-width: 1080px) {
  :root {
    --ce-h2-size: clamp(44px, 6vw, 62px);
  }

  .ce-career,
  .ce-news,
  .ce-accolades,
  .testimonials {
    padding-top: clamp(72px, 8vw, 92px);
    padding-bottom: clamp(72px, 8vw, 92px);
  }
}

@media (max-width: 820px) {
  body {
    font-size: 16.5px;
  }

  :root {
    --ce-h2-size: clamp(38px, 10vw, 52px);
    --ce-body-size: 16px;
  }

  .ce-career,
  .ce-news,
  .ce-accolades,
  .testimonials {
    padding-top: 64px;
    padding-bottom: 72px;
  }

  .ce-news-tile img {
    aspect-ratio: 4 / 3;
  }

  .ce-path-link,
  .ce-path-link:hover,
  .ce-path-link:focus-visible {
    width: 100%;
    max-width: 220px;
    min-height: 46px;
  }
}

/* =========================================================
   OPTION 1 — NAV / SEARCH / PARTNER REFINEMENT
   Brings the opening utility layer closer to Concept 2 without
   changing Concept 1's immersive hero and scroll language.
   ========================================================= */

/* Top-right menu trigger beside International. */
.site-top-nav {
  gap: clamp(14px, 1.45vw, 24px);
}
.site-menu-trigger {
  width: 34px;
  height: 34px;
  margin-left: 4px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--white);
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  cursor: pointer;
  opacity: .94;
  transition: opacity .2s ease, transform .28s cubic-bezier(.22,1,.36,1);
}
.site-menu-trigger span {
  display: block;
  width: 21px;
  height: 1px;
  background: currentColor;
}
.site-menu-trigger:hover {
  opacity: .66;
  transform: translateY(-1px);
}
.site-leadingre img {
  width: 102px;
  max-height: 44px;
  filter: brightness(0) invert(1);
  opacity: .96;
}

/* Clearer Concept-2-inspired hero search. */
.hero-search-stage {
  bottom: clamp(220px, 25vh, 280px);
}
.hero-search {
  grid-template-columns: 150px 170px minmax(360px, 1fr) 124px;
  gap: 0;
  width: min(1120px, calc(100% - 126px));
  min-height: 72px;
  overflow: hidden;
  border-radius: 6px;
  background: rgba(255,255,255,.97);
  box-shadow: 0 14px 36px rgba(8,18,32,.16);
}
.hero-search-field {
  position: relative;
  min-width: 0;
  padding: 12px 16px 9px;
  border-right: 1px solid rgba(24,47,88,.12);
  background: transparent;
}
.hero-search-field label {
  display: block;
  margin: 0 0 3px;
  color: #697483;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .12em;
  line-height: 1.1;
  text-transform: uppercase;
}
.hero-search select,
.hero-search input,
.hero-search button {
  border: 0;
  border-radius: 0;
}
.hero-search select,
.hero-search input {
  width: 100%;
  height: 34px;
  padding: 0;
  color: #323842;
  background: transparent;
  font-family: inherit;
  letter-spacing: 0;
}
.hero-search select {
  padding-right: 24px;
  appearance: none;
  font-size: 12px;
  font-weight: 500;
  text-transform: none;
  cursor: pointer;
  background-image: linear-gradient(45deg, transparent 50%, #1d2631 50%), linear-gradient(135deg, #1d2631 50%, transparent 50%);
  background-position: calc(100% - 8px) 14px, calc(100% - 4px) 14px;
  background-size: 4px 4px, 4px 4px;
  background-repeat: no-repeat;
}
.hero-search input {
  outline: 0;
  font-size: 13px;
}
.hero-search input::placeholder {
  color: #9299a2;
}
.hero-search input:focus,
.hero-search select:focus {
  outline: none;
}
.hero-search button {
  min-width: 124px;
  height: 72px;
  padding: 0 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  background: #E00034;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .2s ease;
}
.hero-search button:hover {
  opacity: 1;
  background: #c9002f;
}

/* Crisp, complete partner strip. */
.ce-partners-inner {
  grid-template-columns: minmax(180px, .4fr) minmax(0, 1.6fr);
  gap: clamp(42px, 6vw, 92px);
  align-items: center;
}
.ce-partner-links {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 5px;
  overflow: hidden;
  background: #fff;
}
.ce-partner-links a {
  min-height: 104px;
  padding: 18px 16px;
  border: 0;
  border-right: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: center;
}
.ce-partner-links a:last-child { border-right: 0; }
.ce-partner-links img {
  display: block;
  width: auto;
  max-width: 88%;
  max-height: 54px;
  object-fit: contain;
}

@media (max-width: 1100px) {
  .hero-search {
    grid-template-columns: 132px 146px minmax(260px, 1fr) 108px;
    width: min(1040px, calc(100% - 72px));
  }
  .site-leadingre img { width: 88px; }
}

@media (max-width: 820px) {
  .site-menu-trigger { display: none; }
  .hero-search-stage { bottom: 128px; }
  .hero-search {
    grid-template-columns: 1fr 1fr;
    width: min(560px, calc(100% - 36px));
    margin: 0 auto;
  }
  .hero-search-field--query { grid-column: 1 / -1; border-top: 1px solid rgba(24,47,88,.12); }
  .hero-search button { grid-column: 1 / -1; width: 100%; }
  .ce-partners-inner { grid-template-columns: 1fr; gap: 28px; }
  .ce-partner-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ce-partner-links a { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .ce-partner-links a:nth-child(2n) { border-right: 0; }
  .ce-partner-links a:last-child { border-bottom: 0; }
}

/* =========================================================
   OPTION 1 — PARTNER LOGO VISIBILITY FIX
   The previous white-on-blue treatment was still filtering marks
   to white after they were placed on white logo cells.
   ========================================================= */
.ce-partner-links img {
  filter: none !important;
  opacity: 1 !important;
}
.ce-partner-links a:hover img {
  filter: none !important;
  opacity: .78 !important;
}
.site-leadingre img {
  filter: brightness(0) invert(1);
}

/* =========================================================
   OPTION 1 — WHITE PARTNER MARKS ON CHAS BLUE
   Keep the credibility band fully blue; partner marks sit directly
   on the section rather than inside white logo cards.
   ========================================================= */
.ce-partner-links {
  background: transparent;
  border-color: rgba(255,255,255,.24);
  border-radius: 5px;
}
.ce-partner-links a {
  background: transparent;
  border-right-color: rgba(255,255,255,.22);
}
.ce-partner-links img,
.ce-partner-links a:hover img {
  filter: brightness(0) invert(1) !important;
}
.ce-partner-links img {
  opacity: .94 !important;
}
.ce-partner-links a:hover img {
  opacity: .72 !important;
}

@media (max-width: 820px) {
  .ce-partner-links a {
    border-right-color: rgba(255,255,255,.22);
    border-bottom-color: rgba(255,255,255,.22);
  }
}

/* =========================================================
   OPTION 1 — PARTNERS / NO OUTLINE
   Keep the partner marks floating cleanly on Chas blue with no
   surrounding frame or internal divider lines.
   ========================================================= */
.ce-partner-links {
  border: 0 !important;
  border-radius: 0;
  overflow: visible;
}
.ce-partner-links a {
  border: 0 !important;
}

@media (max-width: 820px) {
  .ce-partner-links a {
    border: 0 !important;
  }
}

/* =========================================================
   OPTION 1 — REFINEMENT PASS 1
   Hero legibility, search discovery, testimonial scale and
   current Chas news hierarchy.
   ========================================================= */

/* Opening-only top fade: darkens just the busy navigation zone. */
.hero-nav-gradient {
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  right: 0;
  height: clamp(130px, 17vh, 205px);
  background: linear-gradient(
    to bottom,
    rgba(3, 7, 12, .72) 0%,
    rgba(3, 7, 12, .46) 35%,
    rgba(3, 7, 12, .18) 68%,
    rgba(3, 7, 12, 0) 100%
  );
  opacity: 1;
  pointer-events: none;
  will-change: opacity;
}

/* New campaign statement: keep Concept 1 scale but give the longer line room. */
#hero-title {
  width: min(1040px, 72vw);
  font-size: clamp(52px, 5.1vw, 82px);
  line-height: .96;
  letter-spacing: -.052em;
}

.hero-property-cta {
  position: absolute;
  left: 0;
  bottom: clamp(92px, 11vh, 126px);
  min-height: 42px;
  padding: 0 17px;
  border: 0;
  border-radius: var(--ce-cta-radius);
  background: #E00034;
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  cursor: pointer;
  opacity: 1;
  transform: translate3d(0, 0, 0);
  transition: background .2s ease, transform .22s ease;
  will-change: opacity, transform;
}
.hero-property-cta:hover,
.hero-property-cta:focus-visible {
  background: #c9002f;
  transform: translate3d(0, -2px, 0);
}

/* The quote remains editorial, just less dominant and less tall. */
.testimonial-panel blockquote {
  max-width: 920px;
  font-size: clamp(34px, 3.55vw, 56px);
  line-height: 1.1;
}
.testimonial-layout {
  min-height: 620px;
}

/* Current Chas news-page hierarchy: one feature + two stacked stories. */
.ce-news-current {
  padding: clamp(82px, 7vw, 112px) 0 clamp(96px, 8vw, 132px);
  background: #fff;
}
.ce-news-current-inner {
  display: block;
  padding-top: 0;
}
.ce-news-current-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 30px;
  margin-bottom: clamp(28px, 3vw, 42px);
}
.ce-news-current-head h2 {
  margin: 0;
  color: #2C5697;
  font-size: clamp(38px, 4.25vw, 66px);
  line-height: .98;
  font-weight: 650;
  letter-spacing: -.045em;
}
.ce-news-current-head > a {
  margin-bottom: 7px;
  color: #182F58;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
  text-decoration: none;
  border-bottom: 1px solid rgba(24,47,88,.28);
  padding-bottom: 5px;
}
.ce-news-current-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(330px, .9fr);
  gap: 30px;
}
.ce-news-current-stack {
  display: grid;
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 30px;
}
.ce-news-current-card {
  position: relative;
  display: block;
  min-height: 252px;
  overflow: hidden;
  background: #182F58;
  color: #fff;
  text-decoration: none;
}
.ce-news-current-card--feature {
  min-height: 534px;
}
.ce-news-current-card img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform .55s cubic-bezier(.22,1,.36,1);
}
.ce-news-current-card:hover img,
.ce-news-current-card:focus-visible img {
  transform: scale(1.025);
}
.ce-news-current-overlay {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  min-height: 94px;
  display: grid;
  grid-template-columns: 72px minmax(0,1fr);
  background: rgba(24,47,88,.91);
}
.ce-news-current-date {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  background: #E00034;
  color: #fff;
}
.ce-news-current-date strong {
  font-size: 22px;
  line-height: 1;
  font-weight: 500;
}
.ce-news-current-date span {
  font-size: 11px;
  line-height: 1;
  letter-spacing: .04em;
}
.ce-news-current-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 7px;
  padding: 15px 18px;
}
.ce-news-current-category {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
}
.ce-news-current-copy h3 {
  margin: 0;
  color: #fff;
  font-size: clamp(15px, 1.22vw, 19px);
  line-height: 1.28;
  font-weight: 500;
  letter-spacing: -.02em;
}
.ce-news-current-card--feature .ce-news-current-copy h3 {
  font-size: clamp(17px, 1.4vw, 22px);
}

@media (max-width: 980px) {
  #hero-title {
    width: min(780px, 76vw);
    font-size: clamp(46px, 6.2vw, 70px);
  }
  .ce-news-current-grid {
    grid-template-columns: 1fr;
  }
  .ce-news-current-stack {
    grid-template-columns: repeat(2, minmax(0,1fr));
    grid-template-rows: none;
  }
  .ce-news-current-card--feature { min-height: 470px; }
}

@media (max-width: 720px) {
  .hero-nav-gradient { height: 130px; }
  #hero-title {
    width: calc(100% - 36px);
    font-size: clamp(40px, 11vw, 58px);
  }
  .hero-property-cta {
    left: 18px;
    bottom: 88px;
  }
  .testimonial-panel blockquote {
    font-size: clamp(30px, 8vw, 42px);
  }
  .testimonial-layout { min-height: 0; }
  .ce-news-current-head {
    align-items: flex-start;
    flex-direction: column;
    gap: 16px;
  }
  .ce-news-current-stack {
    grid-template-columns: 1fr;
  }
  .ce-news-current-card,
  .ce-news-current-card--feature {
    min-height: 330px;
  }
  .ce-news-current-overlay {
    grid-template-columns: 62px minmax(0,1fr);
    min-height: 90px;
  }
}

/* =========================================================
   OPTION 1 — REFINEMENT PASS 2
   News heading/copy, smaller testimonials, Luxury + Global bands.
   ========================================================= */

/* Keep the new Luxury video focused toward the lower-middle of the frame. */
.ce-sell-card-image--luxury {
  object-position: center 72%;
}

.ce-sell-card-image--international {
  object-position: center 56%;
}

/* Testimonials: deliberately quieter so long real client quotes don't dominate. */
.testimonial-panel blockquote {
  max-width: 880px;
  font-size: clamp(24px, 2.15vw, 34px);
  line-height: 1.18;
  letter-spacing: -.025em;
}

.testimonial-layout {
  min-height: 500px;
}

/* News: return the title to the site's established editorial heading language
   and restore the explanatory copy above the feature-story grid. */
.ce-news-current-head {
  align-items: start;
}

.ce-news-current-intro {
  display: grid;
  grid-template-columns: minmax(280px, .72fr) minmax(360px, 1fr);
  gap: clamp(36px, 5vw, 78px);
  align-items: end;
  width: min(100%, 980px);
}

.ce-news-current-head h2 {
  margin: 0;
  color: var(--ink);
  font-size: var(--ce-h2-size);
  line-height: var(--ce-h2-line);
  font-weight: var(--ce-h2-weight);
  letter-spacing: var(--ce-h2-track);
}

.ce-news-current-intro p {
  margin: 0 0 4px;
  max-width: 620px;
  color: var(--ce-body-colour);
  font-size: var(--ce-body-size);
  line-height: var(--ce-body-line);
}

.ce-news-current-head > a {
  margin-top: 10px;
  margin-bottom: 0;
}

@media (max-width: 980px) {
  .ce-news-current-intro {
    grid-template-columns: 1fr;
    gap: 18px;
    width: min(100%, 720px);
  }
}

@media (max-width: 720px) {
  .testimonial-panel blockquote {
    font-size: clamp(23px, 6.4vw, 31px);
  }

  .testimonial-layout {
    min-height: 0;
  }

  .ce-news-current-intro p {
    font-size: 15px;
  }
}

/* =========================================================
   OPTION 1 — REFINEMENT PASS 3
   Top-nav brand mark, news hierarchy/CTA and Luxury crop.
   ========================================================= */

/* Use the supplied Chas lockup as-is so the small red brand mark remains red. */
.site-header .site-wordmark img {
  filter: none;
}

/* News intro now follows the same two-column editorial rhythm as the rest
   of Concept 1: heading left, supporting copy/action right. */
.ce-news-current-head {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
  gap: clamp(52px, 7vw, 110px);
  align-items: end;
  margin-bottom: clamp(42px, 4.5vw, 68px);
}

.ce-news-current-head h2 {
  max-width: 760px;
}

.ce-news-current-support {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 22px;
  padding-bottom: 4px;
}

.ce-news-current-support p {
  margin: 0;
  max-width: 610px;
  color: var(--ce-body-colour);
  font-size: var(--ce-body-size);
  line-height: var(--ce-body-line);
}

/* Replace the one-off underlined news link with the site's standard Chas-red CTA. */
.ce-news-current-cta,
.ce-news-current-cta:hover,
.ce-news-current-cta:focus-visible {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-width: 158px;
  min-height: var(--ce-cta-height);
  margin: 0;
  padding: 0 22px;
  border: 1px solid var(--ce-red);
  border-radius: var(--ce-cta-radius);
  background: var(--ce-red);
  color: var(--white);
  font-size: var(--ce-cta-font);
  font-weight: 700;
  letter-spacing: var(--ce-cta-track);
  line-height: 1;
  text-transform: uppercase;
  text-decoration: none;
  transform: none !important;
}

.ce-news-current-cta:hover,
.ce-news-current-cta:focus-visible {
  background: #c9002f;
  border-color: #c9002f;
}

/* Shift the panoramic Luxury crop upward within the source frame so more
   horizon is visible and the bright pool reflection falls below the card. */
.ce-sell-card-image--luxury {
  object-position: center 34%;
}

@media (max-width: 980px) {
  .ce-news-current-head {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .ce-news-current-support {
    max-width: 720px;
  }
}

/* =========================================================
   OPTION 1 — REFINEMENT PASS 5
   Restore five selling/luxury bands, add news chapter rule,
   and tighten the space after testimonials.
   ========================================================= */

/* Testimonials keep the smaller quote scale, but the section now closes
   much sooner so there is no oversized blank gap before Join Chas. */
.testimonial-panel blockquote {
  max-width: 760px;
  font-size: clamp(18px, 1.65vw, 27px);
  line-height: 1.28;
  letter-spacing: -.02em;
}

.testimonial-layout {
  min-height: 300px;
}

.testimonials {
  padding-bottom: clamp(30px, 3vw, 46px);
}

.testimonials + .ce-career {
  padding-top: clamp(38px, 3.8vw, 58px);
}

/* News now gets the same quiet chapter-divider language used elsewhere. */
.ce-news-current-inner {
  border-top: 1px solid rgba(17, 18, 20, .16);
  padding-top: clamp(46px, 4.8vw, 68px);
}

.ce-news-current-head h2 {
  max-width: 10.5ch;
}

@media (max-width: 720px) {
  .testimonial-panel blockquote {
    font-size: clamp(18px, 5.2vw, 24px);
  }

  .testimonial-layout {
    min-height: 0;
  }

  .testimonials {
    padding-bottom: 28px;
  }

  .testimonials + .ce-career {
    padding-top: 42px;
  }

  .ce-news-current-inner {
    padding-top: 42px;
  }

  .ce-news-current-head h2 {
    max-width: 12ch;
  }
}

/* =========================================================
   OPTION 1 — REFINEMENT PASS 7
   News cards adopt the approved horizontal-card interaction.
   ========================================================= */

.ce-news-current-head h2 {
  max-width: 7.8ch;
}

/* Let the photography lead. The dark treatment is now a soft image gradient,
   not a permanent rectangular caption block. */
.ce-news-current-card {
  --news-pad: clamp(20px, 2.2vw, 34px);
  --news-rest-line: 116px;
  isolation: isolate;
  background: #182F58;
}

.ce-news-current-card::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(
    to bottom,
    rgba(10, 24, 47, 0) 42%,
    rgba(10, 24, 47, .18) 63%,
    rgba(10, 24, 47, .78) 100%
  );
  transition: background .52s cubic-bezier(.22,.61,.36,1);
}

.ce-news-current-overlay {
  position: absolute;
  z-index: 2;
  inset: 0;
  min-height: 0;
  display: block;
  background: transparent;
  pointer-events: none;
}

.ce-news-current-rule {
  position: absolute;
  left: var(--news-pad);
  right: var(--news-pad);
  top: calc(100% - var(--news-rest-line));
  height: 1px;
  background: rgba(255,255,255,.78);
  transition: top .58s cubic-bezier(.22,.61,.36,1);
  will-change: top;
}

.ce-news-current-copy {
  position: absolute;
  left: var(--news-pad);
  right: var(--news-pad);
  top: calc(100% - 92px);
  min-width: 0;
  display: block;
  padding: 0;
  transition: top .58s cubic-bezier(.22,.61,.36,1);
  will-change: top;
}

.ce-news-current-copy h3,
.ce-news-current-card--feature .ce-news-current-copy h3 {
  margin: 0;
  max-width: 34ch;
  color: #fff;
  font-size: clamp(18px, 1.38vw, 24px);
  line-height: 1.2;
  font-weight: 500;
  letter-spacing: -.025em;
}

.ce-news-current-card:not(.ce-news-current-card--feature) .ce-news-current-copy h3 {
  max-width: 30ch;
  font-size: clamp(16px, 1.12vw, 19px);
}

.ce-news-current-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  max-height: 0;
  margin-top: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(9px);
  transition:
    max-height .42s cubic-bezier(.22,.61,.36,1),
    margin-top .42s cubic-bezier(.22,.61,.36,1),
    opacity .25s ease,
    transform .42s cubic-bezier(.22,.61,.36,1);
}

.ce-news-current-date,
.ce-news-current-category {
  display: inline-block;
  background: transparent;
  color: rgba(255,255,255,.82);
  font-size: 9px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.ce-news-current-date {
  color: #fff;
}

.ce-news-current-date::after {
  content: "";
  display: inline-block;
  width: 18px;
  height: 1px;
  margin: 0 0 3px 12px;
  background: #E00034;
}

.ce-news-current-excerpt {
  max-width: 50ch;
  max-height: 0;
  margin: 0;
  overflow: hidden;
  color: rgba(255,255,255,.82);
  font-size: 13px;
  line-height: 1.5;
  opacity: 0;
  transform: translateY(9px);
  transition:
    max-height .42s cubic-bezier(.22,.61,.36,1),
    margin-top .42s cubic-bezier(.22,.61,.36,1),
    opacity .25s ease .05s,
    transform .42s cubic-bezier(.22,.61,.36,1);
}

@media (hover: hover) and (pointer: fine) {
  .ce-news-current-card:hover::after,
  .ce-news-current-card:focus-visible::after {
    background: linear-gradient(
      to bottom,
      rgba(10,24,47,.05) 18%,
      rgba(10,24,47,.22) 46%,
      rgba(10,24,47,.88) 100%
    );
  }

  .ce-news-current-card:hover .ce-news-current-rule,
  .ce-news-current-card:focus-visible .ce-news-current-rule {
    top: var(--news-pad);
  }

  .ce-news-current-card:hover .ce-news-current-copy,
  .ce-news-current-card:focus-visible .ce-news-current-copy {
    top: calc(var(--news-pad) + 24px);
  }

  .ce-news-current-card:hover .ce-news-current-meta,
  .ce-news-current-card:focus-visible .ce-news-current-meta {
    max-height: 30px;
    margin-top: 16px;
    opacity: 1;
    transform: translateY(0);
  }

  .ce-news-current-card:hover .ce-news-current-excerpt,
  .ce-news-current-card:focus-visible .ce-news-current-excerpt {
    max-height: 82px;
    margin-top: 10px;
    opacity: 1;
    transform: translateY(0);
  }
}

/* Touch has no hover, so the useful metadata stays visible. */
@media (hover: none), (pointer: coarse) {
  .ce-news-current-rule {
    top: var(--news-pad);
  }

  .ce-news-current-copy {
    top: calc(var(--news-pad) + 24px);
  }

  .ce-news-current-meta {
    max-height: 30px;
    margin-top: 14px;
    opacity: 1;
    transform: none;
  }

  .ce-news-current-excerpt {
    max-height: 90px;
    margin-top: 9px;
    opacity: 1;
    transform: none;
  }
}

@media (max-width: 720px) {
  .ce-news-current-head h2 {
    max-width: 8ch;
  }

  .ce-news-current-card {
    --news-pad: 20px;
  }

  .ce-news-current-copy h3,
  .ce-news-current-card--feature .ce-news-current-copy h3,
  .ce-news-current-card:not(.ce-news-current-card--feature) .ce-news-current-copy h3 {
    font-size: clamp(20px, 6vw, 28px);
  }
}

/* =========================================================
   OPTION 1 — REFINEMENT PASS 8
   Keep the feature-news hover reveal compact.
   ========================================================= */
@media (hover: hover) and (pointer: fine) {
  .ce-news-current-card--feature:hover .ce-news-current-rule,
  .ce-news-current-card--feature:focus-visible .ce-news-current-rule {
    top: calc(100% - 205px);
  }

  .ce-news-current-card--feature:hover .ce-news-current-copy,
  .ce-news-current-card--feature:focus-visible .ce-news-current-copy {
    top: calc(100% - 180px);
  }
}

/* =========================================================
   OPTION 1 — WHY CHAS FINAL CHAPTER
   Card six expands into a full-screen brand moment, followed
   immediately by the dark-blue property journey action index.
   ========================================================= */

/* The Why chapter now completes the selling-card sequence, so the parent
   no longer leaves its old large bottom pad before the next chapter. */
.ce-sell.ce-sell--with-why {
  padding-bottom: 0;
}

.ce-why-expand {
  --why-left: var(--gutter);
  --why-width: calc(100vw - (var(--gutter) * 2));
  --why-height: clamp(330px, 30vw, 430px);
  --why-radius: 4px;
  --why-card-opacity: 1;
  --why-copy-opacity: 0;
  --why-copy-y: 28px;
  --why-shade: .18;
  position: relative;
  z-index: 9;
  height: 182svh;
  min-height: 1260px;
  margin-top: clamp(34px, 4vw, 56px);
  background: var(--white);
}

.ce-why-expand__sticky {
  position: sticky;
  top: 0;
  width: 100%;
  height: 100svh;
  min-height: 620px;
  overflow: hidden;
}

.ce-why-expand__frame {
  position: absolute;
  left: var(--why-left);
  top: 0;
  width: var(--why-width);
  height: var(--why-height);
  overflow: hidden;
  border-radius: var(--why-radius);
  background: #182F58;
  color: var(--white);
  will-change: left, width, height, border-radius;
}

.ce-why-expand__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 46%;
  transform: scale(1.012);
  will-change: transform;
}

.ce-why-expand__shade {
  position: absolute;
  z-index: 1;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(7, 18, 36, calc(var(--why-shade) + .30)) 0%, rgba(7, 18, 36, var(--why-shade)) 54%, rgba(7, 18, 36, .07) 100%),
    linear-gradient(0deg, rgba(7, 18, 36, .36) 0%, rgba(7, 18, 36, 0) 48%);
  transition: opacity .2s linear;
}

/* At first this reads exactly like the sixth panoramic card. */
.ce-why-expand__card-label {
  position: absolute;
  z-index: 3;
  left: clamp(24px, 3vw, 48px);
  right: clamp(24px, 3vw, 48px);
  bottom: clamp(28px, 3vw, 42px);
  color: var(--white);
  font-size: clamp(34px, 3.2vw, 52px);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: -.035em;
  opacity: var(--why-card-opacity);
  pointer-events: none;
}

.ce-why-expand__card-rule {
  display: block;
  width: 100%;
  height: 1px;
  margin-bottom: 18px;
  background: rgba(255,255,255,.72);
}

/* Full-screen state: Concept 1 typography, no eyebrow. */
.ce-why-expand__content {
  position: absolute;
  z-index: 3;
  left: max(var(--gutter), calc((100vw - var(--max)) / 2));
  right: var(--gutter);
  bottom: clamp(54px, 7vh, 92px);
  max-width: 1040px;
  opacity: var(--why-copy-opacity);
  transform: translate3d(0, var(--why-copy-y), 0);
  pointer-events: none;
  will-change: opacity, transform;
}

.ce-why-expand__content h2 {
  margin: 0 0 clamp(28px, 3.4vw, 48px);
  max-width: 760px;
  color: var(--white);
  font-size: var(--ce-h2-size);
  font-weight: var(--ce-h2-weight);
  line-height: var(--ce-h2-line);
  letter-spacing: var(--ce-h2-track);
}

.ce-why-expand__copy {
  display: grid;
  grid-template-columns: minmax(220px, .9fr) minmax(280px, 1fr) minmax(280px, 1fr);
  gap: clamp(28px, 4vw, 58px);
  align-items: start;
  padding-top: clamp(24px, 2.6vw, 38px);
  border-top: 1px solid rgba(255,255,255,.54);
}

.ce-why-expand__copy p {
  margin: 0;
  max-width: 46ch;
  color: rgba(255,255,255,.78);
  font-size: var(--ce-body-size);
  line-height: var(--ce-body-line);
}

.ce-why-expand__copy .ce-why-expand__lead {
  max-width: 21ch;
  color: var(--white);
  font-weight: 600;
}

/* The action index sits directly against the released full-screen image. */
.ce-sell--with-why + .ce-paths {
  position: relative;
  z-index: 10;
  margin-top: 0;
}

.ce-paths {
  padding: 0;
  background: #182F58;
  color: var(--white);
}

.ce-paths-list {
  width: 100%;
  max-width: none;
  margin: 0;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
  border-top: 1px solid rgba(255,255,255,.20);
}

.ce-path-row {
  min-height: clamp(120px, 14.5vh, 150px);
  padding: clamp(22px, 2.6vh, 30px) 0;
  border-bottom: 1px solid rgba(255,255,255,.20);
  color: var(--white);
  transition: padding .32s cubic-bezier(.22,.61,.36,1), background-color .32s ease;
}

.ce-path-name {
  color: rgba(255,255,255,.58);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.ce-path-content h3 {
  color: var(--white);
  font-size: clamp(27px, 2.45vw, 38px);
  font-weight: 500;
}

.ce-path-content p {
  color: rgba(255,255,255,.66);
}

.ce-path-row:hover {
  padding-left: clamp(12px, 1.3vw, 20px);
  padding-right: clamp(12px, 1.3vw, 20px);
  background: rgba(255,255,255,.055);
  color: var(--white);
}

.ce-path-row:hover .ce-path-name,
.ce-path-row:hover .ce-path-content p {
  color: rgba(255,255,255,.78);
}

.ce-path-row .ce-path-content h3 {
  transition: transform .32s cubic-bezier(.22,.61,.36,1);
}

.ce-path-row:hover .ce-path-content h3 {
  transform: translate3d(8px, 0, 0);
}

@media (max-width: 980px) {
  .ce-why-expand__content {
    max-width: none;
  }

  .ce-why-expand__copy {
    grid-template-columns: 1fr 1fr;
  }

  .ce-why-expand__copy .ce-why-expand__lead {
    grid-column: 1 / -1;
  }
}

@media (max-width: 820px) {
  .ce-sell.ce-sell--with-why {
    padding-bottom: 0;
  }

  .ce-why-expand {
    height: auto;
    min-height: 0;
    margin-top: 34px;
    padding: 0 var(--gutter) 56px;
  }

  .ce-why-expand__sticky {
    position: relative;
    top: auto;
    height: auto;
    min-height: 0;
    overflow: visible;
  }

  .ce-why-expand__frame {
    position: relative;
    left: auto;
    top: auto;
    width: 100%;
    height: auto;
    min-height: 660px;
    border-radius: 4px;
  }

  .ce-why-expand__image {
    transform: none !important;
  }

  .ce-why-expand__card-label {
    display: none;
  }

  .ce-why-expand__content {
    position: absolute;
    left: 28px;
    right: 28px;
    bottom: 30px;
    opacity: 1;
    transform: none;
  }

  .ce-why-expand__content h2 {
    margin-bottom: 26px;
    font-size: clamp(42px, 10vw, 58px);
  }

  .ce-why-expand__copy {
    grid-template-columns: 1fr;
    gap: 12px;
    padding-top: 20px;
  }

  .ce-why-expand__copy .ce-why-expand__lead {
    grid-column: auto;
  }

  .ce-paths-list {
    padding-left: var(--gutter);
    padding-right: var(--gutter);
  }
}

@media (max-width: 560px) {
  .ce-why-expand__frame {
    min-height: 720px;
  }

  .ce-why-expand__content {
    left: 22px;
    right: 22px;
    bottom: 24px;
  }

  .ce-why-expand__content h2 {
    font-size: clamp(38px, 12vw, 50px);
  }

  .ce-why-expand__copy p {
    font-size: 12px;
    line-height: 1.5;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ce-why-expand {
    height: auto;
    min-height: 0;
    padding: 0 var(--gutter) 56px;
  }

  .ce-why-expand__sticky {
    position: relative;
    height: auto;
    min-height: 0;
  }

  .ce-why-expand__frame {
    position: relative;
    left: auto;
    width: 100%;
    height: min(82svh, 760px);
    border-radius: 4px;
  }

  .ce-why-expand__card-label { display: none; }
  .ce-why-expand__content { opacity: 1; transform: none; }
}


/* =========================================================
   OPTION 1 — WHY CHAS REFINEMENT
   Earlier card expansion + shared Why/action alignment +
   full-bleed, layout-stable action hover states.
   ========================================================= */
@media (min-width: 821px) {
  /* Use one shared editorial grid for the Why copy and the four actions. */
  .ce-why-expand__content {
    left: var(--gutter);
    right: var(--gutter);
    max-width: none;
  }

  .ce-why-expand__copy {
    grid-template-columns: minmax(220px, .9fr) minmax(280px, 1fr) minmax(280px, 1fr);
    gap: clamp(28px, 4vw, 58px);
  }

  .ce-paths-list {
    padding-left: var(--gutter);
    padding-right: var(--gutter);
  }

  .ce-path-row,
  .ce-path-row:hover,
  .ce-path-row:focus-within {
    position: relative;
    display: grid;
    grid-template-columns: minmax(220px, .9fr) minmax(280px, 1fr) minmax(180px, .62fr);
    gap: clamp(28px, 4vw, 58px);
    align-items: center;
    padding-left: 0;
    padding-right: 0;
    background: transparent;
  }

  /* The old left-hand Buy/Rent/etc. labels are intentionally removed. */
  .ce-path-name { display: none !important; }

  .ce-path-content {
    display: contents;
  }

  .ce-path-content h3,
  .ce-path-content p,
  .ce-path-link {
    position: relative;
    z-index: 1;
  }

  .ce-path-content h3 {
    grid-column: 1;
    margin: 0;
    transform: none !important;
  }

  .ce-path-content p {
    grid-column: 2;
    margin: 0;
    max-width: 58ch;
  }

  .ce-path-link,
  .ce-path-link:hover,
  .ce-path-link:focus-visible {
    grid-column: 3;
    justify-self: end;
    transform: none;
  }

  /* Full-viewport hover fill without changing padding, widths or line wraps. */
  .ce-path-row::before {
    content: "";
    position: absolute;
    z-index: 0;
    top: 0;
    bottom: -1px;
    left: 50%;
    width: 100vw;
    transform: translateX(-50%);
    background: rgba(255,255,255,0);
    pointer-events: none;
    transition: background-color .28s ease;
  }

  .ce-path-row:hover::before,
  .ce-path-row:focus-within::before {
    background: rgba(255,255,255,.07);
  }

  .ce-path-row:hover .ce-path-content h3,
  .ce-path-row:focus-within .ce-path-content h3 {
    transform: none !important;
  }

  .ce-path-row:hover .ce-path-content p,
  .ce-path-row:focus-within .ce-path-content p {
    color: rgba(255,255,255,.78);
  }
}

@media (max-width: 820px) {
  .ce-path-name { display: none !important; }
}


/* =========================================================
   OPTION 1 — WHY CHAS REFINEMENT 3
   One shared editorial grid across the full-screen Why story
   and property actions, plus a shorter sticky release.
   ========================================================= */
@media (min-width: 821px) {
  /* Match the Why copy columns exactly to the action rows below. */
  .ce-why-expand__copy {
    grid-template-columns: minmax(220px, .9fr) minmax(280px, 1fr) minmax(180px, .62fr);
    gap: clamp(28px, 4vw, 58px);
  }

  .ce-why-expand__copy .ce-why-expand__lead {
    grid-column: 1;
    max-width: none;
    font-size: var(--ce-body-size);
    line-height: var(--ce-body-line);
    font-weight: 600;
  }

  .ce-why-expand__copy > p:not(.ce-why-expand__lead) {
    grid-column: 2;
    max-width: none;
  }

  /* Carry the same typographic scale straight into the action index. */
  .ce-path-content h3 {
    font-size: var(--ce-body-size);
    line-height: var(--ce-body-line);
    font-weight: 600;
    letter-spacing: normal;
    max-width: 29ch;
  }
}

/* =========================================================
   OPTION 1 — AGENT CARD-TO-FULL-SCREEN CHAPTER
   The recruitment image begins as another panoramic card,
   expands into a full-screen human moment, then releases
   directly into the Chas partner strip.
   ========================================================= */

/* Lighter Chas blue for the Why Chas action index. */
.ce-paths {
  background: #2C5697;
}

/* Make the Why lead read deliberately across two lines. */
.ce-why-expand__copy .ce-why-expand__lead br {
  display: block;
}

.ce-career-expand {
  --career-left: var(--gutter);
  --career-width: calc(100vw - (var(--gutter) * 2));
  --career-height: clamp(330px, 30vw, 430px);
  --career-radius: 4px;
  --career-card-opacity: 1;
  --career-copy-opacity: 0;
  --career-copy-y: 28px;
  --career-shade: .14;
  --career-gap: clamp(58px, 6vw, 92px);
  position: relative;
  z-index: 9;
  height: calc(164svh + var(--career-gap));
  min-height: calc(1120px + var(--career-gap));
  margin-top: 0;
  padding-top: var(--career-gap);
  background: var(--white);
}

.ce-career-expand__sticky {
  position: sticky;
  top: 0;
  width: 100%;
  height: 100svh;
  min-height: 620px;
  overflow: hidden;
}

.ce-career-expand__frame {
  position: absolute;
  left: var(--career-left);
  top: 0;
  width: var(--career-width);
  height: var(--career-height);
  overflow: hidden;
  border-radius: var(--career-radius);
  background: #182F58;
  color: var(--white);
  will-change: left, width, height, border-radius;
}

.ce-career-expand__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 44%;
  transform: scale(1.012);
  will-change: transform;
}

.ce-career-expand__shade {
  position: absolute;
  z-index: 1;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(7,18,36,calc(var(--career-shade) + .30)) 0%, rgba(7,18,36,var(--career-shade)) 55%, rgba(7,18,36,.05) 100%),
    linear-gradient(0deg, rgba(7,18,36,.38) 0%, rgba(7,18,36,0) 52%);
  pointer-events: none;
}

/* Initial state reads as a normal Concept 1 panoramic card. */
.ce-career-expand__card-label {
  position: absolute;
  z-index: 3;
  left: clamp(24px, 3vw, 48px);
  right: clamp(24px, 3vw, 48px);
  bottom: clamp(28px, 3vw, 42px);
  color: var(--white);
  font-size: clamp(34px, 3.2vw, 52px);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: -.035em;
  opacity: var(--career-card-opacity);
  pointer-events: none;
}

.ce-career-expand__card-rule {
  display: block;
  width: 100%;
  height: 1px;
  margin-bottom: 18px;
  background: rgba(255,255,255,.72);
}

.ce-career-expand__content {
  position: absolute;
  z-index: 3;
  left: var(--gutter);
  right: var(--gutter);
  bottom: clamp(54px, 7vh, 92px);
  opacity: var(--career-copy-opacity);
  transform: translate3d(0, var(--career-copy-y), 0);
  pointer-events: none;
  will-change: opacity, transform;
}

.ce-career-expand__content h2 {
  max-width: 760px;
  margin: 0 0 clamp(28px, 3.4vw, 48px);
  color: var(--white);
  font-size: var(--ce-h2-size);
  font-weight: var(--ce-h2-weight);
  line-height: var(--ce-h2-line);
  letter-spacing: var(--ce-h2-track);
}

.ce-career-expand__copy {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(180px, .62fr);
  gap: clamp(28px, 4vw, 58px);
  align-items: end;
  padding-top: clamp(24px, 2.6vw, 38px);
  border-top: 1px solid rgba(255,255,255,.54);
}

.ce-career-expand__copy p {
  max-width: 78ch;
  margin: 0;
  color: rgba(255,255,255,.80);
  font-size: var(--ce-body-size);
  line-height: var(--ce-body-line);
}

.ce-career-expand__cta,
.ce-career-expand__cta:hover,
.ce-career-expand__cta:focus-visible {
  justify-self: end;
  min-width: 190px;
  min-height: 50px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 22px;
  border: 1px solid var(--ce-red);
  border-radius: var(--ce-cta-radius);
  background: var(--ce-red);
  color: var(--white);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .15em;
  line-height: 1;
  text-transform: uppercase;
  pointer-events: auto;
  transition: background .22s ease, border-color .22s ease;
}

.ce-career-expand__cta:hover,
.ce-career-expand__cta:focus-visible {
  background: #c9002f;
  border-color: #c9002f;
}

/* Keep the full-screen Why Chas and recruitment copy clear of the fixed
   bottom navigation dock on desktop. */
@media (min-width: 821px) {
  .ce-why-expand__content,
  .ce-career-expand__content {
    bottom: clamp(122px, 13vh, 152px);
  }
}

/* Partners attach directly to the released full-screen agent image. */
.ce-career-expand + .ce-partners {
  position: relative;
  z-index: 10;
  margin-top: 0;
}

@media (max-width: 820px) {
  .ce-career-expand {
    height: auto;
    min-height: 0;
    margin-top: 0;
    padding: 48px var(--gutter) 0;
  }

  .ce-career-expand__sticky {
    position: relative;
    top: auto;
    height: auto;
    min-height: 0;
    overflow: visible;
  }

  .ce-career-expand__frame {
    position: relative;
    left: auto;
    top: auto;
    width: 100%;
    height: auto;
    min-height: 680px;
    border-radius: 4px;
  }

  .ce-career-expand__image {
    transform: none !important;
  }

  .ce-career-expand__card-label {
    display: none;
  }

  .ce-career-expand__content {
    position: absolute;
    left: 28px;
    right: 28px;
    bottom: 30px;
    opacity: 1;
    transform: none;
  }

  .ce-career-expand__content h2 {
    margin-bottom: 26px;
    font-size: clamp(42px, 10vw, 58px);
  }

  .ce-career-expand__copy {
    grid-template-columns: 1fr;
    gap: 20px;
    padding-top: 20px;
  }

  .ce-career-expand__cta {
    justify-self: start;
  }
}

@media (max-width: 560px) {
  .ce-career-expand__frame {
    min-height: 730px;
  }

  .ce-career-expand__content {
    left: 22px;
    right: 22px;
    bottom: 24px;
  }

  .ce-career-expand__content h2 {
    font-size: clamp(38px, 12vw, 50px);
  }

  .ce-career-expand__copy p {
    font-size: 12px;
    line-height: 1.5;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ce-career-expand {
    height: auto;
    min-height: 0;
    padding: 0 var(--gutter) 0;
  }

  .ce-career-expand__sticky {
    position: relative;
    height: auto;
    min-height: 0;
  }

  .ce-career-expand__frame {
    position: relative;
    left: auto;
    width: 100%;
    height: min(82svh, 760px);
    border-radius: 4px;
  }

  .ce-career-expand__card-label { display: none; }
  .ce-career-expand__content { opacity: 1; transform: none; }
}

/* =========================================================
   OPTION 1 — NEWS IMAGE GRID ALIGNMENT
   Align the right edge of the large feature image more closely
   with the start of the supporting-copy column above.
   ========================================================= */
@media (min-width: 981px) {
  .ce-news-current-grid {
    grid-template-columns: minmax(0, 1.42fr) minmax(330px, .92fr);
    gap: clamp(52px, 7vw, 110px);
  }
}


/* =========================================================
   OPTION 1 — FINAL NEWS GRID ALIGNMENT
   Keep the spacing between the feature story and the right-hand
   stack equal to the spacing between the two smaller stories.
   ========================================================= */
@media (min-width: 981px) {
  .ce-news-current-grid {
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
    gap: 30px;
  }

  .ce-news-current-stack {
    gap: 30px;
  }
}

/* =========================================================
   OPTION 1 — NEWS GRID / INTRO ALIGNMENT CORRECTION
   Use the exact same two-column geometry for the intro and the
   article grid so the supporting copy begins at the left edge of
   the right-hand story column. Keep all story gaps equal.
   ========================================================= */
@media (min-width: 981px) {
  .ce-news-current-head,
  .ce-news-current-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.56fr) minmax(0, 1fr);
    column-gap: 30px;
  }

  .ce-news-current-head {
    align-items: end;
  }

  .ce-news-current-head h2 {
    grid-column: 1;
    align-self: end;
  }

  .ce-news-current-support {
    grid-column: 2;
    width: 100%;
    max-width: none;
    padding-bottom: 0;
    align-self: end;
  }

  .ce-news-current-support p {
    width: 100%;
    max-width: 610px;
  }

  .ce-news-current-grid {
    gap: 30px;
  }

  .ce-news-current-stack {
    gap: 30px;
  }
}


/* =========================================================
   OPTION 1 — FINAL WHY CHAS COMPOSITOR STABILITY
   Keep the Why visual at a fixed viewport size and reveal it via clip-path.
   This removes large per-frame width/height repaints that could flash while
   the sixth card expands.
   ========================================================= */
@media (min-width: 821px) and (prefers-reduced-motion: no-preference) {
  .ce-why-expand {
    --why-clip-left: var(--gutter);
    --why-clip-right: var(--gutter);
    --why-clip-bottom: calc(100svh - clamp(330px, 30vw, 430px));
    --why-image-y: -120px;
  }

  .ce-why-expand__frame {
    left: 0 !important;
    top: 0;
    width: 100vw !important;
    height: 100svh !important;
    min-height: 620px;
    border-radius: 0 !important;
    background: #111820;
    clip-path: inset(0 var(--why-clip-right) var(--why-clip-bottom) var(--why-clip-left) round var(--why-radius));
    -webkit-clip-path: inset(0 var(--why-clip-right) var(--why-clip-bottom) var(--why-clip-left) round var(--why-radius));
    will-change: clip-path;
    contain: layout paint;
    isolation: isolate;
  }

  .ce-why-expand__image {
    width: 100%;
    height: 100%;
    transform: translate3d(0, var(--why-image-y), 0) scale(1.018) !important;
    transform-origin: center center;
    will-change: transform;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
  }

  .ce-why-expand__shade {
    will-change: opacity;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
  }

  .ce-why-expand__card-label {
    left: calc(var(--why-clip-left) + clamp(24px, 3vw, 48px));
    right: calc(var(--why-clip-right) + clamp(24px, 3vw, 48px));
    bottom: calc(var(--why-clip-bottom) + clamp(28px, 3vw, 42px));
  }
}

/* Preserve the additional white breathing room before testimonials without
   exposing the fixed footer beneath the page. */
.ce-paths + .testimonials {
  padding-top: calc(var(--ce-section-space) + clamp(34px, 3.2vw, 52px));
  background: #fff;
}

@media (max-width: 820px) {
  .ce-paths + .testimonials {
    padding-top: 78px;
  }
}

/* The footer now uses the same approved white Chas mark with its red corner
   detail as the initial top navigation. Do not monochrome-filter the SVG. */
.footer-logo img {
  filter: none !important;
}


/* =========================================================
   CONCEPT 1 - EDITORIAL TESTIMONIAL GALLERY V2
   Keeps the section light and architectural, but borrows the
   stronger quote hierarchy from Concept 2. A single navy feature
   card anchors each group while two quieter client cards sit
   alongside it, so this remains visibly different from Concept 2.
   ========================================================= */
.testimonials {
  overflow: hidden;
  background: #f5f7fa;
  padding: clamp(72px, 6.5vw, 104px) 0 clamp(132px, 10vw, 164px);
}

.ce-paths + .testimonials {
  padding-top: clamp(72px, 6.5vw, 104px);
}

.ce-testimonial-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 36px;
  align-items: end;
  margin-bottom: clamp(34px, 3.5vw, 52px);
}

.testimonial-heading {
  margin: 0;
  max-width: 700px;
  color: var(--ce-dark);
  font-size: clamp(48px, 4.1vw, 64px);
  font-weight: 400;
  line-height: .98;
  letter-spacing: -.047em;
}

.ce-testimonial-nav-wrap {
  display: flex;
  gap: 18px;
  align-items: center;
  padding-bottom: 4px;
}

.ce-testimonial-page-count {
  min-width: 48px;
  color: #7c8797;
  font-size: 10px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .13em;
}

.ce-testimonial-controls {
  display: flex;
  gap: 8px;
  align-items: center;
}

.ce-testimonial-controls button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid rgba(24, 47, 88, .2);
  border-radius: var(--ce-cta-radius);
  background: rgba(255, 255, 255, .72);
  color: var(--ce-dark);
  font-size: 19px;
  line-height: 1;
  cursor: pointer;
  transition: background .22s ease, border-color .22s ease, color .22s ease, opacity .22s ease;
}

.ce-testimonial-controls button:hover,
.ce-testimonial-controls button:focus-visible {
  border-color: var(--ce-dark);
  background: var(--ce-dark);
  color: var(--white);
}

.ce-testimonial-controls button:disabled {
  opacity: .28;
  cursor: default;
  pointer-events: none;
}

.ce-testimonial-viewport {
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-inline: contain;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.ce-testimonial-viewport::-webkit-scrollbar {
  display: none;
}

.ce-testimonial-track {
  display: flex;
  width: 100%;
}

.ce-testimonial-page {
  display: grid;
  flex: 0 0 100%;
  grid-template-columns: minmax(0, 1.18fr) minmax(350px, .82fr);
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 14px;
  min-width: 0;
  min-height: clamp(450px, 35vw, 520px);
  scroll-snap-align: start;
  scroll-snap-stop: always;
}

.ce-testimonial-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  padding: clamp(26px, 2.3vw, 36px);
  border: 1px solid rgba(24, 47, 88, .11);
  border-radius: var(--ce-cta-radius);
  background: var(--white);
  color: var(--ce-dark);
  transition: transform .28s cubic-bezier(.22, 1, .36, 1), border-color .22s ease, box-shadow .28s ease;
}

.ce-testimonial-card:hover {
  transform: translateY(-2px);
  border-color: rgba(24, 47, 88, .2);
  box-shadow: 0 14px 34px rgba(24, 47, 88, .055);
}

.ce-testimonial-card--feature {
  grid-row: 1 / 3;
  padding: clamp(34px, 3.4vw, 52px);
  border-color: var(--ce-dark);
  background: var(--ce-dark);
  color: var(--white);
}

.ce-testimonial-card--soft {
  background: #e9eff7;
}

.ce-testimonial-card--compact {
  padding: clamp(24px, 1.85vw, 30px);
}

.ce-testimonial-card-top {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: flex-start;
  margin-bottom: auto;
}

.ce-testimonial-type {
  color: #718096;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.ce-testimonial-card--feature .ce-testimonial-type {
  color: rgba(255, 255, 255, .62);
}

.ce-testimonial-quote {
  display: block;
  height: auto;
  margin: -5px 1px 0 0;
  color: var(--ce-red);
  font-size: 42px;
  font-weight: 300;
  line-height: .78;
  letter-spacing: -.09em;
}

.ce-testimonial-card--feature .ce-testimonial-quote {
  color: var(--ce-red);
}

.ce-testimonial-card blockquote {
  margin: clamp(26px, 2.2vw, 34px) 0 0;
  max-width: none;
  color: inherit;
  font-size: clamp(17px, 1.15vw, 19px);
  font-weight: 400;
  line-height: 1.42;
  letter-spacing: -.025em;
}

.ce-testimonial-card--feature blockquote {
  max-width: 21ch;
  margin-top: clamp(34px, 4.4vw, 68px);
  font-size: clamp(29px, 2.35vw, 38px);
  line-height: 1.18;
  letter-spacing: -.036em;
}

.ce-testimonial-meta {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin-top: auto;
  padding-top: clamp(24px, 2.2vw, 34px);
}

.ce-testimonial-card--compact .ce-testimonial-meta {
  border-top: 1px solid rgba(24, 47, 88, .13);
}

.ce-testimonial-card--feature .ce-testimonial-meta {
  border-top: 1px solid rgba(255, 255, 255, .2);
}

.ce-testimonial-meta strong {
  color: inherit;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -.01em;
}

.ce-testimonial-meta span {
  color: #788290;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.ce-testimonial-card--feature .ce-testimonial-meta span {
  color: rgba(255, 255, 255, .62);
}

@media (max-width: 1100px) {
  .ce-testimonial-page {
    grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr);
    min-height: 500px;
  }

  .ce-testimonial-card--feature blockquote {
    font-size: clamp(27px, 3vw, 34px);
  }

  .ce-testimonial-card blockquote {
    font-size: 18px;
  }
}

@media (max-width: 900px) {
  .ce-testimonial-page {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto;
    min-height: 0;
  }

  .ce-testimonial-card--feature {
    grid-column: 1 / -1;
    grid-row: auto;
    min-height: 390px;
  }

  .ce-testimonial-card--compact {
    min-height: 330px;
  }
}

@media (max-width: 720px) {
  .testimonials,
  .ce-paths + .testimonials {
    padding-top: 64px;
    padding-bottom: 118px;
  }

  .ce-testimonial-header {
    grid-template-columns: 1fr;
    gap: 24px;
    margin-bottom: 30px;
  }

  .testimonial-heading {
    font-size: clamp(40px, 11vw, 52px);
  }

  .ce-testimonial-nav-wrap {
    justify-content: space-between;
    padding-bottom: 0;
  }

  .ce-testimonial-page-count {
    display: none;
  }

  .ce-testimonial-track {
    width: max-content;
    gap: 12px;
  }

  .ce-testimonial-page {
    display: contents;
  }

  .ce-testimonial-card,
  .ce-testimonial-card--feature,
  .ce-testimonial-card--compact {
    flex: 0 0 min(82vw, 340px);
    min-height: 390px;
    padding: 28px;
    scroll-snap-align: start;
  }

  .ce-testimonial-card--feature {
    min-height: 390px;
  }

  .ce-testimonial-card--feature blockquote,
  .ce-testimonial-card blockquote {
    max-width: none;
    margin-top: 30px;
    font-size: 20px;
    line-height: 1.36;
    letter-spacing: -.025em;
  }

  .ce-testimonial-quote {
    font-size: 38px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ce-testimonial-viewport {
    scroll-behavior: auto;
  }

  .ce-testimonial-card {
    transition: none;
  }
}

/* =========================================================
   CONCEPT 1 - TESTIMONIAL REFINEMENT V3
   More compact vertical rhythm, selective client imagery and
   explicit Previous / Next states. Only the available action is red.
   ========================================================= */
.testimonials {
  padding-top: clamp(54px, 4.7vw, 74px);
  padding-bottom: clamp(76px, 6.3vw, 96px);
}

.ce-paths + .testimonials {
  padding-top: clamp(54px, 4.7vw, 74px);
}

.ce-testimonial-header {
  margin-bottom: clamp(24px, 2.5vw, 34px);
}

.testimonial-heading {
  max-width: 620px;
  font-size: clamp(46px, 3.8vw, 60px);
}

.ce-testimonial-nav-wrap {
  gap: 14px;
}

.ce-testimonial-controls {
  gap: 7px;
}

.ce-testimonial-controls button {
  width: auto;
  height: 34px;
  min-width: 78px;
  gap: 7px;
  padding: 0 12px;
  border-color: var(--ce-red);
  border-radius: var(--ce-cta-radius);
  background: var(--ce-red);
  color: var(--white);
  font-size: 9px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.ce-testimonial-controls button:hover,
.ce-testimonial-controls button:focus-visible {
  border-color: #c9002f;
  background: #c9002f;
  color: var(--white);
}

.ce-testimonial-controls button:disabled {
  border-color: rgba(24, 47, 88, .15);
  background: rgba(255, 255, 255, .66);
  color: #98a1ae;
  opacity: 1;
  cursor: default;
  pointer-events: none;
}

.ce-testimonial-page {
  min-height: clamp(390px, 30vw, 450px);
  gap: 12px;
}

.ce-testimonial-card {
  position: relative;
  overflow: hidden;
  padding: clamp(22px, 1.9vw, 30px);
}

.ce-testimonial-card--feature {
  padding: clamp(28px, 2.8vw, 42px);
}

.ce-testimonial-card--compact {
  padding: clamp(20px, 1.55vw, 26px);
}

.ce-testimonial-card--feature .ce-testimonial-card-top,
.ce-testimonial-card--feature blockquote,
.ce-testimonial-card--feature .ce-testimonial-meta {
  position: relative;
  z-index: 2;
  width: 58%;
}

.ce-testimonial-card--feature blockquote {
  max-width: 18ch;
  margin-top: clamp(26px, 3.2vw, 46px);
  font-size: clamp(26px, 2.05vw, 34px);
  line-height: 1.18;
}

.ce-testimonial-card blockquote {
  margin-top: clamp(18px, 1.7vw, 26px);
  font-size: clamp(15px, 1.03vw, 17px);
  line-height: 1.4;
}

.ce-testimonial-meta {
  padding-top: clamp(18px, 1.6vw, 24px);
}

.ce-testimonial-feature-image {
  position: absolute;
  z-index: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: 39%;
  overflow: hidden;
}

.ce-testimonial-feature-image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, var(--ce-dark) 0%, rgba(24, 47, 88, .72) 18%, rgba(24, 47, 88, .12) 62%, rgba(24, 47, 88, .08) 100%);
  pointer-events: none;
}

.ce-testimonial-feature-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: scale(1.015);
}

.ce-testimonial-meta--with-image {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
}

.ce-testimonial-client-thumb {
  width: 52px;
  height: 42px;
  object-fit: cover;
  border-radius: 3px;
}

.ce-testimonial-meta-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 4px;
}

.ce-testimonial-meta-copy strong,
.ce-testimonial-meta-copy span {
  display: block;
}

/* Bring the recruitment zoom chapter closer to testimonials. */
.ce-career-expand {
  --career-gap: clamp(26px, 3vw, 44px);
}

@media (max-width: 1100px) {
  .ce-testimonial-page {
    min-height: 420px;
  }

  .ce-testimonial-card--feature .ce-testimonial-card-top,
  .ce-testimonial-card--feature blockquote,
  .ce-testimonial-card--feature .ce-testimonial-meta {
    width: 62%;
  }

  .ce-testimonial-feature-image {
    width: 35%;
  }
}

@media (max-width: 900px) {
  .ce-testimonial-card--feature .ce-testimonial-card-top,
  .ce-testimonial-card--feature blockquote,
  .ce-testimonial-card--feature .ce-testimonial-meta {
    width: 60%;
  }

  .ce-testimonial-feature-image {
    width: 38%;
  }
}

@media (max-width: 720px) {
  .testimonials,
  .ce-paths + .testimonials {
    padding-top: 56px;
    padding-bottom: 88px;
  }

  .ce-testimonial-header {
    gap: 20px;
    margin-bottom: 24px;
  }

  .ce-testimonial-controls button {
    height: 34px;
    min-width: 76px;
    padding-inline: 11px;
  }

  .ce-testimonial-card,
  .ce-testimonial-card--feature,
  .ce-testimonial-card--compact {
    min-height: 360px;
  }

  .ce-testimonial-card--feature .ce-testimonial-card-top,
  .ce-testimonial-card--feature blockquote,
  .ce-testimonial-card--feature .ce-testimonial-meta {
    width: 100%;
  }

  .ce-testimonial-feature-image {
    top: auto;
    left: 0;
    right: 0;
    width: 100%;
    height: 38%;
    opacity: .34;
  }

  .ce-testimonial-feature-image::after {
    background: linear-gradient(0deg, rgba(24, 47, 88, .12) 0%, var(--ce-dark) 100%);
  }

  .ce-testimonial-card--feature blockquote,
  .ce-testimonial-card blockquote {
    margin-top: 24px;
    font-size: 19px;
  }

  .ce-career-expand {
    padding-top: 28px;
  }
}

/* =========================================================
   CONCEPT 1 - TESTIMONIAL REFINEMENT V4
   Feature testimonial uses the brighter Chas blue with larger
   typography; supporting cards stay white. Hover keeps borders intact.
   ========================================================= */
.ce-testimonial-card--feature {
  border-color: var(--ce-blue);
  background: var(--ce-blue);
}

.ce-testimonial-card--feature .ce-testimonial-card-top,
.ce-testimonial-card--feature blockquote,
.ce-testimonial-card--feature .ce-testimonial-meta {
  width: 100%;
}

.ce-testimonial-card--feature blockquote {
  max-width: 23ch;
  margin-top: clamp(34px, 4.2vw, 60px);
  font-size: clamp(34px, 2.8vw, 46px);
  line-height: 1.13;
  letter-spacing: -.04em;
}

.ce-testimonial-card--compact,
.ce-testimonial-card--soft {
  background: var(--white);
}

/* Keep the top card border visible instead of translating it outside
   the clipped carousel viewport on hover. */
.ce-testimonial-card:hover {
  transform: none;
  border-color: rgba(24, 47, 88, .2);
  box-shadow: 0 10px 28px rgba(24, 47, 88, .055);
}

.ce-testimonial-card--feature:hover {
  border-color: var(--ce-blue);
}

@media (max-width: 1100px) {
  .ce-testimonial-card--feature .ce-testimonial-card-top,
  .ce-testimonial-card--feature blockquote,
  .ce-testimonial-card--feature .ce-testimonial-meta {
    width: 100%;
  }

  .ce-testimonial-card--feature blockquote {
    max-width: 22ch;
    font-size: clamp(31px, 3.4vw, 40px);
  }
}

@media (max-width: 900px) {
  .ce-testimonial-card--feature .ce-testimonial-card-top,
  .ce-testimonial-card--feature blockquote,
  .ce-testimonial-card--feature .ce-testimonial-meta {
    width: 100%;
  }
}

@media (max-width: 720px) {
  .ce-testimonial-card--feature blockquote,
  .ce-testimonial-card blockquote {
    margin-top: 24px;
  }

  .ce-testimonial-card--feature blockquote {
    max-width: none;
    font-size: 24px;
    line-height: 1.28;
    letter-spacing: -.03em;
  }
}

/* =========================================================
   CONCEPT 1 - TESTIMONIAL SPACING REFINEMENT V5
   Give testimonials a clearer break from the section above,
   then let the agent image begin almost immediately after the cards.
   ========================================================= */
.testimonials,
.ce-paths + .testimonials {
  padding-top: clamp(112px, 9vw, 148px);
  padding-bottom: clamp(12px, 1.25vw, 20px);
}

.ce-career-expand {
  --career-gap: clamp(4px, .65vw, 10px);
}

@media (max-width: 900px) {
  .testimonials,
  .ce-paths + .testimonials {
    padding-top: 92px;
    padding-bottom: 14px;
  }

  .ce-career-expand {
    --career-gap: 6px;
  }
}

@media (max-width: 720px) {
  .testimonials,
  .ce-paths + .testimonials {
    padding-top: 78px;
    padding-bottom: 12px;
  }

  .ce-career-expand {
    --career-gap: 4px;
    padding-top: var(--career-gap);
  }
}

/* =========================================================
   CONCEPT 1 - INTERACTION STABILITY V7
   Keep award and contact CTAs dimensionally stable on hover.
   ========================================================= */
.ce-accolade-list a,
.ce-accolade-list a:hover,
.ce-accolade-list a:focus-visible {
  box-sizing: border-box;
  flex: 0 0 146px;
  width: 146px;
  min-width: 146px;
  max-width: 146px;
  height: var(--ce-cta-height);
  min-height: var(--ce-cta-height);
  padding: 0 18px !important;
  white-space: nowrap;
  transform: none !important;
}

.ce-contact-submit,
.ce-contact-submit:hover,
.ce-contact-submit:focus-visible {
  box-sizing: border-box;
  height: var(--ce-cta-height);
  min-height: var(--ce-cta-height);
  padding: 0 22px !important;
  border-width: 1px;
  line-height: 1;
  transform: none !important;
}

/* =========================================================
   CONCEPT 1 - TESTIMONIAL COLOUR COMPOSITION V9
   Page 1: blue feature + white supports.
   Page 2: white feature + white upper support + blue lower support.
   ========================================================= */
.ce-testimonial-page:nth-child(2) .ce-testimonial-card--feature {
  border-color: rgba(24, 47, 88, .14);
  background: var(--white);
  color: var(--ce-dark);
}

.ce-testimonial-page:nth-child(2) .ce-testimonial-card--feature .ce-testimonial-type,
.ce-testimonial-page:nth-child(2) .ce-testimonial-card--feature .ce-testimonial-meta span {
  color: #718096;
}

.ce-testimonial-page:nth-child(2) .ce-testimonial-card--feature .ce-testimonial-meta {
  border-top-color: rgba(24, 47, 88, .13);
}

.ce-testimonial-page:nth-child(2) .ce-testimonial-card--feature:hover {
  border-color: rgba(24, 47, 88, .2);
}

.ce-testimonial-page:nth-child(2) .ce-testimonial-card:nth-child(3) {
  border-color: var(--ce-blue);
  background: var(--ce-blue);
  color: var(--white);
}

.ce-testimonial-page:nth-child(2) .ce-testimonial-card:nth-child(3) .ce-testimonial-type,
.ce-testimonial-page:nth-child(2) .ce-testimonial-card:nth-child(3) .ce-testimonial-meta span {
  color: rgba(255, 255, 255, .68);
}

.ce-testimonial-page:nth-child(2) .ce-testimonial-card:nth-child(3) .ce-testimonial-meta {
  border-top-color: rgba(255, 255, 255, .22);
}

.ce-testimonial-page:nth-child(2) .ce-testimonial-card:nth-child(3):hover {
  border-color: var(--ce-blue);
}
