@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,600;0,700;1,600&display=swap');


/* =========================================================
   VARIABLES
   ========================================================= */

:root {
  --bg:
  radial-gradient(
    circle at 50% 0%,
    hsla(288, 90%, 46%, 0.603),
    transparent 45%
  ),
  var(--panel);
  --bg-soft: #120d15;
  --panel: #18111b;

  --text: #f8f2f7;
  --muted: #b7aab7;

  --gold: #d9ae62;
  --gold-light: #f0cc86;

  --purple: #8d4d9f;
  --pink: #c65c8e;
  --wine: #070004;

  --line: #c9b509;

  --wa: #25d366;

  --radius: 22px;
  --radius-small: 14px;
}
/* Verificación de edad */
.age-modal {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.95);
  padding: 20px;
}

.age-box {
  width: 100%;
  max-width: 450px;
  padding: 40px 30px;
  text-align: center;
  background: #111;
  border: 1px solid #444;
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6);
}

.age-box h2 {
  margin: 0 0 15px;
  font-size: 28px;
}

.age-box p {
  margin-bottom: 25px;
}

.age-buttons {
  display: flex;
  gap: 12px;
  justify-content: center;
}

.age-buttons button {
  border: 0;
  padding: 13px 20px;
  border-radius: 6px;
  cursor: pointer;
  font-size: 15px;
}

#age-yes {
  background: #c9a45c;
  color: #111;
}

#age-no {
  background: #333;
  color: white;
}

.age-message {
  margin-top: 20px;
  color: #fff;
  font-weight: bold;
}

body.age-locked {
  overflow: hidden;
}

/* =========================================================
   RESET
   ========================================================= */

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
}

body {
  background:
    radial-gradient(
      circle at 15% 10%,
      rgba(141, 77, 159, .12),
      transparent 30%
    ),
    radial-gradient(
      circle at 85% 45%,
      rgba(198, 92, 142, .08),
      transparent 30%
    ),
    var(--bg);

  color: var(--text);
  font-family: 'DM Sans', sans-serif;
}


/* =========================================================
   AGE BAR
   ========================================================= */

.age {
  text-align: center;
  background: #050406;
  color: #8d828d;
  font-size: 10px;
  letter-spacing: 3px;
  padding: 10px;
}


/* =========================================================
   NAVIGATION
   ========================================================= */

nav {
  height: 84px;
  padding: 0 7%;

  display: flex;
  align-items: center;
  justify-content: space-between;

  border-bottom: 1px solid rgba(255, 255, 255, .08);

  background: rgba(11, 8, 13, .72);
  backdrop-filter: blur(18px);

  position: relative;
  z-index: 50;
}

.brand {
  color: #fff;
  text-decoration: none;
  letter-spacing: 3px;
  font-weight: 700;

  display: flex;
  gap: 12px;
  align-items: center;
}

.brand b {
  display: grid;
  place-items: center;

  width: 40px;
  height: 40px;

  border: 1px solid var(--gold);
  border-radius: 12px;

  color: var(--gold-light);
  font-family: 'Playfair Display', serif;

  box-shadow:
    0 0 20px rgba(217, 174, 98, .12);

  background:
    linear-gradient(
      145deg,
      rgba(217, 174, 98, .12),
      rgba(141, 77, 159, .12)
    );
}

.links {
  display: flex;
  gap: 10px;
}

.links a,
.back {
  color: #ddd3df;
  text-decoration: none;
  font-size: 13px;

  padding: 11px 15px;
  border-radius: 999px;

  transition:
    color .3s ease,
    background .3s ease,
    transform .3s ease;
}

.links a:hover,
.back:hover {
  color: #fff;
  background: rgba(255, 255, 255, .07);
  transform: translateY(-2px);
}


/* =========================================================
   HERO
   ========================================================= */

.hero {
  min-height: 100vh;

  position: relative;

  background:
    linear-gradient(
      90deg,
      rgba(5, 3, 7, .95) 0%,
      rgba(10, 5, 12, .78) 42%,
      rgba(10, 5, 12, .30) 100%
    ),
    linear-gradient(
      135deg,
      rgba(112, 45, 85, .30),
      transparent 50%
    ),
    url('IMG/portada.jpg') center/cover;

  overflow: hidden;
}

