.elementor-380 .elementor-element.elementor-element-ccc350b{--display:flex;--min-height:100vh;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--overlay-opacity:0.5;overflow:visible;}.elementor-380 .elementor-element.elementor-element-ccc350b:not(.elementor-motion-effects-element-type-background), .elementor-380 .elementor-element.elementor-element-ccc350b > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#120F0C;background:url("https://vitarestaurante.com/wp-content/uploads/2026/08/plato-carne-1-e1787937561667.jpg") 50% 50%;background-size:cover;}.elementor-380 .elementor-element.elementor-element-ccc350b::before, .elementor-380 .elementor-element.elementor-element-ccc350b > .elementor-background-video-container::before, .elementor-380 .elementor-element.elementor-element-ccc350b > .e-con-inner > .elementor-background-video-container::before, .elementor-380 .elementor-element.elementor-element-ccc350b > .elementor-background-slideshow::before, .elementor-380 .elementor-element.elementor-element-ccc350b > .e-con-inner > .elementor-background-slideshow::before, .elementor-380 .elementor-element.elementor-element-ccc350b > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:#120F0C;--background-overlay:'';}.elementor-380 .elementor-element.elementor-element-3e0e9e5{--display:flex;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--padding-top:24px;--padding-bottom:28px;--padding-left:20px;--padding-right:20px;--z-index:10;overflow:visible;}.elementor-380 .elementor-element.elementor-element-3b08403{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 25px) 0px;text-align:center;color:#D7B16A;}.elementor-380 .elementor-element.elementor-element-cb96eb2{text-align:center;}.elementor-380 .elementor-element.elementor-element-cb96eb2 .elementor-heading-title{color:#F0EBE0;}.elementor-380 .elementor-element.elementor-element-4a836a1{margin:24px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;text-align:center;font-family:"Inter", Sans-serif;font-weight:400;letter-spacing:1.62px;color:#F0EBE0ED;}.elementor-380 .elementor-element.elementor-element-9bcb217{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;overflow:visible;}.elementor-380 .elementor-element.elementor-element-1a5ccb5 .elementor-button{background-color:#61CE7000;fill:#070707;color:#070707;border-radius:30px 30px 30px 30px;padding:26px 26px 26px 26px;}.elementor-380 .elementor-element.elementor-element-beb9945 .elementor-button{background-color:#D7B16A00;border-radius:30px 30px 30px 30px;padding:26px 26px 26px 26px;}.elementor-380 .elementor-element.elementor-element-beb9945 .elementor-button-content-wrapper{flex-direction:row;}.elementor-380 .elementor-element.elementor-element-040ba80{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;overflow:visible;}.elementor-380 .elementor-element.elementor-element-040ba80.e-con{--align-self:center;}.elementor-380 .elementor-element.elementor-element-c120207{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;overflow:visible;}.elementor-380 .elementor-element.elementor-element-b1d6629 .elementor-icon-box-wrapper{gap:0px;}.elementor-380 .elementor-element.elementor-element-b1d6629.elementor-view-stacked .elementor-icon{background-color:#D7B16A;}.elementor-380 .elementor-element.elementor-element-b1d6629.elementor-view-framed .elementor-icon, .elementor-380 .elementor-element.elementor-element-b1d6629.elementor-view-default .elementor-icon{fill:#D7B16A;color:#D7B16A;border-color:#D7B16A;}.elementor-380 .elementor-element.elementor-element-b1d6629 .elementor-icon{font-size:24px;}.elementor-380 .elementor-element.elementor-element-b1d6629 .elementor-icon-box-title, .elementor-380 .elementor-element.elementor-element-b1d6629 .elementor-icon-box-title a{font-family:"Cormorant Garamond", Sans-serif;font-size:18px;}.elementor-380 .elementor-element.elementor-element-b1d6629 .elementor-icon-box-title{color:#F0EBE0;}.elementor-380 .elementor-element.elementor-element-b1d6629 .elementor-icon-box-description{font-size:12px;color:#ABA397;}.elementor-380 .elementor-element.elementor-element-aa4aaef .elementor-icon-box-wrapper{gap:0px;}.elementor-380 .elementor-element.elementor-element-aa4aaef.elementor-view-stacked .elementor-icon{background-color:#D7B16A;}.elementor-380 .elementor-element.elementor-element-aa4aaef.elementor-view-framed .elementor-icon, .elementor-380 .elementor-element.elementor-element-aa4aaef.elementor-view-default .elementor-icon{fill:#D7B16A;color:#D7B16A;border-color:#D7B16A;}.elementor-380 .elementor-element.elementor-element-aa4aaef .elementor-icon{font-size:24px;}.elementor-380 .elementor-element.elementor-element-aa4aaef .elementor-icon-box-title, .elementor-380 .elementor-element.elementor-element-aa4aaef .elementor-icon-box-title a{font-family:"Cormorant Garamond", Sans-serif;font-size:18px;}.elementor-380 .elementor-element.elementor-element-aa4aaef .elementor-icon-box-title{color:#F0EBE0;}.elementor-380 .elementor-element.elementor-element-aa4aaef .elementor-icon-box-description{font-size:12px;color:#ABA397;}.elementor-380 .elementor-element.elementor-element-87b88c0 .elementor-icon-box-wrapper{gap:0px;}.elementor-380 .elementor-element.elementor-element-87b88c0.elementor-view-stacked .elementor-icon{background-color:#D7B16A;}.elementor-380 .elementor-element.elementor-element-87b88c0.elementor-view-framed .elementor-icon, .elementor-380 .elementor-element.elementor-element-87b88c0.elementor-view-default .elementor-icon{fill:#D7B16A;color:#D7B16A;border-color:#D7B16A;}.elementor-380 .elementor-element.elementor-element-87b88c0 .elementor-icon{font-size:24px;}.elementor-380 .elementor-element.elementor-element-87b88c0 .elementor-icon-box-title, .elementor-380 .elementor-element.elementor-element-87b88c0 .elementor-icon-box-title a{font-family:"Cormorant Garamond", Sans-serif;font-size:18px;}.elementor-380 .elementor-element.elementor-element-87b88c0 .elementor-icon-box-title{color:#F0EBE0;}.elementor-380 .elementor-element.elementor-element-87b88c0 .elementor-icon-box-description{font-size:12px;color:#ABA397;}.elementor-380 .elementor-element.elementor-element-f27cc6f{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-e428df7{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-8496fe2{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-85c3d44{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-33a6504{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-21d2da2{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-81c5aba{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-2f530f2{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-c21ad3f{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-d0079c4{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-fd9b9cd{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-8dac693{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-66fabde{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-dbcb352{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-68898ce{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-ee8f640{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-eaa0471{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-805ab71{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-805ab71:not(.elementor-motion-effects-element-type-background), .elementor-380 .elementor-element.elementor-element-805ab71 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://vitarestaurante.com/wp-content/uploads/2026/08/textura-piedra.png");background-position:center center;background-repeat:no-repeat;background-size:cover;}.elementor-380 .elementor-element.elementor-element-4ea7518{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-1d5ee36{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-d59541a{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-dbda305 .elementor-button{background-color:#61CE7000;}.elementor-380 .elementor-element.elementor-element-dbda305.elementor-element{--align-self:center;}.elementor-380 .elementor-element.elementor-element-a49e918{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-c699843{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-b942aea{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-311b71a{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-022a73c{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-63aa0ed{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-3286665{--display:flex;--margin-top:120px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;overflow:visible;}.elementor-380 .elementor-element.elementor-element-b2f4dc0{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-ebfe726{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-01f290f{--display:flex;--margin-top:120px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;overflow:visible;}.elementor-380 .elementor-element.elementor-element-e35bff7{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-e2ffbf7{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-2b6d2f1{--display:flex;--margin-top:90px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;overflow:visible;}.elementor-380 .elementor-element.elementor-element-d77d88d{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-d77d88d:not(.elementor-motion-effects-element-type-background), .elementor-380 .elementor-element.elementor-element-d77d88d > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://vitarestaurante.com/wp-content/uploads/2026/08/textura-mantel.png");background-position:center center;background-size:cover;}.elementor-380 .elementor-element.elementor-element-a443e05{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-376e54e{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-122b264{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-81abfe8{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-977d6b6{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-599a945{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-b52b79d{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-8d62991{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-3ce046a{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-a5e7a7a{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-b8ab8f4{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-3936e9e{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-d867d87{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;overflow:visible;}.elementor-380 .elementor-element.elementor-element-8ea4d71{--display:flex;--overlay-opacity:0.5;overflow:visible;}.elementor-380 .elementor-element.elementor-element-8ea4d71:not(.elementor-motion-effects-element-type-background), .elementor-380 .elementor-element.elementor-element-8ea4d71 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://vitarestaurante.com/wp-content/uploads/2026/08/pizza-rebanada.jpg");background-position:center center;background-size:cover;}.elementor-380 .elementor-element.elementor-element-8ea4d71::before, .elementor-380 .elementor-element.elementor-element-8ea4d71 > .elementor-background-video-container::before, .elementor-380 .elementor-element.elementor-element-8ea4d71 > .e-con-inner > .elementor-background-video-container::before, .elementor-380 .elementor-element.elementor-element-8ea4d71 > .elementor-background-slideshow::before, .elementor-380 .elementor-element.elementor-element-8ea4d71 > .e-con-inner > .elementor-background-slideshow::before, .elementor-380 .elementor-element.elementor-element-8ea4d71 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:#0A0101;--background-overlay:'';}.elementor-380 .elementor-element.elementor-element-f922c40{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-0976905{--display:flex;overflow:visible;}.elementor-380 .elementor-element.elementor-element-fa714ad{--display:flex;overflow:visible;}:root{--page-title-display:none;}@media(min-width:768px){.elementor-380 .elementor-element.elementor-element-3e0e9e5{--content-width:800px;}}/* Start custom CSS */:root {
  color-scheme: dark;

  /* Fuentes tipográficas */
  --font-serif: var(--font-cormorant), 'Cormorant Garamond', ui-serif, Georgia, serif;
  --font-sans: var(--font-inter), 'Inter', ui-sans-serif, system-ui, sans-serif;

  /* Paleta base — noche en Filo di Vita */
  --charcoal: oklch(0.17 0.008 60);
  --espresso: oklch(0.26 0.022 55);
  --wine: oklch(0.38 0.11 22);
  --gold: oklch(0.78 0.1 82);
  --ivory: oklch(0.94 0.015 85);
  --beige: oklch(0.83 0.03 78);
  --olive: oklch(0.55 0.05 120);

  --background: oklch(0.15 0.008 55);
  --foreground: oklch(0.94 0.015 85);

  --card: oklch(0.2 0.014 55);
  --card-foreground: oklch(0.94 0.015 85);

  --popover: oklch(0.2 0.014 55);
  --popover-foreground: oklch(0.94 0.015 85);

  /* CTA principal = dorado cálido */
  --primary: oklch(0.78 0.1 82);
  --primary-foreground: oklch(0.18 0.01 55);

  --secondary: oklch(0.26 0.022 55);
  --secondary-foreground: oklch(0.94 0.015 85);

  --muted: oklch(0.24 0.016 55);
  --muted-foreground: oklch(0.72 0.02 80);

  --accent: oklch(0.38 0.11 22);
  --accent-foreground: oklch(0.95 0.015 85);

  --destructive: oklch(0.55 0.19 25);

  --border: oklch(0.32 0.02 60 / 55%);
  --input: oklch(0.32 0.02 60 / 45%);
  --ring: oklch(0.78 0.1 82);

  /* Radios de borde calculados */
  --radius: 0.5rem;
  --radius-sm: calc(var(--radius) * 0.6);
  --radius-md: calc(var(--radius) * 0.8);
  --radius-lg: var(--radius);
  --radius-xl: calc(var(--radius) * 1.4);
  --radius-2xl: calc(var(--radius) * 1.8);
}

