/* Source file. Numbers ending in `u` are Figma pixels on the 2048px canvas; run build-css.py to produce pdc.css. */
@font-face {
  font-family: "Clash Display";
  src: url("../assets/fonts/ClashDisplay-Variable.ttf") format("truetype");
  font-weight: 200 700;
  font-display: swap;
}
@font-face {
  font-family: "Bricolage Grotesque";
  src: url("../assets/fonts/BricolageGrotesque-Variable.ttf") format("truetype");
  font-weight: 200 800;
  font-stretch: 75% 100%;
  font-display: swap;
}

.pdc {
  --pdc-white: #fff;
  --pdc-black: #000;
  --pdc-lime: #d5e91e;
  --pdc-red: #fd6371;
  --pdc-red-strike: #fe616f;
  --pdc-off-white: #fcfcfc;
  --pdc-font-display: "Clash Display", system-ui, sans-serif;
  --pdc-font-label: "Bricolage Grotesque", system-ui, sans-serif;
  --pdc-font-body: "Inter", system-ui, sans-serif;
  --u: calc(min(100vw, 2048px) / 2048);

  margin: 0;
  overflow-x: clip;
  background: var(--pdc-white);
  color: var(--pdc-black);
  font-family: var(--pdc-font-body);
  /* neutral base, so host-theme (Divi) body styles don't leak in */
  font-size: 16px;
  font-weight: 400;
  line-height: normal;
  letter-spacing: normal;
  text-align: left;
}
.pdc *,
.pdc *::before,
.pdc *::after {
  box-sizing: border-box;
}
.pdc :where(p, h1, h2, h3, h4, h5, h6, dl, dd) {
  margin: 0;
  padding: 0;
}
/* undo host-theme heading / paragraph defaults (Divi sets colour, weight, line-height, padding) */
.pdc :where(h1, h2, h3, h4, h5, h6) {
  color: inherit;
  font-weight: 700;
  line-height: normal;
  letter-spacing: normal;
  text-transform: none;
}
.pdc :where(p, li, dt, dd) {
  color: inherit;
}

/* ---------- Shared ---------- */
.pdc-eyebrow {
  font-family: var(--pdc-font-display);
  font-weight: 500;
  font-size: max(14px, calc(var(--u) * 19.031));
  line-height: max(27.79px, calc(var(--u) * 37.778));
  letter-spacing: 0.13em;
  text-transform: uppercase;
}
.pdc-h2 {
  font-family: var(--pdc-font-display);
  font-weight: 500;
  font-size: calc(var(--u) * 79.297);
  line-height: calc(var(--u) * 93.042);
  letter-spacing: -0.02em;
}

/* ---------- Hero ---------- */
.pdc-hero {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  min-height: 100vh;
  min-height: 100svh;
  padding: 0 24px calc(var(--u) * 77.524);
  background: var(--pdc-black);
  color: var(--pdc-white);
  overflow: hidden;
  isolation: isolate;
}
.pdc-hero__bg {
  position: absolute;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  background: #000 url("../assets/hero-sam.jpg") 75% 0 / cover no-repeat fixed;
}
@media (hover: none) and (pointer: coarse) {
  .pdc-hero__bg {
    background-attachment: scroll;
  }
}
.pdc-hero__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    url("../assets/hero-lime.svg") 0 0 / 100% 100% no-repeat,
    url("../assets/hero-vignette.svg") 0 0 / 100% 100% no-repeat;
}
/* Pre-animation state: set by an inline script in <head>, cleared by the animation scripts. */
.pdc-js .pdc-hero [data-hero] {
  visibility: hidden;
}
.pdc-js .pdc-hero__bg {
  opacity: 0;
}
.pdc-js-scroll [data-reveal] {
  visibility: hidden;
}
.pdc-js-scroll .pdc-video {
  clip-path: polygon(50% 0%, 50% 50%, 50% 50%, 50% 100%);
  transform: scale(0.2);
}
.pdc-hero__cutout {
  display: none;
}
.pdc-hero__inner {
  position: relative;
  width: calc(var(--u) * 1829.79);
}
.pdc-hero__eyebrow {
  font-family: var(--pdc-font-label);
  font-size: calc(var(--u) * 18.638);
  line-height: calc(var(--u) * 41.417);
  letter-spacing: 0.07em;
  text-transform: uppercase;
}
.pdc-hero__title {
  margin-top: calc(var(--u) * 9.558);
  font-family: var(--pdc-font-display);
  font-weight: 500;
  font-size: calc(var(--u) * 83.459);
  line-height: calc(var(--u) * 83.459);
}
.pdc-hero__intro {
  max-width: calc(var(--u) * 990.827);
  margin-top: calc(var(--u) * 9.558);
  font-family: var(--pdc-font-body);
  font-size: calc(var(--u) * 19.508);
  line-height: calc(var(--u) * 26.01);
  letter-spacing: -0.05em;
}
.pdc-hero__bar {
  display: flex;
  align-items: flex-start;
  gap: calc(var(--u) * 39.293);
  margin-top: calc(var(--u) * 40.355);
}
.pdc-btn {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: calc(var(--u) * 290.982);
  height: calc(var(--u) * 73.277);
  border-radius: calc(var(--u) * 82.255);
  background: var(--pdc-lime);
  color: var(--pdc-black);
  font-family: var(--pdc-font-display);
  font-weight: 500;
  font-size: calc(var(--u) * 20.682);
  letter-spacing: 0.05em;
  text-decoration: none;
}
.pdc-price {
  position: relative;
  flex: none;
  width: calc(var(--u) * 263.371);
  height: calc(var(--u) * 98.768);
}
.pdc-price > * {
  position: absolute;
  left: 0;
}
.pdc-price__tag {
  top: 0;
  padding: calc(var(--u) * 3.186) calc(var(--u) * 5.31);
  border-radius: calc(var(--u) * 5.788);
  background: var(--pdc-red);
  font-family: var(--pdc-font-display);
  font-weight: 700;
  font-size: calc(var(--u) * 12.347);
  line-height: normal;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
}
.pdc-price__amount {
  top: calc(var(--u) * 26.55);
  font-family: var(--pdc-font-label);
  font-size: calc(var(--u) * 42.479);
  line-height: calc(var(--u) * 47.789);
  letter-spacing: -0.05em;
  color: var(--pdc-off-white);
  white-space: nowrap;
}
.pdc-price__note {
  top: calc(var(--u) * 78.59);
  width: calc(var(--u) * 263.371);
  font-family: var(--pdc-font-label);
  font-size: calc(var(--u) * 13.923);
  line-height: calc(var(--u) * 20.178);
  letter-spacing: -0.05em;
  color: var(--pdc-off-white);
  white-space: nowrap;
}
.pdc-price__note s {
  color: var(--pdc-red-strike);
}
.pdc-meta {
  display: flex;
  gap: calc(var(--u) * 39.293);
}
.pdc-meta__item:nth-child(1) {
  width: calc(var(--u) * 112.57);
}
.pdc-meta__item:nth-child(2) {
  width: calc(var(--u) * 108.322);
}
.pdc-meta dt {
  font-family: var(--pdc-font-label);
  font-weight: 700;
  font-size: calc(var(--u) * 13.806);
  line-height: calc(var(--u) * 26.01);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.pdc-meta dd {
  margin-top: calc(var(--u) * 1.062);
  font-family: var(--pdc-font-display);
  font-weight: 500;
  font-size: calc(var(--u) * 21.24);
  line-height: calc(var(--u) * 26.01);
  text-transform: uppercase;
}
.pdc-badge {
  position: absolute;
  right: 0;
  bottom: 0;
  width: calc(var(--u) * 253.355);
  height: calc(var(--u) * 176.838);
  border-radius: calc(var(--u) * 11.903);
  background: var(--pdc-black);
  color: var(--pdc-white);
  font-family: var(--pdc-font-display);
}
.pdc-badge > * {
  position: absolute;
  left: 50%;
  margin: 0;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
  transform: translate(-50%, -50%);
}
.pdc-badge__by {
  top: calc(var(--u) * 41.18);
  font-weight: 500;
  font-size: calc(var(--u) * 11.298);
  letter-spacing: 0.36em;
}
.pdc-badge__word1 {
  top: calc(var(--u) * 69.81);
  font-weight: 700;
  font-size: calc(var(--u) * 43.163);
  letter-spacing: 0.02em;
}
.pdc-badge__word2 {
  top: calc(var(--u) * 103.25);
  font-weight: 700;
  font-size: calc(var(--u) * 41.262);
  letter-spacing: -0.05em;
}
.pdc-badge__sub {
  top: calc(var(--u) * 135.31);
  left: calc(var(--u) * 31);
  font-weight: 500;
  font-size: calc(var(--u) * 26.009);
  letter-spacing: 0.02em;
  text-align: left;
  transform: translateY(-50%);
}

/* ---------- About ---------- */
.pdc-about {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(var(--u) * 23);
  min-height: calc(var(--u) * 1165);
  padding: calc(var(--u) * 61) 24px calc(var(--u) * 101.5);
  background: var(--pdc-white);
  color: var(--pdc-black);
  text-align: center;
}
.pdc-about .pdc-h2 {
  font-size: calc(var(--u) * 80.354);
}
.pdc-video-wrap {
  position: relative;
  width: calc(var(--u) * 1254);
  height: calc(var(--u) * 712.05);
}
.pdc-video-tilt {
  position: absolute;
  inset: 0;
}
.pdc-video {
  position: absolute;
  inset: 0;
  border-radius: calc(var(--u) * 31.719);
  overflow: hidden;
}
.pdc-video__poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.pdc-video::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.2);
  pointer-events: none;
}
.pdc-video__play {
  position: absolute;
  z-index: 1;
  inset: 0;
  margin: auto;
  display: flex;
  align-items: center;
  gap: calc(var(--u) * 17.37);
  width: calc(var(--u) * 276.909);
  height: calc(var(--u) * 76.237);
  padding: 0 0 0 calc(var(--u) * 17.53);
  border: 0;
  border-radius: calc(var(--u) * 57);
  background: rgba(30, 30, 30, 0.5);
  color: var(--pdc-white);
  font-family: var(--pdc-font-display);
  font-weight: 500;
  font-size: max(14px, calc(var(--u) * 21.615));
  line-height: max(28.12px, calc(var(--u) * 43.414));
  letter-spacing: 0.06em;
  text-align: left;
  cursor: pointer;
}
.pdc-video__play img {
  display: block;
  width: calc(var(--u) * 45.567);
  height: calc(var(--u) * 45.567);
}

