/* ===================================
   RESET & BASE
   =================================== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
    --color-cream: #faf8f5; --color-cream-dark: #f0ebe3; --color-sand: #e8dfd4;
    --color-clay: #c4a484; --color-clay-dark: #a68a6d;
    --color-terracotta: #d47a5a; --color-terracotta-dark: #b86444;
    --color-charcoal: #2d2d2d; --color-charcoal-light: #4a4a4a;
    --color-white: #ffffff; --color-black: #1a1a1a;
    --color-error: #c0392b; --color-success: #27ae60;

    --font-heading: 'Playfair Display', Georgia, serif;
    --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

    --space-xs: 0.3rem; --space-sm: 0.5rem; --space-md: 1rem;
    --space-lg: 1.5rem; --space-xl: 3rem; --space-2xl: 4.5rem;

    --container-max: 1200px; --container-padding: 1.5rem;

    --transition-fast: 150ms ease; --transition-base: 250ms ease; --transition-slow: 400ms ease;

    --shadow-sm: 0 1px 3px rgba(0,0,0,0.08); --shadow-md: 0 4px 12px rgba(0,0,0,0.1); --shadow-lg: 0 8px 24px rgba(0,0,0,0.12);

    --radius-sm: 4px; --radius-md: 8px; --radius-lg: 16px; --radius-full: 9999px;

    --z-header: 1000; --z-content: 1;
}

html { scroll-behavior: smooth; scroll-padding-top: 80px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } }

body { font-family: var(--font-body); font-size: 1rem; line-height: 1.6; color: var(--color-charcoal); background-color: var(--color-cream); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; font-size: inherit; cursor: pointer; border: none; background: none; }
ul, ol { list-style: none; }
address { font-style: normal; }

.container { width: 100%; max-width: var(--container-max); margin: 0 auto; padding: 0 var(--container-padding); }

/* ===================================
   NAV - Fixed top
   =================================== */
.nav { position: fixed; top: 0; left: 0; right: 0; z-index: var(--z-header); background-color: rgba(250, 248, 245, 0.92); backdrop-filter: blur(12px); border-bottom: 1px solid var(--color-sand); padding: var(--space-xs) 0; max-height: 100px; width: 100%; }
.nav.container { max-width: 100%; padding: 0 var(--space-lg); display: flex; align-items: center; justify-content: space-between; }
.nav__logo { display: flex; align-items: center; flex-shrink: 0; }
.nav__logo-img { height: 48px; width: auto; object-fit: contain; }
.nav__menu { display: flex; gap: var(--space-md); align-items: center; }
.nav__link { font-size: 0.875rem; font-weight: 500; color: var(--color-charcoal); position: relative; padding: 2px 0; transition: color var(--transition-fast); }
.nav__link::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 2px; background-color: var(--color-terracotta); transition: width var(--transition-base); }
.nav__link:hover, .nav__link:focus { color: var(--color-terracotta); }
.nav__link:hover::after, .nav__link:focus::after { width: 100%; }
.nav__toggle { display: none; width: 44px; height: 44px; position: relative; }
.nav__hamburger, .nav__hamburger::before, .nav__hamburger::after { content: ''; position: absolute; left: 50%; transform: translateX(-50%); width: 24px; height: 2px; background-color: var(--color-charcoal); border-radius: var(--radius-full); transition: all var(--transition-base); }
.nav__hamburger { top: 50%; transform: translate(-50%, -50%); }
.nav__hamburger::before { top: -8px; }
.nav__hamburger::after { bottom: -8px; }
.nav__toggle[aria-expanded="true"] .nav__hamburger { background-color: transparent; }
.nav__toggle[aria-expanded="true"] .nav__hamburger::before { top: 0; transform: translate(-50%, -50%) rotate(45deg); }
.nav__toggle[aria-expanded="true"] .nav__hamburger::after { bottom: 0; transform: translate(-50%, -50%) rotate(-45deg); }

/* ===================================
   BACKGROUND IMAGES - Por sección
   =================================== */