/* Modo oscuro explícito basado en body.elementor-page-380es */
:is(.dark *) {
  color-scheme: dark;
}

/* Secciones claras (marfil) — para menú, formularios y bloques editoriales */
.section-ivory {
  color-scheme: light;
  --background: oklch(0.95 0.012 85);
  --foreground: oklch(0.2 0.012 55);
  --card: oklch(0.98 0.008 85);
  --card-foreground: oklch(0.2 0.012 55);
  --popover: oklch(0.98 0.008 85);
  --popover-foreground: oklch(0.2 0.012 55);
  --primary: oklch(0.38 0.11 22);
  --primary-foreground: oklch(0.96 0.01 85);
  --secondary: oklch(0.9 0.02 82);
  --secondary-foreground: oklch(0.25 0.012 55);
  --muted: oklch(0.9 0.018 82);
  --muted-foreground: oklch(0.44 0.02 60);
  --accent: oklch(0.62 0.09 70);
  --accent-foreground: oklch(0.2 0.012 55);
  --border: oklch(0.5 0.02 60 / 25%);
  --input: oklch(0.5 0.02 60 / 30%);
  --ring: oklch(0.55 0.09 70);
  background-color: var(--background);
  color: var(--foreground);
}

/* ==========================================================================
   ESTILOS BASE (TRADUCIDOS DE @APPLY)
   ========================================================================== */
