/* Shared typography, photography and navigation across all pages. */
.dew-review{background:#806047}
.dew-review:before,.dew-review:after{display:none}
.editorial-hero + .services-section {
  padding-top: var(--section-space);
  padding-bottom: var(--section-space);
}
.institute-introduction {
  grid-template-columns: 44% 34% 22%;
  margin-top: 0;
}
.institute-introduction .institute-copy {
  padding-inline: clamp(28px, 4vw, 64px);
}
.institute-introduction h2 {
  font-size: clamp(38px, 3.5vw, 60px);
}
.institute-introduction .founder-detail {
  padding-right: 24px;
  align-self: center;
}
.institute-introduction .founder-detail .photo-frame {
  height: clamp(250px, 25vw, 370px);
}
.institute-introduction .founder-detail img {
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: cover;
  object-position: 50% center;
}
.institute-introduction .editorial-note {
  padding: 20px 0 0;
  font-size: 24px;
}
@media (min-width: 701px) and (max-width: 900px) {
  .institute-introduction { grid-template-columns: 44% 56%; }
  .institute-introduction .institute-main { grid-row: 1 / 3; }
  .institute-introduction .institute-copy { padding-block: 36px 24px; }
  .institute-introduction .founder-detail { display: flex; align-items: center; gap: 20px; padding: 0 28px 36px; }
  .institute-introduction .founder-detail .photo-frame { width: 120px; height: 150px; flex: none; }
  .institute-introduction .editorial-note { padding: 0; font-size: 22px; }
}
@media (max-width: 700px) {
  .institute-introduction .institute-copy { padding: 36px var(--gutter) 28px; }
  .institute-introduction .founder-detail { display: flex; align-items: center; align-self: stretch; gap: 24px; padding: 0 var(--gutter) 44px; }
  .institute-introduction .founder-detail .photo-frame { width: 130px; height: 155px; flex: none; }
  .institute-introduction .editorial-note { padding: 0; font-size: 23px; }
  .institute-introduction h2 { font-size: 46px; }
}
:root {
  --reading-width: 58ch;
  --section-space: clamp(64px, 7vw, 112px);
}
.main-nav a {
  font-size: 11px;
}
.outline-link,
.text-link {
  font-size: 11px;
  letter-spacing: 0.09em;
}
.editorial-footer nav a,
.footer-bottom {
  font-size: 10px;
}
.section-label:before {
  content: none;
}
.hero-description,
.section-intro > p,
.institute-copy > p:not(.eyebrow),
.founder-columns p {
  font-size: 16px;
}
.services-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 30px;
}
.service .photo-frame {
  aspect-ratio: 1.2;
}
.service-copy {
  min-height: 190px;
}
.service ul {
  font-size: 15px;
}
.editorial-home:before {
  opacity: 0.17;
}
.supporting-note {
  font-size: 13px;
  line-height: 1.7;
}
.home-training {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: clamp(40px, 8vw, 120px);
  align-items: center;
  padding-block: var(--section-space);
}
.training-image {
  aspect-ratio: 0.95;
}
.training-copy h2 {
  margin: 24px 0;
}
.training-copy > p:not(.eyebrow) {
  max-width: var(--reading-width);
}
.training-topics {
  list-style: none;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 24px;
  padding: 0;
  margin: 26px 0 32px;
}
.training-topics li {
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
  font-size: 14px;
}
.training-copy .supporting-note {
  margin-top: 16px;
}
.home-visit {
  display: grid;
  grid-template-columns: 1.3fr 1fr 1fr;
  gap: 48px;
  padding-block: var(--section-space);
}
.home-visit h2 {
  font-size: clamp(38px, 3.5vw, 56px);
  margin-top: 24px;
}
.home-visit h3 {
  font: 600 12px/1.5 var(--sans);
  letter-spacing: 0.12em;
  margin: 0 0 24px;
}
address {
  font-style: normal;
  color: var(--muted);
}
.home-visit .text-link {
  margin-top: 16px;
}
.home-visit .supporting-note {
  margin-top: 14px;
}
.review-reference {
  grid-column: 1/-1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  border-top: 1px solid var(--line);
  padding-top: 30px;
}
.review-reference p:not(.eyebrow) {
  font-size: 14px;
}
.editorial-footer {
  border-top: 1px solid var(--line);
}
.quick-book {
  display: none;
}
summary:focus-visible {
  outline: 2px solid var(--brown);
  outline-offset: 6px;
}