/* ---------- Statement ---------- */
.pdc-statement {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: calc(var(--u) * 47.578);
  min-height: calc(var(--u) * 1159);
  margin-top: calc(var(--u) * -8);
  padding: 0 24px;
  background: var(--pdc-white);
  color: var(--pdc-black);
  text-align: center;
}
.pdc-statement__copy {
  display: flex;
  flex-direction: column;
  gap: calc(var(--u) * 9.516);
  width: calc(var(--u) * 860.635);
}
.pdc-statement__title {
  font-family: var(--pdc-font-display);
  font-weight: 500;
  font-size: calc(var(--u) * 79.297);
  line-height: calc(var(--u) * 93.042);
}
.pdc-statement__text {
  font-family: var(--pdc-font-body);
  font-size: max(14px, calc(var(--u) * 25.766));
  line-height: max(20.68px, calc(var(--u) * 38.063));
  letter-spacing: -0.05em;
}
.pdc-statement__steps {
  display: flex;
  justify-content: center;
  gap: calc(var(--u) * 169);
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pdc-step {
  display: flex;
  flex: none;
  flex-direction: column;
  align-items: center;
  width: calc(var(--u) * 380);
}
.pdc-step__title {
  font-family: var(--pdc-font-display);
  font-weight: 500;
  font-size: calc(var(--u) * 47.578);
  line-height: calc(var(--u) * 93.042);
  white-space: nowrap;
}
.pdc-step__text {
  min-height: calc(var(--u) * 86.698);
  font-family: var(--pdc-font-body);
  font-size: max(14px, calc(var(--u) * 19.031));
  line-height: max(19.05px, calc(var(--u) * 25.895));
  letter-spacing: -0.05em;
}

/* ---------- Benefits ---------- */
.pdc-benefits {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: calc(var(--u) * 1150);
  padding: 0 24px;
  background: var(--pdc-black);
  color: var(--pdc-white);
  text-align: center;
}
.pdc-benefits__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(var(--u) * 80.354);
  width: calc(var(--u) * 1519);
}
.pdc-benefits__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(var(--u) * 15.859);
}
.pdc-benefits__title {
  font-family: var(--pdc-font-display);
  font-weight: 500;
  font-size: calc(var(--u) * 79.297);
  line-height: calc(var(--u) * 93.042);
}
.pdc-benefits__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: calc(var(--u) * 42.292);
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
  text-align: left;
}
.pdc-benefit {
  display: flex;
  align-items: flex-start;
  gap: calc(var(--u) * 19.031);
}
.pdc-benefit__icon {
  flex: none;
  display: block;
  width: calc(var(--u) * 61.323);
  height: calc(var(--u) * 60.266);
}
.pdc-benefit__body {
  display: flex;
  flex-direction: column;
  gap: calc(var(--u) * 12.688);
  width: calc(var(--u) * 293.927);
}
.pdc-benefit__title {
  font-family: var(--pdc-font-display);
  font-weight: 500;
  font-size: max(14px, calc(var(--u) * 28.835));
  line-height: max(16.43px, calc(var(--u) * 33.833));
}
.pdc-benefit__title--tight {
  letter-spacing: -0.02em;
}
.pdc-benefit__text {
  width: calc(var(--u) * 337);
  font-family: var(--pdc-font-body);
  font-size: max(14px, calc(var(--u) * 18));
  line-height: max(20.14px, calc(var(--u) * 25.895));
  letter-spacing: -0.05em;
}

/* ---------- Start seeing patterns ---------- */
.pdc-patterns {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: calc(var(--u) * 1268);
  background: var(--pdc-white);
  color: var(--pdc-black);
}
.pdc-patterns__head {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: calc(var(--u) * 339.391);
  min-height: calc(var(--u) * 226);
}
.pdc-patterns__title {
  flex: none;
  font-family: var(--pdc-font-display);
  font-weight: 500;
  font-size: calc(var(--u) * 58.151);
  line-height: calc(var(--u) * 60.266);
  white-space: nowrap;
}
.pdc-patterns__text {
  flex: none;
  width: calc(var(--u) * 533);
  min-height: calc(var(--u) * 169);
  font-family: var(--pdc-font-body);
  font-size: max(14px, calc(var(--u) * 19.031));
  line-height: max(19.05px, calc(var(--u) * 25.895));
  letter-spacing: -0.05em;
}
.pdc-patterns__gallery {
  position: relative;
  width: 100%;
  height: calc(var(--u) * 953.677);
  overflow: hidden;
}
.pdc-patterns__row {
  position: absolute;
  left: 0;
  display: flex;
  align-items: center;
  width: max-content;
  will-change: transform;
}
/* Two endless strips moving in opposite directions (js/patterns-marquee.js clones the tiles and sets
   --pdc-loop = width of one set, --pdc-loop-time = duration). Without js the rows still sit cropped at both edges. */