* {
  border-color: var(--border);
  outline-color: color-mix(in srgb, var(--ring) 50%, transparent);
}

body {
  background-color: var(--background);
  color: var(--foreground);
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'kern', 'liga';
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-serif);
  text-wrap: balance;
}

/* ==========================================================================
   COMPONENTES Y CLASES DE UTILIDAD
   ========================================================================== */

/* Espaciado consistente de secciones */
.section-pad {
  padding-top: 5rem;    /* Equivale a py-20 */
  padding-bottom: 5rem;
}

@media (min-width: 768px) {
  .section-pad {
    padding-top: 7rem;  /* Equivale a md:py-28 */
    padding-bottom: 7rem;
  }
}

/* Kicker / eyebrow en versalitas doradas */
.eyebrow {
  font-size: 0.75rem;   /* Equivale a text-xs */
  font-family: var(--font-sans);
  font-weight: 500;     /* Equivale a font-medium */
  text-transform: uppercase;
  letter-spacing: 0.28em;
  color: var(--gold)!important;
}

/* Enlaces con subrayado transicionable */
.link-underline {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;          /* Equivale a gap-2 */
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

/* Utilidad de kerning para el logotipo tipográfico */
.tracking-logo {
  letter-spacing: 0.32em;
}

/* ==========================================================================
   ANIMACIONES Y ACCESIBILIDAD (SCROLL REVEAL)
   ========================================================================== */
@media (prefers-reduced-motion: no-preference) {
  .reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.8s ease, transform 0.8s ease;
    will-change: opacity, transform;
  }
  .reveal.is-visible {
    opacity: 1;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity: 1 !important;
    transform: none !important;
  }
  * {
    animation-duration: 0.001ms !important;
    transition-duration: 0.001ms !important;
  }
}

.hero-full-screen {
  position: relative;
  display: flex;
  min-height: 100svh; /* Se mantiene svh porque es la altura dinámica de la pantalla del móvil */
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background-color: var(--charcoal);
}

/* 2. Contenedor interno del contenido (en píxeles) */
.contenedor-hero-content {
  position: relative;
  z-index: 10;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  max-width: 768px;       /* Equivale a max-w-3xl */
  flex-direction: column;
  align-items: center;
  padding-left: 20px;     /* Equivale a px-5 */
  padding-right: 20px;
  padding-top: 96px;      /* Equivale a pt-24 */
  padding-bottom: 112px;  /* Equivale a pb-28 */
  text-align: center;
}

.mb-5-px {
  margin-bottom: 20px; /* Equivale a mb-5 (1.25rem) */
}

.hero-title {
  font-family: var(--font-serif);
  font-size: 41.6px;       /* Equivale a 2.6rem */
  font-weight: 500;
  line-height: 1.05;
  color: var(--ivory);
}

