/* Editorial luxury system — inspired by rodrigocintra.com. */
:root {
  --radius: 0.875rem;
  --background: oklch(0.966 0.008 82);
  --foreground: oklch(0.42 0.008 60);
  --card: oklch(1 0 0);
  --card-foreground: oklch(0.20 0.008 60);
  --primary: oklch(0.18 0.005 60);
  --primary-foreground: oklch(0.985 0.005 85);
  --secondary: oklch(0.90 0.02 75);
  --muted: oklch(0.94 0.012 80);
  --muted-foreground: oklch(0.48 0.012 60);
  --border: oklch(0.89 0.012 78);
  --gold: oklch(0.76 0.078 82);
  --gold-soft: var(--gold);
  --cream: oklch(0.966 0.008 82);
  --nude: oklch(0.90 0.02 75);
  --ink: oklch(0.16 0.004 60);
  --gradient-hero: linear-gradient(180deg, oklch(0.09 0.002 60 / 0.34) 0%, oklch(0.09 0.002 60 / 0.48) 45%, oklch(0.09 0.002 60 / 0.72) 90%, oklch(0.09 0.002 60 / 0.86) 100%);
  --gradient-gold: linear-gradient(135deg, var(--gold), var(--gold));
  --shadow-soft: 0 2px 12px -6px oklch(0.16 0.004 60 / 0.08);
  --shadow-card: 0 20px 60px -30px oklch(0.16 0.004 60 / 0.18);
  --shadow-gold: 0 10px 30px -14px oklch(0.76 0.078 82 / 0.45);
}

* { border-color: var(--border); box-sizing: border-box; }
html { scroll-behavior: smooth; }
html,
body {
  width: 100%;
  overflow-x: hidden;
}
body {
  margin: 0;
  background-color: var(--background);
  color: var(--foreground);
  font-family: "Inter", ui-sans-serif, system-ui, sans-serif;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  letter-spacing: -0.005em;
}
h1, h2, h3, h4 {
  font-family: "Cormorant Garamond", "Playfair Display", Georgia, serif;
  font-weight: 400;
  color: var(--ink);
  letter-spacing: -0.015em;
  line-height: 1.08;
  margin: 0;
}
p { margin: 0; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; background: none; border: 0; color: inherit; }
ul, ol { list-style: none; padding: 0; margin: 0; }
img { display: block; max-width: 100%; }

/* Semantic color helpers used via Tailwind arbitrary values are declared in tailwind config */
.font-display { font-family: "Cormorant Garamond", "Playfair Display", Georgia, serif; }
.text-gradient-gold {
  background: var(--gradient-gold);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.shadow-soft { box-shadow: var(--shadow-soft); }
.shadow-card { box-shadow: var(--shadow-card); }
.shadow-gold { box-shadow: var(--shadow-gold); }
.bg-hero-gradient { background: var(--gradient-hero); }
.bg-gold-gradient { background: var(--gradient-gold); }

#inicio {
  position: relative;
  width: 100%;
  min-height: 100svh;
  overflow: hidden;
}
#inicio > .absolute {
  inset: 0;
  width: 100%;
  height: 100%;
}

.hero-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.84;
  filter: grayscale(1) contrast(1.04) brightness(1.25);
}
.hero-side-shade {
  background: linear-gradient(90deg, oklch(0.07 0.002 60 / 0.74) 0%, oklch(0.07 0.002 60 / 0.48) 46%, oklch(0.07 0.002 60 / 0.24) 100%);
}
.hero-eyebrow {
  color: var(--gold-soft);
}
.hero-title-accent {
  color: var(--gold);
  text-shadow: 0 12px 34px oklch(0 0 0 / 0.22);
}
.hero-copy {
  color: oklch(0.96 0.003 85 / 0.9);
}

.about-section {
  background: oklch(0.95 0.006 82);
}
.about-photo {
  filter: grayscale(1) contrast(1.08) brightness(0.96);
}
.about-photo-corner {
  border-color: var(--gold);
  opacity: 0.68;
}
.about-title {
  color: oklch(0.13 0.004 62);
}
.about-title-accent {
  color: var(--gold);
}
.about-copy {
  color: oklch(0.38 0.01 62);
}
.about-copy strong {
  color: oklch(0.14 0.004 62);
  font-weight: 600;
}
.about-quote {
  border-color: var(--gold);
  color: oklch(0.16 0.006 62);
}

