:root{
  --font-primary: "Noto Sans Display", sans-serif;
  --font-tertiary: "Marcellus", "Noto Sans Display", sans-serif;
  --font-cursive: "Yellowtail", cursive;
  --color-primary: #fbe0b6;
  --color-secondary: #0a1b2e;
  --color-tertiary: #be7e21;
  --color-quaternary: #c7bcac;
  --color-dark-strong: #0d1620;
}

*{box-sizing:border-box;-webkit-font-smoothing:antialiased;}
html{height:auto;font-size:16px;scroll-behavior:smooth;}
html.lenis{height:auto;scroll-behavior:initial;}
.lenis.lenis-smooth{scroll-behavior:auto;}
body{
  margin:0;padding:0;
  font-family: var(--font-primary);
  color:#fff;
  user-select:none;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
h1,h2{margin:0;padding:0;}
p{margin:0;}
section{overflow:hidden;}

/* ---------- Lenis scroll container ---------- */
.scroll-container{
  position: relative;
  width: 100%;
  height: 100vh;
  overflow-y: scroll;
}
.scroll-container article{position:relative;}
.scroll-container::-webkit-scrollbar{width:3px;}
.scroll-container::-webkit-scrollbar-track{background-color:rgba(0,0,0,.1);}
.scroll-container::-webkit-scrollbar-thumb{background-color:var(--color-tertiary);}

.o-wrapper{
  width:85%;
  max-width:1520px;
  margin:auto;
}
@media (min-width: 1024px){ .o-wrapper{ width:90%; } }
@media (min-width: 1600px){ .o-wrapper{ width:95%; } }
.o-wrapper--max{max-width:1064px;}

/* ---------- Preloader ---------- */
#preloader{
  position:fixed;inset:0;z-index:9999;
  background:var(--color-secondary);
  display:flex;align-items:center;justify-content:center;
  transition: opacity .8s ease, visibility .8s ease;
}
#preloader.is-hidden{opacity:0;visibility:hidden;pointer-events:none;}
.preloader__logo img{
  width:140px;
  filter: brightness(0) invert(1);
  animation: pulse 1.6s ease-in-out infinite;
}
@keyframes pulse{
  0%,100%{transform:scale(1);opacity:.6;}
  50%{transform:scale(1.06);opacity:1;}
}

/* ---------- Navbar ---------- */
.navbar{
  position:fixed;top:0;left:0;width:100%;z-index:9999;
  padding: 0;
  background-color: #0a1b2ecc;
  backdrop-filter: blur(60px);
  -webkit-backdrop-filter: blur(60px);
  transition: all .75s;
}
@media (min-width: 1024px){ .navbar{ padding:10px 0; } }

/* While the hero (screen 1) is in view, the navbar has no background at
   all — it only turns into the frosted glass panel once you scroll past
   it. Toggled by an IntersectionObserver watching #hero (see script.js). */
body.is--nav-transparent .navbar{
  background-color: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  padding: 0;
}
@media (min-width: 1024px){
  body.is--nav-transparent .navbar{ padding:20px 0; }
}

.navbar > .o-wrapper{
  display:flex;flex-direction:row;align-items:center;justify-content:space-between;
  width:100%;max-width:1680px;
}
@media (min-width: 1024px){ .navbar > .o-wrapper{ width:95%; } }
.navbar__logo{
  width:30px;
  margin:16px 10px 10px 20px;
}
@media (min-width: 1024px){ .navbar__logo{ width:180px; margin:0 10px 10px 20px; } }
.navbar__menu > ul{
  display:flex;gap:2.6rem;
}
.navbar__menu a span{
  font-family: var(--font-tertiary);
  font-size:.875rem;
  letter-spacing:.125em;
  text-transform:uppercase;
  color:#fff;
  font-weight:400;
  position:relative;
  padding-bottom:4px;
}
.navbar__menu a span::after{
  content:"";position:absolute;left:0;bottom:0;width:0;height:1px;
  background:var(--color-primary);transition:width .35s ease;
}
.navbar__menu a:hover span::after{width:100%;}