.hero::after {
  content: "";

  position: absolute;
  inset: 0;

  background:
    radial-gradient(
      circle at 75% 35%,
      rgba(217, 174, 98, .12),
      transparent 25%
    );

  pointer-events: none;
}

.hero-inner {
  max-width: 1200px;
  margin: auto;

  padding: 17vh 7%;

  display: flex;
  justify-content: space-between;
  align-items: center;

  gap: 70px;

  position: relative;
  z-index: 2;
}


/* =========================================================
   TEXT
   ========================================================= */

.kicker {
  font-size: 11px;
  letter-spacing: 4px;
  color: var(--gold-light);
  font-weight: 700;
  margin-bottom: 22px;
}

h1 {
  font:
    600 clamp(58px, 8vw, 110px) / .88
    'Playfair Display',
    serif;

  letter-spacing: -2px;

  text-shadow:
    0 10px 40px rgba(0, 0, 0, .35);
}

h1 i {
  color: var(--gold-light);
}

.lead {
  max-width: 590px;

  color: #d0c5d0;

  line-height: 1.8;
  font-size: 18px;

  margin: 32px 0;
}


/* =========================================================
   ACTIONS
   ========================================================= */

.actions {
  display: flex;
  align-items: center;
  gap: 14px;
}

.gold {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  background:
    linear-gradient(
      135deg,
      var(--gold-light),
      var(--gold)
    );

  color: #21170d;

  text-decoration: none;

  padding: 15px 25px;

  border-radius: 999px;

  font-weight: 700;

  box-shadow:
    0 10px 30px rgba(217, 174, 98, .20);

  transition:
    transform .3s ease,
    box-shadow .3s ease;
}

.gold:hover {
  transform: translateY(-3px);

  box-shadow:
    0 15px 35px rgba(217, 174, 98, .30);
}


/* =========================================================
   WHATSAPP ROUND
   ========================================================= */

.wa-round {
  width: 58px;
  height: 58px;

  border-radius: 50%;

  background: var(--wa);

  display: grid;
  place-items: center;

  box-shadow:
    0 10px 30px rgba(37, 211, 102, .22);

  transition:
    transform .3s ease,
    box-shadow .3s ease;
}

.wa-round:hover {
  transform: translateY(-3px) scale(1.05);

  box-shadow:
    0 15px 35px rgba(37, 211, 102, .32);
}

.wa-round span {
  color: #fff;
  font-size: 27px;
  transform: rotate(-25deg);
}


/* =========================================================
   HERO CARD — CARTA
   ========================================================= */

.card {
  width: 280px;
  min-height: 350px;

  position: relative;

  border-radius: 30px;

  border: 1px solid rgba(217, 174, 98, .35);

  background:
    linear-gradient(
      145deg,
      rgba(255, 255, 255, .10),
      rgba(255, 255, 255, .025)
    );

  backdrop-filter: blur(22px);

  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;

  text-align: center;

  gap: 16px;

  overflow: hidden;

  box-shadow:
    0 30px 80px rgba(0, 0, 0, .45),
    inset 0 1px 0 rgba(255, 255, 255, .12);

  transform: rotate(2deg);

  transition:
    transform .5s ease,
    box-shadow .5s ease;
}

.card::before {
  content: "";

  position: absolute;

  width: 180px;
  height: 180px;

  top: -70px;
  right: -60px;

  background:
    radial-gradient(
      circle,
      rgba(217, 174, 98, .30),
      transparent 70%
    );

  border-radius: 50%;
}

.card::after {
  content: "";

  position: absolute;

  width: 160px;
  height: 160px;

  bottom: -80px;
  left: -50px;

  background:
    radial-gradient(
      circle,
      rgba(198, 92, 142, .28),
      transparent 70%
    );

  border-radius: 50%;
}

.card:hover {
  transform: rotate(0deg) translateY(-8px);

  box-shadow:
    0 40px 100px rgba(0, 0, 0, .55),
    0 0 45px rgba(217, 174, 98, .08);
}

.card small,
.card strong,
.card em {
  position: relative;
  z-index: 2;
}

.card small {
  color: var(--gold-light);
  letter-spacing: 5px;
  font-size: 10px;
}

.card strong {
  font:
    600 40px / .95
    'Playfair Display',
    serif;

  letter-spacing: 1px;
}

.card em {
  font-size: 8px;
  color: #aaa0aa;
  letter-spacing: 2px;
  font-style: normal;
}