.hero { background-image: url('../images/inicio.jpg'); background-size: cover; background-position: center; background-repeat: no-repeat; }
.section--bg-conoceme { background-color: var(--color-cream); background-image: none; }
.section--bg-coleccion { background-color: var(--color-cream); background-image: none; }
.section--bg-personalizados { background-color: var(--color-cream); background-image: none; }
.section--bg-redes { background-color: var(--color-cream); background-image: none; }
.section--bg-contacto { background-color: var(--color-cream); background-image: none; }

.section--bg-conoceme .section__inner, .section--bg-coleccion .section__inner, .section--bg-personalizados .section__inner, .section--bg-redes .section__inner, .section--bg-contacto .section__inner { position: relative; z-index: 1; }

/* ===================================
   HERO - First section content
   =================================== */
.hero { min-height: 100vh; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; padding: calc(80px + var(--space-xl)) var(--container-padding) var(--space-xl); position: relative; z-index: var(--z-content); color: var(--color-white); }
.hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(29,29,29,0.25) 0%, rgba(29,29,29,0.05) 40%, rgba(29,29,29,0.35) 100%); z-index: 0; }
.hero > * { position: relative; z-index: 1; }
.hero__content { width: 100%; max-width: 800px; padding-bottom: calc(var(--space-2xl) * 2); }
.hero__title { font-family: var(--font-heading); font-size: clamp(2.5rem, 7vw, 4.5rem); font-weight: 500; line-height: 1.15; color: var(--color-white); margin-bottom: var(--space-md); text-shadow: 0 2px 20px rgba(0,0,0,0.3); }
.hero__highlight { color: var(--color-sand); text-shadow: 0 2px 20px rgba(212,122,90,0.5); }
.hero__subtitle { font-size: clamp(1.125rem, 2.5vw, 1.5rem); color: rgba(250,248,245,0.9); font-weight: 300; margin-bottom: var(--space-xl); max-width: 700px; margin-left: auto; margin-right: auto; text-shadow: 0 1px 10px rgba(0,0,0,0.2); }
.hero__cta { padding: 1.125rem 2.5rem; font-size: 1.0625rem; box-shadow: 0 4px 20px rgba(212,122,90,0.4); }
.hero__cta:hover, .hero__cta:focus { transform: translateY(-3px); box-shadow: 0 8px 30px rgba(212,122,90,0.5); }
.hero__scroll { position: absolute; bottom: var(--space-xl); left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: var(--space-xs); color: rgba(250,248,245,0.8); font-size: 0.875rem; animation: bounce 2s infinite; text-decoration: none; }
.hero__scroll:hover, .hero__scroll:focus { color: var(--color-white); }
@keyframes bounce { 0%,20%,50%,80%,100% { transform: translateX(-50%) translateY(0); } 40% { transform: translateX(-50%) translateY(-8px); } 60% { transform: translateX(-50%) translateY(-4px); } }
.hero__scroll-icon { width: 24px; height: 24px; }


/* ===================================
   HERO solo texto - First section content
   =================================== */
.hero-text { min-height: 100vh; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; padding: calc(80px + var(--space-xl)) var(--container-padding) var(--space-xl); position: relative; z-index: var(--z-content); color: var(--color-white); }