/* Inner pages use the homepage shell, with an opaque navigation background. */
.interior-page {
  background: var(--cream);
}
.interior-page .editorial-header {
  position: relative;
  border-bottom: 1px solid var(--line);
}
.interior-page .main-nav {
  margin-left: 0;
}
.interior-page .container {
  width: calc(100% - 2 * var(--gutter));
  max-width: 1440px;
  margin-inline: auto;
}
.interior-page .section {
  padding-block: var(--section-space);
}
.interior-page .kicker {
  display: block;
  font: 600 11px/1.8 var(--sans);
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.interior-page h1 {
  font-size: clamp(64px, 7.8vw, 112px);
  line-height: 0.94;
  letter-spacing: -0.05em;
  text-transform: uppercase;
}
.interior-page h2 {
  font-size: clamp(40px, 4vw, 64px);
  line-height: 1;
}
.interior-page h3 {
  font-size: clamp(28px, 2.5vw, 38px);
}
.interior-page h4 {
  font: 400 30px/1.15 var(--serif);
  margin: 0 0 20px;
}
.interior-page em {
  color: var(--brown);
}
.interior-page p {
  max-width: var(--reading-width);
}
.interior-page .page-intro {
  padding-block: clamp(56px, 6vw, 96px) 64px;
}
.page-intro-top {
  margin-bottom: 28px;
}
.intro-bottom {
  display: flex;
  gap: 32px;
  align-items: start;
  margin-top: 32px;
}
.intro-bottom p {
  max-width: 530px;
}
.mini-rule {
  flex: 0 0 40px;
  height: 1px;
  background: var(--taupe);
  margin-top: 14px;
}
.interior-page .section-heading {
  gap: 40px;
}
.interior-page .section-heading h2 {
  margin-top: 22px;
}
.interior-page .section-heading > p {
  max-width: 380px;
}
.interior-page img {
  object-fit: cover;
}
.interior-page .note {
  font-size: 13px;
}

/* Services: readable price lists and a desktop index, without boxed cards. */
.care-banner {
  position: relative;
  height: clamp(300px, 35vw, 470px);
  overflow: hidden;
  border-radius: var(--photo-radius);
}
.care-banner > img {
  width: 100%;
  height: 100%;
}
.care-banner:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #17130fc4, transparent);
}
.care-banner > div {
  position: absolute;
  z-index: 1;
  left: clamp(24px, 5vw, 72px);
  bottom: 45px;
  color: var(--warm-white);
}
.care-banner p {
  color: inherit;
  font: 400 clamp(30px, 4vw, 55px) / 1.1 var(--serif);
  margin-top: 20px;
}
.care-layout {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  gap: clamp(40px, 7vw, 110px);
  align-items: start;
}
.care-index {
  position: sticky;
  top: 28px;
  display: grid;
  gap: 10px;
}
.care-index > a:not(.text-link) {
  font-size: 14px;
  padding-block: 9px;
  border-bottom: 1px solid var(--line);
}
.care-index > a:hover {
  color: var(--brown);
}
.care-index p {
  font-size: 13px;
  margin-top: 18px;
}
.care-index .text-link {
  justify-self: start;
}
.care-group {
  scroll-margin-top: 32px;
  padding-bottom: 60px;
  margin-bottom: 55px;
  border-bottom: 1px solid var(--line);
}
.group-heading p {
  margin-top: 22px;
}
.price-list {
  margin-block: 28px;
}
.price-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding: 19px 0;
  border-bottom: 1px solid var(--line);
}
.price-row h3 {
  font: 400 17px/1.55 var(--sans);
  text-transform: none;
  letter-spacing: 0;
}
.price-row span {
  display: block;
  color: var(--muted);
  font-size: 13px;
  margin-top: 3px;
}
.price-row strong {
  flex: none;
  font: 400 23px/1.3 var(--serif);
  text-align: right;
}

