/* Pill compacta: vidrio y reflejos, con bordes estables. */
.pillbar.compact-pill {
  top: 18px;
  left: 50%;
  right: auto;
  width: min(1360px, calc(100% - 48px));
  height: auto;
  padding: 0;
  display: block;
  border-radius: 999px;
  transform: translateX(-50%) translateY(0);
  transform-origin: center top;
  transition: transform 320ms cubic-bezier(.22, 1, .36, 1), box-shadow 250ms;
  box-shadow: 0 8px 26px -18px #123b4b55;
}
.compact-pill.nav-hidden { transform: translateX(-50%) translateY(calc(-100% - 20px)); pointer-events: none; }
.compact-pill:has(:focus-visible) { transform: translateX(-50%) translateY(0); pointer-events: auto; }
.compact-pill .nav-inner {
  width: calc(100% - 44px);
  min-height: 64px;
  display: flex;
  align-items: center;
  gap: 32px;
  margin-inline: auto;
}
.compact-pill .brand-symbol { width: 46px; height: 42px; }
.compact-pill .glass-bg { border-radius: inherit; background: rgba(247,251,252,.42); }
.compact-pill.scrolled .glass-bg { background: rgba(247,251,252,.72); }
.compact-pill .nav-cta { min-height: 40px; padding: 8px 16px; }
.compact-pill.on-dark .glass-bg { background: rgba(5,37,51,.64); }
.compact-pill .nav-contact { display: flex; align-items: center; gap: 28px; }
.compact-pill .nav-phone { display: inline-flex; align-items: center; gap: 9px; font-size: 12px; white-space: nowrap; color: #164b60; min-height: 44px; }
.nav-phone svg { width: 19px; height: 19px; flex-shrink: 0; }
.compact-pill.on-dark .nav-phone { color: #fff; }
.compact-pill .nav-phone:hover { text-decoration: underline; text-underline-offset: 5px; }
html { scroll-padding-top: 108px; }
.hero-wash {
  -webkit-mask-image: linear-gradient(transparent, transparent 80px, #000 175px);
  mask-image: linear-gradient(transparent, transparent 80px, #000 175px);
}
.contact-layout { grid-template-columns: .95fr 1.05fr; align-items: start; gap: clamp(40px, 6vw, 90px); }
.contact h2 { margin-top: 0; }
.contact-intro { margin-top: 18px; font-size: 16px; }
.contact-details { margin-top: 32px; }
.contact-row { padding: 16px 0; }
.contact-row > p { font-size: 18px; margin-top: 4px; }
.partner-contact-list { margin-top: 32px; }
.partner-contact-list h3 { font-size: 20px; font-weight: 400; letter-spacing: -.01em; }
.partner-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 18px; }
.partner-contact-grid article { border-top: 1px solid #c2d6df; padding-top: 16px; font-size: 13px; color: var(--body); }
.partner-contact-grid .partner-label { color: var(--ink); font-size: 15px; font-weight: 500; margin-bottom: 10px; }
.contact-form-panel {
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(216,229,235,.85);
  border-radius: 24px;
  padding: 32px;
  box-shadow: 0 16px 48px -32px #174a5e30;
}
.contact-form-panel h3 { font-size: 25px; font-weight: 400; line-height: 1.3; letter-spacing: -.015em; }
.form-intro { font-size: 14px; line-height: 1.6; color: var(--body); margin-top: 10px; margin-bottom: 24px; }
.form-field { display: flex; flex-direction: column; gap: 7px; margin-bottom: 18px; }
.form-field label { font-size: 13px; font-weight: 500; }
.form-field label span { font-weight: 400; color: var(--body); }
.form-field input, .form-field textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid #c9dbe2;
  border-radius: 10px;
  color: var(--ink);
  background: #fcfdfd;
  font-size: 16px;
  line-height: 1.5;
  transition: border-color 180ms, box-shadow 180ms;
}
.form-field textarea { resize: vertical; min-height: 120px; max-height: 380px; }
.form-field input:focus, .form-field textarea:focus { outline: 0; border-color: #3f849b; box-shadow: 0 0 0 3px #07516a12; }
.form-trap { display: none; }
.contact-submit { width: 100%; min-height: 48px; gap: 16px; }
.button:disabled { cursor: default; background: #dde7eb; border-color: #dde7eb; color: #526d7a; box-shadow: none; transform: none; }
.button:disabled::before { display: none; }
.form-status { color: #526d7a; font-size: 12px; line-height: 1.6; margin-top: 14px; min-height: 1.6em; }
.form-status[data-state="error"] { color: #923b38; }
.form-status[data-state="success"] { color: #276956; }
@media (max-width: 1100px) {
  .compact-pill .nav-inner { width: calc(100% - 40px); gap: 24px; }
  .compact-pill .nav-phone { display: none; }
}
@media (max-width: 900px) {
  .compact-pill .nav-inner { min-height: 64px; }
  .contact-layout { gap: 32px; }
  .contact-form-panel { padding: 26px; }
  .partner-contact-grid { grid-template-columns: 1fr; gap: 18px; }
}
@media (max-width: 600px) {
  .pillbar.compact-pill { top: 12px; width: calc(100% - 24px); }
  .compact-pill .nav-inner { min-height: 60px; width: calc(100% - 28px); gap: 16px; }
  .compact-pill .brand-symbol { width: 42px; height: 38px; }
  .compact-pill .nav-links { gap: 14px; justify-content: space-between; }
  .compact-pill .nav-contact { display: none; }
  .compact-pill .nav-links a { font-size: 13px; }
  html { scroll-padding-top: 88px; }
  .hero-wash { -webkit-mask-image: linear-gradient(transparent, transparent 68px, #000 150px); mask-image: linear-gradient(transparent, transparent 68px, #000 150px); }
  .contact-layout { grid-template-columns: 1fr; gap: 40px; }
  .contact-form-panel { padding: 24px 20px; border-radius: 20px; }
  .contact-form-panel h3 { font-size: 24px; }
  .partner-contact-grid { grid-template-columns: 1fr 1fr; gap: 18px; }
}
@media (prefers-reduced-motion: reduce) { .pillbar.compact-pill { transition: none; } }
@media (prefers-reduced-transparency: reduce) {
  .compact-pill .glass-bg, .compact-pill.scrolled .glass-bg { background: #f2f7f9; backdrop-filter: none; -webkit-backdrop-filter: none; }
  .compact-pill.on-dark .glass-bg { background: #07384d; }
}
