.home-hero { position: relative; overflow: hidden; isolation: isolate; }
.hero-copy { max-width: 900px; }
.hero-copy h1 { max-width: 1050px; margin: 1rem 0 1.5rem; }
.hero-lede { max-width: 680px; margin-bottom: 2rem; color: #eddcdd; font-size: clamp(1.05rem, 1.6vw, 1.35rem); }
.hero-signal { position: relative; min-height: 490px; align-self: stretch; }
.hero-number { position: absolute; top: 50%; right: -1.6rem; color: rgba(225,170,176,.17); font: 700 clamp(7rem, 14vw, 13rem)/.8 var(--font-display); letter-spacing: -.09em; transform: translateY(-50%) rotate(-8deg); white-space: nowrap; }
.orbit { position: absolute; border: 1px solid rgba(225,170,176,.45); border-radius: 50%; transform: rotate(-16deg); }
.orbit-one { inset: 17% -40% 23% -16%; box-shadow: 0 22px 0 rgba(211,127,136,.09), 0 44px 0 rgba(211,127,136,.06); }
.orbit-two { inset: 26% -20% 32% -28%; }
.signal-label { position: absolute; right: 0; bottom: 8%; color: var(--color-brand-pink); font-size: .66rem; font-weight: 800; letter-spacing: .18em; writing-mode: vertical-rl; }
.signal-field { position: absolute; inset: 0; z-index: -1; opacity: .45; background: radial-gradient(circle at 73% 46%, rgba(187,60,74,.28), transparent 28%), linear-gradient(90deg, transparent 49.9%, rgba(255,255,255,.035) 50%); background-size: auto, 72px 100%; }
.signal-field i { position: absolute; left: -8%; width: 116%; height: 1px; background: linear-gradient(90deg, transparent, rgba(225,170,176,.4), transparent); transform: rotate(-4deg); }
.signal-field i:nth-child(1) { top: 22%; }.signal-field i:nth-child(2) { top: 42%; transform: rotate(3deg); }.signal-field i:nth-child(3) { top: 66%; transform: rotate(-2deg); }.signal-field i:nth-child(4) { top: 82%; transform: rotate(5deg); }
.hero-index { position: absolute; z-index: 2; right: 0; bottom: 1rem; left: 0; display: flex; justify-content: space-between; color: #bfa7aa; font-size: .67rem; font-weight: 760; letter-spacing: .18em; }
.intro-section { background: var(--color-surface); }
.section-heading h2 { max-width: 8ch; margin-top: .75rem; color: var(--color-brand-wine); }
.intro-copy { display: grid; gap: 1.5rem; align-content: start; padding-top: .5rem; color: var(--color-text-muted); }
.intro-copy .lead { color: var(--color-text); }
.preview-strip { padding-bottom: var(--space-2xl); }
.preview-grid article { min-height: 260px; padding: 2rem; border-right: 1px solid var(--color-border); }
.preview-grid article:last-child { border-right: 0; }
.preview-grid article > span { color: var(--color-brand-red); font-size: .74rem; font-weight: 850; letter-spacing: .16em; }
.preview-grid h3 { margin: 2.5rem 0 1rem; color: var(--color-brand-wine); }
.preview-grid p { color: var(--color-text-muted); }

.areas-section, .experience-section, .audiences-section, .contact-section { padding-block: var(--space-3xl); }
.areas-section { background: #fff; }
.areas-list { border-top: 1px solid var(--color-border); }
.area-row { display: grid; grid-template-columns: .2fr .75fr 1.05fr; gap: clamp(1.5rem, 4vw, 4rem); padding-block: clamp(2.25rem, 5vw, 4.5rem); border-bottom: 1px solid var(--color-border); }
.area-number { color: var(--color-brand-red); font-size: .74rem; font-weight: 850; letter-spacing: .16em; }
.area-title h3 { max-width: 12ch; margin-bottom: 1rem; color: var(--color-brand-wine); }
.area-title p { color: var(--color-text-muted); }
.area-groups { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem; }
.area-groups h4 { margin: 0 0 .8rem; color: var(--color-brand-wine); font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; }

.products-section { padding-block: var(--space-3xl); }
.product-grid { display: grid; gap: var(--space-xl); }
.product-card { display: grid; min-height: 620px; grid-template-columns: .9fr 1.1fr; overflow: hidden; border: 1px solid rgba(225,170,176,.22); border-radius: var(--radius-lg); background: rgba(255,255,255,.045); }
.product-card:nth-child(even) .product-copy { order: 2; }
.product-copy { padding: clamp(2rem, 5vw, 5rem); }
.product-label { color: var(--color-brand-pink); font-size: .7rem; font-weight: 850; letter-spacing: .18em; text-transform: uppercase; }
.product-copy h3 { margin: 1rem 0 1.35rem; color: #fff; font-size: clamp(3rem, 7vw, 6.8rem); }
.product-lede { margin-bottom: 1.5rem; color: #ead6d8; font-size: 1.08rem; }
.product-statement { margin: 2rem 0; padding-top: 1.25rem; border-top: 1px solid rgba(225,170,176,.25); color: #fff; font-family: var(--font-display); font-size: 1.25rem; }
.product-shot { position: relative; min-height: 420px; overflow: hidden; background: var(--color-surface-soft); }
.product-shot picture, .product-shot img { width: 100%; height: 100%; }
.product-shot img { object-fit: cover; object-position: left top; }
.product-shot figcaption, .solution-shot figcaption { position: absolute; right: .75rem; bottom: .75rem; padding: .35rem .55rem; color: #fff; background: rgba(37,22,23,.78); border-radius: .35rem; font-size: .66rem; }

.case-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 5vw, 4.5rem); }
.case-card { min-width: 0; }
.case-media { position: relative; aspect-ratio: 16/10; overflow: hidden; border-radius: var(--radius-md); background: var(--color-surface-soft); }
.case-media picture, .case-media img { width: 100%; height: 100%; }
.case-media img { object-fit: cover; }
.case-media-viajero-cover img { object-position: center; }
.case-media figcaption { position: absolute; right: .55rem; bottom: .55rem; padding: .3rem .45rem; color: #fff; background: rgba(37,22,23,.78); border-radius: .3rem; font-size: .62rem; }
.case-copy { padding: 1.4rem .25rem 0; }
.case-meta { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; color: var(--color-brand-red); font-size: .7rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.case-copy h3 { margin-bottom: .8rem; color: var(--color-brand-wine); }
.case-copy p { color: var(--color-text-muted); }

.method-section { overflow: hidden; padding-block: var(--space-3xl); color: #fff; background: var(--color-brand-red); }
.method-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: var(--space-xl); }
.method-number { margin-left: -8vw; color: rgba(255,255,255,.13); font: 700 clamp(7rem, 22vw, 22rem)/.65 var(--font-display); letter-spacing: -.12em; white-space: nowrap; }
.method-number::before { content: '4—32'; }
.method-copy .eyebrow { color: #fff; }
.method-copy h2 { max-width: 12ch; margin: 1rem 0 1.5rem; color: #fff; }
.method-copy > p:last-child { max-width: 650px; color: #fff; }
.method-highlight { max-width: 600px; margin-bottom: 1.5rem; color: #fff; font-family: var(--font-display); font-size: clamp(1.35rem, 2.8vw, 2.4rem); line-height: 1.2; }
.institutional-cta { padding-block: var(--space-3xl); }
.cta-grid { display: grid; grid-template-columns: 1.3fr .7fr; align-items: end; gap: var(--space-xl); }
.cta-grid h2 { max-width: 13ch; margin-top: .8rem; color: var(--color-brand-wine); }
.cta-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem; justify-content: flex-end; }

.site-footer { color: #ead6d8; background: var(--color-brand-wine-deep); }
.footer-brand img { width: 124px; height: auto; }
.footer-brand p { margin-top: .8rem; color: #bda5a8; font-size: .75rem; }
.footer-grid a { width: fit-content; color: #ead6d8; font-size: .82rem; text-decoration-color: rgba(225,170,176,.4); }
.footer-base { color: #a99093; font-size: .68rem; letter-spacing: .14em; }

.solutions-hero { position: relative; overflow: hidden; isolation: isolate; }
.solutions-hero-grid { position: relative; z-index: 2; display: grid; min-height: calc(100svh - 76px); grid-template-columns: 1.08fr .92fr; align-items: center; gap: clamp(2rem, 6vw, 6rem); padding-block: clamp(5rem, 9vw, 9rem); }
.solutions-hero-copy h1 { margin: 1rem 0 1.5rem; font-size: clamp(3.1rem, 7vw, 7rem); }
.product-collage { position: relative; min-height: 600px; }
.collage-shot { position: absolute; width: 78%; overflow: hidden; border: 1px solid rgba(225,170,176,.4); border-radius: 1rem; box-shadow: 0 30px 80px rgba(0,0,0,.3); }
.collage-shot picture, .collage-shot img { width: 100%; height: 100%; }
.collage-shot img { object-fit: cover; object-position: left top; }
.collage-go { top: 2%; right: 0; aspect-ratio: 16/10; transform: rotate(2.5deg); }
.collage-tickets { bottom: 4%; left: 0; aspect-ratio: 16/10; transform: rotate(-3deg); }
.collage-index { position: absolute; right: 1rem; bottom: 0; color: var(--color-brand-pink); font-size: .64rem; font-weight: 850; letter-spacing: .18em; }
.needs-nav { padding-block: var(--space-2xl); border-bottom: 1px solid var(--color-border); background: #fff; }
.needs-nav h2 { margin-bottom: 2rem; color: var(--color-brand-wine); font-size: clamp(2rem, 4vw, 3.75rem); }
.needs-nav ol { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid var(--color-border); }
.needs-nav a { display: grid; min-height: 165px; grid-template-rows: auto 1fr auto; padding: 1rem; border-right: 1px solid var(--color-border); color: var(--color-brand-wine); font-size: .88rem; font-weight: 740; text-decoration: none; }
.needs-nav li:last-child a { border-right: 0; }
.needs-nav a span { color: var(--color-brand-red); font-size: .68rem; letter-spacing: .14em; }
.needs-nav a b { justify-self: end; color: var(--color-brand-rose); }
.solution-block { padding-block: var(--space-3xl); border-bottom: 1px solid var(--color-border); background: var(--color-surface); }
.solution-block:nth-child(even) { background: #fff; }
.solution-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(3rem, 8vw, 8rem); }
.solution-reverse .solution-copy { order: 2; }
.solution-number { margin: 1.25rem 0 -1rem; color: rgba(187,60,74,.13); font: 700 clamp(5rem, 12vw, 11rem)/.8 var(--font-display); letter-spacing: -.08em; }
.solution-number::before { content: attr(data-number); }
.solution-copy h2 { max-width: 11ch; margin-bottom: 1.5rem; color: var(--color-brand-wine); }
.solution-lede { margin-bottom: 1.5rem; color: var(--color-text-muted); font-size: clamp(1.05rem, 1.6vw, 1.3rem); }
.check-list { grid-template-columns: repeat(2, 1fr); margin-block: 1.75rem; }
.check-list li { padding-top: .75rem; border-top: 1px solid var(--color-border); color: var(--color-text-muted); font-size: .86rem; }
.solution-copy blockquote { margin: 2rem 0; padding: 1.25rem 0 1.25rem 1.25rem; border-left: 3px solid var(--color-brand-rose); color: var(--color-brand-wine); font-family: var(--font-display); font-size: clamp(1.2rem, 2vw, 1.65rem); line-height: 1.3; }
.solution-visual { min-width: 0; }
.solution-shot { position: relative; aspect-ratio: 16/10; overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); }
.solution-shot picture, .solution-shot img { width: 100%; height: 100%; }
.solution-shot img { object-fit: cover; object-position: left top; }
.field-graphic { position: relative; min-height: 560px; overflow: hidden; border-radius: var(--radius-lg); background: var(--color-brand-wine-deep); }
.field-graphic::before { content: ''; position: absolute; inset: 0; opacity: .5; background: radial-gradient(circle at 65% 35%, rgba(187,60,74,.55), transparent 28%), linear-gradient(90deg, transparent 49.8%, rgba(255,255,255,.06) 50%); background-size: auto, 54px 100%; }
.field-graphic i { position: absolute; right: -20%; left: -20%; height: 22%; border: 1px solid rgba(225,170,176,.45); border-radius: 50%; transform: rotate(-12deg); }
.field-graphic i:nth-child(2) { top: 25%; }.field-graphic i:nth-child(3) { top: 43%; }.field-graphic i:nth-child(4) { top: 61%; }
.field-word { position: absolute; z-index: 2; top: 2rem; left: 2rem; color: var(--color-brand-pink); font-size: .7rem; font-weight: 850; letter-spacing: .2em; }
.field-graphic em { position: absolute; right: -1rem; bottom: -2rem; color: rgba(225,170,176,.18); font: 700 clamp(7rem, 15vw, 14rem)/1 var(--font-display); letter-spacing: -.1em; }
.audience-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--color-border); border-left: 1px solid var(--color-border); }
.audience-grid article { min-height: 240px; padding: 1.75rem; border-right: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); }
.audience-grid article > span { color: var(--color-brand-red); font-size: .68rem; font-weight: 850; letter-spacing: .14em; }
.audience-grid h3 { margin: 3rem 0 1rem; color: var(--color-brand-wine); font-size: clamp(1.5rem, 2.5vw, 2.25rem); }
.audience-grid p { color: var(--color-text-muted); font-size: .9rem; }
.proof-section { padding-block: var(--space-3xl); }
.proof-row { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(225,170,176,.25); }
.proof-row article { min-height: 210px; padding: 1.5rem 1.25rem; border-right: 1px solid rgba(225,170,176,.25); }
.proof-row article:last-child { border-right: 0; }
.proof-row span { color: var(--color-brand-pink); font-size: .7rem; font-weight: 850; letter-spacing: .14em; }
.proof-row h3 { margin: 3rem 0 .75rem; color: #fff; font-size: 1.6rem; }
.proof-row p { color: #cdb7b9; font-size: .8rem; }
.contact-section { background: var(--color-surface-soft); }
.contact-heading { display: grid; grid-template-columns: .5fr 1.1fr .7fr; gap: var(--space-xl); align-items: start; margin-bottom: var(--space-2xl); }
.contact-heading h2 { max-width: 12ch; color: var(--color-brand-wine); }
.contact-heading > p:last-child { color: var(--color-text-muted); }
.contact-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: var(--space-lg); align-items: stretch; }
.contact-panel { position: relative; padding: clamp(1.5rem, 4vw, 3.5rem); border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: #fff; }
.contact-panel h3 { margin: 1.2rem 0 2rem; color: var(--color-brand-wine); }
.panel-index { color: var(--color-brand-red); font-size: .72rem; font-weight: 900; }
.calendar-panel { display: flex; flex-direction: column; color: #ead6d8; background: var(--color-brand-wine-deep); border-color: var(--color-brand-wine-deep); }
.calendar-panel h3 { color: #fff; }
.calendar-panel > p { color: #cdb7b9; }
.calendar-panel .button { align-self: flex-start; }
.calendar-graphic { display: grid; flex: 1; min-height: 270px; grid-template-columns: .55fr 1.45fr; align-items: center; gap: 1.5rem; margin-block: 2rem; padding: 1.5rem; border: 1px solid rgba(225,170,176,.2); border-radius: 1rem; }
.calendar-graphic > span { color: var(--color-brand-pink); font: 700 clamp(4rem, 9vw, 7rem)/1 var(--font-display); }
.calendar-graphic > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: .55rem; }
.calendar-graphic i { aspect-ratio: 1; border: 1px solid rgba(225,170,176,.32); border-radius: .35rem; }
.calendar-fallback { margin-top: .7rem; font-size: .72rem; }
.direct-contact { display: grid; margin-top: 2rem; border-top: 1px solid rgba(225,170,176,.22); }
.direct-contact a { display: grid; gap: .25rem; padding-block: 1rem; border-bottom: 1px solid rgba(225,170,176,.22); text-decoration: none; }
.direct-contact span { color: var(--color-brand-pink); font-size: .65rem; font-weight: 850; letter-spacing: .15em; text-transform: uppercase; }
.direct-contact strong { overflow-wrap: anywhere; font-size: .88rem; }

.legal-page { padding-block: var(--space-3xl); }
.legal-grid { display: grid; grid-template-columns: .45fr 1.55fr; gap: var(--space-2xl); }
.legal-grid aside { color: var(--color-text-muted); font-size: .78rem; }
.legal-grid article { max-width: 850px; }
.legal-grid h1 { margin-bottom: var(--space-2xl); color: var(--color-brand-wine); }
.legal-grid h2 { margin: 3rem 0 1rem; color: var(--color-brand-wine); font-size: clamp(1.65rem, 3vw, 2.5rem); }
.legal-grid article p { margin-bottom: 1rem; color: var(--color-text-muted); }
.legal-contact { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--color-border); }
.error-page { min-height: 70svh; display: grid; place-items: center; }
.error-grid { display: grid; grid-template-columns: .75fr 1.25fr; align-items: center; gap: var(--space-xl); padding-block: 5rem; }
.error-code { color: rgba(225,170,176,.16); font: 700 clamp(8rem, 22vw, 20rem)/.8 var(--font-display); letter-spacing: -.08em; }
.error-grid h1 { margin: 1rem 0 1.5rem; color: #fff; }
.error-grid p { max-width: 600px; margin-bottom: 2rem; color: #d8c3c5; }