.hero-text > * { position: relative; z-index: 1; }
.hero-text__content { width: 100%; max-width: 800px; padding-bottom: calc(var(--space-2xl) * 2); }
.hero-text__title { font-family: var(--font-heading); font-size: clamp(2.5rem, 7vw, 4.5rem); font-weight: 500; line-height: 1.15; color: var(--color-charcoal); margin-bottom: var(--space-md); text-shadow: 0 2px 20px rgba(0,0,0,0.3); }
.hero-text__highlight { color: var(--color-terracotta); text-shadow: 0 2px 20px rgba(212,122,90,0.5); }
.hero-text__subtitle { font-size: clamp(1.125rem, 2.5vw, 1.5rem); color: #2d2d2d; font-weight: 300; margin-bottom: var(--space-xl); max-width: 700px; margin-left: auto; margin-right: auto; text-shadow: 0 1px 10px rgba(0,0,0,0.2); }
.hero-text__cta { padding: 1.125rem 2.5rem; font-size: 1.0625rem; box-shadow: 0 4px 20px rgba(212,122,90,0.4); }
.hero-text__cta:hover, .hero__cta:focus { transform: translateY(-3px); box-shadow: 0 8px 30px rgba(212,122,90,0.5); }
.hero-text__scroll { position: absolute; bottom: var(--space-xl); left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: var(--space-xs); color: rgba(250,248,245,0.8); font-size: 0.875rem; animation: bounce 2s infinite; text-decoration: none; }
.hero-text__scroll:hover, .hero__scroll:focus { color: var(--color-white); }
@keyframes bounce { 0%,20%,50%,80%,100% { transform: translateX(-50%) translateY(0); } 40% { transform: translateX(-50%) translateY(-8px); } 60% { transform: translateX(-50%) translateY(-4px); } }
.hero-text__scroll-icon { width: 24px; height: 24px; }

/* ===================================
   SCROLL INDICATORS - Secciones
   =================================== */
.section__scroll { position: absolute; bottom: var(--space-lg); left: 50%; transform: translateX(-50%); display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background-color: rgba(255,255,255,0.15); backdrop-filter: blur(4px); color: var(--color-white); transition: all var(--transition-fast); z-index: 2; }
.section__scroll svg { width: 20px; height: 20px; }
.section__scroll:hover, .section__scroll:focus { background-color: rgba(255,255,255,0.3); transform: translateX(-50%) translateY(2px); }

/* ===================================
   SECTIONS - Content over backgrounds
   =================================== */
.section { min-height: 30vh; display: flex; flex-direction: column; justify-content: center; padding: var(--space-2xl) var(--container-padding); position: relative; z-index: var(--z-content); overflow: hidden; }
.section + .section { margin-top: var(--space-sm); }
.section__inner { width: 100%; max-width: var(--container-max); margin: 0 auto; }
.section__header { text-align: center; margin-bottom: var(--space-xl); }
.section__title { font-family: var(--font-heading); font-size: clamp(2rem, 5vw, 3rem); font-weight: 500; color: var(--color-white); margin-bottom: var(--space-xs); text-shadow: 0 2px 10px rgba(0,0,0,0.2); }
.section__subtitle { font-size: 1.125rem; color: rgba(250,248,245,0.8); font-weight: 300; text-shadow: 0 1px 5px rgba(0,0,0,0.15); }

.section--light { color: var(--color-charcoal); }
.section--light .section__title { color: var(--color-charcoal); text-shadow: none; }
.section--light .section__subtitle { color: var(--color-charcoal-light); text-shadow: none; }

/* ===================================
   BOTONES
   =================================== */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-xs); padding: 1rem 2rem; font-weight: 500; border-radius: var(--radius-full); transition: all var(--transition-base); white-space: nowrap; }
.btn--primary { background-color: var(--color-terracotta); color: var(--color-white); border: 2px solid var(--color-terracotta); }
.btn--primary:hover, .btn--primary:focus { background-color: var(--color-terracotta-dark); border-color: var(--color-terracotta-dark); transform: translateY(-2px); box-shadow: var(--shadow-md); }
.btn--primary:active { transform: translateY(0); }
.btn:focus-visible { outline: 3px solid var(--color-terracotta); outline-offset: 3px; }

/* ===================================
   CONÓCEME
   =================================== */
.conoceme__grid { display: grid; grid-template-columns: 1fr; gap: var(--space-xl); align-items: start; }
.conoceme__image { border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-md); aspect-ratio: 3/4; }
.conoceme__img { width: 100%; height: 100%; object-fit: cover; }
.conoceme__text { margin-bottom: var(--space-lg); }
.conoceme__paragraph { margin-bottom: var(--space-md); font-size: 1.0625rem; line-height: 1.75; color: var(--color-charcoal-light); }
.section--light .conoceme__paragraph { color: var(--color-charcoal-light); }
.conoceme__icon { color: var(--color-terracotta); margin-right: var(--space-xs); font-size: 0.875rem; }
.conoceme__paragraph + .conoceme__paragraph { padding-top: var(--space-md); border-top: 1px solid var(--color-sand); }
.section__quote { font-style: italic; font-size: 1.25rem; color: var(--color-terracotta); line-height: 1.6; margin: var(--space-md) auto var(--space-lg); max-width: 600px; padding-left: var(--space-md); border-left: 3px solid var(--color-terracotta); }
.conoceme__values { display: flex; flex-wrap: wrap; gap: var(--space-md); }
.conoceme__value { display: flex; align-items: center; gap: var(--space-xs); padding: var(--space-sm) var(--space-md); background-color: var(--color-cream); border-radius: var(--radius-full); font-size: 0.9375rem; font-weight: 500; color: var(--color-charcoal); }
.section--light .conoceme__value { background-color: var(--color-cream); color: var(--color-charcoal); }
.conoceme__value-icon { color: var(--color-terracotta); }