.specialties-section {
  background: oklch(0.95 0.006 82);
}
.specialties-title {
  color: oklch(0.13 0.004 62);
}
.specialties-title-accent {
  color: var(--gold);
}
.specialties-grid {
  border-top: 1px solid oklch(0.76 0.078 82 / 0.24);
  border-left: 1px solid oklch(0.76 0.078 82 / 0.24);
}
.specialty-item {
  min-height: 208px;
  border-right: 1px solid oklch(0.76 0.078 82 / 0.24);
  border-bottom: 1px solid oklch(0.76 0.078 82 / 0.24);
  background: transparent;
}
.specialty-item:hover {
  background: oklch(0.98 0.004 82 / 0.48);
}
.specialty-icon {
  border: 1px solid var(--gold);
  color: var(--gold);
}
.specialty-item:hover .specialty-icon {
  background: var(--gold);
  color: oklch(0.98 0.004 82);
}
.specialty-title {
  color: oklch(0.14 0.004 62);
}
.specialty-copy {
  color: oklch(0.39 0.01 62);
}

.gallery-section {
  background: oklch(0.95 0.006 82);
}
.gallery-eyebrow {
  color: var(--gold);
}
.gallery-title {
  color: oklch(0.13 0.004 62);
}
.gallery-frame {
  min-height: 360px;
  aspect-ratio: 4 / 5;
  border-radius: 0.875rem;
  background: oklch(0.91 0.01 82);
}
.gallery-image {
  filter: saturate(0.94) contrast(1.02) brightness(1.03);
}

.method-section {
  background: oklch(0.965 0.004 82);
}
.method-eyebrow {
  color: var(--gold);
}
.method-title {
  color: oklch(0.13 0.004 62);
}
.method-card {
  min-height: 136px;
  border: 1px solid oklch(0.76 0.078 82 / 0.32);
  border-radius: 1rem;
  background: oklch(0.985 0.002 82 / 0.76);
}
.method-card:hover {
  border-color: oklch(0.76 0.078 82 / 0.52);
  background: oklch(0.99 0.002 82);
  transform: translateY(-2px);
}
.method-icon {
  background: oklch(0.76 0.078 82 / 0.22);
  color: var(--gold);
}
.method-number {
  color: var(--gold);
}
.method-card-title {
  color: oklch(0.14 0.004 62);
}
.method-card-copy {
  color: oklch(0.39 0.01 62);
}

.cert-section {
  background: oklch(0.95 0.006 82);
}
.cert-eyebrow {
  color: oklch(0.18 0.004 62);
}
.cert-title {
  color: oklch(0.13 0.004 62);
}
.cert-card {
  min-height: 166px;
  border: 1px solid oklch(0.76 0.078 82 / 0.26);
  border-radius: 1rem;
  background: oklch(0.97 0.004 82 / 0.72);
}
.cert-card:hover {
  border-color: oklch(0.76 0.078 82 / 0.52);
  background: oklch(0.99 0.002 82);
  transform: translateY(-2px);
}
.cert-icon {
  background: var(--gold);
  color: oklch(0.18 0.004 62);
}
.cert-card-title {
  color: oklch(0.13 0.004 62);
}
.cert-card-copy {
  color: oklch(0.39 0.01 62);
}

.mentoria-section {
  background: radial-gradient(circle at 56% 50%, oklch(0.16 0.006 65 / 0.88) 0%, oklch(0.07 0.002 65) 46%, oklch(0.045 0.001 65) 100%);
  color: oklch(0.96 0.003 82);
}
.mentoria-eyebrow {
  color: var(--gold-soft);
}
.mentoria-title {
  color: oklch(0.98 0.002 82);
}
.mentoria-title-accent {
  color: var(--gold);
}
.mentoria-copy,
.mentoria-benefit {
  color: oklch(0.88 0.004 82 / 0.86);
}
.mentoria-check {
  background: var(--gold);
  color: oklch(0.12 0.004 62);
}
.mentoria-cta {
  background: var(--gold-soft);
  color: oklch(0.12 0.004 62);
}
.mentoria-cta:hover {
  background: var(--gold);
  transform: translateY(-2px);
  box-shadow: 0 16px 34px -24px var(--gold);
}
.mentoria-image-glow {
  background: oklch(0.76 0.078 82 / 0.16);
}
.mentoria-image {
  border-radius: 0.875rem;
  box-shadow: 0 30px 80px -46px oklch(0 0 0 / 0.82);
}

