/* Photography-led hero. All selectors are scoped to this section. */
.cx-photo-hero {
  --photo-x: 0px;
  --photo-y: 0px;
  --content-x: 0px;
  --content-y: 0px;
  --reveal-x: 70%;
  --reveal-y: 45%;
  --reveal-radius: 360px;
  --reveal-opacity: 0;
  height: 100svh;
  min-height: 700px;
  padding: 0;
  background: #07080c;
}
.cx-photo-media {
  position: absolute;
  inset: -12px;
  z-index: 0;
  transform: translate3d(var(--photo-x), var(--photo-y), 0);
  will-change: transform;
}
/* The same containing box and crop register both original photographs exactly. */
.cx-photo-media > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: 50% 50%;
  user-select: none;
  pointer-events: none;
}
.cx-photo-color {
  display: none;
}
.cx-photo-base { z-index: 0; }
.cx-photo-reveal { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; pointer-events: none; opacity: 1; }
.cx-photo-shade, .cx-photo-ambient {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
}
.cx-photo-shade {
  background: linear-gradient(0deg, #07080cd9, transparent 20%), linear-gradient(90deg, #07080c35, transparent 47%);
}
.cx-photo-ambient {
  opacity: .025;
  background: radial-gradient(ellipse 650px 580px at 68% 48%, #9baac5, transparent 75%);
  mask-image: linear-gradient(90deg, #000, transparent 62%);
}
.cx-photo-hero > .cx-grain { z-index: 2; opacity: .017; }
.cx-editorial-content {
  position: absolute;
  z-index: 3;
  left: 5.5%;
  top: 49%;
  width: 42%;
  max-width: 800px;
  transform: translate3d(var(--content-x), calc(-50% + var(--content-y)), 0);
}
.cx-editorial-kicker {
  display: flex;
  align-items: center;
  gap: 23px;
  margin-bottom: clamp(28px, 4.1vh, 48px) !important;
  color: #b9bbc3;
  font-size: clamp(9px, .63vw, 12px);
  line-height: 1.8;
  letter-spacing: .22em;
  text-transform: uppercase;
}
.cx-editorial-kicker::before {
  content: '';
  width: 2px;
  height: 32px;
  background: #ff744d;
  transform: rotate(20deg);
  margin-inline: 5px;
}
.cx-editorial-content h1 {
  margin: 0;
  font-family: Manrope, sans-serif;
  font-size: clamp(39px, 3.5vw, 76px);
  line-height: 1.12;
  font-weight: 400;
  letter-spacing: -.055em;
  text-transform: none;
}
.cx-editorial-content h1 > span { display: block; white-space: nowrap; }
.cx-editorial-content h1 em {
  display: block;
  margin: 3px 0 0 -3px;
  font: italic 400 1.09em/1.12 Georgia, 'Times New Roman', serif;
  letter-spacing: -.048em;
  color: #ff744d;
  white-space: nowrap;
}
.cx-editorial-summary {
  max-width: 590px;
  width: 84%;
  margin-top: clamp(25px, 3.5vh, 40px) !important;
  font-size: clamp(15px, 1.08vw, 21px);
  line-height: 1.65;
  letter-spacing: -.015em;
  color: #b9bac2;
}
.cx-editorial-action { display: flex; align-items: center; gap: 28px; margin-top: clamp(28px, 4.4vh, 48px); }
.cx-photo-hero .cx-cta { background: transparent; box-shadow: none; min-height: 59px; padding-inline: 27px; font-size: 14px; gap: 36px; border-color: #ddd9d166; }
.cx-photo-hero .cx-cta::after { display: none; }
.cx-photo-hero .cx-cta:hover { background: #f2f0eb08; border-color: #ff744d; }
.cx-editorial-action > p { padding-left: 25px; border-left: 1px solid #f2f0eb30; font-size: 9px; line-height: 1.8; letter-spacing: .14em; text-transform: uppercase; color: #a7a9b2; }
.cx-photo-signature { position: absolute; z-index: 3; left: 60%; bottom: 140px; font: 400 14px/1.7 Manrope, sans-serif; color: #f2f0ebbb; }
.cx-photo-signature span { display: block; font: 9px/1.8 'DM Sans', sans-serif; letter-spacing: .14em; color: #a7a9b2; text-transform: uppercase; }
.cx-photo-footer { position: absolute; z-index: 3; left: 5.5%; right: 5.5%; bottom: 29px; padding-top: 25px; border-top: 1px solid #f2f0eb24; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.cx-photo-focus { display: flex; align-items: center; gap: 28px; }
.cx-focus-label { display: flex; align-items: center; gap: 16px; flex-shrink: 0; font-size: 9px; line-height: 1.5; letter-spacing: .19em; text-transform: uppercase; color: #a7a9b2; }
.cx-focus-label::before { content: ''; width: 19px; height: 2px; background: #ff744d; }
.cx-photo-focus ul { display: flex; gap: 0; padding: 0; margin: 0; list-style: none; }
.cx-photo-focus li { padding: 10px clamp(14px, 1.65vw, 32px); border-left: 1px solid #f2f0eb20; color: #b9bac2; font-size: clamp(11px, .82vw, 15px); line-height: 1.5; white-space: nowrap; }
.cx-photo-footer .cx-availability { gap: 12px; font-size: 8px; line-height: 1.6; letter-spacing: .16em; text-transform: uppercase; white-space: nowrap; }
.cx-photo-footer .cx-availability i { width: 8px; height: 8px; box-shadow: none; }
@media (min-width: 1700px) {
  .cx-photo-hero .cx-cta { min-height: 69px; font-size: 16px; padding-inline: 31px; }
  .cx-editorial-action > p { font-size: 10px; }
  .cx-photo-footer { bottom: 39px; padding-top: 29px; }
  .cx-photo-footer .cx-availability { font-size: 9px; }
}
@media (max-width: 1250px) and (min-width: 761px) {
  .cx-photo-footer { flex-wrap: wrap; row-gap: 13px; bottom: 22px; padding-top: 18px; }
  .cx-photo-focus { width: 100%; justify-content: space-between; gap: 15px; }
  .cx-photo-focus ul { flex: 1; justify-content: space-between; }
  .cx-photo-focus li { padding-inline: 14px; }
  .cx-photo-footer .cx-availability { margin-left: auto; }
  .cx-photo-signature { bottom: 160px; }
}
@media (max-height: 800px) and (min-width: 1101px) {
  .cx-photo-hero { min-height: 660px; }
  .cx-editorial-content { top: 49%; }
  .cx-editorial-kicker { margin-bottom: 24px !important; }
  .cx-editorial-summary { margin-top: 23px !important; }
  .cx-editorial-action { margin-top: 27px; }
}
@media (min-width: 761px) and (max-width: 1100px) {
  .cx-editorial-content { width: 47%; left: 5%; top: 47%; }
  .cx-editorial-content h1 { font-size: 3.85vw; }
  .cx-editorial-summary { font-size: 15px; width: 85%; }
  .cx-editorial-action { gap: 15px; }
  .cx-editorial-action > p { font-size: 8px; padding-left: 15px; }
  .cx-photo-hero .cx-cta { padding-inline: 20px; gap: 25px; font-size: 12px; min-height: 54px; }
  .cx-photo-media > img { object-position: 88% center; }
  .cx-photo-shade { background: linear-gradient(0deg, #07080cd9, transparent 20%), linear-gradient(90deg, #07080c80, #07080c30 38%, transparent 62%); }
}
/* Portrait viewports use a dedicated photographic stage above the text. */
@media (max-width: 760px), (max-width: 1100px) and (max-aspect-ratio: 1/1) {
  .cx-photo-hero { height: auto; min-height: 100svh; padding: 405px 6% 25px; }
  .cx-photo-media { inset: 88px 0 auto; height: 390px; transform: none; }
  .cx-photo-media > img { object-position: 88% 40%; }
  .cx-photo-shade { background: linear-gradient(180deg, #07080c 70px, transparent 155px, transparent 295px, #07080c 460px); }
  .cx-editorial-content { position: relative; left: auto; top: auto; width: 100%; max-width: none; transform: none; }
  .cx-editorial-kicker { font-size: 8px; margin-bottom: 22px !important; gap: 17px; }
  .cx-editorial-kicker::before { height: 26px; }
  .cx-editorial-content h1 { font-size: clamp(28px, 7.2vw, 55px); line-height: 1.12; }
  .cx-editorial-content h1 em { margin-left: -1px; }
  .cx-editorial-summary { width: 100%; max-width: 600px; font-size: 14px; line-height: 1.65; margin-top: 22px !important; }
  .cx-editorial-action { margin-top: 25px; gap: 18px; }
  .cx-photo-hero .cx-cta { min-height: 51px; font-size: 12px; padding-inline: 20px; gap: 27px; }
  .cx-editorial-action > p { font-size: 7px; letter-spacing: .08em; padding-left: 16px; }
  .cx-photo-signature { top: 139px; left: 6%; bottom: auto; font-size: 11px; max-width: 110px; line-height: 1.5; }
  .cx-photo-signature span { font-size: 7px; letter-spacing: .08em; margin-top: 6px; }
  .cx-photo-footer { position: relative; inset: auto; padding-top: 22px; margin-top: 34px; display: block; }
  .cx-photo-focus { display: block; }
  .cx-focus-label { font-size: 8px; }
  .cx-photo-focus ul { flex-wrap: wrap; gap: 9px 0; margin-top: 15px; }
  .cx-photo-focus li { border: 0; padding: 0 13px 0 0; margin-right: 12px; border-right: 1px solid #f2f0eb25; font-size: 10px; }
  .cx-photo-focus li:last-child { border: 0; }
  .cx-photo-footer .cx-availability { margin-top: 23px; font-size: 7px; letter-spacing: .1em; }
}
@media (min-width: 761px) and (max-width: 1100px) and (max-aspect-ratio: 1/1) {
  .cx-photo-hero { padding-top: 540px; }
  .cx-photo-media { top: 60px; height: 610px; }
  .cx-photo-shade { background: linear-gradient(180deg, #07080c 20px, transparent 150px, transparent 410px, #07080c 640px); }
  .cx-editorial-content h1 { font-size: 5.8vw; }
  .cx-editorial-summary { font-size: 17px; }
  .cx-photo-signature { top: 175px; font-size: 16px; max-width: none; }
  .cx-photo-signature span { font-size: 9px; }
  .cx-photo-focus ul { justify-content: flex-start; }
  .cx-photo-focus li { font-size: 12px; }
}
@media (max-width: 360px) {
  .cx-photo-hero { padding-top: 365px; }
  .cx-photo-media { height: 350px; }
  .cx-photo-shade { background: linear-gradient(180deg, #07080c 70px, transparent 150px, transparent 260px, #07080c 420px); }
  .cx-editorial-content h1 { font-size: 7.1vw; }
  .cx-editorial-action > p { display: none; }
}
@media (hover: none), (pointer: coarse) {
  .cx-photo-color, .cx-photo-ambient { display: none; }
  .cx-photo-reveal { display: none !important; }
  .cx-photo-base { display: block !important; opacity: 1 !important; visibility: visible !important; }
  .cx-photo-media, .cx-editorial-content { will-change: auto; }
}
@media (max-width: 760px) {
  .cx-photo-color, .cx-photo-ambient { display: none; }
  .cx-photo-reveal { display: none !important; }
  .cx-photo-media { background: #07080c url('assets/Firefly-2.jpg') 88% 40% / cover no-repeat; }
  .cx-photo-base { display: block !important; opacity: 1 !important; visibility: visible !important; }
}
@media (prefers-reduced-motion: reduce) {
  .cx-photo-media { transform: none; }
  .cx-editorial-content { --content-x: 0px; --content-y: 0px; }
  .cx-photo-ambient { display: none; }
}
