/* Site interactions and shared navigation. */
/* Common page shell; page-specific styles control only their content. */
.site { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
.site > .site-header, .site > .site-footer { flex-shrink: 0; }
.site > main { flex: 1 0 auto; }
.site > .empty-content { min-height: 45vh; background: var(--color-cream); }
.site button, .site .button { background-color: var(--color-primary); color: var(--color-white); border-radius: 40px; }
.site button:is(:hover, :focus), .site .button:is(:hover, :focus) { background-color: #0c2b55; }
.site .site-footer { background: #16488b; display: flow-root; padding-bottom: 16px; }
.analytics-consent { position: fixed; z-index: 200; bottom: 16px; left: 16px; right: 16px; max-width: 680px; max-height: calc(100dvh - 32px); overflow: auto; padding: 24px; background: #fff; color: #333; border: 1px solid #bb0868; border-radius: 12px; box-shadow: 0 4px 24px #0003; font-family: inherit; font-size: 16px; line-height: 1.5; }
.analytics-consent[hidden] { display: none; }
.analytics-consent h2 { margin: 0 0 12px; font-size: 22px; }
.analytics-consent summary { cursor: pointer; margin-bottom: 12px; }
.analytics-consent a { text-decoration: underline; }
.analytics-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 16px; }
.site .analytics-actions button { flex: 1 1 200px; padding: 12px 16px; border: 1px solid #bb0868; border-radius: 24px; background: #bb0868; color: #fff; cursor: pointer; font: inherit; }
.site .analytics-settings { display: block; margin: 16px auto 0; padding: 8px 16px; background: #fff; color: #16488b; border: 1px solid #fff; cursor: pointer; font-family: inherit; font-size: 14px; line-height: 1.5; }
.site .analytics-settings:hover, .site .analytics-settings:focus { background: #e8eff8; color: #16488b; }
.analytics-consent :focus-visible, .analytics-settings:focus-visible { outline: 3px solid #16488b; outline-offset: 3px; }
.site .analytics-settings:focus-visible { outline-color: #fff; }

/* Shared button typography, including interactive states. */
.site button.button-label,
.site a.button-label,
.site .button-label:is(:hover, :focus, :active, :visited) { font-weight: 700; }
.site .button:is(:hover, :focus-visible, :active) { color: var(--color-accent); }
.site .button.button-pink { background: var(--color-accent); color: #fff; }
.site .button.button-pink:is(:hover, :focus, :active) { background: #9b0455; color: var(--color-primary); }
.site :is(.site-footer, .consultation, .page-end) a:is(:hover, :focus-visible) { color: var(--color-accent); }
.site .consultation .button-pink:is(:hover, :focus-visible) { color: var(--color-primary); }
.site .introduction-action .button:is(:hover, :focus, :active),
.site .analytics-actions button:is(:hover, :focus, :active) { color: var(--color-primary); }
.site-footer .social-icon:is(:hover, :focus-visible) { --social-icon-color: var(--color-accent); }

/* Contact details, sitemap tree, then social links. */
.site .site-footer .footer-layout > .inner {
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  align-items: start;
  gap: 24px;
}
.site .site-footer :is(.contact-details, .footer-sitemap, .social-links) { grid-column: auto; min-width: 0; }
.site .site-footer .copyright { grid-column: 1 / -1; }
.footer-sitemap { color: #fff; font-size: 14px; }
.site .footer-sitemap a { color: #fff; }
.footer-sitemap ul { list-style: none; margin: 0; padding: 0; }
.footer-sitemap ul ul { margin-left: 6px; }
.footer-sitemap ul ul > li { position: relative; padding: 5px 0 5px 20px; border-left: 1px solid #ffffff80; }
.footer-sitemap ul ul > li::before { content: ''; position: absolute; top: 16px; left: 0; width: 12px; border-top: 1px solid #ffffff80; }
.footer-sitemap a { display: inline-block; padding: 3px 0; }
#oferta { scroll-margin-top: 100px; }
@media (max-width: 767px) {
  .site .site-footer .footer-layout > .inner { grid-template-columns: minmax(0, 1fr); }
  .site .site-footer .social-links { text-align: left; }
}
.site-header {
  position: sticky;
  top: 0;
  z-index: 95;
  padding: 0 24px 0 16px;
  background: #fff;
  border-bottom: 2px solid #bb0868;
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1140px;
  margin: 0 auto;
}
.brand { display: block; flex: 0 0 25%; }
.brand img { display: block; width: 100%; height: 63px; object-fit: contain; object-position: top left; }
.site-nav ul { display: flex; gap: 30px; margin: 0; padding: 0; list-style: none; }
.site-nav a { display: block; padding: 5px 0; font: 400 16px/1 Poppins, sans-serif; }
.site-nav a:hover, .site-nav a:focus-visible { color: #324a6d; text-decoration: underline; text-underline-offset: 5px; }
.site .menu-toggle { display: none; padding: 5px; border: 0; border-radius: 0; color: #467ff7; background: transparent; }
.menu-toggle svg { display: block; width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; }
.back-top { position: fixed; z-index: 90; right: 20px; bottom: 20px; width: 40px; height: 40px; color: #16488b; transition: opacity .1s; }
.back-top svg { display: block; width: 100%; height: 100%; fill: currentColor; }
.site .back-top { color: var(--color-accent); }
.site .back-top:hover, .site .back-top:focus-visible { color: #9b0455; }
.back-top[hidden], .form-status[hidden] { display: none; }
.form-status { margin-top: 1rem; }
.form-status.is-error { color: #a00; }
button:disabled { opacity: .65; cursor: wait; }
@media (max-width: 1024px) {
  .site-header { padding: 0 5%; }
  .header-inner { min-height: 83px; }
  .brand { flex-basis: 15%; }
  .brand img { height: 27px; }
  .site-nav a { font-size: 14px; }
}
@media (max-width: 767px) {
  .header-inner { min-height: 63px; flex-wrap: wrap; }
  .brand { flex-basis: 20%; }
  .brand img { height: 20px; }
  .site .menu-toggle { display: block; }
  .site-nav { display: none; position: absolute; top: 100%; left: 0; width: 100%; background: #f3f5f8; }
  .site-nav.is-open { display: block; }
  .site-nav ul { display: block; }
  .site-nav a { padding: 14px 5%; color: #1c244b; }
  .site-nav a:hover, .site-nav a:focus-visible { background: #f9fafd; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

/* Keep the existing hero typography within narrow screens. */
.home-content .service-list > .inner { align-items: stretch; grid-auto-rows: 1fr; }
.home-content .service-list > .inner > .layout {
  align-self: stretch;
  grid-template-rows: auto 1fr;
}
.home-content .service-list :is(.individual-copy, .team-copy, .workshop-copy) {
  align-self: stretch;
  display: flex;
  flex-direction: column;
}
.home-content .service-list :is(.individual-copy, .team-copy, .workshop-copy) > .widget:last-child {
  margin-top: auto;
  align-self: stretch;
  text-align: center;
}

@media (max-width: 767px) {
  .home-content .hero-title.heading { font-size: clamp(40px, 10vw, 64px); }
}