/* =========================================================
   INTRO
   ========================================================= */

.intro {
  max-width: 1200px;
  margin: auto;

  padding: 140px 7%;

  display: grid;
  grid-template-columns: 1.2fr 1fr;

  gap: 80px;

  align-items: end;
}

.intro h2,
.location h2,
.cta h2 {
  font:
    600 clamp(42px, 5vw, 72px) / 1
    'Playfair Display',
    serif;
}

.intro > p,
.location > div > p:not(.kicker),
.cta > p:not(.kicker) {
  color: var(--muted);
  line-height: 1.9;
}


/* =========================================================
   FEATURES
   ========================================================= */

.features {
  max-width: 1200px;
  margin: auto;

  padding: 0 7% 140px;

  display: grid;
  grid-template-columns: repeat(3, 1fr);

  gap: 16px;

  border-bottom: 1px solid var(--line);
}

.features article {
  padding: 35px;

  border: 1px solid var(--line);
  border-radius: var(--radius);

  background:
    linear-gradient(
      145deg,
      rgba(255, 255, 255, .045),
      rgba(255, 255, 255, .015)
    );

  transition:
    transform .3s ease,
    border-color .3s ease,
    background .3s ease;
}

.features article:hover {
  transform: translateY(-6px);

  border-color:
    rgba(217, 174, 98, .35);

  background:
    linear-gradient(
      145deg,
      rgba(217, 174, 98, .08),
      rgba(141, 77, 159, .05)
    );
}

.features article + article {
  padding-left: 35px;
}

.features:last-child {
  border: 0;
}

.features span {
  color: var(--gold-light);
  font-size: 11px;
  letter-spacing: 2px;
}

.features h3 {
  font:
    600 29px
    'Playfair Display',
    serif;

  margin: 16px 0 10px;
}

.features p {
  color: var(--muted);
  line-height: 1.7;
  font-size: 14px;
}


/* =========================================================
   LOCATION
   ========================================================= */

.location {
  max-width: 1200px;
  margin: auto;

  padding: 140px 7%;

  display: grid;
  grid-template-columns: .8fr 1.2fr;

  gap: 70px;

  align-items: center;
}

.map {
  height: 440px;

  border: 1px solid var(--line);

  border-radius: 28px;

  overflow: hidden;

  box-shadow:
    0 25px 70px rgba(0, 0, 0, .30);
}

.map iframe {
  width: 100%;
  height: 100%;

  border: 0;

  filter:
    grayscale(1)
    contrast(1.1);
}

.maplink {
  display: inline-block;

  color: var(--gold-light);

  text-decoration: none;

  border-bottom: 1px solid var(--gold);

  padding-bottom: 7px;

  margin-top: 28px;

  transition:
    color .3s ease,
    border-color .3s ease;
}

.maplink:hover {
  color: #fff;
  border-color: #fff;
}


/* =========================================================
   CTA
   ========================================================= */

.cta {
  text-align: center;
  padding: 140px 7%;
  background: var(--bg);
  border-top: 1px solid var(--line);
}

.cta h2 {
  margin-bottom: 20px;
}

.wa-large {
  display: inline-flex;
  align-items: center;

  gap: 12px;

  margin-top: 30px;

  padding: 8px 24px 8px 8px;

  border-radius: 999px;

  background:
    rgba(0, 0, 0, .35);

  color: #fff;

  text-decoration: none;

  font-weight: 700;

  border: 1px solid rgba(255, 255, 255, .08);

  transition:
    transform .3s ease,
    border-color .3s ease;
}

.wa-large:hover {
  transform: translateY(-3px);

  border-color:
    rgba(37, 211, 102, .4);
}

.wa-large span {
  width: 46px;
  height: 46px;

  border-radius: 50%;

  background: var(--wa);

  display: grid;
  place-items: center;

  font-size: 22px;

  transform: rotate(-25deg);
}


/* =========================================================
   FOOTER
   ========================================================= */

footer {
  padding: 30px 7%;

  display: flex;
  justify-content: space-between;

  color: #666;

  font-size: 11px;
  letter-spacing: 1px;
}


/* =========================================================
   GALLERY PAGE
   ========================================================= */

.gallery-page {
  max-width: 1200px;
  margin: auto;

  padding: 100px 7%;
}

.gallery-page h1 {
  margin-bottom: 18px;
}

.gallery-page > p:not(.kicker) {
  color: var(--muted);
}