/* Pantallas medianas / Tablets (sm:) */
@media (min-width: 640px) {
  .hero-title {
    font-size: 60px;       /* Equivale a text-6xl (3.75rem) */
  }
}

/* Pantallas grandes / Escritorio (md:) */
@media (min-width: 768px) {
  .hero-title {
    font-size: 72px;       /* Equivale a text-7xl (4.5rem) */
  }
}

.hero-description {
  margin-top: 24px;         /* Equivale a mt-6 */
  max-width: 576px;         /* Equivale a max-w-xl */
  font-size: 16px;          /* Equivale a text-base */
  line-height: 1.625;       /* Equivale a leading-relaxed */
  text-wrap: pretty;        /* Equivale a text-pretty (evita líneas huérfanas) */
  
  /* Mezcla tu color marfil al 85% con transparente */
  color: color-mix(in srgb, var(--ivory) 85%, transparent);
}

/* Pantallas grandes / Escritorio (md:) */
@media (min-width: 768px) {
  .hero-description {
    font-size: 18px;        /* Equivale a text-lg */
  }
}

/* Contenedor de botones de acción (Llamada a la acción) */
.hero-buttons-container {
  margin-top: 36px;         /* Equivale a mt-9 */
  display: flex;
  width: 100%;              /* Equivale a w-full */
  flex-direction: column;   /* Equivale a flex-col */
  align-items: center;
  gap: 12px;                /* Equivale a gap-3 (0.75rem) */
}

/* Pantallas medianas en adelante (sm:) */
@media (min-width: 640px) {
  .hero-buttons-container {
    width: auto;            /* Equivale a sm:w-auto */
    flex-direction: row;    /* Equivale a sm:flex-row */
  }
}

/* Botón Principal Dorado */
.btn-gold {
  width: 100%;                  /* Equivale a w-full */
  height: 56px;                 /* Equivale a h-14 */
  padding-left: 32px;           /* Equivale a px-8 */
  padding-right: 32px;
  font-size: 16px;              /* Equivale a text-base */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;                     /* Equivale a gap-2 */
  border-radius: 9999px;        /* Equivale a rounded-full */
  font-family: var(--font-sans);
  font-weight: 500;             /* Equivale a font-medium */
  letter-spacing: 0.025em;      /* Equivale a tracking-wide */
  border: none;
  outline: none;
  cursor: pointer;
  
  /* Colores */
  background-color: var(--gold);
  color: var(--primary-foreground);
  
  /* Transición suave */
  transition: all 300ms ease;
}

/* Comportamiento adaptativo en pantallas medianas (sm:) */
@media (min-width: 640px) {
  .btn-gold {
    width: auto;                /* Equivale a sm:w-auto */
  }
}

/* Efectos al pasar el cursor (Hover) */
.btn-gold:hover {
  filter: brightness(1.05);     /* Equivale a hover:brightness-105 */
  box-shadow: 0 8px 30px -8px rgba(212, 175, 90, 0.55);
}

/* Estado Deshabilitado */
.btn-gold:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Estado de Foco (Accesibilidad con el teclado) */
.btn-gold:focus-visible {
  outline: none;
  box-shadow: 
    0 0 0 2px var(--background), 
    0 0 0 4px var(--gold);      /* Simula el anillo de foco externo con ring-offset */
}

/* Botón Secundario de Contorno */
.btn-outline-ivory {
  display: inline-flex;
  height: 56px;                 /* Equivale a h-14 */
  width: 100%;                  /* Equivale a w-full */
  align-items: center;
  justify-content: center;
  border-radius: 9999px;        /* Equivale a rounded-full */
  
  /* Borde de marfil al 40% usando color-mix nativo */
  border: 1px solid color-mix(in srgb, var(--ivory) 40%, transparent);
  
  padding-left: 32px;           /* Equivale a px-8 */
  padding-right: 32px;
  font-size: 16px;              /* Equivale a text-base */
  font-weight: 500;             /* Equivale a font-medium */
  color: var(--ivory);
  background-color: transparent;
  cursor: pointer;
  
  /* Transición suave de colores */
  transition: color 0.2s ease, border-color 0.2s ease;
}

/* Comportamiento adaptativo en pantallas medianas (sm:) */
@media (min-width: 640px) {
  .btn-outline-ivory {
    width: auto;                /* Equivale a sm:w-auto */
  }
}

/* Efectos al pasar el cursor (Hover) */
.btn-outline-ivory:hover {
  border-color: var(--gold);    /* Equivale a hover:border-gold */
  color: var(--gold);           /* Equivale a hover:text-gold */
}

/* Estado de Foco para accesibilidad */
.btn-outline-ivory:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--background), 0 0 0 4px var(--gold);
}

.grid-dos-columnas {
  margin-left: auto;
  margin-right: auto;
  display: grid;
  max-width: 1152px;      /* Equivale a max-w-6xl */
  align-items: center;
  gap: 40px;              /* Equivale a gap-10 */
  padding-left: 16px;     /* Equivale a px-4 */
  padding-right: 16px;
}

/* Pantallas medianas / Tablets (md:) */
@media (min-width: 768px) {
  .grid-dos-columnas {
    padding-left: 24px;   /* Equivale a md:px-6 */
    padding-right: 24px;
  }
}