/* Training keeps native, accessible disclosures and the selected course URL. */
.formation-hero {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 60px;
  padding-block: 70px;
  align-items: center;
}
.formation-hero h1 {
  font-size: clamp(54px, 6vw, 88px);
  margin: 26px 0;
}
.formation-hero-bottom p {
  margin-bottom: 26px;
}
.formation-visual {
  position: relative;
  height: 540px;
  border-radius: var(--photo-radius);
  overflow: hidden;
}
.formation-visual img {
  width: 100%;
  height: 100%;
}
.image-note {
  position: absolute;
  inset: auto 0 0;
  background: #17130fcc;
  color: var(--warm-white);
  padding: 18px 24px;
  font-size: 10px;
  letter-spacing: 0.14em;
}
.training-proof {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  border-block: 1px solid var(--line);
  padding-block: 30px;
  font-size: 14px;
}
.training-proof strong {
  font-weight: 600;
}
.course {
  border-top: 1px solid var(--line);
}
.course:last-child {
  border-bottom: 1px solid var(--line);
}
.course summary {
  display: grid;
  grid-template-columns: 1fr auto 28px;
  gap: 25px;
  align-items: center;
  cursor: pointer;
  padding-block: 30px;
  list-style: none;
}
.course summary::-webkit-details-marker {
  display: none;
}
.course h3 {
  text-transform: none;
  letter-spacing: -0.025em;
}
.course-duration {
  font-size: 11px;
  color: var(--muted);
}
.plus {
  width: 22px;
  height: 22px;
  position: relative;
}
.plus:before,
.plus:after {
  content: "";
  position: absolute;
  background: currentColor;
  left: 2px;
  top: 10px;
  width: 18px;
  height: 1px;
}
.plus:after {
  transform: rotate(90deg);
  transition: transform 0.25s;
}
.course[open] .plus:after {
  transform: rotate(0);
}
.course-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  padding-bottom: 40px;
}
.course-body .kicker {
  margin-bottom: 16px;
}
.course-body ul {
  padding-left: 18px;
  color: var(--muted);
  margin: 0 0 28px;
  font-size: 14px;
}
.course-body li {
  margin-block: 10px;
}
.formation-process {
  background: #e9e0d5;
  padding-block: var(--section-space);
}
.formation-process > .container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
}
.formation-process h2 {
  margin-top: 25px;
}
.formation-process ol {
  list-style: none;
  padding: 0;
  margin: 0;
}
.formation-process li {
  border-bottom: 1px solid var(--line);
  padding-block: 22px;
}
.formation-process li:first-child {
  padding-top: 0;
}
.formation-process h3 {
  margin-bottom: 14px;
  text-transform: none;
}
.enquiry-end {
  text-align: center;
}
.enquiry-end h2 {
  margin: 24px 0;
}
.enquiry-end p {
  margin-inline: auto;
  margin-bottom: 28px;
}