/* ===================================
   TEXTO POLITICAS / COOKIES
   =================================== */
.politicas__grid { display: grid; grid-template-columns: 1fr; gap: var(--space-xl); align-items: start; }
.politicas__image { border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-md); aspect-ratio: 3/4; }
.politicas__img { width: 100%; height: 100%; object-fit: cover; }
.politicas__text { margin-bottom: var(--space-lg); }
.politicas__quote_paragraph { margin-bottom: var(--space-md); font-size: 1.0625rem; line-height: 1.75; padding-left: var(--space-md); color: var(--color-charcoal-light); }
.politicas__paragraph { margin-bottom: var(--space-md); font-size: 1.0625rem; line-height: 1.75; color: var(--color-charcoal-light); }
.section--light .conoceme__paragraph { color: var(--color-charcoal-light); }
.politicas__icon { color: var(--color-terracotta); margin-right: var(--space-xs); font-size: 0.875rem; }
.politicas__paragraph + .conoceme__paragraph { padding-top: var(--space-md); border-top: 1px solid var(--color-sand); }
.section__quote { font-style: italic; font-size: 1.25rem; color: var(--color-terracotta); line-height: 1.6; margin: var(--space-md) auto var(--space-lg); max-width: 600px; padding-left: var(--space-md); border-left: 3px solid var(--color-terracotta); }
.politicas__values { display: flex; flex-wrap: wrap; gap: var(--space-md); }
.politicas__value { display: flex; align-items: center; gap: var(--space-xs); padding: var(--space-sm) var(--space-md); background-color: var(--color-cream); border-radius: var(--radius-full); font-size: 0.9375rem; font-weight: 500; color: var(--color-charcoal); }
.section--light .conoceme__value { background-color: var(--color-cream); color: var(--color-charcoal); }
.politicas__value-icon { color: var(--color-terracotta); }

/* ===================================
   COLECCIÓN
   =================================== */
.coleccion__filters { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-sm); margin-bottom: var(--space-xl); }
.filter-btn { padding: var(--space-xs) var(--space-md); font-size: 0.9375rem; font-weight: 500; color: var(--color-charcoal-light); background-color: var(--color-white); border: 1px solid var(--color-sand); border-radius: var(--radius-full); transition: all var(--transition-fast); }
.filter-btn:hover, .filter-btn:focus { color: var(--color-terracotta); border-color: var(--color-terracotta); }
.filter-btn--active, .filter-btn[aria-pressed="true"] { background-color: var(--color-terracotta); border-color: var(--color-terracotta); color: var(--color-white); }
.section--light .filter-btn { background-color: var(--color-white); border-color: var(--color-sand); color: var(--color-charcoal-light); }
.section--light .filter-btn:hover, .section--light .filter-btn:focus { color: var(--color-terracotta); border-color: var(--color-terracotta); }
.section--light .filter-btn--active, .section--light .filter-btn[aria-pressed="true"] { background-color: var(--color-terracotta); border-color: var(--color-terracotta); color: var(--color-white); }