/* Pantallas grandes / Escritorio (lg:) */
@media (min-width: 1024px) {
  .grid-dos-columnas {
    grid-template-columns: repeat(2, minmax(0, 1fr)); /* Equivale a lg:grid-cols-2 */
    gap: 64px;            /* Equivale a lg:gap-16 */
  }
}

.contenedor-proporcion-vertical {
  position: relative;
  aspect-ratio: 4 / 5;       /* Equivale a aspect-[4/5] */
  overflow: hidden;
  border-radius: 16px;       /* Equivale a rounded-2xl */
}

.imagen-adaptable {
  width: 100%;
  height: 100%;
  object-fit: cover; /* Equivale a object-cover (ajusta la imagen como un fondo) */
}

.titulo-fdv {
    text-wrap: balance;
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.875rem;
    line-height: 1.1;
    color: #F1EDE1;
}
  
  @media (min-width: 768px) {
    .titulo-fdv {
        font-size: 3rem;
    }
  }
  
.descripcion-fdv {
    margin-top: 1.5rem;
    max-width: 32rem;
    text-wrap: pretty;
    line-height: 1.625;
    color: #BDB39F !important;
}

.bloque-espresso-bordeado {
  border-top: 1px solid color-mix(in srgb, var(--gold) 12%, transparent);    /* Equivale a border-y border-gold/12 */
  border-bottom: 1px solid color-mix(in srgb, var(--gold) 12%, transparent);
  background-color: color-mix(in srgb, var(--espresso) 40%, transparent);    /* Equivale a bg-espresso/40 */
}

.contenedor-centrado {
  margin-left: auto;
  margin-right: auto;
  max-width: 1152px;      /* Equivale a max-w-6xl */
  padding-top: 32px;      /* Equivale a py-8 */
  padding-bottom: 32px;   /* Equivale a py-8 */
  padding-left: 16px;     /* Equivale a px-4 */
  padding-right: 16px;    /* Equivale a px-4 */
}

/* Pantallas medianas / Tablets en adelante (md:) */
@media (min-width: 768px) {
  .contenedor-centrado {
    padding-left: 24px;   /* Equivale a md:px-6 */
    padding-right: 24px;  /* Equivale a md:px-6 */
  }
}

.grid-cinco-columnas {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)); /* Equivale a grid-cols-2 */
  column-gap: 24px;       /* Equivale a gap-x-6 */
  row-gap: 32px;          /* Equivale a gap-y-8 */
}

/* Pantallas medianas / Tablets (sm:) */
@media (min-width: 640px) {
  .grid-cinco-columnas {
    grid-template-columns: repeat(3, minmax(0, 1fr)); /* Equivale a sm:grid-cols-3 */
  }
}

/* Pantallas grandes / Escritorio (lg:) */
@media (min-width: 1024px) {
  .grid-cinco-columnas {
    grid-template-columns: repeat(5, minmax(0, 1fr)); /* Equivale a lg:grid-cols-5 */
  }
}

.flex-col-centrado {
  display: flex;
  flex-direction: column;   /* Equivale a flex-col */
  align-items: center;      /* Centra los elementos horizontalmente en el flujo */
  text-align: center;       /* Centra las líneas de texto por completo */
}

.item-caracteristica-centrado {
  display: flex;
  flex-direction: column;   /* Equivale a flex-col */
  align-items: center;      /* Alinea elementos al centro */
  text-align: center;       /* Centra los textos */
}

.icono-dorado-mediano {
  margin-bottom: 12px;     /* Equivale a mb-3 */
  width: 24px;             /* Equivale a size-6 (1.5rem) */
  height: 24px;            /* Equivale a size-6 */
  color: var(--gold) !important;      /* Usa tu variable de color dorado */
}

.texto-serif-marfil {
  font-family: var(--font-serif);
  font-size: 18px;          /* Equivale a text-lg */
  line-height: 1.25;        /* Equivale a leading-tight */
  color: var(--ivory) !important;      /* Tu color marfil de marca */
}

.texto-pequeno-atenuado {
  font-size: 12px;          /* Equivale a text-xs */
  line-height: 1.625;       /* Equivale a leading-relaxed */
  color: var(--muted-foreground) !important; /* Usa tu variable de color gris/atenuado */
}

.seccion-espresso-suave {
  padding-top: 80px;        /* Equivale a section-pad (py-20) */
  padding-bottom: 80px;
  background-color: color-mix(in srgb, var(--espresso) 25%, transparent); /* Equivale a bg-espresso/25 */
}

/* Pantallas de escritorio / Computadoras (md:) */
@media (min-width: 768px) {
  .seccion-espresso-suave {
    padding-top: 112px;     /* Equivale a md:py-28 */
    padding-bottom: 112px;
  }
}

.ancho-maximo-centrado {
  margin-left: auto;
  margin-right: auto;
  max-width: 1152px;      /* Equivale a max-w-6xl */
  padding-left: 16px;     /* Equivale a px-4 */
  padding-right: 16px;
}

/* Pantallas medianas / Tablets en adelante (md:) */
@media (min-width: 768px) {
  .ancho-maximo-centrado {
    padding-left: 24px;   /* Equivale a md:px-6 */
    padding-right: 24px;
  }
}

.intro-seccion-centrada {
  margin-left: auto;
  margin-right: auto;
  max-width: 672px;        /* Equivale a max-w-2xl */
  text-align: center;      /* Centra todo el texto internamente */
}

.mb-4-px {
  margin-bottom: 16px; /* Equivale a mb-4 (1rem) */
}