.gallery {
  display: grid;

  grid-template-columns:
    repeat(3, 1fr);

  gap: 14px;

  margin-top: 55px;
}

.gallery img {
  width: 100%;
  height: 390px;

  object-fit: cover;

  background: #151311;

  border-radius: 20px;

  transition:
    transform .4s ease,
    opacity .4s ease;
}

.gallery img:hover {
  opacity: .88;
  transform: scale(1.015);
}


/* =========================================================
   GALERÍA EDITORIAL / MASONRY
   ========================================================= */

.gallery-heading {
  max-width: 1200px;

  margin: 0 auto 60px;

  display: flex;

  justify-content: space-between;
  align-items: end;

  gap: 60px;
}

.gallery-heading h1 {
  font:
    600 clamp(52px, 7vw, 92px) / .9
    'Playfair Display',
    serif;
}

.gallery-heading h1 i {
  color: var(--gold-light);
}

.gallery-heading > p {
  max-width: 360px;

  color: var(--muted);

  line-height: 1.8;
  font-size: 14px;
}

.masonry {
  max-width: 1200px;
  margin: auto;

  columns: 3 280px;

  column-gap: 14px;
}

.gallery-item {
  position: relative;

  width: 100%;

  display: block;

  border: 0;

  padding: 0;

  margin: 0 0 14px;

  background: #151311;

  overflow: hidden;

  cursor: pointer;

  break-inside: avoid;

  border-radius: 20px;
}

.gallery-item img {
  display: block;

  width: 100%;
  height: auto;

  min-height: 280px;

  object-fit: cover;

  transition:
    transform .7s cubic-bezier(.2, .7, .2, 1),
    filter .5s;
}

.gallery-item.tall img {
  min-height: 570px;
}

.gallery-item.wide img {
  min-height: 360px;
}

.gallery-item.feature img {
  min-height: 480px;
}

.gallery-item span {
  position: absolute;

  left: 18px;
  bottom: 15px;

  color: #fff;

  font-size: 10px;
  letter-spacing: 2px;

  text-transform: uppercase;

  background:
    rgba(0, 0, 0, .55);

  padding: 8px 12px;

  border-radius: 999px;

  opacity: 0;

  transform: translateY(8px);

  transition: .35s;

  z-index: 2;
}

.gallery-item:after {
  content: "";

  position: absolute;

  inset: 0;

  background:
    linear-gradient(
      transparent 55%,
      rgba(0, 0, 0, .70)
    );

  opacity: .5;

  transition: .35s;
}

.gallery-item:hover img {
  transform: scale(1.045);

  filter: brightness(.78);
}

.gallery-item:hover span {
  opacity: 1;

  transform: translateY(0);
}

.gallery-item:hover:after {
  opacity: .85;
}


/* =========================================================
   LIGHTBOX
   ========================================================= */

.lightbox {
  position: fixed;

  inset: 0;

  background:
    rgba(3, 3, 3, .96);

  z-index: 100;

  display: none;

  align-items: center;
  justify-content: center;

  padding: 50px;
}

.lightbox.open {
  display: flex;
}

.lightbox > img {
  max-width: min(88vw, 1200px);
  max-height: 85vh;

  object-fit: contain;

  border-radius: 18px;

  box-shadow:
    0 25px 80px #000;
}

.close-lightbox,
.light-prev,
.light-next {
  position: absolute;

  border: 1px solid rgba(255, 255, 255, .10);

  background:
    rgba(255, 255, 255, .08);

  color: #fff;

  width: 48px;
  height: 48px;

  border-radius: 50%;

  font-size: 32px;

  cursor: pointer;

  transition:
    background .3s ease,
    transform .3s ease;
}

.close-lightbox:hover,
.light-prev:hover,
.light-next:hover {
  background:
    rgba(217, 174, 98, .20);

  transform: scale(1.05);
}

.close-lightbox {
  right: 28px;
  top: 25px;
}

.light-prev {
  left: 25px;
}

.light-next {
  right: 25px;
}

.light-counter {
  position: absolute;

  bottom: 25px;

  color: #999;

  font-size: 11px;

  letter-spacing: 2px;
}


/* =========================================================
   MENÚ MÓVIL
   ========================================================= */