.coleccion__grid { display: grid; grid-template-columns: 1fr; gap: var(--space-lg); }
.product-card { background-color: var(--color-white); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-sm); transition: transform var(--transition-base), box-shadow var(--transition-base); }
.section--light .product-card { background-color: var(--color-white); }
.product-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.product-card__image { position: relative; aspect-ratio: 4/5; overflow: hidden; }
.product-card__img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transition-slow); }
.product-card:hover .product-card__img { transform: scale(1.05); }
.product-card__zoom { position: absolute; bottom: var(--space-sm); right: var(--space-sm); width: 40px; height: 40px; border-radius: 50%; background-color: rgba(255,255,255,0.9); display: flex; align-items: center; justify-content: center; color: var(--color-charcoal); opacity: 0; transform: scale(0.8); transition: all var(--transition-fast); pointer-events: none; }
.product-card:hover .product-card__zoom { opacity: 1; transform: scale(1); }
.product-card__zoom svg { width: 18px; height: 18px; }

/* ===================================
   LIGHTBOX
   =================================== */
.lightbox { position: fixed; inset: 0; z-index: 2000; background: rgba(0,0,0,0.9); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.lightbox[hidden] { display: none; }
.lightbox__img { max-width: 90vw; max-height: 90vh; object-fit: contain; border-radius: var(--radius-md); transition: transform 0.3s ease; cursor: zoom-in; }
.lightbox__close { position: absolute; top: var(--space-md); right: var(--space-md); width: 44px; height: 44px; border-radius: 50%; background: rgba(255,255,255,0.15); color: #fff; font-size: 1.5rem; display: flex; align-items: center; justify-content: center; transition: background var(--transition-fast); }
.lightbox__close:hover { background: rgba(255,255,255,0.3); }
.lightbox__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 50%; background: rgba(255,255,255,0.15); color: #fff; font-size: 1.5rem; display: flex; align-items: center; justify-content: center; transition: background var(--transition-fast); }
.lightbox__nav:hover { background: rgba(255,255,255,0.3); }
.lightbox__nav--prev { left: var(--space-md); }
.lightbox__nav--next { right: var(--space-md); }
.product-card__badge { position: absolute; top: var(--space-sm); left: var(--space-sm); padding: var(--space-xs) var(--space-sm); font-size: 0.75rem; font-weight: 600; color: var(--color-white); background-color: var(--color-terracotta); border-radius: var(--radius-full); text-transform: uppercase; letter-spacing: 0.05em; }
.product-card__content { padding: var(--space-md); }
.product-card__name { font-family: var(--font-heading); font-size: 1.25rem; font-weight: 500; color: var(--color-charcoal); margin-bottom: var(--space-xs); }
.product-card__description { font-size: 0.9375rem; color: var(--color-charcoal-light); margin-bottom: var(--space-sm); line-height: 1.6; }
.section--light .product-card__description { color: var(--color-charcoal-light); }
.product-card__footer { display: flex; justify-content: space-between; align-items: center; padding-top: var(--space-sm); border-top: 1px solid var(--color-sand); }
.section--light .product-card__footer { border-top-color: var(--color-sand); }
.product-card__price { font-family: var(--font-heading); font-size: 1.25rem; font-weight: 600; color: var(--color-terracotta); }
.product-card__btn { padding: var(--space-xs) var(--space-md); font-size: 0.875rem; font-weight: 500; color: var(--color-terracotta); background-color: transparent; border: 1px solid var(--color-terracotta); border-radius: var(--radius-full); transition: all var(--transition-fast); }
.product-card__btn:hover, .product-card__btn:focus { background-color: var(--color-terracotta); color: var(--color-white); }

/* ===================================
   PERSONALIZADOS
   =================================== */
.personalizados__grid { display: grid; grid-template-columns: 1fr; gap: var(--space-xl); align-items: start; }
.personalizados__subtitle { font-family: var(--font-heading); font-size: 1.75rem; font-weight: 500; color: var(--color-charcoal); margin-bottom: var(--space-lg); }
.section--light .personalizados__subtitle { color: var(--color-charcoal); }
.personalizados__steps { margin-bottom: var(--space-xl); }
.personalizados__step { display: flex; gap: var(--space-md); margin-bottom: var(--space-lg); padding-left: calc(40px + var(--space-md)); position: relative; }
.personalizados__step::before { content: ''; position: absolute; left: 20px; top: 40px; bottom: 0; width: 2px; background-color: var(--color-sand); }
.personalizados__step:last-child::before { display: none; }
.personalizados__step-number { position: absolute; left: 0; top: 0; width: 40px; height: 40px; border-radius: 50%; background-color: var(--color-terracotta); color: var(--color-white); display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: 1.125rem; flex-shrink: 0; z-index: 1; }
.personalizados__step h4 { font-size: 1.0625rem; font-weight: 600; color: var(--color-charcoal); margin-bottom: var(--space-xs); }
.section--light .personalizados__step h4 { color: var(--color-charcoal); }
.personalizados__step p { font-size: 0.9375rem; color: var(--color-charcoal-light); }
.section--light .personalizados__step p { color: var(--color-charcoal-light); }
.personalizados__price { display: flex; align-items: baseline; gap: var(--space-sm); margin-bottom: var(--space-lg); flex-wrap: wrap; }
.personalizados__price-label { font-size: 1rem; color: var(--color-charcoal-light); }
.section--light .personalizados__price-label { color: var(--color-charcoal-light); }
.personalizados__price-amount { font-family: var(--font-heading); font-size: 3rem; font-weight: 600; color: var(--color-terracotta); line-height: 1; }
.personalizados__price-note { font-size: 0.9375rem; color: var(--color-charcoal-light); }
.section--light .personalizados__price-note { color: var(--color-charcoal-light); }
.personalizados__gallery-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-md); padding-bottom: 25px; }
.personalizados__gallery-img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--radius-md); box-shadow: var(--shadow-sm); transition: transform var(--transition-base); }
.personalizados__gallery-img:hover { transform: scale(1.02); }