/* Institute and contact: matching materials, distinct useful content. */
.about-editorial {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 7vw, 100px);
  align-items: center;
}
.about-portrait img {
  width: 100%;
  height: 580px;
  border-radius: var(--photo-radius);
  object-position: 50% center;
}
.photo-caption {
  display: flex;
  justify-content: space-between;
  gap: 15px;
  font-size: 10px;
  letter-spacing: 0.12em;
  margin-top: 12px;
}
.about-story h2 {
  margin: 25px 0;
}
.about-story p {
  margin-bottom: 22px;
}
.interior-page .signature {
  width: auto;
  margin-inline: 0;
  font: italic 26px/1.3 var(--serif);
  color: var(--brown);
  margin-block: 25px;
}
.values-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 45px;
}
.values-grid article {
  border-top: 1px solid var(--line);
  padding-top: 28px;
}
.values-grid h3 {
  margin-bottom: 20px;
  text-transform: none;
}
.full-studio {
  position: relative;
  height: 560px;
  overflow: hidden;
}
.full-studio > img {
  width: 100%;
  height: 100%;
}
.full-studio:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #17130fcc, transparent);
}
.studio-overlay {
  position: absolute;
  z-index: 1;
  bottom: 70px;
  left: var(--gutter);
  color: var(--warm-white);
}
.studio-overlay h2 {
  margin-block: 24px 32px;
}
.studio-overlay em {
  color: inherit;
}
.about-training {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 70px;
  align-items: center;
}
.about-training .text-link {
  margin-top: 24px;
}
.contact-section {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 7vw, 110px);
  padding-bottom: var(--section-space);
}
.contact-options article {
  padding-block: 30px 40px;
  border-top: 1px solid var(--line);
  scroll-margin-top: 30px;
}
.contact-options h2 {
  margin-block: 22px;
}
.contact-options p {
  margin-bottom: 24px;
}
.contact-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
}
.location-image {
  height: 410px;
  overflow: hidden;
  border-radius: var(--photo-radius);
}
.location-image img,
.location-image iframe {
  width: 100%;
  height: 100%;
}
.location-image iframe {
  border: 0;
  display: block;
}
.location-card {
  padding-block: 28px;
}
.location-card h3 {
  margin-block: 18px;
}
.location-card address {
  margin-bottom: 24px;
}
.visit-section {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  border-top: 1px solid var(--line);
}
.visit-section h2 {
  margin-block: 24px;
}
.visit-details > p {
  margin-bottom: 22px;
}
.selected-training {
  border-left: 2px solid var(--taupe);
  padding: 8px 0 8px 18px;
}