.menu-toggle {
  display: none;

  border: 1px solid rgba(255, 255, 255, .12);

  background: rgba(255, 255, 255, .06);

  color: #fff;

  width: 42px;
  height: 42px;

  border-radius: 50%;

  font-size: 22px;

  cursor: pointer;

  z-index: 30;
}

.mobile-gallery-menu {
  display: none;
}


/* =========================================================
   RESPONSIVE — 850PX
   ========================================================= */

@media (max-width: 850px) {

  .links {
    display: none;
  }

  .hero-inner,
  .intro,
  .location {
    grid-template-columns: 1fr;
  }

  .hero-inner {
    padding-top: 14vh;
  }

  .card {
    display: none;
  }

  .intro,
  .location {
    display: grid;
    gap: 35px;
  }

  .features {
    grid-template-columns: 1fr;
  }

  .features article,
  .features article + article {
    padding: 30px;

    border-right: 0;

    border-bottom: 1px solid var(--line);
  }

  .gallery {
    grid-template-columns: 1fr 1fr;
  }


  /* =======================================================
     MENÚ MÓVIL
     ======================================================= */

  .menu-toggle {
    display: grid;
    place-items: center;
  }

  nav {
    position: relative;
  }

  nav > .links {
    position: absolute;

    top: 84px;
    left: 0;
    right: 0;

    display: none;

    flex-direction: column;

    gap: 0;

    background:
      rgba(11, 8, 13, .97);

    border-bottom:
      1px solid var(--line);

    z-index: 20;
  }

  nav > .links.mobile-open {
    display: flex;
  }

  nav > .links a {
    padding: 18px 7%;

    border-top:
      1px solid rgba(255, 255, 255, .06);

    border-radius: 0;

    font-size: 14px;
  }

  .mobile-gallery-menu {
    position: absolute;

    top: 84px;
    left: 0;
    right: 0;

    display: none;

    flex-direction: column;

    background:
      rgba(11, 8, 13, .97);

    border-bottom:
      1px solid var(--line);

    z-index: 20;
  }

  .mobile-gallery-menu.mobile-open {
    display: flex;
  }

  .mobile-gallery-menu a {
    padding: 18px 7%;

    border-top:
      1px solid rgba(255, 255, 255, .06);

    color: #ddd;

    text-decoration: none;

    font-size: 14px;
  }

  nav > .back {
    display: none;
  }
}


/* =========================================================
   RESPONSIVE — 700PX
   ========================================================= */

@media (max-width: 700px) {

  .gallery-heading {
    display: block;
  }

  .gallery-heading > p {
    margin-top: 25px;
  }

  .masonry {
    columns: 2 170px;
  }

  .gallery-item.tall img,
  .gallery-item.wide img,
  .gallery-item.feature img,
  .gallery-item img {
    min-height: 240px;
  }

  .lightbox {
    padding: 25px;
  }

  .light-prev {
    left: 10px;
  }

  .light-next {
    right: 10px;
  }
}


/* =========================================================
   RESPONSIVE — 520PX


@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap');

:root {
    --bg: #0b0b0b;
    --bg-soft: #111111;
    --card: #151515;
    --text: #f5f5f5;
    --muted: #999;
    --gold: #d6b36a;
    --gold-light: #f0d89a;
    --border: rgba(255,255,255,.10);
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    background: var(--bg);
    color: var(--text);
    font-family: "DM Sans", sans-serif;
}

/* =========================
   BARRA SUPERIOR
========================= */

.age {
    width: 100%;
    padding: 9px 20px;

    background: #050505;
    border-bottom: 1px solid rgba(255,255,255,.06);

    color: #888;

    text-align: center;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 2px;
}

nav {
    position: sticky;
    top: 0;
    z-index: 50;

    height: 78px;
    padding: 0 6%;

    display: flex;
    align-items: center;
    justify-content: space-between;

    background: rgba(11,11,11,.88);
    backdrop-filter: blur(18px);

    border-bottom: 1px solid var(--border);
}

.brand {
    display: flex;
    align-items: center;
    gap: 12px;

    color: #fff;
    text-decoration: none;

    font-size: 16px;
    font-weight: 600;
}

.brand b {
    width: 38px;
    height: 38px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 12px;

    background: linear-gradient(
        135deg,
        var(--gold-light),
        var(--gold)
    );

    color: #111;

    font-size: 13px;
}

.back {
    color: #aaa;
    text-decoration: none;

    font-size: 13px;

    transition: .25s ease;
}