/* ===================================
   REDES SOCIALES
   =================================== */
.redes__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-md); }
.redes__card { display: flex; align-items: center; gap: var(--space-md); padding: var(--space-lg); background-color: var(--color-white); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); border: 1px solid var(--color-sand); transition: all var(--transition-base); }
.section--light .redes__card { background-color: var(--color-white); border-color: var(--color-sand); color: var(--color-charcoal); }
.redes__card:hover, .redes__card:focus { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: var(--color-terracotta); }
.redes__icon { width: 56px; height: 56px; border-radius: var(--radius-md); background: linear-gradient(135deg, var(--color-terracotta), var(--color-clay)); display: flex; align-items: center; justify-content: center; color: var(--color-white); flex-shrink: 0; transition: transform var(--transition-base); }
.redes__card:hover .redes__icon { transform: scale(1.1); }
.redes__icon svg { width: 24px; height: 24px; }
.redes__name { font-family: var(--font-heading); font-size: 1.125rem; font-weight: 500; color: var(--color-charcoal); margin-bottom: 2px; }
.section--light .redes__name { color: var(--color-charcoal); }
.redes__handle { font-size: 0.875rem; color: var(--color-charcoal-light); }
.section--light .redes__handle { color: var(--color-charcoal-light); }
.redes__arrow { margin-left: auto; font-size: 1.25rem; color: var(--color-terracotta); font-weight: 600; opacity: 0; transform: translateX(-8px); transition: all var(--transition-fast); }
.redes__card:hover .redes__arrow { opacity: 1; transform: translateX(0); }

/* ===================================
   CONTACTO
   =================================== */