@media (max-width: 1150px) {
  .main-nav {
    gap: 18px;
  }
  .main-nav a {
    font-size: 10px;
  }
  .formation-hero {
    gap: 32px;
  }
  .formation-visual {
    height: 440px;
  }
  .home-visit {
    grid-template-columns: 1fr 1fr;
    gap: 36px;
  }
  .home-visit > div:first-child {
    grid-column: 1/-1;
  }
  .care-layout {
    grid-template-columns: 200px minmax(0, 1fr);
    gap: 40px;
  }
}
@media (max-width: 900px) {
  .services-grid {
    gap: 20px;
  }
  .service h3 {
    font-size: 30px;
  }
  .service ul {
    font-size: 14px;
  }
  .home-training {
    gap: 35px;
  }
  .training-topics {
    grid-template-columns: 1fr;
  }
  .formation-hero {
    grid-template-columns: 1fr 1fr;
  }
  .formation-hero h1 {
    font-size: 54px;
  }
  .course-body {
    gap: 30px;
  }
  .course-duration {
    display: none;
  }
  .course summary {
    grid-template-columns: 1fr 24px;
  }
  .care-layout {
    display: block;
  }
  .care-index {
    position: static;
    grid-template-columns: 1fr 1fr;
    margin-bottom: 60px;
    gap: 12px 30px;
  }
  .care-index .kicker,
  .care-index p {
    grid-column: 1/-1;
  }
  .about-editorial {
    gap: 35px;
  }
  .about-portrait img {
    height: 490px;
  }
  .values-grid {
    gap: 25px;
  }
  .contact-section {
    gap: 35px;
  }
  .location-image {
    height: 350px;
  }
}
@media (max-width: 700px) {
  .services-grid {
    grid-template-columns: 1fr;
    gap: 36px;
  }
  .service {
    display: grid;
    grid-template-columns: 43% 1fr;
    gap: 22px;
    align-items: center;
  }
  .service .photo-frame {
    aspect-ratio: 0.76;
  }
  .service-copy {
    padding: 6px 0 40px;
    min-height: 190px;
  }
  .service-copy:after {
    display: none;
  }
  .service h3 {
    font-size: 30px;
  }
  .service-arrow {
    left: 0;
    right: auto;
    bottom: 0;
  }
  .home-training {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .training-image {
    aspect-ratio: 1.25;
  }
  .training-copy h2 {
    font-size: 46px;
  }
  .training-topics {
    grid-template-columns: 1fr 1fr;
    gap: 0 18px;
  }
  .home-visit {
    grid-template-columns: 1fr;
    gap: 38px;
  }
  .home-visit h3 {
    margin-bottom: 14px;
  }
  .review-reference {
    display: block;
  }
  .review-reference p {
    margin-bottom: 14px;
  }
  .interior-page .editorial-header {
    background: var(--cream);
  }
  .interior-page .page-intro {
    padding-block: 45px;
  }
  .interior-page h1 {
    font-size: clamp(48px, 12vw, 70px);
  }
  .interior-page h2 {
    font-size: clamp(36px, 10vw, 50px);
  }
  .interior-page h3 {
    font-size: 28px;
  }
  .intro-bottom {
    gap: 20px;
    margin-top: 25px;
  }
  .mini-rule {
    flex-basis: 25px;
  }
  .interior-page .section-heading {
    grid-template-columns: 1fr;
    gap: 22px;
  }
  .care-banner {
    height: 310px;
  }
  .care-banner > div {
    bottom: 30px;
    right: 24px;
  }
  .care-index {
    grid-template-columns: 1fr;
  }
  .care-index p {
    max-width: 100%;
  }
  .care-group {
    padding-bottom: 40px;
    margin-bottom: 40px;
  }
  .price-row {
    gap: 12px;
  }
  .price-row h3 {
    font-size: 15px;
  }
  .price-row strong {
    font-size: 21px;
    max-width: 92px;
  }
  .formation-hero {
    grid-template-columns: 1fr;
    padding-block: 45px;
  }
  .formation-hero h1 {
    font-size: 50px;
  }
  .formation-visual {
    height: 360px;
  }
  .training-proof {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .training-proof > span:not(:last-child) {
    padding-bottom: 20px;
    border-bottom: 1px solid var(--line);
  }
  .course summary {
    gap: 16px;
    padding-block: 24px;
  }
  .course h3 {
    font-size: 28px;
  }
  .course-body {
    grid-template-columns: 1fr;
    gap: 25px;
  }
  .formation-process > .container,
  .about-editorial,
  .values-grid,
  .about-training,
  .contact-section,
  .visit-section {
    grid-template-columns: 1fr;
    gap: 38px;
  }
  .about-portrait img {
    height: 410px;
  }
  .interior-page .signature {
    display: block;
  }
  .full-studio {
    height: 470px;
  }
  .studio-overlay {
    right: var(--gutter);
    bottom: 40px;
  }
  .location-image {
    height: 330px;
  }
  .visit-section {
    gap: 32px;
  }
  .quick-book {
    display: block;
    position: fixed;
    z-index: 15;
    bottom: 12px;
    left: 16px;
    right: 16px;
    padding-bottom: env(safe-area-inset-bottom);
    opacity: 0;
    visibility: hidden;
    transform: translateY(16px);
    transition:
      opacity 0.25s,
      transform 0.25s,
      visibility 0.25s;
    pointer-events: none;
  }
  .booking-visible:not(.menu-open):not(:has(dialog[open])) .quick-book {
    opacity: 1;
    visibility: visible;
    transform: none;
    pointer-events: auto;
  }
  .quick-book a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: 52px;
    padding: 14px 24px;
    background: var(--ink);
    color: var(--warm-white);
    border-radius: 999px;
    border: 1px solid #faf8f450;
    font-size: 12px;
    box-shadow: 0 4px 18px #17130f22;
  }
  .editorial-footer {
    padding-bottom: calc(100px + env(safe-area-inset-bottom));
  }
}
@media (prefers-reduced-motion: reduce) {
  .quick-book {
    transition: none;
  }
}

/* Approved beauty imagery: preserve subjects without the former portrait zoom. */
.service-regard img,
.service-skin img {
  position: static;
  inset: auto;
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-position: center;
}
.training-image img,
.formation-visual img { object-position: 50% 48%; }
.result-microblading img,
.result-sourcils img { object-position: center; }
.training-detail { margin: 32px 0 0; max-width: 360px; }
.training-detail img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 65%; border-radius: var(--photo-radius); }
.training-detail figcaption { margin-top: 12px; font-size: 10px; letter-spacing: .08em; color: var(--muted); }
@media (max-width: 700px) {
  .training-detail { max-width: 100%; }
  .training-detail img { aspect-ratio: 1; object-position: 50% 68%; }
}
/* Keep both participants and the practice mannequin within the training frame. */
.formation-visual { height: auto; aspect-ratio: 6 / 5; align-self: center; }
.formation-visual img { width: 100%; height: 100%; object-fit: cover; }
.training-image { aspect-ratio: 6 / 5; }