.header__trigger{
  position:fixed;top:0;right:0;width:90px;height:70px;z-index:99990;
  display:flex;justify-content:center;align-items:center;
  font-family: var(--font-tertiary);
  font-weight:700;text-transform:uppercase;letter-spacing:.125em;
  color:#fff;
}
@media (min-width: 1024px){ .header__trigger{ display:none; } }

.navbar__menu li.has-submenu{position:relative;}
.navbar__menu .submenu{
  display:none;
  position:absolute;top:100%;left:0;padding-top:14px;
  min-width:140px;
}
.navbar__menu li.has-submenu:hover .submenu{display:block;}
.navbar__menu .submenu li{
  background:#0a1b2ecc;backdrop-filter:blur(20px);
  padding:10px 16px;
}
.navbar__menu .submenu a span{font-size:.75rem;}

.navbar__menu a.lang{
  font-family: var(--font-tertiary);
  font-size:.75rem;
  letter-spacing:.125em;
  color:#fff;
  border:1px solid rgba(255,255,255,.4);
  border-radius:100px;
  padding:6px 16px;
  display:inline-block;
}
.navbar__menu a.lang span::after{display:none;}

/* ---------- Hero ---------- */
.header{
  position:relative;
  height:100vh;
  min-height:600px;
  width:100%;
}
.header:before,.header:after{
  display:block;content:"";position:absolute;top:0;left:0;z-index:1;
  width:100%;height:100%;
}
.header:before{
  background:linear-gradient(180deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,.1) 50%);
}
.header:after{
  background:linear-gradient(30deg,rgba(0,0,0,.5) 0%,rgba(0,0,0,.2) 50%);
}
.o-videobg{
  position:absolute;
  top:0;left:0;
  width:100%;height:100%;
  object-fit:cover;
  z-index:0;
  filter: brightness(.62);
}

.header__heading{
  position:relative;z-index:2;
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.header .o-wrapper{width:100%;}
@media (min-width: 1024px){ .header .o-wrapper{width:95%;} }

.header__icons{position:relative;z-index:2;}
.header__icons > div{position:relative;}

.header h1{
  color:#fff;
  font: 400 clamp(27px, 5vw, 60px)/1.25 var(--font-tertiary);
  text-align:center;
  text-transform:uppercase;
  letter-spacing:.25em;
  max-width:100%;
  margin-top:-2%;
}
@media (min-width: 768px){ .header h1{ margin-top:-5%; } }
@media (min-width: 1256px){ .header h1{ margin-top:0; } }

/* .c-badge is a zero-size anchor POINT (not a box) — the ring and the
   center logo each self-center on it independently via translate(-50%,-50%),
   so neither depends on the other's size to land in the right spot. */
.c-badge{
  position:absolute;
  z-index:3;
}
.header .c-badge{ bottom: 13vh; left:50%; }
@media (min-width: 1024px){
  .header .c-badge{ bottom:172px; left:55px; }
}
.c-badge__wrapper{
  position:relative;
  width:0;height:0;
}
/* Geometry measured from the original ring (111x110): text baseline on
   r=47, cap tops at r=55, text stretched over the full 2πr ≈ 295px. */
.badge-ring-wrap{
  position:absolute;
  top:0;left:0;
  width:110px;height:110px;
  transform:translate(-50%,-50%);
}
.badge-ring{
  display:block;
  width:100%;height:100%;
  overflow:visible;
  color: var(--color-primary);
}
.badge-ring__text{
  font-family: var(--font-primary);
  font-size:11.2px;
  font-weight:400;
  text-transform:uppercase;
}
.badge-iso{
  position:absolute;
  top:0;left:0;
  width:auto;height:49px;max-width:none;
  transform:translate(-50%,-50%);
}
@media (min-width: 1024px){
  .badge-iso{height:61px;}
}
.u-rotate{animation:rotation 9s;}
.u-linear{animation-timing-function:linear;}
.u-infinite{animation-iteration-count:infinite;}
@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}