.back:hover {
    color: var(--gold-light);
}

/* =========================
   GALERÍA
========================= */

.gallery-page {
    width: min(1400px, 90%);
    margin: auto;
    padding: 90px 0 100px;
}

/* CABECERA */

.gallery-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;

    margin-bottom: 55px;
}

.kicker,
.profile-kicker {
    margin-bottom: 12px;

    color: var(--gold);

    font-size: 11px;
    font-weight: 700;

    text-transform: uppercase;
    letter-spacing: 3px;
}

.gallery-heading h1 {
    font-family: "Playfair Display", serif;

    font-size: clamp(50px, 7vw, 100px);
    line-height: .9;
    font-weight: 500;
}

.gallery-heading h1 i {
    display: inline-block;

    width: 55px;
    height: 3px;

    margin-top: 15px;

    background: var(--gold);
}

.gallery-heading > p {
    max-width: 300px;

    color: var(--muted);

    font-size: 14px;
    line-height: 1.7;
}

/* =========================
   MASONRY
========================= */

.masonry {
    columns: 3 280px;
    column-gap: 18px;
}

.gallery-item {
    position: relative;

    display: block;
    width: 100%;

    margin-bottom: 18px;

    padding: 0;
    border: 0;

    background: #111;

    cursor: pointer;

    overflow: hidden;

    break-inside: avoid;
}

.gallery-item img {
    display: block;

    width: 100%;
    height: auto;

    transition:
        transform .7s cubic-bezier(.2,.7,.2,1),
        filter .5s ease;
}

.gallery-item::after {
    content: "";

    position: absolute;
    inset: 0;

    background: linear-gradient(
        to top,
        rgba(0,0,0,.85),
        transparent 55%
    );

    opacity: .8;

    transition: .4s ease;
}

.gallery-item span {
    position: absolute;

    left: 22px;
    bottom: 20px;

    z-index: 2;

    color: #fff;

    font-size: 13px;
    font-weight: 600;

    letter-spacing: .4px;

    transform: translateY(8px);

    opacity: .85;

    transition: .4s ease;
}

.gallery-item:hover img {
    transform: scale(1.06);
    filter: brightness(.8);
}

.gallery-item:hover::after {
    opacity: 1;
}

.gallery-item:hover span {
    transform: translateY(0);
    opacity: 1;
    color: var(--gold-light);
}

/* =========================
   MODAL PERFIL
========================= */

.profile-modal {
    position: fixed;
    inset: 0;

    z-index: 200;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 30px;

    background: rgba(0,0,0,.88);

    backdrop-filter: blur(15px);

    opacity: 0;
    visibility: hidden;

    transition:
        opacity .35s ease,
        visibility .35s ease;
}

.profile-modal.open {
    opacity: 1;
    visibility: visible;
}

.profile-container {
    width: min(1100px, 100%);
    max-height: 90vh;

    display: grid;
    grid-template-columns: 1fr .75fr;

    background: var(--card);

    border: 1px solid var(--border);

    border-radius: 24px;

    overflow: hidden;

    box-shadow:
        0 30px 100px rgba(0,0,0,.7);

    transform: translateY(25px) scale(.98);

    transition: .4s ease;
}

.profile-modal.open .profile-container {
    transform: translateY(0) scale(1);
}

/* FOTO PRINCIPAL */

.profile-main-photo {
    min-height: 600px;

    background: #080808;
}

.profile-main-photo img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;
}

/* INFORMACIÓN */

.profile-info {
    padding: 55px 45px;

    display: flex;
    flex-direction: column;
    justify-content: center;
}

.profile-info h2 {
    margin-bottom: 12px;

    font-family: "Playfair Display", serif;

    font-size: clamp(42px, 5vw, 65px);
    font-weight: 500;
}

.profile-details {
    color: var(--gold-light);

    font-size: 13px;
    font-weight: 600;

    letter-spacing: 1px;
}

.profile-description {
    margin-top: 28px;

    color: #aaa;

    font-size: 14px;
    line-height: 1.9;
}

/* =========================
   MINIATURAS
========================= */

.profile-gallery {
    display: grid;
    grid-template-columns: repeat(4, 1fr);

    gap: 8px;

    margin-top: 35px;
}