.pdc-patterns__row--top {
  top: calc(var(--u) * 95.58);
  gap: calc(var(--u) * 41.313);
  margin-left: calc(var(--u) * -180);
}
.pdc-patterns__row--bottom {
  top: calc(var(--u) * 557.87);
  gap: calc(var(--u) * 49.028);
  margin-left: calc(var(--u) * -310);
}
.pdc-patterns__row.is-looping {
  animation: pdc-marquee var(--pdc-loop-time, 120s) linear infinite;
}
.pdc-patterns__row--bottom.is-looping {
  animation-direction: reverse;
}
@keyframes pdc-marquee {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(calc(-1 * var(--pdc-loop, 0px)), 0, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .pdc-patterns__row.is-looping {
    animation: none;
  }
}
.pdc-tile {
  position: relative;
  flex: none;
  margin: 0;
  overflow: hidden;
}
.pdc-patterns__row--top .pdc-tile {
  height: calc(var(--u) * 425.177);
  border-radius: calc(var(--u) * 8.607);
}
.pdc-patterns__row--bottom .pdc-tile {
  height: calc(var(--u) * 338.573);
  border-radius: calc(var(--u) * 9.251);
}
.pdc-tile img {
  position: absolute;
  max-width: none;
}
.pdc-tile--cover img {
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.pdc-tile--w642 { width: calc(var(--u) * 642.068); }
.pdc-tile--w341 { width: calc(var(--u) * 341.691); }
.pdc-tile--w690 { width: calc(var(--u) * 690.098); }
.pdc-tile--w367 { width: calc(var(--u) * 367.25); }
.pdc-tile--w498 { width: calc(var(--u) * 498); height: calc(var(--u) * 339) !important; }
.pdc-tile--square-corners { border-radius: 0 !important; }
.pdc-tile--placeholder { background: #d9d9d9; }
.pdc-tile--p1 img { top: 0; left: -24.71%; width: 198.71%; height: 100%; }
.pdc-tile--p2 img { top: -14.72%; left: -31.35%; width: 136.57%; height: 137.56%; }
.pdc-tile--p3 img { top: -5.22%; left: -53.65%; width: 191.06%; height: 230.29%; }
.pdc-tile--p6 img { top: -55.18%; left: -163.77%; width: 509.13%; height: 310.47%; }

/* ---------- Course outline ---------- */
.pdc-outline {
  margin-top: calc(var(--u) * -101);
  padding: calc(var(--u) * 146.96) 0 calc(var(--u) * 145.7);
  background: var(--pdc-white);
  color: var(--pdc-black);
}
.pdc-outline__inner {
  width: calc(var(--u) * 1505.055);
  margin-left: calc((100% - 2048 * var(--u)) / 2 + 270.67 * var(--u));
}
.pdc-outline .pdc-eyebrow {
  margin-bottom: calc(var(--u) * 10.86);
}
.pdc-outline__title {
  font-family: var(--pdc-font-display);
  font-weight: 500;
  font-size: calc(var(--u) * 59.923);
  line-height: calc(var(--u) * 70.31);
}
.pdc-outline__weekbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: calc(var(--u) * 62.38);
  margin: calc(var(--u) * 20.1) 0;
}
.pdc-outline__week {
  font-family: var(--pdc-font-display);
  font-weight: 500;
  font-size: max(14px, calc(var(--u) * 21.622));
  line-height: max(24.46px, calc(var(--u) * 37.778));
  letter-spacing: 0.25em;
  text-transform: uppercase;
}
.pdc-outline__week--second {
  display: flex;
  align-items: center;
  height: calc(var(--u) * 129);
  border-bottom: 1px solid var(--pdc-black);
}
.pdc-outline__download {
  display: flex;
  align-items: center;
  gap: calc(var(--u) * 14.8);
  min-width: calc(var(--u) * 224.146);
  min-height: calc(var(--u) * 62.38);
  padding-block: 6px;
  padding-right: calc(var(--u) * 18);
  padding-left: calc(var(--u) * 22.2);
  background: #f0f0f0;
  color: var(--pdc-black);
  font-family: var(--pdc-font-label);
  font-size: max(14px, calc(var(--u) * 14.7));
  line-height: max(16.43px, calc(var(--u) * 17.248));
  letter-spacing: 0.1em;
  text-decoration: none;
  text-transform: uppercase;
}
.pdc-outline__download img {
  display: block;
  width: calc(var(--u) * 24);
  height: calc(var(--u) * 30.66);
}
.pdc-outline__days {
  margin: 0;
  padding: 0;
  list-style: none;
}
.pdc-outline__days:first-of-type {
  border-top: 1px solid var(--pdc-black);
}
.pdc-day {
  display: grid;
  grid-template-columns: calc(var(--u) * 236.8) 1fr calc(var(--u) * 408.115);
  padding: calc(var(--u) * 70.84) 0 calc(var(--u) * 74);
  border-bottom: 1px solid var(--pdc-black);
}
.pdc-day__num,
.pdc-day__body {
  padding-top: calc(var(--u) * 17.97);
}
.pdc-day__num {
  font-family: var(--pdc-font-display);
  font-weight: 500;
  font-size: max(14px, calc(var(--u) * 23.26));
  line-height: max(22.74px, calc(var(--u) * 37.778));
}
.pdc-day__title {
  font-family: var(--pdc-font-display);
  font-weight: 500;
  font-size: max(14px, calc(var(--u) * 31.719));
  line-height: max(16.67px, calc(var(--u) * 37.778));
  white-space: nowrap;
}
.pdc-day__text {
  max-width: calc(var(--u) * 532.875);
  margin-top: calc(var(--u) * 10.573);
  font-family: var(--pdc-font-body);
  font-size: max(14px, calc(var(--u) * 19.031));
  line-height: max(19.05px, calc(var(--u) * 25.895));
  letter-spacing: -0.05em;
}
.pdc-day__img {
  display: block;
  width: calc(var(--u) * 408.115);
  height: calc(var(--u) * 275.953);
  border-radius: calc(var(--u) * 20);
}
.pdc-outline__break {
  display: flex;
  align-items: center;
  justify-content: center;
  height: calc(var(--u) * 213.6);
  border-bottom: 1px solid var(--pdc-black);
  font-family: var(--pdc-font-display);
  font-weight: 500;
  font-size: max(14px, calc(var(--u) * 27.726));
  line-height: max(16.43px, calc(var(--u) * 32.531));
  text-transform: uppercase;
}

/* ---------- Bill Mollison / manual ---------- */
.pdc-manual {
  padding: 0 calc((100% - 1505 * var(--u)) / 2);
  background: var(--pdc-white);
  color: var(--pdc-black);
}
.pdc-manual__title {
  font-family: var(--pdc-font-display);
  font-weight: 500;
  font-size: calc(var(--u) * 79.297);
  line-height: calc(var(--u) * 89.87);
  letter-spacing: -0.01em;
}
.pdc-manual__row {
  display: flex;
  align-items: center;
  gap: calc(var(--u) * 89.87);
  margin-top: calc(var(--u) * 88.813);
}
.pdc-manual__photo {
  position: relative;
  flex: none;
  width: calc(var(--u) * 710.5);
  height: calc(var(--u) * 662.629);
  margin: 0;
  overflow: hidden;
  border-radius: calc(var(--u) * 29.604);
}
.pdc-manual__photo img {
  position: absolute;
  top: -23.87%;
  left: 0.04%;
  width: 99.93%;
  height: 129.22%;
  max-width: none;
}
.pdc-manual__photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../assets/manual/manual-vignette.svg") 0 0 / 100% 100% no-repeat;
}
.pdc-manual__body {
  display: flex;
  flex: none;
  flex-direction: column;
  gap: calc(var(--u) * 24.318);
  width: calc(var(--u) * 638.604);
}
.pdc-manual__heading {
  font-family: var(--pdc-font-display);
  font-weight: 500;
  font-size: calc(var(--u) * 59.923);
  line-height: calc(var(--u) * 70.31);
  white-space: nowrap;
}
.pdc-manual__text {
  width: calc(var(--u) * 532.875);
  font-family: var(--pdc-font-body);
  font-size: max(14px, calc(var(--u) * 19.031));
  line-height: max(19.05px, calc(var(--u) * 25.895));
  letter-spacing: -0.05em;
}
.pdc-manual__avatar {
  display: block;
  width: calc(var(--u) * 145);
  height: calc(var(--u) * 145);
  border-radius: calc(var(--u) * 100);
  object-fit: cover;
  object-position: bottom;
}

/* ---------- Testimonials ---------- */
.pdc-testimonials {
  margin-top: calc(var(--u) * 152);
  padding-left: calc((100% - 2048 * var(--u)) / 2 + 270 * var(--u));
  padding-right: calc((100% - 2048 * var(--u)) / 2 + 38 * var(--u));
  background: var(--pdc-white);
  color: var(--pdc-black);
}
.pdc-testimonials__title {
  font-family: var(--pdc-font-display);
  font-weight: 500;
  font-size: calc(var(--u) * 59.923);
  line-height: calc(var(--u) * 70.31);
  white-space: nowrap;
}
.pdc-testimonials__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
}
.pdc-testimonials__nav {
  display: flex;
  gap: calc(var(--u) * 30);
}
.pdc-testimonials__nav[hidden] {
  display: none;
}
.pdc-nav-btn {
  position: relative;
  width: calc(var(--u) * 72);
  height: calc(var(--u) * 72);
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #ececec;
  cursor: pointer;
  transition: background-color 0.3s ease, transform 0.3s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.3s ease;
  -webkit-tap-highlight-color: transparent;
}
.pdc-nav-btn::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../assets/icons/chevron-right.svg") center / 100% 100% no-repeat;
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.pdc-nav-btn--prev::before {
  transform: scaleX(-1);
}
.pdc-nav-btn:hover {
  background: #dedede;
}
.pdc-nav-btn--next:hover::before {
  transform: translateX(calc(var(--u) * 4));
}
.pdc-nav-btn--prev:hover::before {
  transform: scaleX(-1) translateX(calc(var(--u) * 4));
}
.pdc-nav-btn:active {
  transform: scale(0.92);
  transition-duration: 0.12s;
}
.pdc-nav-btn:focus-visible {
  outline: 2px solid var(--pdc-black);
  outline-offset: 3px;
}
.pdc-nav-btn[aria-disabled="true"] {
  opacity: 0.35;
  cursor: default;
  pointer-events: none;
}
.pdc-testimonials__list {
  display: flex;
  align-items: stretch;
  gap: calc(var(--u) * 32.776);
  margin: calc(var(--u) * 61.323) 0 0;
  padding: 0;
  list-style: none;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.pdc-testimonials__list::-webkit-scrollbar {
  display: none;
}
.pdc-testimonials__list.is-scrollable {
  cursor: grab;
}
.pdc-testimonials__list.is-dragging {
  cursor: grabbing;
  scroll-snap-type: none;
  user-select: none;
}
.pdc-testimonials__list.is-dragging .pdc-quote__play {
  pointer-events: none;
}
.pdc-quote {
  display: flex;
  flex: none;
  scroll-snap-align: start;
  flex-direction: column;
  gap: calc(var(--u) * 24.318);
  width: calc(var(--u) * 409.172);
}
.pdc-quote:nth-child(2) {
  width: calc(var(--u) * 412.344);
}
.pdc-quote__media {
  position: relative;
  width: calc(var(--u) * 408.819);
  height: calc(var(--u) * 613.229);
  overflow: hidden;
  border-radius: calc(var(--u) * 10);
}
.pdc-quote__media > img {
  -webkit-user-drag: none;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.pdc-quote__play {
  position: absolute;
  top: calc(var(--u) * 317.19);
  left: calc(var(--u) * 155.5);
  width: calc(var(--u) * 97.859);
  height: calc(var(--u) * 97.859);
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
}
.pdc-quote__play img {
  display: block;
  width: 100%;
  height: 100%;
}
.pdc-quote__text {
  font-family: var(--pdc-font-body);
  font-size: max(14px, calc(var(--u) * 19.031));
  line-height: max(19.05px, calc(var(--u) * 25.895));
  letter-spacing: -0.05em;
}
.pdc-quote__caption {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: calc(var(--u) * 14);
}
.pdc-quote__name {
  margin-top: auto;
  font-family: var(--pdc-font-display);
  font-weight: 500;
  font-size: max(14px, calc(var(--u) * 16));
  line-height: max(19.25px, calc(var(--u) * 22));
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* ---------- Location ---------- */
.pdc-location {
  display: flex;
  justify-content: flex-end;
  gap: calc(var(--u) * 85.641);
  max-width: 2048px;
  margin: calc(var(--u) * 127) auto 0;
  overflow: hidden;
  background: var(--pdc-white);
  color: var(--pdc-black);
}
.pdc-location__body {
  display: flex;
  flex: none;
  flex-direction: column;
  gap: calc(var(--u) * 5.286);
  width: calc(var(--u) * 532.875);
  padding: calc(var(--u) * 109.958) 0;
}
.pdc-location__title {
  font-family: var(--pdc-font-display);
  font-weight: 500;
  font-size: calc(var(--u) * 59.923);
  line-height: calc(var(--u) * 70.31);
}
.pdc-location__text {
  font-family: var(--pdc-font-body);
  font-size: max(14px, calc(var(--u) * 19.031));
  line-height: max(19.05px, calc(var(--u) * 25.895));
  letter-spacing: -0.05em;
}
.pdc-travel {
  display: flex;
  flex-direction: column;
  gap: calc(var(--u) * 24);
  margin: calc(var(--u) * 23) 0 0;
  padding: 0;
  list-style: none;
}
.pdc-travel__item {
  display: flex;
  align-items: flex-start;
  gap: calc(var(--u) * 20);
}
.pdc-travel__icon {
  display: block;
  flex: none;
  width: 18px;
  height: 18px;
  margin-top: calc((var(--u) * 28 - 18px) / 2);
  object-fit: contain;
}
.pdc-travel__label {
  font-family: var(--pdc-font-display);
  font-weight: 500;
  font-size: max(14px, calc(var(--u) * 18));
  line-height: max(21.78px, calc(var(--u) * 28));
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.pdc-travel__text {
  font-family: var(--pdc-font-body);
  font-size: max(14px, calc(var(--u) * 18));
  line-height: max(20.14px, calc(var(--u) * 25.895));
  letter-spacing: -0.05em;
}
.pdc-travel__note {
  margin-top: calc(var(--u) * 4);
  opacity: 0.7;
}
.pdc-map-btn {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  gap: calc(var(--u) * 12);
  height: calc(var(--u) * 58);
  margin-top: calc(var(--u) * 16);
  padding: 0 calc(var(--u) * 34);
  border-radius: calc(var(--u) * 58);
  background: #e3e3e3;
  color: var(--pdc-black);
  font-family: var(--pdc-font-display);
  font-weight: 500;
  font-size: max(14px, calc(var(--u) * 18));
  letter-spacing: 0.03em;
  text-decoration: none;
  transition: background-color 0.2s ease;
}
.pdc-map-btn:hover {
  background: #d3d3d3;
}
.pdc-map-btn img {
  display: block;
  width: calc(var(--u) * 17);
  height: calc(var(--u) * 20);
}
.pdc-location__media {
  position: relative;
  flex: none;
  width: calc(var(--u) * 1185.224);
  height: calc(var(--u) * 886.01);
  margin: 0;
  overflow: hidden;
  border-radius: calc(var(--u) * 25.375) 0 0 calc(var(--u) * 25.375);
}
.pdc-location__media img {
  position: absolute;
  top: -1.19%;
  left: -4.78%;
  width: 114.81%;
  height: 102.39%;
  max-width: none;
}

/* ---------- Accommodation ---------- */
.pdc-stay {
  margin-top: calc(var(--u) * 41);
  padding-left: calc((100% - 2048 * var(--u)) / 2 + 252 * var(--u));
  background: var(--pdc-white);
  color: var(--pdc-black);
}
.pdc-stay__head {
  display: flex;
  flex-direction: column;
  gap: calc(var(--u) * 11.63);
  min-width: calc(var(--u) * 459.922);
  width: max-content;
  max-width: 100%;
}
.pdc-stay__title {
  font-family: var(--pdc-font-display);
  font-weight: 500;
  font-size: calc(var(--u) * 59.923);
  line-height: calc(var(--u) * 70.31);
}
.pdc-stay__text {
  font-family: var(--pdc-font-body);
  font-size: max(14px, calc(var(--u) * 19.031));
  line-height: max(19.05px, calc(var(--u) * 25.895));
  letter-spacing: -0.05em;
}
.pdc-stay__list {
  display: flex;
  align-items: flex-start;
  gap: calc(var(--u) * 62.38);
  margin: calc(var(--u) * 9.516) 0 0;
  padding: 0;
  list-style: none;
}
.pdc-stay__item {
  display: flex;
  flex: none;
  flex-direction: column;
  gap: calc(var(--u) * 26.432);
  width: calc(var(--u) * 479.095);
}
.pdc-stay__media {
  height: calc(var(--u) * 328.818);
  overflow: hidden;
  border-radius: calc(var(--u) * 10.573);
}
.pdc-stay__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.pdc-stay__media--placeholder {
  height: calc(var(--u) * 325.273);
  margin-bottom: calc(var(--u) * 3.172);
  border-radius: calc(var(--u) * 8.409);
  background: #d9d9d9;
}
.pdc-stay__name {
  font-family: var(--pdc-font-body);
  font-size: max(14px, calc(var(--u) * 22.283));
  line-height: max(19.05px, calc(var(--u) * 30.321));
  letter-spacing: -0.05em;
}

/* ---------- FAQ ---------- */
.pdc-faq {
  display: grid;
  grid-template-columns: calc(var(--u) * 511) calc(var(--u) * 1013);
  margin-top: calc(var(--u) * 114);
  padding-left: calc((100% - 2048 * var(--u)) / 2 + 261 * var(--u));
  background: var(--pdc-white);
  color: var(--pdc-black);
}
.pdc-faq__title {
  font-family: var(--pdc-font-display);
  font-weight: 500;
  font-size: calc(var(--u) * 59.923);
  line-height: calc(var(--u) * 70.31);
}
.pdc-faq__list {
  margin-top: calc(var(--u) * 102);
  border-top: 1px solid var(--pdc-black);
}
.pdc-faq__item {
  --faq-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --faq-dur: 0.65s;
  position: relative;
  border-bottom: 1px solid var(--pdc-black);
  transition: border-color 0.45s var(--faq-ease);
}
.pdc-faq__item.is-open {
  border-bottom-color: transparent;
}
/* ink line that draws across the row on hover / focus / open */
.pdc-faq__item::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 3px;
  background: var(--pdc-black);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.6s var(--faq-ease);
  pointer-events: none;
}
.pdc-faq__item:not(.is-open):has(.pdc-faq__q:focus-visible)::after {
  transform: scaleX(1);
}
@media (hover: hover) {
  .pdc-faq__item:not(.is-open):hover::after {
    transform: scaleX(1);
  }
}
.pdc-faq__heading {
  font: inherit;
}
.pdc-faq__q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(var(--u) * 24);
  width: 100%;
  padding: calc(var(--u) * 33.83) calc(var(--u) * 10.57);
  border: 0;
  border-bottom: 1px solid transparent;
  background: none;
  color: inherit;
  font-family: var(--pdc-font-display);
  font-weight: 500;
  font-size: max(14px, calc(var(--u) * 31.719));
  line-height: max(16.67px, calc(var(--u) * 37.778));
  text-align: left;
  cursor: pointer;
  transition: padding 0.55s var(--faq-ease), border-color 0.45s var(--faq-ease);
  -webkit-tap-highlight-color: transparent;
}
.pdc-faq__q:focus-visible {
  outline: 2px solid var(--pdc-black);
  outline-offset: -2px;
}
.pdc-faq__item.is-open > .pdc-faq__heading > .pdc-faq__q {
  padding: calc(var(--u) * 38.06) calc(var(--u) * 10.57) calc(var(--u) * 15.86);
  border-bottom-color: #ddd;
}
.pdc-faq__label {
  display: block;
  transition: transform 0.5s var(--faq-ease);
}
.pdc-faq__q:focus-visible .pdc-faq__label {
  transform: translateX(calc(var(--u) * 12));
}
@media (hover: hover) {
  .pdc-faq__q:hover .pdc-faq__label {
    transform: translateX(calc(var(--u) * 12));
  }
  .pdc-faq__q:hover .pdc-faq__icon {
    transform: translateY(calc(var(--u) * 4));
  }
  .pdc-faq__item.is-open > .pdc-faq__heading .pdc-faq__q:hover .pdc-faq__icon {
    transform: rotate(180deg) translateY(calc(var(--u) * 4));
  }
}
.pdc-faq__q:active .pdc-faq__label {
  transform: translateX(calc(var(--u) * 4));
  transition-duration: 0.15s;
}
.pdc-faq__icon {
  flex: none;
  width: calc(var(--u) * 40.18);
  height: calc(var(--u) * 40.18);
  margin: calc(var(--u) * -6.34) calc(var(--u) * -4.2) calc(var(--u) * -6.34) 0;
  background: url("../assets/icons/chevron-down.svg") center / 100% 100% no-repeat;
  transition: transform 0.7s cubic-bezier(0.34, 1.4, 0.5, 1);
}
.pdc-faq__q:focus-visible .pdc-faq__icon {
  transform: translateY(calc(var(--u) * 4));
}
.pdc-faq__item.is-open > .pdc-faq__heading .pdc-faq__icon {
  transform: rotate(180deg);
}

/* panel: animates 0fr -> 1fr so any answer length opens smoothly, no JS measuring */
.pdc-faq__panel {
  display: grid;
  grid-template-rows: 0fr;
  visibility: hidden;
  transition: grid-template-rows var(--faq-dur) var(--faq-ease), visibility 0s linear var(--faq-dur);
}
.pdc-faq__item.is-open > .pdc-faq__panel {
  grid-template-rows: 1fr;
  visibility: visible;
  transition-delay: 0s;
}
.pdc-faq__a {
  min-height: 0;
  overflow: hidden;
}
.pdc-faq__body {
  min-height: calc(var(--u) * 215.3);
  max-width: calc(var(--u) * 876);
  padding: calc(var(--u) * 37) calc(var(--u) * 10.57) 0 calc(var(--u) * 11.6);
  font-family: var(--pdc-font-body);
  font-size: max(14px, calc(var(--u) * 19.031));
  line-height: max(19.05px, calc(var(--u) * 25.9));
  letter-spacing: -0.05em;
}
.pdc-faq__body > * {
  opacity: 0;
  transform: translateY(calc(var(--u) * 14));
  transition: opacity 0.25s ease, transform 0.25s ease;
}
.pdc-faq__item.is-open .pdc-faq__body > * {
  opacity: 1;
  transform: none;
  transition: opacity 0.7s var(--faq-ease), transform 0.8s var(--faq-ease);
}
.pdc-faq__item.is-open .pdc-faq__body > :nth-child(1) { transition-delay: 0.12s; }
.pdc-faq__item.is-open .pdc-faq__body > :nth-child(2) { transition-delay: 0.2s; }
.pdc-faq__item.is-open .pdc-faq__body > :nth-child(3) { transition-delay: 0.28s; }
.pdc-faq__body p + p,
.pdc-faq__body p + dl {
  margin-top: calc(var(--u) * 16);
}
.pdc-faq__schedule > div {
  display: grid;
  grid-template-columns: calc(var(--u) * 150) 1fr;
  gap: calc(var(--u) * 16);
  padding: calc(var(--u) * 8) 0;
  border-top: 1px solid #ddd;
}
.pdc-faq__schedule > div:last-child {
  border-bottom: 1px solid #ddd;
}
.pdc-faq__schedule dt {
  font-weight: 700;
}
.pdc-faq__body em {
  font-style: italic;
}

@media (prefers-reduced-motion: reduce) {
  .pdc-faq__item,
  .pdc-faq__item::after,
  .pdc-faq__q,
  .pdc-faq__label,
  .pdc-faq__icon,
  .pdc-faq__panel,
  .pdc-faq__body > * {
    transition-duration: 0.01s !important;
    transition-delay: 0s !important;
  }
}

/* ---------- Final CTA ---------- */
.pdc-cta {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  margin: calc(var(--u) * 198) 0 0;
  overflow: hidden;
  background: var(--pdc-white);
}
.pdc-cta__panel {
  display: flex;
  justify-content: center;
  flex: 1 1 calc(var(--u) * 1018.667);
  width: calc(var(--u) * 1018.667);
  height: calc(var(--u) * 1022.933);
  padding: calc(var(--u) * 450.133) calc(var(--u) * 189.867) calc(var(--u) * 341.333) calc(var(--u) * 218.667);
  background: linear-gradient(to bottom, #000, #666);
  color: var(--pdc-white);
}
.pdc-cta__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(var(--u) * 55.467);
  width: calc(var(--u) * 610.133);
}
.pdc-cta__title {
  font-family: var(--pdc-font-display);
  font-weight: 500;
  font-size: calc(var(--u) * 50.859);
  line-height: calc(var(--u) * 61.867);
  text-align: center;
}
.pdc-cta__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: calc(var(--u) * 413.274);
  height: calc(var(--u) * 52.583);
  border-radius: calc(var(--u) * 58.842);
  background: #c3e531;
  color: var(--pdc-black);
  font-family: var(--pdc-font-display);
  font-weight: 500;
  font-size: max(14px, calc(var(--u) * 14.795));
  letter-spacing: 0.05em;
  text-decoration: none;
}
.pdc-cta__photo {
  position: relative;
  flex: 1 1 calc(var(--u) * 1029.333);
  width: calc(var(--u) * 1029.333);
  height: calc(var(--u) * 1021.867);
  margin: 0;
  overflow: hidden;
}
.pdc-cta__photo img {
  position: absolute;
  top: -9.4%;
  left: -73.31%;
  width: 181.57%;
  height: 121.99%;
  max-width: none;
}
/* Past the 2048px design canvas the photo box gets wider than the design: crop with cover instead. */
@media (min-width: 2049px) {
  .pdc-cta__photo img {
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 90% 43%;
  }
}

/* =====================================================================
   MOBILE (phones, < 768px). `m` = Figma pixel on the 440px-wide mobile design.
   Hero, About video and the statement block follow the mobile design exactly;
   every section after that is an inferred single-column layout in the same style.
   ===================================================================== */
@media (max-width: 767px) {
  .pdc {
    --m: calc(100vw / 440);
  }

  .pdc-eyebrow {
    font-size: max(11.0px, calc(var(--m) * 13.79));
    line-height: calc(var(--m) * 46.673);
    letter-spacing: 0.05em;
  }
  .pdc-h2 {
    font-size: max(24.0px, calc(var(--m) * 30.017));
    line-height: calc(var(--m) * 34.756);
  }

  /* ---------- Hero ---------- */
  .pdc-hero {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-end;
    min-height: 100vh;
    min-height: 100svh;
    padding: 0 0 calc(var(--m) * 20);
  }
  /* The hero is 100svh tall, so the mobile composition (photo, overlays, cutout) is pinned to the
     bottom of the hero, where the text sits: a shorter screen crops the top, a taller one adds black above. */
  .pdc-hero__bg {
    background: #000 url("../assets/mobile/hero-mobile.jpg") 73.75% 100% / calc(var(--m) * 872.4) auto no-repeat scroll;
  }
  .pdc-hero__bg::after {
    background:
      url("../assets/hero-lime-mobile.svg") 0 100% / 100% calc(var(--m) * 853.52) no-repeat,
      url("../assets/hero-vignette-mobile.svg") 0 100% / 100% calc(var(--m) * 853.52) no-repeat;
  }
  .pdc-hero__inner {
    position: static;
    width: 100%;
    padding: 0 0 0 calc(var(--m) * 26.89);
  }
  .pdc-hero__eyebrow {
    font-size: max(9.0px, calc(var(--m) * 11.224));
    line-height: calc(var(--m) * 15.889);
  }
  .pdc-hero__title {
    margin-top: calc(var(--m) * 2.4);
    font-size: max(27.0px, calc(var(--m) * 33.704));
    line-height: calc(var(--m) * 35.553);
  }
  .pdc-hero__intro {
    display: none;
  }
  .pdc-hero__bar {
    flex-direction: column;
    align-items: center;
    gap: 0;
    margin: calc(var(--m) * 12.5) 0 0 calc(var(--m) * -26.89);
    width: calc(100% + calc(var(--m) * 26.89));
  }
  .pdc-price {
    order: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: auto;
    height: auto;
    text-align: center;
  }
  .pdc-price > * {
    position: static;
  }
  .pdc-price__tag {
    width: calc(var(--m) * 114.436);
    height: calc(var(--m) * 12.874);
    padding: 0;
    border-radius: calc(var(--m) * 3.898);
    background: #c3e531;
    color: var(--pdc-black);
    font-size: max(6.7px, calc(var(--m) * 8.315));
    line-height: calc(var(--m) * 12.874);
    text-align: center;
  }
  .pdc-price__amount {
    height: calc(var(--m) * 32.185);
    margin-top: calc(var(--m) * 4.4);
    font-size: max(22.9px, calc(var(--m) * 28.609));
    line-height: calc(var(--m) * 32.185);
  }
  .pdc-price__cur {
    font-size: max(13.3px, calc(var(--m) * 16.61));
    font-weight: 700;
    line-height: 1;
  }
  .pdc-price__note {
    width: auto;
    margin-top: calc(var(--m) * 4.5);
    font-size: max(10.1px, calc(var(--m) * 12.652));
    line-height: calc(var(--m) * 18.336);
  }
  .pdc-price__note s {
    color: #c3e531;
  }
  .pdc-btn {
    order: 2;
    width: calc(var(--m) * 387.444);
    height: calc(var(--m) * 49.296);
    margin-top: calc(var(--m) * 10);
    border-radius: calc(var(--m) * 55.165);
    background: #c3e531;
    font-size: max(11.1px, calc(var(--m) * 13.87));
  }
  .pdc-meta {
    display: none;
  }
  .pdc-badge {
    top: calc(var(--m) * 57.23);
    right: auto;
    bottom: auto;
    left: calc(var(--m) * 34.22);
    width: calc(var(--m) * 371.148);
    height: calc(var(--m) * 237.535);
    border-radius: calc(var(--m) * 17.428);
  }
  .pdc-badge__by {
    top: calc(var(--m) * 49.66);
    font-size: max(13.2px, calc(var(--m) * 16.543));
  }
  .pdc-badge__word1 {
    top: calc(var(--m) * 91.6);
    font-size: max(50.6px, calc(var(--m) * 63.2));
  }
  .pdc-badge__word2 {
    top: calc(var(--m) * 140.57);
    font-size: max(48.3px, calc(var(--m) * 60.416));
  }
  .pdc-badge__sub {
    top: calc(var(--m) * 187.52);
    left: calc(var(--m) * 45.57);
    font-size: max(30.5px, calc(var(--m) * 38.082));
  }
  .pdc-hero__cutout {
    position: absolute;
    bottom: calc(var(--m) * 415.145);
    left: 0;
    display: block;
    width: 100%;
    height: calc(var(--m) * 176.815);
    overflow: hidden;
    pointer-events: none;
  }
  .pdc-hero__cutout img {
    position: absolute;
    top: -107.56%;
    left: -72.49%;
    width: 198.28%;
    height: 442.29%;
    max-width: none;
  }

  /* ---------- About ---------- */
  .pdc-about {
    gap: 0;
    min-height: 0;
    padding: calc(var(--m) * 38.5) 0 calc(var(--m) * 38);
  }
  .pdc-about .pdc-h2 {
    margin-top: calc(var(--m) * 0.77);
    font-size: max(24.0px, calc(var(--m) * 30.017));
  }
  .pdc-video-wrap {
    width: calc(var(--m) * 401);
    height: calc(var(--m) * 297);
    margin-top: calc(var(--m) * 24);
  }
  .pdc-video {
    border-radius: calc(var(--m) * 15.772);
  }
  .pdc-video__play {
    inset: calc(var(--m) * 177) 0 auto 0;
    gap: calc(var(--m) * 13.85);
    width: calc(var(--m) * 175.028);
    height: calc(var(--m) * 48.188);
    padding: 0 0 0 calc(var(--m) * 11.08);
    border-radius: calc(var(--m) * 55.389);
    font-size: max(10.2px, calc(var(--m) * 12.779));
    line-height: calc(var(--m) * 25.668);
  }
  .pdc-video__play img {
    width: calc(var(--m) * 28.802);
    height: calc(var(--m) * 28.802);
  }

  /* ---------- Statement ---------- */
  .pdc-statement {
    align-items: flex-start;
    justify-content: flex-start;
    gap: 0;
    min-height: 0;
    margin-top: 0;
    padding: 0 0 calc(var(--m) * 70);
    text-align: left;
  }
  .pdc-statement__copy {
    gap: calc(var(--m) * 14);
    width: auto;
    padding: 0 calc(var(--m) * 33) 0 calc(var(--m) * 42);
  }
  .pdc-statement__title {
    font-size: max(32.0px, calc(var(--m) * 40.02));
    line-height: calc(var(--m) * 46);
    letter-spacing: -0.02em;
  }
  .pdc-statement__title br,
  .pdc-statement__text br {
    display: none;
  }
  .pdc-statement__text {
    padding-left: calc(var(--m) * 1);
    font-size: max(14.4px, calc(var(--m) * 18));
    line-height: calc(var(--m) * 24.492);
  }
  .pdc-statement__steps {
    flex-direction: column;
    gap: calc(var(--m) * 26);
    width: calc(var(--m) * 368);
    margin: calc(var(--m) * 14) 0 0 calc(var(--m) * 48);
  }
  .pdc-step {
    align-items: flex-start;
    width: 100%;
  }
  .pdc-step__title {
    font-size: max(24.0px, calc(var(--m) * 30));
    line-height: calc(var(--m) * 64);
  }
  .pdc-step__text {
    min-height: 0;
    font-size: max(15.2px, calc(var(--m) * 19.031));
    line-height: calc(var(--m) * 25.895);
  }

  /* ---------- Benefits (inferred) ---------- */
  .pdc-benefits {
    min-height: 0;
    padding: calc(var(--m) * 80) calc(var(--m) * 26);
  }
  .pdc-benefits__inner {
    gap: calc(var(--m) * 44);
    width: 100%;
  }
  .pdc-benefits__head {
    gap: calc(var(--m) * 6);
  }
  .pdc-benefits__title {
    font-size: max(27.2px, calc(var(--m) * 34));
    line-height: calc(var(--m) * 40);
    letter-spacing: -0.02em;
  }
  .pdc-benefits__title br {
    display: none;
  }
  .pdc-benefits__grid {
    grid-template-columns: 1fr;
    gap: calc(var(--m) * 30);
  }
  .pdc-benefit {
    gap: calc(var(--m) * 16);
  }
  .pdc-benefit__icon {
    width: calc(var(--m) * 48);
    height: auto;
  }
  .pdc-benefit__body {
    gap: calc(var(--m) * 8);
    width: auto;
  }
  .pdc-benefit__title {
    font-size: max(19.2px, calc(var(--m) * 24));
    line-height: calc(var(--m) * 30);
  }
  .pdc-benefit__text {
    width: auto;
    font-size: max(13.6px, calc(var(--m) * 17));
    line-height: calc(var(--m) * 23.5);
  }

  /* ---------- Start seeing patterns (inferred) ---------- */
  .pdc-patterns {
    align-items: stretch;
    justify-content: flex-start;
    min-height: 0;
    padding: calc(var(--m) * 70) 0 0;
  }
  .pdc-patterns__head {
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--m) * 18);
    height: auto;
    padding: 0 calc(var(--m) * 26);
  }
  .pdc-patterns__title {
    font-size: max(32.0px, calc(var(--m) * 40.02));
    line-height: calc(var(--m) * 46);
    letter-spacing: -0.02em;
    white-space: normal;
  }
  .pdc-patterns__title br {
    display: none;
  }
  .pdc-patterns__text {
    width: auto;
    height: auto;
    font-size: max(14.4px, calc(var(--m) * 18));
    line-height: calc(var(--m) * 24.492);
  }
  .pdc-patterns__gallery {
    height: calc(var(--m) * 392);
    margin-top: calc(var(--m) * 34);
  }
  .pdc-patterns__row--top {
    top: 0;
    gap: calc(var(--m) * 14);
    margin-left: calc(var(--m) * -60);
  }
  .pdc-patterns__row--bottom {
    top: calc(var(--m) * 210);
    gap: calc(var(--m) * 14);
    margin-left: calc(var(--m) * -110);
  }
  .pdc-patterns__row--top .pdc-tile {
    height: calc(var(--m) * 190);
    border-radius: calc(var(--m) * 7);
  }
  .pdc-patterns__row--bottom .pdc-tile {
    height: calc(var(--m) * 160);
    border-radius: calc(var(--m) * 7);
  }
  .pdc-tile--w642 { width: calc(var(--m) * 286); }
  .pdc-tile--w341 { width: calc(var(--m) * 152); }
  .pdc-tile--w690 { width: calc(var(--m) * 308); }
  .pdc-tile--w367 { width: calc(var(--m) * 164); }
  .pdc-tile--w498 { width: calc(var(--m) * 222); height: calc(var(--m) * 160) !important; }

  /* ---------- Course outline (inferred) ---------- */
  .pdc-outline {
    margin-top: calc(var(--m) * 70);
    padding: 0 0 calc(var(--m) * 80);
  }
  .pdc-outline__inner {
    width: auto;
    margin-left: 0;
    padding: 0 calc(var(--m) * 26);
  }
  .pdc-outline .pdc-eyebrow {
    margin-bottom: 0;
  }
  .pdc-outline__title {
    font-size: max(32.0px, calc(var(--m) * 40.02));
    line-height: calc(var(--m) * 46);
    letter-spacing: -0.02em;
  }
  .pdc-outline__title br {
    display: none;
  }
  .pdc-outline__weekbar {
    flex-wrap: wrap;
    gap: calc(var(--m) * 12);
    height: auto;
    margin: calc(var(--m) * 28) 0 calc(var(--m) * 18);
  }
  .pdc-outline__week {
    font-size: max(12.0px, calc(var(--m) * 15));
    line-height: calc(var(--m) * 24);
  }
  .pdc-outline__download {
    gap: calc(var(--m) * 10);
    width: auto;
    height: calc(var(--m) * 44);
    padding: 0 calc(var(--m) * 16) 0 calc(var(--m) * 14);
    font-size: max(8.8px, calc(var(--m) * 11));
    line-height: calc(var(--m) * 13);
  }
  .pdc-outline__download img {
    width: calc(var(--m) * 17);
    height: calc(var(--m) * 22);
  }
  .pdc-day {
    grid-template-columns: 1fr;
    gap: calc(var(--m) * 12);
    padding: calc(var(--m) * 26) 0 calc(var(--m) * 30);
  }
  .pdc-day__num,
  .pdc-day__body {
    padding-top: 0;
  }
  .pdc-day__num {
    font-size: max(12.0px, calc(var(--m) * 15));
    line-height: calc(var(--m) * 20);
  }
  .pdc-day__title {
    font-size: max(19.2px, calc(var(--m) * 24));
    line-height: calc(var(--m) * 30);
    white-space: normal;
  }
  .pdc-day__title br,
  .pdc-day__text br {
    display: none;
  }
  .pdc-day__text {
    max-width: none;
    margin-top: calc(var(--m) * 8);
    font-size: max(12.8px, calc(var(--m) * 16));
    line-height: calc(var(--m) * 22);
  }
  .pdc-day__img {
    width: 100%;
    height: auto;
    aspect-ratio: 408.115 / 275.953;
    border-radius: calc(var(--m) * 14);
  }
  .pdc-outline__break {
    height: calc(var(--m) * 90);
    font-size: max(16.0px, calc(var(--m) * 20));
    line-height: calc(var(--m) * 26);
  }
  .pdc-outline__week--second {
    height: calc(var(--m) * 80);
  }

  /* ---------- Bill Mollison / manual (inferred) ---------- */
  .pdc-manual {
    padding: 0 calc(var(--m) * 26);
  }
  .pdc-manual__title {
    font-size: max(32.0px, calc(var(--m) * 40.02));
    line-height: calc(var(--m) * 46);
    letter-spacing: -0.02em;
  }
  .pdc-manual__row {
    flex-direction: column;
    align-items: stretch;
    gap: calc(var(--m) * 26);
    margin-top: calc(var(--m) * 32);
  }
  .pdc-manual__photo {
    width: 100%;
    height: auto;
    aspect-ratio: 710.5 / 662.629;
    border-radius: calc(var(--m) * 16);
  }
  .pdc-manual__body {
    gap: calc(var(--m) * 14);
    width: 100%;
  }
  .pdc-manual__heading {
    font-size: max(24.0px, calc(var(--m) * 30));
    line-height: calc(var(--m) * 36);
    white-space: normal;
  }
  .pdc-manual__heading br {
    display: none;
  }
  .pdc-manual__text {
    width: auto;
    font-size: max(14.4px, calc(var(--m) * 18));
    line-height: calc(var(--m) * 24.492);
  }
  .pdc-manual__text br {
    display: none;
  }
  .pdc-manual__avatar {
    width: calc(var(--m) * 88);
    height: calc(var(--m) * 88);
    border-radius: 50%;
  }

  /* ---------- Testimonials (inferred: swipeable row) ---------- */
  .pdc-testimonials {
    margin-top: calc(var(--m) * 80);
    padding-left: calc(var(--m) * 26);
  }
  .pdc-testimonials__title {
    font-size: max(32.0px, calc(var(--m) * 40.02));
    line-height: calc(var(--m) * 46);
    letter-spacing: -0.02em;
  }
  .pdc-testimonials {
    padding-right: 0;
  }
  .pdc-testimonials__nav {
    display: none;
  }
  .pdc-testimonials__list {
    gap: calc(var(--m) * 14);
    margin-top: calc(var(--m) * 28);
    padding-right: calc(var(--m) * 26);
  }
  .pdc-quote,
  .pdc-quote:nth-child(2) {
    gap: calc(var(--m) * 14);
    width: calc(var(--m) * 250);
    scroll-snap-align: start;
  }
  .pdc-quote__media {
    width: calc(var(--m) * 250);
    height: calc(var(--m) * 375);
    border-radius: calc(var(--m) * 10);
  }
  .pdc-quote__play {
    top: calc(var(--m) * 195);
    left: calc(var(--m) * 95);
    width: calc(var(--m) * 60);
    height: calc(var(--m) * 60);
  }
  .pdc-quote__text {
    font-size: max(12.8px, calc(var(--m) * 16));
    line-height: calc(var(--m) * 22);
  }
  .pdc-quote__caption {
    gap: calc(var(--m) * 10);
  }
  .pdc-quote__name {
    font-size: max(10.0px, calc(var(--m) * 12.5));
    line-height: calc(var(--m) * 18);
  }

  /* ---------- Location (inferred) ---------- */
  .pdc-location {
    flex-direction: column-reverse;
    justify-content: flex-start;
    gap: calc(var(--m) * 26);
    max-width: none;
    margin: calc(var(--m) * 80) 0 0;
  }
  .pdc-location__body {
    gap: calc(var(--m) * 6);
    width: auto;
    padding: 0 calc(var(--m) * 26);
  }
  .pdc-location__title {
    font-size: max(32.0px, calc(var(--m) * 40.02));
    line-height: calc(var(--m) * 46);
    letter-spacing: -0.02em;
  }
  .pdc-location__text {
    font-size: max(14.4px, calc(var(--m) * 18));
    line-height: calc(var(--m) * 24.492);
  }
  .pdc-location__text br {
    display: none;
  }
  .pdc-travel {
    gap: calc(var(--m) * 22);
    margin-top: calc(var(--m) * 20);
  }
  .pdc-travel__item {
    gap: calc(var(--m) * 16);
  }
  .pdc-travel__icon {
    width: 18px;
    height: 18px;
    margin-top: calc((var(--m) * 26 - 18px) / 2);
  }
  .pdc-travel__label {
    font-size: max(11.2px, calc(var(--m) * 14));
    line-height: calc(var(--m) * 26);
  }
  .pdc-travel__text {
    font-size: max(13.2px, calc(var(--m) * 16.5));
    line-height: calc(var(--m) * 23);
  }
  .pdc-travel__note {
    margin-top: calc(var(--m) * 3);
  }
  .pdc-map-btn {
    gap: calc(var(--m) * 10);
    height: calc(var(--m) * 52);
    margin-top: calc(var(--m) * 14);
    padding: 0 calc(var(--m) * 30);
    border-radius: calc(var(--m) * 52);
    font-size: max(12.0px, calc(var(--m) * 15));
  }
  .pdc-map-btn img {
    width: calc(var(--m) * 15);
    height: calc(var(--m) * 18);
  }
  .pdc-location__media {
    width: auto;
    height: calc(var(--m) * 300);
    margin: 0 calc(var(--m) * 26);
    border-radius: calc(var(--m) * 16);
  }

  /* ---------- Accommodation (inferred) ---------- */
  .pdc-stay {
    margin-top: calc(var(--m) * 80);
    padding: 0 calc(var(--m) * 26);
  }
  .pdc-stay__head {
    gap: calc(var(--m) * 6);
    width: auto;
  }
  .pdc-stay__title {
    font-size: max(32.0px, calc(var(--m) * 40.02));
    line-height: calc(var(--m) * 46);
    letter-spacing: -0.02em;
  }
  .pdc-stay__text {
    font-size: max(14.4px, calc(var(--m) * 18));
    line-height: calc(var(--m) * 24.492);
  }
  .pdc-stay__text br,
  .pdc-stay__title br {
    display: none;
  }
  .pdc-stay__list {
    flex-direction: column;
    gap: calc(var(--m) * 28);
    margin-top: calc(var(--m) * 26);
  }
  .pdc-stay__item {
    gap: calc(var(--m) * 12);
    width: 100%;
  }
  .pdc-stay__media,
  .pdc-stay__media--placeholder {
    height: calc(var(--m) * 230);
    margin-bottom: 0;
    border-radius: calc(var(--m) * 12);
  }
  .pdc-stay__name {
    font-size: max(14.4px, calc(var(--m) * 18));
    line-height: calc(var(--m) * 24);
  }

  /* ---------- FAQ (inferred) ---------- */
  .pdc-faq {
    display: block;
    margin-top: calc(var(--m) * 90);
    padding: 0 calc(var(--m) * 26);
  }
  .pdc-faq__title {
    font-size: max(32.0px, calc(var(--m) * 40.02));
    line-height: calc(var(--m) * 46);
    letter-spacing: -0.02em;
  }
  .pdc-faq__list {
    margin-top: calc(var(--m) * 26);
  }
  .pdc-faq__q {
    gap: calc(var(--m) * 12);
    padding: calc(var(--m) * 20) calc(var(--m) * 4);
    font-size: max(16.0px, calc(var(--m) * 20));
    line-height: calc(var(--m) * 26);
  }
  .pdc-faq__icon {
    width: calc(var(--m) * 28);
    height: calc(var(--m) * 28);
    margin: 0;
  }
  .pdc-faq__item.is-open > .pdc-faq__heading > .pdc-faq__q {
    padding: calc(var(--m) * 22) calc(var(--m) * 4) calc(var(--m) * 14);
  }
  .pdc-faq__q:hover .pdc-faq__label,
  .pdc-faq__q:focus-visible .pdc-faq__label {
    transform: none;
  }
  .pdc-faq__body {
    min-height: 0;
    max-width: none;
    padding: calc(var(--m) * 18) calc(var(--m) * 4) calc(var(--m) * 24);
    font-size: max(12.8px, calc(var(--m) * 16));
    line-height: calc(var(--m) * 22);
  }
  .pdc-faq__body p + p,
  .pdc-faq__body p + dl {
    margin-top: calc(var(--m) * 12);
  }
  .pdc-faq__schedule > div {
    grid-template-columns: calc(var(--m) * 104) 1fr;
    gap: calc(var(--m) * 12);
    padding: calc(var(--m) * 8) 0;
  }

  /* ---------- Final CTA (inferred) ---------- */
  .pdc-cta {
    flex-direction: column;
    align-items: stretch;
    max-width: none;
    margin: calc(var(--m) * 90) 0 0;
  }
  .pdc-cta__panel {
    flex: none;
    justify-content: center;
    width: 100%;
    height: auto;
    padding: calc(var(--m) * 64) calc(var(--m) * 26) calc(var(--m) * 72);
  }
  .pdc-cta__inner {
    gap: calc(var(--m) * 30);
    width: 100%;
  }
  .pdc-cta__title {
    font-size: max(27.2px, calc(var(--m) * 34));
    line-height: calc(var(--m) * 42);
  }
  .pdc-cta__title br {
    display: none;
  }
  .pdc-cta__btn {
    width: 100%;
    max-width: calc(var(--m) * 387.444);
    height: calc(var(--m) * 49.296);
    border-radius: calc(var(--m) * 55.165);
    font-size: max(11.1px, calc(var(--m) * 13.87));
  }
  .pdc-cta__photo {
    flex: none;
    width: 100%;
    height: auto;
    aspect-ratio: 1029.333 / 1021.867;
  }
}