.training-schedule { display: grid; grid-template-columns: 1fr .7fr 1fr; gap: 36px; margin: 40px 0 24px; }
.training-schedule article { padding-block: 25px; border-top: 1px solid var(--line); }
.training-schedule h3, .training-included h3 { font: 400 29px/1.12 var(--serif); text-transform: none; margin: 18px 0; }
.training-schedule ul { padding-left: 18px; }
.training-schedule li { margin-bottom: 10px; }
.training-schedule li, .training-schedule article > p:not(.kicker), .training-included p { font-size: 14px; line-height: 1.8; color: var(--muted); }
.training-included { padding-block: 36px 60px; border-block: 1px solid var(--line); }
.training-included h2 { margin-top: 20px; }
.training-included-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 28px; margin-top: 32px; }
.training-included h3 { font-size: 25px; }
@media(max-width:1000px) { .training-schedule { gap: 22px; grid-template-columns: 1fr 1fr; } .training-break { grid-column: 1/-1; grid-row: 2; } .training-included-grid { grid-template-columns: 1fr 1fr; } }
@media(max-width:700px) { .training-schedule, .training-included-grid { grid-template-columns: 1fr; gap: 12px; } .training-break { grid-column: auto; grid-row: auto; } .training-included-grid article { border-top: 1px solid var(--line); padding-top: 8px; } }

.practical-faq { max-width: 1000px; }
.practical-faq details { border-bottom: 1px solid var(--line); padding: 22px 0; }
.practical-faq summary { cursor: pointer; font-size: 16px; line-height: 1.5; }
.practical-faq details p { max-width: 740px; margin: 16px 0 0; font-size: 14px; line-height: 1.8; color: var(--muted); }
.practical-faq a { text-decoration: underline; text-underline-offset: 3px; }

.hero-description:before,
.hero-eyebrow:after,
.beauty-campaign .hero-eyebrow:after,
.hero-values:after,
.campaign-values:after {
  content: none;
  display: none;
}
.mini-rule,
.hero-rule {
  display: none;
}