.profile-thumbnail {
    position: relative;

    aspect-ratio: 1;

    padding: 0;

    border: 2px solid transparent;
    border-radius: 10px;

    overflow: hidden;

    background: #111;

    cursor: pointer;

    opacity: .55;

    transition: .25s ease;
}

.profile-thumbnail img {
    width: 100%;
    height: 100%;

    object-fit: cover;

    display: block;
}

.profile-thumbnail:hover,
.profile-thumbnail.active {
    opacity: 1;
    border-color: var(--gold);
}

/* =========================
   BOTÓN CERRAR
========================= */

.profile-close {
    position: fixed;

    top: 25px;
    right: 30px;

    z-index: 210;

    width: 48px;
    height: 48px;

    border: 1px solid rgba(255,255,255,.2);
    border-radius: 50%;

    background: rgba(0,0,0,.5);

    color: #fff;

    font-size: 30px;
    font-weight: 300;

    cursor: pointer;

    transition: .25s ease;
}

.profile-close:hover {
    background: var(--gold);
    color: #111;

    transform: rotate(90deg);
}

/* =========================
   FOOTER
========================= */

footer {
    padding: 45px 20px;

    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;

    border-top: 1px solid var(--border);

    color: #777;

    font-size: 12px;

    text-align: center;
}

footer b {
    color: #ddd;

    font-size: 14px;
}

/* =========================
   BLOQUEAR SCROLL MODAL
========================= */

body.modal-open {
    overflow: hidden;
}

/* =========================
   TABLET
========================= */

@media (max-width: 900px) {

    .gallery-heading {
        align-items: start;
        flex-direction: column;
        gap: 25px;
    }

    .profile-container {
        grid-template-columns: 1fr;

        max-height: 90vh;

        overflow-y: auto;
    }

    .profile-main-photo {
        height: 55vh;
        min-height: 350px;
    }

    .profile-info {
        padding: 35px 30px;
    }
}

/* =========================
   MÓVIL
========================= */

@media (max-width: 600px) {

    nav {
        height: 68px;
        padding: 0 5%;
    }

    .brand {
        font-size: 14px;
    }

    .brand b {
        width: 34px;
        height: 34px;
    }

    .gallery-page {
        width: 92%;
        padding: 60px 0 70px;
    }

    .gallery-heading {
        margin-bottom: 35px;
    }

    .gallery-heading h1 {
        font-size: 55px;
    }

    .masonry {
        columns: 2 150px;
        column-gap: 10px;
    }

    .gallery-item {
        margin-bottom: 10px;
    }

    .gallery-item span {
        left: 12px;
        bottom: 12px;

        font-size: 11px;
    }

    .profile-modal {
        padding: 12px;
    }

    .profile-container {
        border-radius: 18px;
    }

    .profile-main-photo {
        height: 48vh;
        min-height: 300px;
    }

    .profile-info {
        padding: 30px 22px;
    }

    .profile-info h2 {
        font-size: 45px;
    }

    .profile-description {
        font-size: 13px;
        line-height: 1.7;
    }

    .profile-gallery {
        margin-top: 25px;
    }

    .profile-close {
        top: 12px;
        right: 15px;

        width: 42px;
        height: 42px;
    }
}

.float-wa {
    position: fixed;
    width: 60px;
    height: 60px;

    bottom: 40px;
    right: 40px;

    background-color: #25d366;
    color: #fff;

    border-radius: 50%;

    display: flex;
    align-items: center;
    justify-content: center;

    text-decoration: none;

    z-index: 100;
}

.float-wa svg {
    width: 32px;
    height: 32px;

    fill: #fff;

    display: block;
}





  

@media (max-width: 520px) {

  .gallery {
    grid-template-columns: 1fr;
  }

  .gallery img {
    height: 340px;
  }

  footer {
    flex-direction: column;
    gap: 10px;
  }

  .actions {
    flex-wrap: wrap;
  }
}

 /*estilo de galeria
 
/* =========================================================
   RESPONSIVE — 480PX
   ========================================================= */

@media (max-width: 480px) {

  .masonry {
    columns: 1;
  }

  .gallery-item img,
  .gallery-item.tall img,
  .gallery-item.wide img,
  .gallery-item.feature img {
    min-height: 360px;
  }

  .gallery-heading h1 {
    font-size: 55px;
  }

  h1 {
    letter-spacing: -1px;
  }

  .lead {
    font-size: 16px;
  }

  .card {
    border-radius: 24px;
  }
}