.titulo-seccion-serif {
  font-family: var(--font-serif) !important;
  font-size: 30px !important;          /* Equivale a text-3xl */
  line-height: 1.25;        /* Equivale a leading-tight */
  color: oklch(0.94 0.015 85) !important;
  text-wrap: balance;       /* Equivale a text-balance */
}

/* Pantallas grandes / Escritorio (md:) */
@media (min-width: 768px) {
  .titulo-seccion-serif {
    font-size: 48px;        /* Equivale a md:text-5xl */
  }
}

.descripcion-seccion-atenuada {
  margin-top: 20px;         /* Equivale a mt-5 */
  font-size: 16px;          /* Añadido por defecto para que sea legible */
  line-height: 1.625;       
  text-wrap: pretty;      
  color: var(--muted-foreground) !important; /* Usa tu variable de color gris/atenuado */
}

.grid-tres-columnas {
  margin-top: 56px;         /* Equivale a mt-14 */
  display: grid;
  gap: 24px;                /* Equivale a gap-6 */
}

/* Pantallas medianas / Escritorio en adelante (md:) */
@media (min-width: 768px) {
  .grid-tres-columnas {
    grid-template-columns: repeat(3, minmax(0, 1fr)); /* Equivale a md:grid-cols-3 */
  }
}

.tarjeta-grupo {
  position: relative;
  display: flex;
  flex-direction: column;   /* Equivale a flex-col */
  overflow: hidden;
  border-radius: 16px;       /* Equivale a rounded-2xl */
  
  /* Borde dorado sutil y fondo de tarjeta definido en tu paleta global */
  border: 1px solid color-mix(in srgb, var(--gold) 12%, transparent); /* Equivale a border-gold/12 */
  background-color: var(--card) !important; /* Equivale a bg-card */
}

.contenedor-cuadrado {
  aspect-ratio: 1 / 1;       /* Equivale a aspect-square */
  overflow: hidden;
}

/* Imagen con efecto de zoom suave al pasar el cursor por la tarjeta */
.imagen-tarjeta-zoom {
  width: 100%;
  height: 100%;
  object-fit: cover;               /* Equivale a object-cover */
  
  /* Configuración de la transición de zoom */
  transform: scale(1);
  transition: transform 700ms ease; /* Equivale a transition-transform duration-700 */
}

/* Efecto cuando se hace hover en la tarjeta contenedora (.tarjeta-grupo) */
.tarjeta-grupo:hover .imagen-tarjeta-zoom {
  transform: scale(1.05);          /* Equivale a group-hover:scale-105 */
}

.cuerpo-tarjeta-contenido {
  display: flex;
  flex: 1 1 0%;            /* Equivale a flex-1 */
  flex-direction: column;   /* Equivale a flex-col */
  padding: 24px;            /* Equivale a p-6 (1.5rem) */
}

.titulo-tarjeta-principal {
  font-family: var(--font-serif) !important;
  font-size: 20px;          /* Equivale a text-xl */
  color: var(--ivory) !important;      /* Tu color marfil de marca */
}

.enlace-corto-dorado {
  display: inline-flex;
  align-items: center;
  gap: 6px;                 /* Equivale a gap-1.5 (0.375rem) */
  font-size: 14px;          /* Equivale a text-sm */
  font-weight: 500;         /* Equivale a font-medium */
  color: var(--gold) !important;       /* Tu color dorado de marca */
  text-decoration: none;    /* Quita el subrayado feo por defecto si es un enlace */
}

.capa-oscura-overlay {
  position: absolute;
  top: 0px;                 /* Equivale a inset-0 */
  right: 0px;
  bottom: 0px;
  left: 0px;
  
  /* Mezcla tu color carbón al 85% con transparente */
  background-color: color-mix(in srgb, var(--charcoal) 85%, transparent);
}

.seccion-bordeada-oro {
  position: relative;
  overflow: hidden;
  border-top: 1px solid color-mix(in srgb, var(--gold) 15%, transparent);   /* Equivale a border-y border-gold/15 */
  border-bottom: 1px solid color-mix(in srgb, var(--gold) 15%, transparent);
}

.contenedor-intermedio-centrado {
  position: relative;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  max-width: 768px;       /* Equivale a max-w-3xl */
  flex-direction: column;   /* Equivale a flex-col */
  align-items: center;
  text-align: center;
  padding-left: 16px;      /* Equivale a px-4 */
  padding-right: 16px;
  padding-top: 64px;       /* Equivale a py-16 */
  padding-bottom: 64px;
}

/* Pantallas medianas / Computadoras (md:) */
@media (min-width: 768px) {
  .contenedor-intermedio-centrado {
    padding-left: 24px;    /* Equivale a md:px-6 */
    padding-right: 24px;
    padding-top: 80px;     /* Equivale a md:py-20 */
    padding-bottom: 80px;
  }
}

.descripcion-intermedia-atenuada {
  margin-top: 16px;         /* Equivale a mt-4 */
  font-size: 16px;          /* Tamaño base ideal para lectura */
  line-height: 1.625;       /* Equivale a leading-relaxed */
  max-width: 512px;         /* Equivale a max-w-lg */
  text-wrap: pretty;        /* Equivale a text-pretty (evita palabras huérfanas) */
  color: var(--muted-foreground) !important; /* Usa tu variable de color gris de marca */
}

