.section-kicker {
  margin: 0 0 var(--space-3);
  color: var(--color-logo-bronze-deep);
  font-size: var(--text-sm);
  font-weight: 600;
}
.hero__message {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-height: 2.25rem;
  margin: calc(-1 * var(--space-4)) 0 var(--space-6);
  color: var(--color-sand);
}
.hero__message p { color: inherit; }
.hero__message,
.about-story__slides {
  touch-action: pan-y;
  cursor: grab;
}
.hero__message:focus-visible,
.about-story__slides:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 4px;
}
.hero__message.is-dragging,
.about-story__slides.is-dragging {
  cursor: grabbing;
  user-select: none;
}
.hero__message-mark {
  width: 0.5rem;
  height: 0.5rem;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--color-sage);
}
.hero__note {
  margin-top: var(--space-5);
  color: rgba(244, 243, 237, 0.72);
  font-size: var(--text-sm);
}
.hero__media figcaption {
  position: absolute;
  right: var(--space-3);
  bottom: var(--space-3);
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-full);
  background: rgba(16, 36, 28, 0.78);
  color: var(--color-paper);
  font-size: var(--text-xs);
}
.about-section { background: var(--color-paper); }
.about-section .section__header { margin-bottom: var(--space-8); }
.about-section #nosotros { scroll-margin-top: 6rem; }
.about-story { display: grid; gap: var(--space-6); }
.about-story__slides { display: grid; }
.about-story__slide {
  grid-area: 1 / 1;
  display: grid;
  gap: var(--space-8);
  align-items: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--duration-slow) var(--ease-out), visibility 0s linear var(--duration-slow);
}
.about-story__slide.is-active {
  opacity: 1;
  visibility: visible;
  transition: opacity var(--duration-slow) var(--ease-out), visibility 0s;
}
.about-story__indicator {
  display: flex;
  justify-self: center;
  gap: var(--space-2);
  width: min(8rem, 36%);
}
.about-story__indicator-segment {
  flex: 1;
  height: 3px;
  border-radius: var(--radius-full);
  background: var(--color-border);
  transition: background-color var(--duration-normal) var(--ease-out);
}
.about-story__indicator-segment.is-active { background: var(--color-logo-bronze-deep); }
.about-story__media {
  position: relative;
  align-self: start;
  overflow: hidden;
  aspect-ratio: 2 / 3;
  border-radius: var(--radius-lg);
  background: var(--color-sand-pale);
}
.about-story__media picture,
.about-story__media img { display: block; width: 100%; height: 100%; }
.about-story__media img { object-fit: contain; }
.about-story__media figcaption {
  position: absolute;
  right: var(--space-3);
  bottom: var(--space-3);
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-full);
  background: rgba(16, 36, 28, 0.78);
  color: var(--color-paper);
  font-size: var(--text-xs);
}
.about-story__copy h3 { margin-bottom: var(--space-4); }
.about-story__role {
  margin-bottom: var(--space-3);
  color: var(--color-logo-bronze-deep);
  font-weight: 600;
}
.services-heading {
  display: grid;
  gap: var(--space-5);
  max-width: none;
}
.services-heading .section__lead { max-width: 44ch; }
.service-card { min-height: 100%; }
.service-card__content { gap: var(--space-2); }
.service-card__title { margin-bottom: 0; }
.service-card__concept {
  margin: 0;
  color: var(--color-forest);
  font-family: var(--font-display);
  font-size: var(--text-lg);
  line-height: var(--leading-snug);
}
.service-card__desc { flex: 1; }
.service-card__cta { margin-top: var(--space-2); }
.services-note {
  margin: var(--space-3) 0 0;
  font-size: var(--text-sm);
}
.coverage-section { background: var(--color-sand-pale); }
.coverage-layout {
  display: grid;
  gap: var(--space-10);
  align-items: start;
}
.coverage-list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-top: var(--space-6);
}
.coverage-list li {
  padding: var(--space-2) var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  background: rgba(255, 255, 255, 0.56);
  color: var(--color-ink);
  font-size: var(--text-sm);
}
.coverage-caveat {
  margin-top: var(--space-3);
  font-size: var(--text-sm);
}
.hours-card {
  padding: var(--space-8);
  border-left: 3px solid var(--color-logo-bronze);
  background: var(--color-paper);
}
.hours-card h3 { margin-bottom: var(--space-5); }
.hours-list {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--space-3) var(--space-5);
  margin-bottom: var(--space-5);
}
.hours-list dt { font-weight: 600; color: var(--color-ink); }
.hours-list dd { text-align: right; color: var(--color-forest); }
.hours-card > p:not(.section-kicker) { margin-bottom: var(--space-4); font-size: var(--text-sm); }
.loyalty-panel {
  display: grid;
  gap: var(--space-6);
  padding: clamp(var(--space-6), 5vw, var(--space-12));
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-paper);
  box-shadow: var(--shadow-sm);
}
.loyalty-panel .section__title { max-width: 18ch; }
.loyalty-panel > div:last-child { display: grid; gap: var(--space-5); align-content: center; }
.loyalty-panel .btn { justify-self: start; }
.loyalty-badge {
  display: inline-flex;
  width: fit-content;
  margin-bottom: var(--space-4);
  padding: var(--space-2) var(--space-4);
  border-radius: var(--radius-full);
  background: var(--color-sand);
  color: var(--color-forest);
  font-size: var(--text-sm);
  font-weight: 600;
}
.inquiry-section { background: var(--color-forest-deep); }
.inquiry-section h2,
.inquiry-section .section__lead,
.inquiry-section .inquiry-facts { color: var(--color-paper); }
.inquiry-section .section-kicker { color: var(--color-sage); }
.inquiry-layout {
  display: grid;
  gap: var(--space-10);
  align-items: start;
}
.inquiry-intro { position: sticky; top: 7rem; }
.inquiry-facts {
  display: grid;
  gap: var(--space-3);
  margin-top: var(--space-8);
  padding-left: 1.25rem;
  list-style: disc;
}
.inquiry-facts li { padding-left: var(--space-1); }
.inquiry-card {
  padding: clamp(var(--space-5), 5vw, var(--space-10));
  border-radius: var(--radius-lg);
  background: var(--color-paper);
}
.inquiry-form { display: grid; gap: var(--space-5); }
.inquiry-form .field { display: grid; gap: var(--space-2); }
.inquiry-form .form__label { font-weight: 600; }
.inquiry-form .form__input,
.inquiry-form .form__select,
.inquiry-form .form__textarea { background: var(--color-white); }
.form-hint { color: var(--color-ink-muted); font-size: var(--text-sm); font-weight: 400; }
.inquiry-submit { width: 100%; }
.form-feedback { margin: 0; color: var(--color-forest); font-weight: 600; }
.inquiry-fallback {
  display: grid;
  gap: var(--space-4);
  padding-top: var(--space-5);
  border-top: 1px solid var(--color-border);
}
.inquiry-fallback[hidden] { display: none; }
.inquiry-fallback__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.inquiry-fallback__actions .btn { white-space: normal; text-align: center; }
.contact-section { background: var(--color-white); }
.contact-layout {
  display: grid;
  gap: var(--space-10);
  align-items: center;
}
.contact-intro .section__title { max-width: 13ch; }
.contact-card {
  display: grid;
  justify-items: stretch;
  gap: var(--space-5);
  padding: clamp(var(--space-6), 4vw, var(--space-10));
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-paper);
  box-shadow: var(--shadow-md);
}
.contact-card .section-kicker { margin-bottom: calc(-1 * var(--space-4)); }
.contact-card__title { margin: 0; font-size: var(--text-2xl); }
.contact-link {
  text-decoration: none;
}
.contact-link--whatsapp {
  display: flex;
  justify-content: center;
  text-align: center;
  padding: var(--space-4) var(--space-6);
  border-radius: var(--radius-full);
  background: var(--color-forest);
  color: var(--color-paper);
  font-weight: 600;
  transition: background-color var(--duration-fast) var(--ease-out);
}
.contact-link--whatsapp:hover {
  background: var(--color-forest-light);
}
.contact-card__details {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  border-top: 1px solid var(--color-border);
}
.contact-detail {
  display: grid;
  gap: var(--space-1);
  padding-block: var(--space-3);
  border-bottom: 1px solid var(--color-border);
  color: var(--color-forest);
  text-decoration: none;
  overflow-wrap: anywhere;
}
.contact-detail:last-child { border-bottom: 0; padding-bottom: 0; }
.contact-detail span {
  color: var(--color-ink-muted);
  font-size: var(--text-sm);
}
.contact-detail strong { font-weight: 600; }
.contact-detail:hover strong { text-decoration: underline; text-underline-offset: 0.2em; }
.contact-link:focus-visible,
.contact-detail:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 3px;
}
.floating-contact {
  position: fixed;
  z-index: calc(var(--z-sticky) - 1);
  right: max(var(--space-4), env(safe-area-inset-right));
  bottom: max(var(--space-4), env(safe-area-inset-bottom));
  padding: var(--space-3) var(--space-5);
  border: 2px solid var(--color-paper);
  border-radius: var(--radius-full);
  background: var(--color-forest);
  box-shadow: var(--shadow-lg);
  color: var(--color-paper);
  font-size: var(--text-sm);
  font-weight: 600;
}
.footer__contact { display: grid; gap: var(--space-3); justify-items: start; }
.footer__contact > a { color: var(--color-sand); overflow-wrap: anywhere; }
.footer__contact > a:hover { color: var(--color-white); }

@media (min-width: 768px) {
  .about-story__slide { grid-template-columns: 0.9fr 1.1fr; gap: var(--space-16); }
  .services-heading { grid-template-columns: 1fr 0.7fr; align-items: end; }
  .coverage-layout { grid-template-columns: 1.1fr 0.9fr; gap: var(--space-16); }
  .loyalty-panel { grid-template-columns: 1fr 0.7fr; align-items: center; }
  .inquiry-layout { grid-template-columns: 0.8fr 1.2fr; gap: var(--space-16); }
  .contact-layout { grid-template-columns: 1.05fr 0.95fr; gap: var(--space-16); }
}

@media (max-width: 639px) {
  .hero__media { aspect-ratio: 4 / 3; }
  .inquiry-intro { position: static; }
  .hours-list { grid-template-columns: 1fr; gap: var(--space-1); }
  .hours-list dd { margin-bottom: var(--space-3); text-align: left; }
  .floating-contact { bottom: max(var(--space-3), env(safe-area-inset-bottom)); }
}

@media (prefers-reduced-motion: reduce) {
  .service-card__media img { transition: none; }
  .about-story__slide { transition: none; }
}