/* ---------- Full-height sections (desktop / tablet) ----------
   These sections are at least one screen tall (100svh) so they still fill tall and ultra-wide
   monitors, where the 2048px-wide design would otherwise leave them shorter than the window.
   Content is centred vertically. On short windows the design's own height / spacing wins. */
@media (min-width: 768px) {
  .pdc-about {
    justify-content: center;
    min-height: max(calc(var(--u) * 1165), 100vh);
    min-height: max(calc(var(--u) * 1165), 100svh);
  }
  /* Gap between the heading and the video (flex gap calc(var(--u) * 23) + this margin). The 3D mouse tilt can lift the
     video's top edge by ~97px at 1440 wide / ~173px at 2048, so a small gap lets it brush the title at the
     extreme tilt. This is half of the earlier "never overlaps" gap: max(80px, calc(var(--u) * 232) - 52px) + calc(var(--u) * 23), halved. */
  .pdc-about {
    padding-bottom: calc(var(--u) * 40);
  }
  /* "Stripped back" layout: no video, so About is just a heading and needn't fill a whole screen. */
  .pdc-about.pdc-about--no-video {
    min-height: 0;
    padding: calc(var(--u) * 220) 24px calc(var(--u) * 40);
  }
  .pdc-video-wrap {
    margin-top: calc(max(40px, calc(calc(var(--u) * 116) - 26px)) - calc(var(--u) * 11.5));
  }
  .pdc-statement {
    min-height: max(calc(var(--u) * 1159), 100vh);
    min-height: max(calc(var(--u) * 1159), 100svh);
  }
  .pdc-benefits {
    min-height: max(calc(var(--u) * 1150), 100vh);
    min-height: max(calc(var(--u) * 1150), 100svh);
  }
  .pdc-patterns {
    min-height: max(calc(var(--u) * 1268), 100vh);
    min-height: max(calc(var(--u) * 1268), 100svh);
  }
  .pdc-manual,
  .pdc-testimonials,
  .pdc-stay {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 100vh;
    min-height: 100svh;
  }
  /* accommodation is a shorter band: 60% of the screen */
  .pdc-stay {
    min-height: 60vh;
    min-height: 60svh;
    padding-block: 0;
  }
  .pdc-manual {
    padding-block: calc(var(--u) * 60);
  }
  .pdc-testimonials {
    margin-top: 0;
    padding-block: calc(var(--u) * 60);
  }
  .pdc-stay {
    margin-top: 0;
  }
  /* Location runs edge to edge: text stays on the 2048px content column, the photo grows to the
     right edge of the screen on wider monitors. */
  .pdc-location {
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    max-width: none;
    min-height: 100vh;
    min-height: 100svh;
    margin-top: 0;
    padding-block: calc(var(--u) * 60);
    padding-left: calc((100% - 2048 * var(--u)) / 2 + 244.26 * var(--u));
  }
  /* Keep the photo's design proportions (1185.224 x 886.01): the box grows in width AND height together,
     so nothing is stretched or re-cropped on wide screens. */
  .pdc-location__media {
    flex: 1 1 0;
    width: auto;
    min-width: calc(var(--u) * 1185.224);
    height: auto;
    aspect-ratio: 1185.224 / 886.01;
  }
}