.testimonial-section {
  background: oklch(0.965 0.004 82);
}
.testimonial-eyebrow {
  color: var(--gold);
}
.testimonial-title {
  color: oklch(0.13 0.004 62);
}
.testimonial-avatar {
  border: 2px solid oklch(0.76 0.078 82 / 0.22);
}
.testimonial-stars {
  color: var(--gold);
  letter-spacing: 0.12em;
}
.testimonial-quote {
  color: oklch(0.35 0.01 62);
}
.testimonial-name {
  color: oklch(0.25 0.006 62);
}
.testimonial-nav {
  border: 1px solid oklch(0.76 0.078 82 / 0.36);
  color: oklch(0.20 0.005 62);
  background: oklch(0.98 0.002 82 / 0.72);
  transition: border-color 0.3s ease, background 0.3s ease, color 0.3s ease;
}
.testimonial-nav:hover {
  border-color: var(--gold);
  color: oklch(0.12 0.004 62);
  background: oklch(0.99 0.002 82);
}
.testimonial-dot {
  display: block;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 999px;
  background: oklch(0.76 0.078 82 / 0.34);
  transition: width 0.3s ease, background 0.3s ease;
}
.testimonial-dot.is-active {
  width: 1.6rem;
  background: var(--gold);
}

.faq-section {
  background: oklch(0.965 0.004 82);
}
.faq-eyebrow {
  color: var(--gold);
}
.faq-title {
  color: oklch(0.13 0.004 62);
}
.faq-item {
  border: 1px solid oklch(0.76 0.078 82 / 0.34);
  border-radius: 1rem;
  background: oklch(0.985 0.002 82 / 0.72);
}
.faq-question {
  color: oklch(0.22 0.006 62);
}
.faq-chevron {
  color: var(--gold);
}
.faq-answer {
  color: oklch(0.39 0.01 62);
}
.final-cta-section {
  border-top: 1px solid oklch(0.76 0.078 82 / 0.26);
  background: oklch(0.95 0.006 82);
}
.final-cta-eyebrow {
  color: var(--gold);
}
.final-cta-title {
  color: oklch(0.13 0.004 62);
}
.final-cta-accent {
  color: var(--gold);
}
.final-cta-copy {
  color: oklch(0.39 0.01 62);
}
.final-cta-button {
  background: oklch(0.06 0.002 62);
  color: oklch(0.98 0.002 82);
}
.final-cta-button:hover {
  background: oklch(0.13 0.004 62);
  transform: translateY(-2px);
  box-shadow: 0 18px 36px -28px oklch(0 0 0 / 0.75);
}

.site-footer {
  border-top: 1px solid oklch(0.76 0.078 82 / 0.20);
  background: oklch(0.045 0.001 65);
  color: oklch(0.90 0.004 82);
}
.footer-brand {
  color: oklch(0.98 0.002 82);
}
.footer-brand span,
.footer-heading {
  color: var(--gold-soft);
}
.footer-copy,
.footer-line {
  color: oklch(0.78 0.004 82 / 0.78);
}
.footer-line::before {
  width: 0.42rem;
  height: 0.42rem;
  margin-top: 0.45rem;
  border-radius: 999px;
  content: "";
  background: var(--gold);
  flex: 0 0 auto;
}
.footer-social {
  border: 1px solid oklch(0.98 0.002 82 / 0.18);
  color: oklch(0.90 0.004 82);
}
.footer-social:hover {
  border-color: var(--gold);
  color: var(--gold);
}
.footer-map {
  border: 1px solid oklch(0.98 0.002 82 / 0.14);
  border-radius: 0.875rem;
}
.footer-bottom {
  border-top: 1px solid oklch(0.98 0.002 82 / 0.10);
  color: oklch(0.76 0.004 82 / 0.72);
}
.footer-link:hover {
  color: var(--gold);
}