/* V1 finish: readable titles, predictable anchors and clear care actions. */
.page-intro h1, .formation-hero h1, .section-heading h2, .training-copy h2 { text-wrap: balance; }
.care-group, #contact-formation, .practical-faq, #programmes { scroll-margin-top: 32px; }
.care-price-action { display: flex; align-items: center; gap: 24px; flex-shrink: 0; }
.care-price-action strong { font: 26px var(--serif); white-space: nowrap; }
.care-book-link { display: inline-flex; align-items: center; min-height: 44px; font-size: 11px; text-decoration: underline; text-underline-offset: 5px; }
.care-book-link:hover { color: var(--brown); }
.booking-work { scroll-margin-top: 24px; }
.booking-work:focus { outline: none; }
@media (max-width:700px) {
  .formation-hero h1 { font-size: clamp(42px, 11vw, 60px); }
  .formation-hero-bottom p { max-width: 32ch; }
  .care-price-action { flex-direction: column; align-items: flex-end; gap: 0; }
  .care-price-action strong { font-size: 23px; }
  .price-row { gap: 16px; }
  .contact-actions { gap: 16px; flex-wrap: wrap; }
  .section-heading { row-gap: 24px; }
  .training-day .section-heading h2 { font-size: clamp(36px, 10vw, 48px); }
  .training-schedule h3 { font-size: 28px; }
  .supporting-note { line-height: 1.75; }
}

/* Clearly labelled illustrative care gallery. */
.care-universe {padding-block:clamp(64px,8vw,120px);background:var(--cream,#f4f0e9)}
.universe-heading {display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:42px}
.universe-heading h2 {font-size:clamp(42px,5vw,72px);line-height:1; margin-top:20px}
.universe-heading>div>p:not(.eyebrow) {max-width:52ch}
.illustration-notice {font-size:13px;line-height:1.65;color:var(--muted);margin-top:16px}
.universe-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.universe-grid figure {margin:0;min-width:0}
.universe-photo {aspect-ratio:4/5;overflow:hidden;border-radius:var(--photo-radius,12px)}
.universe-photo img {width:100%;height:100%;object-fit:cover;transition:transform 500ms ease}
.universe-grid figure:hover img {transform:scale(1.025)}
.universe-grid h3 {font-size:clamp(24px,2.4vw,35px);line-height:1.15;margin:20px 0 10px}
.universe-grid figcaption p {font-size:13px;line-height:1.6}
.universe-grid figcaption>span {display:block;font-size:11px;color:var(--muted);margin-top:12px}
.universe-proof {display:flex;justify-content:space-between;align-items:center;gap:32px;margin-top:40px;padding-top:28px;border-top:1px solid var(--line)}
.universe-proof p {max-width:54ch;font-size:14px}
@media(max-width:1000px){.universe-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:34px}.universe-proof{align-items:flex-start;flex-direction:column;gap:20px}}
@media(max-width:600px){.universe-heading{grid-template-columns:1fr;gap:24px}.universe-grid{grid-template-columns:1fr}.universe-photo{aspect-ratio:4/3}.universe-grid h3{font-size:30px}.universe-proof .text-link{font-size:10px;gap:10px}}
@media(prefers-reduced-motion:reduce){.universe-photo img{transition:none}.universe-grid figure:hover img{transform:none}}

/* Keep each simulated pair intact at every viewport size. */
.comparison-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 48px 32px; }
.comparison-grid h3 { margin: 0 0 20px; }
.comparison-grid .universe-photo { aspect-ratio: 3/2; }
.comparison-grid .universe-photo img { object-fit: contain; }
.comparison-grid figure:hover img { transform: none; }
.comparison-labels { display: grid; grid-template-columns: 1fr 1fr; text-align: center; gap: 12px; padding: 14px 0; font-size: 10px; text-transform: uppercase; letter-spacing: .13em; }
.comparison-grid .simulation-notice { font-size: 12px; line-height: 1.65; color: var(--muted); max-width: 60ch; margin: 0; }
@media(max-width:700px) { .comparison-grid { grid-template-columns: 1fr; gap: 36px; } .comparison-grid h3 { font-size: 28px; } .comparison-labels { font-size: 9px; } }