/* Same 49x171 box, offsets and scale as the original arrow image. */
.c-arrow{
  position:absolute;
  z-index:3;
  bottom:-80px; right:10px;
  width:49px;height:171px;
  transform:scale(.75);
  color: var(--color-primary);
}
@media (min-width: 768px){
  .c-arrow{ bottom:-50px; right:50px; }
}

/* ---------- Brand / Screen 2 ---------- */
.o-section{
  position:relative;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  width:100%;
  padding: 45vw 0;
}
@media (min-width: 768px){
  .o-section{ padding: 15% 0; }
}

.c-brand{
  background: var(--color-secondary);
}
.c-brand .bg-container{
  position:absolute;
  top:0;left:0;
  width:100%;height:100%;
  z-index:0;
  overflow:hidden;
  pointer-events:none;
}
@media (min-width: 1024px){ .c-brand .bg-container{ top:10%; } }

/* Mirrors the original's background-image rules for its lettering art:
   size 250% / left center → 100% → 85% → 90%, always vertically centered. */
.c-brand .bg-text{
  position:absolute;
  top:50%;left:0;
  width:250%;height:auto;
  transform:translateY(-50%);
  overflow:visible;
}
@media (min-width: 768px){
  .c-brand .bg-text{ width:100%; left:50%; transform:translate(-50%,-50%); }
}
@media (min-width: 1024px){ .c-brand .bg-text{ width:85%; } }
@media (min-width: 1256px){ .c-brand .bg-text{ width:90%; } }
.c-brand .bg-text text{
  font-family: var(--font-tertiary);
  font-size:187px;
  fill:#071626;
}