.site-header-dark {
  background: oklch(0.18 0.004 60 / 0.48);
  backdrop-filter: blur(8px);
}
.site-header-solid {
  background: oklch(0.18 0.004 60 / 0.68);
  box-shadow: 0 12px 30px -24px oklch(0 0 0 / 0.45);
  backdrop-filter: blur(10px);
}
.mobile-menu {
  border-color: oklch(0.98 0.002 82 / 0.12);
  background: oklch(0.13 0.004 62 / 0.96);
  box-shadow: 0 20px 40px -30px oklch(0 0 0 / 0.75);
}
.mobile-menu-link {
  color: oklch(0.96 0.003 82);
  transition: background 0.25s ease, color 0.25s ease;
}
.mobile-menu-link:hover,
.mobile-menu-link:focus-visible {
  background: oklch(0.98 0.002 82 / 0.08);
  color: var(--gold-soft);
  outline: none;
}
.mobile-menu-cta {
  background: var(--gold-soft);
  color: oklch(0.12 0.004 62);
  transition: background 0.25s ease, transform 0.25s ease;
}
.mobile-menu-cta:hover,
.mobile-menu-cta:focus-visible {
  background: oklch(0.84 0.078 82);
  color: oklch(0.10 0.004 62);
  outline: none;
  transform: translateY(-1px);
}
.brand-mark {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  transform: none;
  color: white;
  line-height: 0.95;
  transition: opacity 0.3s ease;
}
.brand-mark:hover { opacity: 0.82; }
.brand-mark__name {
  font-family: "Cormorant Garamond", "Playfair Display", Georgia, serif;
  font-size: 1.16rem;
  font-weight: 400;
  letter-spacing: 0.42em;
  text-transform: uppercase;
}
.brand-mark__surname {
  margin-top: 0.38rem;
  font-family: "Cormorant Garamond", "Playfair Display", Georgia, serif;
  font-size: 1.85rem;
  font-weight: 500;
  font-style: italic;
  color: var(--gold-soft);
  letter-spacing: 0.04em;
  text-transform: none;
  text-shadow: 0 0 18px oklch(0.76 0.078 82 / 0.34);
}
@media (max-width: 767px) {
  .brand-mark {
    transform: none;
  }
  .brand-mark__name {
    font-size: 1rem;
    letter-spacing: 0.30em;
  }
  .brand-mark__surname {
    font-size: 1.42rem;
  }
}
[data-nav-link] {
  position: relative;
  color: oklch(1 0 0 / 0.86);
  font-size: 0.74rem;
  font-weight: 500;
  letter-spacing: 0.33em;
  text-transform: uppercase;
  transition: color 0.3s ease;
}
[data-nav-link]::after {
  position: absolute;
  left: 0;
  bottom: -0.38rem;
  width: 0;
  height: 1px;
  content: "";
  background: var(--gold);
  transition: width 0.3s ease;
}
[data-nav-link]:hover {
  color: var(--gold-soft);
}
[data-nav-link]:hover::after {
  width: 100%;
}
.nav-cta {
  display: inline-flex;
  min-width: 122px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: white;
  color: var(--ink);
  padding: 0.78rem 1.6rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  transition: background 0.3s ease, color 0.3s ease, transform 0.3s ease;
}
.nav-cta:hover {
  background: var(--gold-soft);
  color: var(--ink);
  transform: translateY(-1px);
}

.gold-rule {
  display: inline-block;
  width: 42px;
  height: 1px;
  background: var(--gold);
  vertical-align: middle;
}
.eyebrow {
  font-family: "Inter", sans-serif;
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--gold);
}

.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1), transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}
.reveal.is-visible { opacity: 1; transform: translateY(0); }

@keyframes pulse-ring {
  0% { box-shadow: 0 0 0 0 oklch(0.65 0.18 145 / 0.45); }
  70% { box-shadow: 0 0 0 16px oklch(0.65 0.18 145 / 0); }
  100% { box-shadow: 0 0 0 0 oklch(0.65 0.18 145 / 0); }
}
.animate-pulse-ring { animation: pulse-ring 2.4s ease-out infinite; }

@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }
.animate-fade-in { animation: fade-in .25s ease-out both; }
@keyframes scale-in { from { opacity: 0; transform: scale(.96); } to { opacity: 1; transform: scale(1); } }
.animate-scale-in { animation: scale-in .3s ease-out both; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .animate-pulse-ring { animation: none; }
}
