/*
Theme Name: Hidro Recife Elementor
Theme URI: https://hidrorecifedesentupidora.com.br/
Author: Hidro Recife
Description: Tema institucional leve, compatível com Elementor Free e preparado para os templates editáveis da Hidro Recife.
Version: 1.0.4
Requires at least: 6.8
Requires PHP: 7.4
Text Domain: hidro-recife
*/

:root {
  --hr-navy-950: #061a2c;
  --hr-navy-900: #0a243b;
  --hr-navy-800: #0d3150;
  --hr-blue: #087fa8;
  --hr-cyan: #17b5db;
  --hr-cyan-light: #70d7ed;
  --hr-ink: #102331;
  --hr-muted: #526573;
  --hr-line: #d9e3e9;
  --hr-soft: #f1f6f8;
  --hr-white: #fff;
  --hr-shadow: 0 18px 55px rgba(6, 26, 44, .12);
  --hr-radius: 18px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; background: var(--hr-white); color: var(--hr-ink); font-family: Inter, Aptos, "Segoe UI", Arial, sans-serif; line-height: 1.65; -webkit-font-smoothing: antialiased; }
body.admin-bar .hr-site-header { top: 32px; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }
:focus-visible { outline: 3px solid var(--hr-blue); outline-offset: 3px; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { z-index: 100000; top: 8px; left: 8px; width: auto; height: auto; clip: auto; padding: 10px 14px; background: #fff; color: var(--hr-navy-950); }

.hr-site-header { position: relative; z-index: 120; }
.hr-topbar { min-height: 38px; background: var(--hr-navy-950); color: #c6d7e2; font-size: .76rem; }
.hr-topbar .hr-shell > .e-con-inner, .hr-topbar__inner { min-height: 38px; display: flex !important; flex-direction: row !important; align-items: center !important; justify-content: space-between !important; gap: 18px; }
.hr-topbar .elementor-widget { margin: 0; }
.hr-topbar p { margin: 0; }
.hr-header { border-bottom: 1px solid var(--hr-line); background: rgba(255,255,255,.98); }
.hr-header .hr-shell > .e-con-inner, .hr-header__inner { min-height: 76px; display: flex !important; flex-direction: row !important; align-items: center !important; justify-content: space-between !important; gap: 24px; }
.hr-logo.elementor-widget-heading .elementor-heading-title { margin: 0; color: var(--hr-navy-900); font-size: 1.05rem; font-weight: 850; letter-spacing: .04em; line-height: 1.05; }
.hr-logo .elementor-heading-title span { display: block; margin-top: 6px; color: var(--hr-muted); font-size: .62rem; font-weight: 650; letter-spacing: .08em; }
.elementor-widget.hr-header-cta .elementor-button, .elementor-widget.hr-button .elementor-button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; padding: 12px 20px; border-radius: 8px; background: var(--hr-cyan); color: var(--hr-navy-950); font-size: .76rem; font-weight: 850; letter-spacing: .03em; text-transform: uppercase; transition: background-color .18s ease, color .18s ease, transform .12s ease; }
.elementor-widget.hr-header-cta .elementor-button:hover, .elementor-widget.hr-button .elementor-button:hover { background: var(--hr-blue); color: #fff; }
.elementor-widget.hr-header-cta .elementor-button:active, .elementor-widget.hr-button .elementor-button:active { background: var(--hr-blue); color: #fff; transform: scale(.98); }

.hr-menu { position: relative; flex: 1; }
.hr-menu__toggle { min-height: 46px; display: none; align-items: center; gap: 8px; padding: 0 12px; border: 1px solid var(--hr-line); border-radius: 8px; background: #fff; color: var(--hr-navy-900); font-size: .75rem; font-weight: 800; text-transform: uppercase; cursor: pointer; touch-action: manipulation; transition: color .18s ease, background-color .18s ease, border-color .18s ease, transform .12s ease; }
.hr-menu__toggle svg { width: 22px; height: 22px; }
.hr-menu__list { display: flex; align-items: center; justify-content: center; gap: 19px; margin: 0; padding: 0; list-style: none; }
.hr-menu__list li { position: relative; }
.hr-menu__list a { display: flex; align-items: center; min-height: 44px; color: var(--hr-navy-800); font-size: .72rem; font-weight: 780; text-transform: uppercase; transition: color .18s ease; }
.hr-menu__list a:hover, .hr-menu__list a:focus-visible, .hr-menu__list .current-menu-item > a, .hr-menu__list .current-menu-ancestor > a { color: var(--hr-blue); }
.hr-menu__list .sub-menu { position: absolute; z-index: 90; top: calc(100% - 2px); left: -18px; min-width: 270px; display: none; margin: 0; padding: 10px; border: 1px solid var(--hr-line); border-radius: 12px; background: #fff; box-shadow: var(--hr-shadow); list-style: none; }
.hr-menu__list li:hover > .sub-menu, .hr-menu__list li:focus-within > .sub-menu { display: grid; }
.hr-menu__list .sub-menu a { min-height: 38px; padding: 4px 9px; font-size: .72rem; text-transform: none; }

.hr-shell { --content-width: 1180px; }
.hr-section { padding-block: clamp(64px, 8vw, 112px); }
.hr-section--soft { background: var(--hr-soft); }
.hr-section--navy { background: var(--hr-navy-950); color: #fff; }
.hr-section--navy .elementor-heading-title, .hr-section--navy p, .hr-section--navy li { color: inherit; }
.hr-eyebrow .elementor-heading-title { margin: 0 0 13px; color: var(--hr-blue); font-size: .72rem; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
.hr-section--navy .hr-eyebrow .elementor-heading-title, .hr-home-hero .hr-eyebrow .elementor-heading-title { color: var(--hr-cyan-light); }
.hr-title .elementor-heading-title { margin: 0; color: var(--hr-navy-950); font-size: clamp(2rem, 5vw, 4rem); font-weight: 850; line-height: 1.05; letter-spacing: -.035em; }
.hr-title--section .elementor-heading-title { font-size: clamp(1.7rem, 3.5vw, 2.75rem); }
.hr-section--navy .hr-title .elementor-heading-title, .hr-home-hero .hr-title .elementor-heading-title { color: #fff; }
.hr-lead { max-width: 780px; color: var(--hr-muted); font-size: clamp(1rem, 1.5vw, 1.2rem); }
.hr-lead p, .hr-copy p { margin: 0 0 1em; }
.hr-direct-answer { padding: 20px 24px; border-left: 4px solid var(--hr-cyan); background: #fff; color: var(--hr-navy-900); box-shadow: 0 8px 25px rgba(6, 26, 44, .08); font-size: 1.08rem; font-weight: 650; }
.hr-page-hero { padding-block: clamp(66px, 8vw, 104px); background: linear-gradient(135deg, var(--hr-navy-950), var(--hr-navy-800)); color: #fff; }
.hr-page-hero .elementor-heading-title, .hr-page-hero p, .hr-page-hero a { color: inherit; }
.hr-breadcrumbs { font-size: .78rem; color: #b8ccd8; }
.hr-breadcrumbs a { color: var(--hr-cyan-light); }
.hr-home-hero { min-height: 670px; justify-content: flex-end; padding-block: clamp(92px, 14vw, 158px) 86px; background-position: center; background-size: cover; color: #fff; }
.hr-home-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(6,26,44,.94) 0%, rgba(6,26,44,.74) 48%, rgba(6,26,44,.34) 100%); }
.hr-home-hero > .e-con-inner { position: relative; z-index: 1; }
.hr-home-hero .hr-lead { color: #e3eef3; }

.hr-grid-2, .hr-grid-3, .hr-grid-4, .hr-grid-2 > .e-con-inner, .hr-grid-3 > .e-con-inner, .hr-grid-4 > .e-con-inner { display: grid !important; gap: 18px; }
.hr-grid-2, .hr-grid-2 > .e-con-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hr-grid-3, .hr-grid-3 > .e-con-inner { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hr-grid-4, .hr-grid-4 > .e-con-inner { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.hr-card { min-width: 0; height: 100%; padding: 24px; border: 1px solid var(--hr-line); border-radius: var(--hr-radius); background: #fff; color: var(--hr-ink); transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.hr-card:hover { border-color: rgba(8,127,168,.55); box-shadow: var(--hr-shadow); transform: translateY(-3px); }
.hr-card .elementor-widget-heading .elementor-heading-title { color: var(--hr-navy-900); font-size: 1.15rem; line-height: 1.25; }
.hr-card p { color: var(--hr-muted); font-size: .92rem; }
.hr-card .elementor-button { padding: 0; background: transparent; color: var(--hr-blue); font-weight: 800; }
.hr-card .elementor-button:hover { background: transparent; color: var(--hr-navy-900); }
.hr-panel { padding: 28px; border: 1px solid var(--hr-line); border-radius: var(--hr-radius); background: #fff; }
.hr-panel .elementor-heading-title { color: var(--hr-navy-900); font-size: 1.35rem; }
.hr-list ul { margin: 0; padding-left: 1.15rem; }
.hr-list li { margin-bottom: .65rem; }
.hr-caution { padding: 18px 22px; border: 1px solid #e7c477; border-radius: 12px; background: #fff8e8; color: #5f470f; }
.hr-faq details { margin-bottom: 10px; border: 1px solid var(--hr-line); border-radius: 12px; background: #fff; }
.hr-faq summary { padding: 18px 20px; color: var(--hr-navy-900); font-weight: 780; cursor: pointer; }
.hr-faq details p { padding: 0 20px 18px; margin: 0; color: var(--hr-muted); }
.hr-cta { padding-block: clamp(60px, 7vw, 90px); background: var(--hr-cyan); color: var(--hr-navy-950); }
.hr-cta .hr-shell > .e-con-inner { display: flex !important; flex-direction: row !important; align-items: center !important; justify-content: space-between !important; gap: 28px; }
.hr-cta .elementor-heading-title { color: var(--hr-navy-950); font-size: clamp(1.7rem, 3vw, 2.55rem); }
.hr-cta .elementor-button { background: var(--hr-navy-950); color: #fff; }
.hr-related a { color: var(--hr-blue); font-weight: 750; }

.hr-contact-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.hr-contact-form label { display: grid; gap: 6px; color: var(--hr-navy-900); font-size: .85rem; font-weight: 750; }
.hr-contact-form label.hr-full { grid-column: 1 / -1; }
.hr-contact-form input, .hr-contact-form select, .hr-contact-form textarea { width: 100%; min-height: 48px; padding: 10px 12px; border: 1px solid var(--hr-line); border-radius: 8px; background: #fff; color: var(--hr-ink); }
.hr-contact-form textarea { min-height: 130px; resize: vertical; }
.hr-contact-form button { min-height: 50px; grid-column: 1 / -1; border: 0; border-radius: 8px; background: var(--hr-cyan); color: var(--hr-navy-950); font-weight: 850; cursor: pointer; }
.hr-contact-form button:active { background: var(--hr-blue); color: #fff; }

.hr-site-footer { padding-bottom: 66px; background: var(--hr-navy-950); color: #c6d7e2; }
.hr-footer { padding-block: 62px 30px; }
.hr-footer .hr-shell > .e-con-inner { display: grid !important; grid-template-columns: 1.4fr 1fr 1fr; gap: 34px; }
.hr-footer .elementor-heading-title { color: #fff; font-size: 1rem; }
.hr-footer p, .hr-footer a { color: #c6d7e2; }
.hr-footer-menu { margin: 0; padding: 0; list-style: none; }
.hr-footer-menu li { margin-bottom: 7px; }
.hr-footer-menu a:hover { color: var(--hr-cyan-light); }
.hr-footer-bottom { padding: 18px 0; border-top: 1px solid rgba(255,255,255,.12); font-size: .72rem; }
.hr-mobile-actions { position: fixed; z-index: 100; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: .75fr .75fr 1.5fr; background: #fff; border-top: 1px solid var(--hr-line); box-shadow: 0 -8px 28px rgba(6,26,44,.12); }
.hr-mobile-actions .elementor-widget-button { margin: 0; }
.elementor .hr-mobile-actions .elementor-widget-button .elementor-button { width: 100%; min-height: 66px; display: flex; align-items: center; justify-content: center; padding: 6px; border-radius: 0; border-right: 1px solid var(--hr-line); background: #fff; color: var(--hr-navy-800); font-size: .68rem; font-weight: 800; touch-action: manipulation; transition: background-color .18s ease, color .18s ease, transform .12s ease; }
.elementor .hr-mobile-actions .elementor-widget-button:last-child .elementor-button { background: var(--hr-cyan); color: var(--hr-navy-950); text-transform: uppercase; }
.elementor .hr-mobile-actions .elementor-widget-button .elementor-button:active, .elementor .hr-mobile-actions .elementor-widget-button .elementor-button:focus-visible { background: var(--hr-blue); color: #fff; transform: scale(.98); }

.hr-not-found { min-height: 60vh; display: grid; place-items: center; padding: 80px 20px; text-align: center; }
.hr-not-found h1 { color: var(--hr-navy-950); font-size: clamp(2rem, 7vw, 5rem); }
.hr-not-found a { display: inline-flex; padding: 12px 18px; border-radius: 8px; background: var(--hr-cyan); color: var(--hr-navy-950); font-weight: 800; }

@media (min-width: 1100px) {
  .hr-site-footer { padding-bottom: 0; }
  .hr-mobile-actions { display: none; }
}

@media (max-width: 1099px) {
  body.admin-bar .hr-site-header { top: 46px; }
  .hr-topbar { display: none !important; }
  .hr-header .hr-shell > .e-con-inner, .hr-header__inner { min-height: 72px; }
  .hr-header-cta { display: none; }
  .hr-menu { flex: 0 0 auto; }
  .hr-menu__toggle { display: inline-flex; }
  .hr-menu__list { position: fixed; z-index: 99; top: 84px; right: 14px; left: 14px; max-height: calc(100vh - 116px); display: none; overflow-y: auto; padding: 16px; border: 1px solid var(--hr-line); border-radius: 14px; background: #fff; box-shadow: var(--hr-shadow); }
  .hr-menu.is-open .hr-menu__list { display: grid; gap: 2px; }
  .hr-menu.is-open .hr-menu__toggle { border-color: var(--hr-blue); background: rgba(8,127,168,.08); color: var(--hr-blue); }
  .hr-menu__list a { min-height: 46px; padding: 0 10px; border-bottom: 1px solid var(--hr-line); font-size: .88rem; text-transform: none; touch-action: manipulation; transition: background-color .18s ease, color .18s ease, transform .12s ease; }
  .hr-menu__list a:active, .hr-menu__list a:focus-visible { background: var(--hr-blue); color: #fff; transform: scale(.985); }
  .hr-menu__list .current-menu-item > a, .hr-menu__list .current-menu-ancestor > a { background: rgba(8,127,168,.08); color: var(--hr-blue); box-shadow: inset 3px 0 0 var(--hr-blue); }
  .hr-menu__list .sub-menu { position: static; display: grid; min-width: 0; padding: 0 0 8px 14px; border: 0; box-shadow: none; }
  .hr-home-hero { min-height: 650px; background-position: 64% center; }
  .hr-grid-4, .hr-grid-4 > .e-con-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
  .hr-section { padding-block: 62px; }
  .hr-title .elementor-heading-title { font-size: clamp(2rem, 11vw, 3.25rem); }
  .hr-grid-2, .hr-grid-3, .hr-grid-4, .hr-grid-2 > .e-con-inner, .hr-grid-3 > .e-con-inner, .hr-grid-4 > .e-con-inner { grid-template-columns: 1fr; }
  .hr-cta .hr-shell > .e-con-inner { flex-direction: column !important; align-items: flex-start !important; }
  .hr-footer .hr-shell > .e-con-inner { grid-template-columns: 1fr; }
  .hr-contact-form { grid-template-columns: 1fr; }
  .hr-contact-form label.hr-full { grid-column: auto; }
}

@media (max-width: 782px) {
  body.admin-bar .hr-menu__list { top: 118px; max-height: calc(100vh - 150px); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