/* Consent remains explicit: the optional map is never requested before acceptance. */
.cookie-banner[hidden], .location-image [hidden] { display: none !important; }
.cookie-banner {
  position: fixed;
  z-index: 1000;
  inset: auto 0 0;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: clamp(24px, 5vw, 80px);
  padding: clamp(24px, 3vw, 42px) var(--gutter);
  background: var(--warm-white);
  border-top: 1px solid var(--line);
  box-shadow: 0 -12px 45px rgba(23, 19, 15, .10);
}
.cookie-banner-copy { max-width: 720px; }
.cookie-banner h2 { font: 400 clamp(30px, 3vw, 42px)/1 var(--serif); margin: 9px 0 12px; }
.cookie-banner p { font-size: 13px; line-height: 1.65; color: var(--muted); }
.cookie-policy-link { margin-top: 9px; font: 600 11px var(--sans); text-decoration: underline; text-underline-offset: 4px; }
.cookie-banner-actions { display: flex; gap: 10px; flex-shrink: 0; }
.cookie-banner-actions button {
  min-width: 132px;
  min-height: 46px;
  padding: 10px 20px;
  border: 1px solid var(--ink);
  font: 600 11px var(--sans);
  letter-spacing: .1em;
  text-transform: uppercase;
}
.cookie-banner-actions button:hover { background: var(--ink); color: var(--warm-white); }
.cookie-banner button:focus-visible, .map-placeholder button:focus-visible { outline: 2px solid var(--brown); outline-offset: 3px; }
.map-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 18px;
  width: 100%;
  height: 100%;
  padding: 30px;
  background: #e8ded2;
  text-align: center;
}
.map-placeholder p { max-width: 24ch; font: 400 27px/1.1 var(--serif); }
.map-placeholder button { min-height: 44px; border-bottom: 1px solid currentColor; font: 600 11px var(--sans); letter-spacing: .09em; text-transform: uppercase; }
@media (max-width: 700px) {
  .cookie-banner { display: block; padding: 24px var(--gutter); max-height: min(78dvh, 600px); overflow: auto; }
  .cookie-banner-actions { margin-top: 20px; }
  .cookie-banner-actions button { flex: 1; min-width: 0; }
  .cookie-banner p { font-size: 12px; }
}

/* Client portrait: keep the face clear of the introductory copy. */
@media (min-width: 701px) {
  .beauty-campaign .hero-copy { margin-left: auto; width: 38%; color: #fffaf3; }
  .beauty-campaign .hero-description { color: #fffaf3; }
  .beauty-campaign .hero-copy h1,
  .beauty-campaign .hero-copy h1 em { color: #fffaf3; }
  .beauty-campaign .hero-copy { text-shadow: 0 2px 16px rgba(0,0,0,.25); }
  .beauty-campaign .hero-photo img { object-position: 35% center; }
  .beauty-campaign .editorial-hero:before { background: linear-gradient(90deg, transparent 35%, rgba(25,18,12,.42) 60%, rgba(25,18,12,.78) 100%); }
  .beauty-campaign .editorial-hero:after { background: linear-gradient(rgba(25,18,12,.45), transparent); }
  .beauty-campaign .main-nav a:nth-child(-n + 2) { color: var(--warm-white); }
  .beauty-campaign .editorial-header .logo { filter: invert(1); }
  .beauty-campaign .hero-values { display: none; }
}
@media (max-width: 700px) {
  .beauty-campaign .hero-photo img { object-position: 29% center; }
}

/* Client-provided before/after results */
.comparison-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1000px) { .comparison-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .comparison-grid { grid-template-columns: 1fr; } }

/* Results composition: two details, then one full-width smile */
.comparison-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.comparison-grid .comparison-wide { grid-column: 1 / -1; }
.comparison-grid .comparison-wide .universe-photo { aspect-ratio: 4 / 1; }
@media (max-width: 700px) {
  .comparison-grid { grid-template-columns: 1fr; }
  .comparison-grid .comparison-wide { grid-column: auto; }
  .comparison-grid .comparison-wide .universe-photo { aspect-ratio: 4 / 1; }
}