.mt-8-px {
  margin-top: 32px; /* Equivale a mt-8 (2rem) */
}

.ancho-max-2xl {
  max-width: 672px; /* Equivale a max-w-2xl (42rem) */
}

.grid-tres-columnas-56px {
  margin-top: 56px;         /* Equivale a mt-12 */
  display: grid;
  gap: 24px;                /* Equivale a gap-6 */
}

/* Equivalente a md:grid-cols-3 (pantallas desde 768px) */
@media (min-width: 768px) {
  .grid-tres-columnas-56px {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.tarjeta-fondo-imagen {
  position: relative;
  display: flex;
  min-height: 416px;        /* Equivale a min-h-[26rem] (26 * 16px) */
  flex-direction: column;   /* Equivale a flex-col */
  justify-content: flex-end; /* Equivale a justify-end (empuja el contenido hacia abajo) */
  overflow: hidden;
  border-radius: 16px;       /* Equivale a rounded-2xl */
}

.imagen-fondo-zoom {
  width: 100%;
  height: 100%;
  object-fit: cover;               /* Equivale a object-cover */
  
  /* Configuración de la transición de zoom */
  transform: scale(1);
  transition: transform 700ms ease !important; /* Equivale a transition-transform duration-700 */
}

/* Efecto cuando se hace hover en la nueva tarjeta contenedora (.tarjeta-fondo-imagen) */
.tarjeta-fondo-imagen:hover .imagen-fondo-zoom {
  transform: scale(1.05);          /* Equivale a group-hover:scale-105 */
}

.degradado-inferior-tarjeta {
  position: absolute;
  top: 0px;                     /* Equivale a inset-0 */
  right: 0px;
  bottom: 0px;
  left: 0px;
  
  /* Gradiente nativo usando tus variables de marca */
  background-image: linear-gradient(
    to top,
    var(--charcoal) 0%,
    color-mix(in srgb, var(--charcoal) 40%, transparent) 50%,
    transparent 100%
  );
}

.contenido-tarjeta-inferior {
  position: relative;
  padding: 28px;            /* Equivale a p-7 (7 * 4px = 28px) */
}

.descripcion-tarjeta-atenuada {
  margin-top: 8px;          /* Equivale a mt-2 */
  max-width: 320px;         /* Equivale a max-w-xs */
  font-size: 14px;          /* Equivale a text-sm */
  line-height: 1.625;       /* Equivale a leading-relaxed */
  
  /* Mezcla tu color marfil al 80% con transparente */
  color: color-mix(in srgb, var(--ivory) 80%, transparent)!important;
}

.banner-parallax-screen {
  position: relative;
  display: flex;
  min-height: 70vh;         /* Ocupa el 70% del alto de la pantalla actual */
  align-items: center;
  justify-content: center;
  overflow: hidden;
  
  /* Configuración nativa para fondo fijo (Parallax) */
  background-attachment: fixed; /* Equivale a bg-fixed */
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.degradado-oscuro-completo {
  position: absolute;
  top: 0px;                     /* Equivale a inset-0 */
  right: 0px;
  bottom: 0px;
  left: 0px;
  
  /* Gradiente nativo de arriba a abajo usando tus variables de marca */
  background-image: linear-gradient(
    to bottom,
    color-mix(in srgb, var(--charcoal) 85%, transparent) 0%,
    color-mix(in srgb, var(--charcoal) 70%, transparent) 50%,
    color-mix(in srgb, var(--charcoal) 90%, transparent) 100
  );
}

.destello-radial-dorado {
  position: absolute;
  top: 0px;                     /* Equivale a inset-0 */
  right: 0px;
  bottom: 0px;
  left: 0px;
  
  /* Gradiente radial de tu marca Filo di Vita corregido a estándar de CSS */
  background-image: radial-gradient(
    60% 45% at 50% 45%, 
    rgba(212, 175, 90, 0.14) 0%, 
    transparent 70%
  );
  
  pointer-events: none;         /* Truco clave: evita que esta capa tape los clics de tus botones */
}

.intro-bloque-centrado {
  position: relative;
  margin-left: auto;
  margin-right: auto;
  max-width: 672px;        /* Equivale a max-w-2xl */
  padding-left: 20px;      /* Equivale a px-5 */
  padding-right: 20px;     /* Equivale a px-5 */
  text-align: center;      /* Centra todo el texto internamente */
}

.mb-5-px {
  margin-bottom: 20px; /* Equivale a mb-5 (1.25rem) */
}

.titulo-seccion-holgado {
  font-family: var(--font-serif);
  font-size: 30px;          /* Equivale a text-3xl */
  line-height: 1.15;        /* Equivale a leading-[1.15] */
  color: var(--ivory);
  text-wrap: balance;       /* Equivale a text-balance */
}

/* Pantallas grandes / Escritorio (md:) */
@media (min-width: 768px) {
  .titulo-seccion-holgado {
    font-size: 48px;        /* Equivale a md:text-5xl */
  }
}

.descripcion-marfil-suave {
  margin-top: 24px;         /* Equivale a mt-6 */
  font-size: 16px;          /* Tamaño base ideal para lectura */
  line-height: 1.625;       /* Equivale a leading-relaxed */
  text-wrap: pretty;        /* Equivale a text-pretty */
  
  /* Mezcla tu color marfil al 80% con transparente */
  color: color-mix(in srgb, var(--ivory) 80%, transparent);
}

.ancho-medio-separado {
  max-width: 672px;         /* Equivale a max-w-2xl (42rem) */
  margin-bottom: 48px;      /* Equivale a mb-12 (3rem) */
}

/* Cuadrícula adaptable de 1 a 2 columnas */
.grid-dos-columnas-ancho {
  display: grid;
  gap: 32px;                /* Equivale a gap-8 (2rem) */
}

/* Pantallas grandes / Escritorio (lg: desde 1024px) */
@media (min-width: 1024px) {
  .grid-dos-columnas-ancho {
    grid-template-columns: repeat(2, minmax(0, 1fr)); /* Equivale a lg:grid-cols-2 */
  }
}

/* Contenedor principal con separación */
.lista-vertical-separada {
  display: flex;
  flex-direction: column;
  gap: 24px;                /* Equivale a gap-6 */
}

/* Contenedor de la lista (text-sm) */
.bloque-texto-separado {
  font-size: 14px;
  list-style: none;         /* Quita los puntos nativos de la lista de WordPress */
  padding: 0;               /* Resetea espacios de WordPress */
  margin: 0;
}

/* Separación entre cada ítem de la lista (space-y-5) */
.bloque-texto-separado > * + * {
  margin-top: 20px;
}

/* Fila horizontal para alinear icono y textos */
.fila-horizontal-separada {
  display: flex;
  flex-direction: row;
  gap: 16px;                /* Equivale a gap-4 */
  align-items: flex-start;  /* Alinea arriba para que el icono quede bien con textos largos */
}

/* Iconos dorados de la lista (MapPin, Clock, Car) */
.icono-lista-dorado {
  margin-top: 2px;          /* Equivale a mt-0.5 */
  width: 20px;              /* Equivale a size-5 */
  height: 20px;
  flex-shrink: 0;           /* Evita que el icono se aplaste */
  color: var(--gold);
}

/* Títulos de cada ítem (font-medium text-ivory) */
.texto-marfil-medio {
  font-weight: 500;
  color: var(--ivory);
  margin: 0;                /* Resetea márgenes de WordPress */
}

/* Margen superior para las descripciones de abajo */
.mt-1-px {
  margin-top: 4px;          /* Equivale a mt-1 */
  margin-bottom: 0;
  color: var(--muted-foreground);
}

/* Contenedor de los botones de contacto */
.contenedor-botones-contacto {
  display: flex;
  flex-direction: column;   /* En móvil van apilados */
  gap: 12px;                /* Equivale a gap-3 (12px) */
}

/* Pantallas medianas en adelante (sm: desde 640px) */
@media (min-width: 640px) {
  .contenedor-botones-contacto {
    flex-direction: row;    /* En tablet/PC se ponen uno al lado del otro */
  }
}

/* Estilo Base Compartido para ambos botones */
.btn-contacto-base {
  display: inline-flex;
  height: 48px;                 /* Equivale a h-12 (48px) */
  flex: 1 1 0%;                 /* Equivale a flex-1 */
  align-items: center;
  justify-content: center;
  gap: 8px;                     /* Equivale a gap-2 (8px) */
  border-radius: 9999px;        /* Equivale a rounded-full */
  padding-left: 24px;           /* Equivale a px-6 (24px) */
  padding-right: 24px;
  font-size: 14px;              /* Equivale a text-sm (14px) */
  font-family: var(--font-sans);
  font-weight: 500;             /* Equivale a font-medium */
  text-decoration: none;        /* Quita el subrayado nativo */
  cursor: pointer;
}

/* Icono interno de los botones (Navigation y MessageCircle) */
.btn-contacto-base svg {
  width: 16px;                  /* Equivale a size-4 (16px) */
  height: 16px;
}

/* BOTÓN 1: "Cómo llegar" (Dorado de la marca) */
.btn-contacto-gold {
  background-color: var(--gold);
  color: var(--primary-foreground);
  border: none;
  transition: filter 0.2s ease;
}
.btn-contacto-gold:hover {
  filter: brightness(1.05);     /* Equivale a hover:brightness-105 */
}

/* BOTÓN 2: "WhatsApp" (De contorno/borde) */
.btn-contacto-outline {
  background-color: transparent;
  border: 1px solid var(--border);
  color: var(--ivory);
  transition: color 0.2s ease, border-color 0.2s ease;
}
.btn-contacto-outline:hover {
  border-color: var(--gold);    /* Equivale a hover:border-gold */
  color: var(--gold);           /* Equivale a hover:text-gold */
}

.seccion-reserva-banner {
  position: relative;
  display: flex;
  min-height: 80vh;         /* Ocupa el 80% del alto de la pantalla del usuario */
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

/* Título de reserva grande y elegante */
.titulo-reserva-serif {
  font-family: var(--font-serif)!important;
  font-size: 36px;          /* Equivale a text-4xl */
  line-height: 1.25;        /* Equivale a leading-tight */
  color: var(--ivory) !important;
  text-wrap: balance;       /* Equivale a text-balance */
}

/* Pantallas grandes / Escritorio (md:) */
@media (min-width: 768px) {
  .titulo-reserva-serif {
    font-size: 60px;        /* Equivale a md:text-6xl (3.75rem) */
  }
}

/* Utilidad para el contenedor del botón de reserva (mt-9) */
.mt-9-px {
  margin-top: 36px;         /* Equivale a mt-9 (36px) */
}/* End custom CSS */