.o-row{
  position:relative;z-index:2;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
@media (min-width: 768px){
  .o-row{ flex-direction:row; }
  .c-brand .o-row{ align-items:flex-end; margin-top:-10%; }
}

h2{
  font: 400 clamp(32px, 8vw, 36px)/1.25 var(--font-tertiary);
  letter-spacing:.125em;
  text-transform:uppercase;
  margin-bottom:60px;
  color: var(--color-primary);
}
@media (min-width: 1024px){ h2{ line-height:1.2; margin-bottom:0; } }
@media (min-width: 1256px){ h2{ font-size:clamp(32px, 8vw, 48px); } }
@media (min-width: 1440px){ h2{ font-size:clamp(32px, 8vw, 60px); } }
h2 span{display:block;}

h3{
  font: 400 21px/1 var(--font-tertiary);
  letter-spacing:.125em;
  text-transform:uppercase;
  color: var(--color-tertiary);
}
h4{
  font: 400 21px/1.4 var(--font-tertiary);
  letter-spacing:.125em;
  text-transform:uppercase;
  color: var(--color-primary);
}
.u-cursive{
  font-family: var(--font-cursive);
  letter-spacing:0;
  text-transform:none;
}

.c-brand .o-row picture{padding-top:60px;}
.reveal{display:block;position:relative;overflow:hidden;}
.reveal img{display:block;width:100%;clip-path:inset(0 100% 0 0);will-change:clip-path;}
.c-brand__img{
  width:100%;
  aspect-ratio: 320 / 407;
  object-fit:cover;
}
@media (min-width: 480px){ .c-brand__img{ max-width:33vw; } }
@media (min-width: 1024px){ .c-brand__img{ max-width:325px; } }
@media (min-width: 1440px){ .c-brand__img{ max-width:22vw; } }

.o-paragraph{
  position:relative;z-index:2;
  width:100%;
  max-width:480px;
  flex-basis:60%;
}
@media (min-width: 1256px){ .o-paragraph{ width:45%; } }
.c-brand .o-paragraph{ padding:90px 0; }
@media (min-width: 1256px){ .c-brand .o-paragraph{ padding:10% 0; } }
.o-paragraph p{
  font: 400 14.5px/2.1 var(--font-primary);
  letter-spacing:.125em;
  text-transform:uppercase;
  color: var(--color-quaternary);
}
@media (min-width: 1256px){ .o-paragraph p{ max-width:540px; } }
.o-paragraph p strong{
  color:#fff;
  font-weight:700;
}

.c-brand__video{
  position:relative;
  display:flex;
  flex-direction:column-reverse;
  align-items:center;
  justify-content:center;
  margin:0;
}
@media (min-width: 1024px){
  .c-brand__video{ flex-direction:row; justify-content:flex-end; align-items:flex-end; margin-top:5%; }
}
@media (min-width: 1256px){
  .c-brand__video{ margin-top:0; }
}
.c-brand__video h3{
  position:absolute;
  left:-2.5%; bottom:-13%;
  width:fit-content;
  margin:0;
  z-index:10;
  font-family: var(--font-cursive);
  font-weight:400;
  letter-spacing:0;
  text-transform:none;
  font-size:56px;
  line-height:1;
  color: var(--color-primary);
}
@media (min-width: 1256px){
  .c-brand__video h3{ font-size:64px; left:unset; bottom:5%; right:75%; }
}
.c-brand__video h3 span{ display:block; transform:translate(48px,-16px); }

.c-brand__video picture{
  position:relative;
  aspect-ratio: 1/1;
  display:block;overflow:hidden;
}
.c-brand__video picture:after{
  content:"";position:absolute;left:0;bottom:0;z-index:1;
  width:100%;height:40%;
  background:linear-gradient(180deg, rgba(10,27,46,0) 0%, #0a1b2e 100%);
}
@media (min-width: 1024px){ .c-brand__video picture:after{ display:none; } }
@media (min-width: 480px){ .c-brand__video picture{ aspect-ratio:unset; } }
@media (min-width: 1024px){ .c-brand__video picture{ aspect-ratio:3/2; width:55vw; } }
@media (min-width: 1256px){ .c-brand__video picture{ width:48vw; padding-top:38px; max-width:920px; } }
.c-brand__video picture img{ width:100%; }
@media (min-width: 480px){ .c-brand__video picture img{ max-width:65vw; } }
@media (min-width: 1024px){ .c-brand__video picture img{ max-width:920px; } }

/* ---------- Breeding ---------- */
.c-breeding{
  position:relative;
  background:#091119;
}
.c-breeding .o-paragraph p{ color:#c7bcac; max-width:480px; margin-bottom:20px; }
.c-breeding .o-paragraph p strong{ color:#fff; }
.c-breeding__list{
  margin:0; padding:0; max-width:480px;
  list-style:none;
}
.c-breeding__list li{
  position:relative;
  padding-left:1.4em;
  font: 400 14.5px/2.1 var(--font-primary);
  letter-spacing:.125em;
  text-transform:uppercase;
  color:#c7bcac;
}
.c-breeding__list li::before{
  content:"\2013";
  position:absolute;
  left:0;
  color: var(--color-tertiary);
}
@media (min-width: 1256px){ .c-breeding .o-row{ padding-top:10%; } }

.c-breeding__image{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  position:relative;
  margin-top:90px;
}
@media (min-width: 768px){ .c-breeding__image{ margin:15% 0 0 5%; max-width:35vw; } }
@media (min-width: 1256px){ .c-breeding__image{ margin-top:-5%; } }

.c-breeding__image h3{
  position:absolute;
  right:0; bottom:-170px;
  font-size:100px;
  line-height:1;
  color: var(--color-primary);
}
@media (min-width: 1024px){ .c-breeding__image h3{ bottom:-250px; font-size:150px; right:50px; } }

.c-breeding__image h4{
  position:absolute;
  bottom:60px; left:-10px;
  line-height:1.5;
  z-index:2;
}
@media (min-width: 768px){ .c-breeding__image h4{ left:-30px; } }
@media (min-width: 1024px){ .c-breeding__image h4{ left:-25%; } }

/* Original anchors a 30x61 collapsed badge box at top:15%/right:-10%;
   our badge is a zero-size point, so aim it at that box's centre. */
.c-breeding__image .c-badge{
  top:calc(15% + 30.5px);
  right:calc(-10% + 15px);
  z-index:2;
}

.c-breeding__image > picture img{
  width:100%;
  aspect-ratio: 494 / 704;
  object-fit:cover;
  -webkit-mask-image: linear-gradient(#000 0%, #000 10%, transparent 100%);
          mask-image: linear-gradient(#000 0%, #000 10%, transparent 100%);
}
@media (min-width: 1024px){
  .c-breeding__image > picture img{ -webkit-mask-image:none; mask-image:none; max-width:33vw; }
}

.c-breeding__bg{
  position:absolute;
  top:0;left:0;
  z-index:1;
  width:100%;height:100%;
  opacity:.075;
  mix-blend-mode:screen;
  pointer-events:none;
  overflow:hidden;
}
.c-breeding__bg .parallax-wrapper{ width:100%; height:100%; }
.c-breeding__bg img{
  width:100%;height:100%;
  max-width:none;
  object-fit:cover;
  filter:grayscale(1);
}

/* ---------- Jumping stud ---------- */
h5{
  font: 400 14px/1 var(--font-tertiary);
  letter-spacing:.125em;
  text-transform:uppercase;
  color: var(--color-tertiary);
}
.o-section.bg-white{ background:#fff; }

.c-cards{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  width:100%;
  gap:10px;
  margin-bottom:60px;
}
@media (min-width: 768px){ .c-cards{ flex-direction:row; } }
.c-card{ width:100%; flex-basis:33.33%; cursor:pointer; }
.c-card img{ width:100%; display:inline; }
.c-card h5{ margin:15px 0 60px; }
.c-card--empty{ width:100%; flex-basis:33.33%; }

.c-jumping h2{ color: var(--color-tertiary); }
.c-jumping h3{ font-size:24px; }
@media (min-width: 1256px){ .c-jumping h3{ font-size:27px; } }
.c-jumping .o-paragraph{ margin-bottom:60px; }
.c-jumping .o-paragraph p{ color:#475768; }
.c-jumping .o-paragraph p strong{ color:#475768; }
.c-jumping .c-breeding__list li{ color:#475768; }
.c-jumping .c-cards{ margin:0; gap:0; }
@media (min-width: 768px){ .c-jumping .c-cards{ gap:10px; } }
.c-jumping .c-cards h5{ font-size:18px; }
.c-jumping .c-card{ position:relative; }
.c-jumping .c-card *{ pointer-events:none; }
.c-jumping .c-card img{
  position:relative; z-index:2;
  aspect-ratio:1/1; object-fit:cover;
  transition:opacity .35s;
}
.c-jumping .c-card .video__wrapper{
  position:absolute; top:0;
  width:100%; aspect-ratio:1/1;
  z-index:1; overflow:hidden;
}
.c-jumping .c-card .video__wrapper video{
  width:100%; height:100%; object-fit:cover;
  transform:translateY(0) scale(1.05);
  filter:grayscale(100%);
}
.c-jumping .c-card .video__wrapper::after{
  content:"";
  position:absolute; top:0; left:0;
  width:100%; height:100%;
  background:#5d97da;
  mix-blend-mode:multiply;
  opacity:0;
  transition:.5s;
}
.c-jumping .c-card:hover .video__wrapper::after{ opacity:1; }
.section__padrillos{ margin:10vh 0; overflow:hidden; }

/* ---------- Custom cursor (desktop only, enabled from JS at >=1080px) ---------- */
.cursor-dot, .cursor-dot-outline{
  pointer-events:none;
  position:absolute; top:50%; left:50%;
  z-index:99999;
  border-radius:99px;
  opacity:0;
  transform:translate(-50%,-50%);
  transition:opacity .3s ease-in-out, transform .3s ease-in-out;
}
.cursor-dot{
  width:8px; height:8px;
  background-color:#be7e21;
  border:1px solid rgba(206,158,89,0);
}
.cursor-dot span{
  display:inline-block;
  white-space:nowrap;
  font-family: var(--font-tertiary);
  text-transform:uppercase;
  font-size:11px;
  letter-spacing:1px;
  font-weight:600;
  position:absolute; top:50%; left:50%;
  color:#475768;
  opacity:0;
  transform:translate(-50%,-50%);
  transition:opacity 3s;
}
.cursor-dot.is-hover{ border:none; background:rgba(206,158,89,0); }
.cursor-dot.is-hover span{ opacity:1; }
.cursor-dot.is-hover.secondary span{ color:#fff; }
.cursor-dot-outline{
  width:40px; height:40px;
  border:1px solid rgba(206,158,89,.5);
}
.cursor-dot-outline.is-hover{ border:none; background:rgba(206,158,89,.5); }
.cursor-dot-outline.is-hover.secondary{ background:rgba(71,87,104,.875); }

/* ---------- Shared base rules from the original ---------- */
p{
  font: 400 14.5px/2.1 var(--font-primary);
  letter-spacing:.125em;
  text-transform:uppercase;
}
@media (min-width: 1256px){ p{ max-width:540px; } }
.o-col{ display:flex; flex-direction:column; height:100%; }

/* ---------- Tour & championship ---------- */
.c-tour{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  height:92vh;
  padding-bottom:0;
  min-height:unset;
  text-align:center;
}
@media (min-width: 1024px){ .c-tour{ text-align:left; height:100vh; padding-bottom:0; } }
@media (min-width: 1256px){ .c-tour{ justify-content:flex-end; padding-bottom:90px; } }
.c-tour::after{
  display:block; content:"";
  position:absolute; top:0; left:0; z-index:1;
  width:100%; height:100%;
  background:linear-gradient(0deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,.1) 50%);
  pointer-events:none;
}
.c-tour h2{ margin-bottom:30px; color:#fff; text-align:left; }
.c-tour p{ color:#fff; opacity:.7; max-width:520px; margin:0 auto 45px 0; }
@media (min-width: 1024px){ .c-tour p{ max-width:640px; margin:0 0 60px; } }
.c-tour .o-col{
  justify-content:flex-end;
  align-items:flex-start;
  min-height:auto;
  height:fit-content;
  text-align:left;
  z-index:99;
}

/* ---------- Location (press section, minus its Press grid) ---------- */
.c-location{ background-color:#fff; margin-top:0; }
.c-location p{ color:#475768 !important; flex-basis:50%; }
.c-location p strong{ color:#333 !important; }

/* Original anchors its 30x61 badge box at left/bottom; aim our zero-size
   badge at that box's centre instead (+15px, +30.5px). */
.c-location .c-badge{
  top:unset;
  bottom:calc(25% + 30.5px);
  left:calc(-20px + 15px);
  filter:brightness(.75);
}
@media (min-width: 768px){ .c-location .c-badge{ left:calc(40vw + 15px); bottom:calc(15% + 30.5px); } }
@media (min-width: 1024px){ .c-location .c-badge{ left:calc(30vw + 15px); bottom:calc(45% + 30.5px); } }

.c-location__top{ position:relative; display:flex; align-items:center; justify-content:space-between; }
.c-location__top p{ margin-top:10%; margin-bottom:60px; }
@media (min-width: 768px){
  .c-location__top{ align-items:start; gap:60px; }
  .c-location__top p{ margin-top:5%; flex-basis:42%; padding-right:20px; }
}

.c-location__mid{ flex-direction:column-reverse; }
@media (min-width: 768px){
  .c-location__mid{ flex-direction:row; margin:10% 0; }
  .c-location__mid picture{ width:40vw; max-width:640px; margin-right:30px; }
}
@media (min-width: 1256px){ .c-location__mid{ justify-content:flex-start; } }
.c-location__mid p{ margin:0 0 60px; padding-top:10%; }
@media (min-width: 1256px){ .c-location__mid p{ margin-left:5%; } }

.c-location__bot{ align-items:center; }
@media (min-width: 768px){ .c-location__bot picture{ width:40vw; max-width:640px; margin-left:60px; } }
@media (min-width: 1256px){ .c-location__bot{ justify-content:flex-end; align-items:flex-start; } }
.c-location__bot p{ margin:0 0 60px; padding-top:10%; }
@media (min-width: 1256px){ .c-location__bot p{ padding-top:5%; } }

.c-location img{ object-fit:cover; }

/* The original's visible photo frames are set by its parallax helper (fixed
   wrapper heights), not by CSS; reproduce those frames explicitly on desktop. */
@media (min-width: 1256px){
  .c-location__top > p{ flex:0 0 38%; padding-right:0; }
  .c-location__pic{ flex:0 0 50%; }
  .c-location__pic img{ aspect-ratio:579 / 868; }

  .c-location__mid picture{ flex:0 0 50.85%; width:auto; max-width:none; margin-right:0; }
  .c-location__mid picture img{ aspect-ratio:541 / 356; }
  .c-location__mid p{ flex:1 1 auto; }

  .c-location__bot p{ flex:0 0 50%; }
  .c-location__bot picture{ flex:0 0 36.65%; width:auto; max-width:none; }
  .c-location__bot picture img{ aspect-ratio:390 / 585; }
}

/* ---------- Footer ---------- */
.footer{
  display:flex;
  flex-direction:column;
  padding:10% 0;
  z-index:3;
  position:relative;
  background:#fff;
  overflow:hidden;
}
@media (min-width: 1024px){ .footer{ padding:5rem 0 2rem; } }
.footer__top{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  align-items:center;
  text-align:center;
  gap:5rem;
}
@media (min-width: 1024px){ .footer__top{ flex-direction:row; align-items:flex-start; text-align:left; } }
.footer__top .logo img{ width:230px; max-width:none; }
.footer__top .data-contact h3{
  font-size:21px;
  line-height:1.5;
  color:#162638;
  text-transform:uppercase;
  padding-bottom:3%;
  margin-top:0;
}
@media (min-width: 768px){ .footer__top .data-contact h3{ font-size:32px; line-height:1.25; } }
.footer__top .data-contact a{
  font: 400 11px/1 var(--font-primary);
  letter-spacing:.25em;
  color:#162638;
  text-decoration:none;
  text-transform:uppercase;
}
@media (min-width: 1256px){ .footer__top .menu{ margin-right:15%; } }
.footer__top .menu .menu__links li{ list-style:none; padding-bottom:15%; }
.footer__top .menu .menu__links li a{
  display:block;
  font: 400 14px/1 var(--font-tertiary);
  letter-spacing:.125em;
  color:#162638;
  text-decoration:none;
  text-transform:uppercase;
}
.footer__top .menu .menu__links li .menu__link-btn{
  display:block;
  width:100%;
  margin:0;
  padding:0;
  background:none;
  border:0;
  cursor:pointer;
  font: 400 14px/1 var(--font-tertiary);
  letter-spacing:.125em;
  color:#162638;
  text-transform:uppercase;
  text-align:left;
}
.footer__bottom{ padding-top:5rem; }
@media (min-width: 1024px){
  .footer__bottom{ display:flex; flex-direction:row; justify-content:space-between; align-items:center; }
}

/* ---------- Buttons ---------- */
.c-btn{
  display:inline-block;
  font-family: var(--font-tertiary);
  font-size:.8rem;
  letter-spacing:.125em;
  text-transform:uppercase;
  color:#fff;
  background:transparent;
  border:1px solid rgba(255,255,255,.4);
  border-radius:100px;
  padding:14px 32px;
  cursor:pointer;
  transition:background .3s ease, color .3s ease, border-color .3s ease;
}
.c-btn:hover{
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-secondary);
}

/* ---------- Modal ---------- */
.c-modal{
  position:fixed;
  inset:0;
  z-index:10000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background: var(--color-dark-strong);
  opacity:0;
  visibility:hidden;
  transition:opacity .35s ease, visibility .35s ease;
  overflow-y:auto;
}
.c-modal.is-open{ opacity:1; visibility:visible; }
.c-modal__inner{
  position:relative;
  width:100%;
  max-width:1100px;
  margin:auto;
  padding:60px 20px;
}
.c-modal__close{
  position:absolute;
  top:-40px;
  right:0;
  width:44px;
  height:44px;
  border:1px solid rgba(255,255,255,.4);
  border-radius:50%;
  background:transparent;
  color:#fff;
  font-size:1.5rem;
  line-height:1;
  cursor:pointer;
  transition:background .3s ease, border-color .3s ease;
}
.c-modal__close:hover{ background: var(--color-tertiary); border-color: var(--color-tertiary); }
.c-modal__content h3{
  font-family: var(--font-tertiary);
  color: var(--color-tertiary);
  font-size:28px;
  margin:0 0 30px;
  text-transform:uppercase;
  letter-spacing:.05em;
}
@media (min-width: 768px){ .c-modal__content h3{ font-size:36px; } }
.c-modal__price{
  font: 400 15px/1.9 var(--font-primary);
  letter-spacing:.08em;
  color:#fff;
  max-width:820px;
  margin:0 0 30px;
}
.c-modal__price strong{ color: var(--color-primary); }
.c-modal__price a{ color: var(--color-primary); text-decoration:underline; }
.c-modal__content .c-breeding__list{ max-width:820px; }
.c-modal__content .c-breeding__list li{ color: var(--color-quaternary); }
.c-modal__inner--text{ max-width:760px; }
.c-modal__legal{ max-width:none; margin-bottom:30px; }
.c-modal__legal li{
  text-transform:none;
  letter-spacing:normal;
  line-height:1.7;
  margin-bottom:12px;
  padding-left:1.2em;
}
.c-modal__gallery{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:14px;
  margin-top:40px;
  max-width:520px;
}
.c-modal__gallery img{
  width:100%;
  height:150px;
  object-fit:cover;
  border-radius:2px;
}
@media (min-width: 768px){
  .c-modal__gallery{ grid-template-columns:repeat(4, 1fr); max-width:none; gap:18px; }
  .c-modal__gallery img{ height:190px; }
}
.footer__bottom .copy p{
  font-size:11px;
  letter-spacing:.25em;
  text-align:center;
  color:#162638;
  max-width:unset;
}
@media (min-width: 1024px){ .footer__bottom .copy p{ text-align:left; } }
.footer__bottom .social-icons{
  display:flex;
  flex-direction:row;
  justify-content:center;
  gap:20px;
  width:330px;
  margin:60px auto 0;
}
@media (min-width: 1024px){ .footer__bottom .social-icons{ margin:0; justify-content:flex-end; } }
.footer__bottom .social-icons a{
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  width:54px; height:54px;
  font: 400 18px/1 var(--font-tertiary);
  color:#162638;
  text-decoration:none;
  text-transform:uppercase;
  border:0 solid rgba(22,38,56,.3);
  border-radius:100%;
  transition:.35s;
}
.footer__bottom .social-icons a:hover{ border:0 solid #162638; }

/* Secondary drift parallax inside a cropped image frame */
.parallax-wrapper{
  overflow:hidden;
  position:relative;
}

/* Char/word split helpers */
.char{will-change:transform,opacity,filter;}
.word{will-change:opacity;}

@media (max-width: 900px){
  .navbar__menu{display:none;}
}