.contacto__grid { display: grid; grid-template-columns: 1fr; gap: var(--space-xl); }
.contacto__info { display: flex; flex-direction: column; gap: var(--space-md); }
.contacto__item { padding: var(--space-md); background-color: var(--color-white); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.section--light .contacto__item { background-color: var(--color-white); box-shadow: var(--shadow-sm); }
.contacto__item-title { font-family: var(--font-heading); font-size: 1.25rem; font-weight: 500; color: var(--color-charcoal); margin-bottom: var(--space-xs); }
.section--light .contacto__item-title { color: var(--color-charcoal); }
.contacto__link { color: var(--color-terracotta); font-weight: 500; transition: color var(--transition-fast); }
.contacto__link:hover, .contacto__link:focus { color: var(--color-terracotta-dark); text-decoration: underline; }
.contacto__address { color: var(--color-charcoal-light); line-height: 1.6; }
.section--light .contacto__address { color: var(--color-charcoal-light); }

.contacto__form { background-color: var(--color-white); padding: var(--space-lg); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); }
.section--light .contacto__form { background-color: var(--color-white); box-shadow: var(--shadow-md); }
.form__group { margin-bottom: var(--space-md); }
.form__label { display: block; font-size: 0.9375rem; font-weight: 500; color: var(--color-charcoal); margin-bottom: var(--space-xs); }
.form__required { color: var(--color-terracotta); margin-left: 2px; }
.form__input, .form__textarea, .form__select { width: 100%; padding: var(--space-sm) var(--space-md); font-family: inherit; font-size: 1rem; color: var(--color-charcoal); background-color: var(--color-cream); border: 2px solid var(--color-sand); border-radius: var(--radius-md); transition: all var(--transition-fast); }
.section--light .form__input, .section--light .form__textarea, .section--light .form__select { background-color: var(--color-cream); border-color: var(--color-sand); color: var(--color-charcoal); }
.form__input:focus, .form__textarea:focus, .form__select:focus { outline: none; border-color: var(--color-terracotta); box-shadow: 0 0 0 3px rgba(212,122,90,0.2); }
.form__input::placeholder, .form__textarea::placeholder { color: var(--color-charcoal-light); opacity: 0.7; }
.form__textarea { resize: vertical; min-height: 120px; }
.form__submit { width: 100%; padding: 1rem; margin-top: var(--space-sm); }
.form__status { margin-top: var(--space-sm); font-size: 0.9375rem; text-align: center; min-height: 1.5em; }
.form__status--success { color: var(--color-success); }
.form__status--error { color: var(--color-error); }

/* ===================================
   FOOTER
   =================================== */
.footer { background-color: var(--color-charcoal); color: var(--color-cream); padding: var(--space-lg) 0; }
.footer .container { display: flex; flex-direction: column; align-items: center; gap: var(--space-md); text-align: center; }
.footer__copyright { font-size: 0.9375rem; color: rgba(250,248,245,0.7); }
.footer__legal { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-md); }
.footer__legal-link { font-size: 0.875rem; color: rgba(250,248,245,0.7); transition: color var(--transition-fast); }
.footer__legal-link:hover, .footer__legal-link:focus { color: var(--color-terracotta); }

/* ===================================
   RESPONSIVE - TABLET (≥768px)
   =================================== */
@media (min-width: 768px) {
    .conoceme__grid { grid-template-columns: 1fr 1fr; }
    .conoceme__image { order: -1; }
    .coleccion__grid { grid-template-columns: repeat(2, 1fr); }
    .personalizados__grid { grid-template-columns: 1fr 1fr; }
    .personalizados__gallery-grid { grid-template-columns: repeat(3, 1fr); }
    .contacto__grid { grid-template-columns: 1fr 1fr; }
    .redes__grid { grid-template-columns: repeat(4, 1fr); }
    .footer .container { flex-direction: row; justify-content: space-between; }
}

/* ===================================
   RESPONSIVE - DESKTOP (≥1024px)
   =================================== */
@media (min-width: 1024px) {
    .nav { padding: var(--space-md) 0; }
    .nav__menu { gap: var(--space-xl); }
    .nav__link { font-size: 1rem; }
    .nav__toggle { display: none !important; }
    .conoceme__values { gap: var(--space-lg); }
    .coleccion__grid { grid-template-columns: repeat(3, 1fr); }
    .personalizados__step { padding-left: calc(50px + var(--space-md)); }
    .personalizados__step::before { left: 25px; }
    .personalizados__step-number { width: 50px; height: 50px; font-size: 1.25rem; }
}

/* ===================================
   MENÚ MÓVIL
   =================================== */
@media (max-width: 767px) {
    .nav__menu { position: fixed; top: 0; right: -100%; width: 80%; max-width: 300px; height: 100vh; background-color: var(--color-white); flex-direction: column; justify-content: center; gap: var(--space-lg); padding: var(--space-xl); box-shadow: var(--shadow-lg); transition: right var(--transition-base); border-left: 1px solid var(--color-sand); }
    .nav__menu--open { right: 0; }
    .nav__link { font-size: 1.25rem; }
    .nav__toggle { display: flex; align-items: center; justify-content: center; }
    .redes__grid { grid-template-columns: 1fr; }
}



