/*
Theme Name: Construobras
Theme URI: https://construobras.example/
Author: Construobras
Description: Tema institucional e de recrutamento mobile-first para a Construobras.
Version: 1.1.0
Requires at least: 6.2
Requires PHP: 8.1
Text Domain: construobras
*/

:root { --navy:#102d58; --navy-deep:#0b213f; --orange:#f77b18; --orange-dark:#d95f00; --ink:#152033; --muted:#607087; --line:#dfe5ec; --soft:#f4f7fb; --white:#fff; --success:#16855b; --radius:18px; --shadow:0 14px 45px rgba(15, 41, 79, .12); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; min-width:320px; background:#fff; color:var(--ink); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; line-height:1.55; }
body,button,input,select,textarea { font-size:16px; }
img { max-width:100%; height:auto; }
a { color:inherit; text-underline-offset:3px; }
a:hover { color:var(--orange-dark); }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
:focus-visible { outline:3px solid var(--orange); 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; padding:10px 14px; margin:0; clip:auto; color:var(--white); background:var(--navy); }
.container { width:min(100% - 32px, 1180px); margin:0 auto; }
.site-main { min-height:60vh; }
.skip-link { position:absolute; z-index:1000; top:-50px; left:10px; background:var(--orange); color:var(--white); padding:10px 14px; font-weight:800; }
.skip-link:focus { top:10px; }

.site-header { position:sticky; top:0; z-index:100; background:rgba(16,45,88,.97); box-shadow:0 2px 16px rgba(8,25,49,.18); backdrop-filter:blur(10px); }
.header-inner { display:flex; min-height:72px; align-items:center; justify-content:space-between; gap:14px; }
.brand { display:flex; min-width:0; align-items:center; gap:10px; color:var(--white); text-decoration:none; }
.brand:hover { color:var(--white); }
.brand-mark { display:grid; width:40px; height:40px; flex:0 0 40px; place-items:center; border-radius:12px; background:var(--orange); color:var(--white); font-size:22px; font-weight:900; }
.brand-copy { min-width:0; line-height:1.1; }
.brand-title { display:block; overflow:hidden; font-size:18px; font-weight:900; letter-spacing:-.04em; text-overflow:ellipsis; white-space:nowrap; }
.brand-tagline { display:block; margin-top:3px; font-size:11px; color:rgba(255,255,255,.65); }
.custom-logo-link { display:flex; max-width:180px; align-items:center; }
.custom-logo { max-height:42px; width:auto; }
.menu-toggle { display:grid; width:42px; height:42px; place-items:center; border:1px solid rgba(255,255,255,.3); border-radius:10px; color:var(--white); background:transparent; }
.menu-toggle svg { width:22px; height:22px; }
.primary-menu { display:none; margin:0; padding:12px 0 18px; border-top:1px solid rgba(255,255,255,.13); list-style:none; }
.primary-menu.is-open { display:grid; }
.primary-menu li a { display:block; padding:10px 12px; border-radius:9px; color:rgba(255,255,255,.84); font-size:15px; font-weight:750; text-decoration:none; }
.primary-menu li.current-menu-item a,.primary-menu li a:hover { color:var(--white); background:rgba(255,255,255,.1); }
.primary-menu .menu-cta a { margin-top:4px; color:var(--white); background:var(--orange); text-align:center; }

.hero { position:relative; overflow:hidden; color:var(--white); background:var(--navy-deep); }
.hero-home { min-height:calc(100svh - 72px); display:flex; align-items:center; background-image:linear-gradient(90deg,rgba(7,26,52,.94) 0%,rgba(7,26,52,.76) 47%,rgba(7,26,52,.2) 100%),url("assets/images/hero-obra-ficticia.png"); background-position:center; background-size:cover; }
.hero-home:before { position:absolute; inset:0; content:""; opacity:.2; background-image:linear-gradient(45deg,transparent 48%,#fff 49%,#fff 51%,transparent 52%); background-size:36px 36px; pointer-events:none; }
.hero-inner { position:relative; width:100%; padding:64px 0 52px; }
.eyebrow { display:inline-flex; align-items:center; gap:8px; padding:7px 11px; border:1px solid rgba(247,123,24,.4); border-radius:999px; color:var(--orange); background:rgba(16,45,88,.6); font-size:11px; font-weight:850; letter-spacing:.11em; text-transform:uppercase; }
.hero h1,.page-hero h1 { max-width:820px; margin:16px 0 0; font-family:ui-rounded,"Arial Rounded MT Bold",Inter,sans-serif; font-size:clamp(2.35rem,8vw,5.2rem); line-height:1.04; letter-spacing:-.058em; }
.hero h1 span { color:var(--orange); }
.hero-text,.page-hero p { max-width:680px; margin:20px 0 0; color:rgba(255,255,255,.78); font-size:clamp(1rem,3.6vw,1.2rem); }
.hero-actions,.button-row { display:flex; flex-direction:column; gap:12px; margin-top:28px; }
.button { display:inline-flex; min-height:49px; align-items:center; justify-content:center; gap:9px; padding:12px 18px; border:1px solid transparent; border-radius:11px; color:var(--white); background:var(--navy); font-size:15px; font-weight:850; line-height:1.2; text-align:center; text-decoration:none; transition:transform .2s ease,background .2s ease,border-color .2s ease; }
.button:hover { color:var(--white); background:#0b2345; transform:translateY(-1px); }
.button-orange { background:var(--orange); }
.button-orange:hover { background:var(--orange-dark); }
.button-outline { border-color:rgba(255,255,255,.4); background:rgba(255,255,255,.08); }
.button-outline:hover { background:rgba(255,255,255,.16); }
.button-light { color:var(--navy); background:var(--white); }
.button-light:hover { color:var(--navy); background:#eef3fb; }
.hero-points { display:grid; gap:10px; margin:38px 0 0; }
.hero-point { padding:15px; border:1px solid rgba(255,255,255,.15); border-radius:14px; background:rgba(12,33,63,.55); backdrop-filter:blur(8px); }
.hero-point strong { display:block; color:var(--white); font-size:14px; }
.hero-point span { display:block; margin-top:3px; color:rgba(255,255,255,.65); font-size:12px; }

.section { padding:64px 0; }
.section-soft { background:var(--soft); }
.section-navy { color:var(--white); background:var(--navy); }
.section-heading { max-width:710px; }
.section-heading h2,.section-title { margin:13px 0 0; font-family:ui-rounded,"Arial Rounded MT Bold",Inter,sans-serif; font-size:clamp(1.9rem,5vw,3rem); line-height:1.1; letter-spacing:-.04em; }
.section-heading p { margin:14px 0 0; color:var(--muted); }
.section-navy .section-heading p { color:rgba(255,255,255,.7); }
.cards { display:grid; gap:16px; margin-top:30px; }
.card { padding:22px; border:1px solid var(--line); border-radius:var(--radius); background:var(--white); box-shadow:0 4px 22px rgba(26,49,79,.05); }
.card-icon { display:grid; width:46px; height:46px; place-items:center; border-radius:13px; color:var(--orange-dark); background:#fff0e5; font-size:20px; font-weight:900; }
.card h3 { margin:17px 0 0; font-size:20px; line-height:1.2; }
.card p { margin:10px 0 0; color:var(--muted); font-size:14px; }
.card ul { display:grid; gap:8px; margin:16px 0 0; padding:0; list-style:none; color:var(--muted); font-size:13px; }
.card li:before { content:"✓"; margin-right:8px; color:var(--orange); font-weight:900; }
.process { display:grid; gap:16px; margin-top:30px; }
.process-item { position:relative; padding:23px; border-radius:16px; color:var(--white); background:rgba(255,255,255,.09); }
.process-number { color:var(--orange); font-size:12px; font-weight:900; letter-spacing:.1em; }
.process-item h3 { margin:7px 0 0; font-size:20px; }
.process-item p { margin:9px 0 0; color:rgba(255,255,255,.68); font-size:14px; }
.cta-panel { overflow:hidden; border-radius:24px; color:var(--white); background:linear-gradient(110deg,#0b2a51,#1d5b93); }
.cta-panel-inner { padding:34px 22px; }
.cta-panel h2 { max-width:650px; margin:13px 0 0; font-family:ui-rounded,"Arial Rounded MT Bold",Inter,sans-serif; font-size:clamp(1.8rem,5vw,3.1rem); line-height:1.1; letter-spacing:-.04em; }
.cta-panel p { max-width:620px; margin:16px 0 0; color:rgba(255,255,255,.75); }

.page-hero { padding:58px 0; color:var(--white); background:var(--navy); }
.content-grid { display:grid; gap:24px; }
.content-copy { color:var(--muted); }
.content-copy h2,.content-copy h3 { color:var(--ink); line-height:1.2; }
.content-copy h2 { margin-top:32px; font-size:27px; }
.content-copy h3 { margin-top:24px; font-size:20px; }
.content-copy p,.content-copy li { font-size:16px; }
.content-copy ul { padding-left:20px; }
.content-copy a { color:var(--orange-dark); font-weight:750; }
.feature-panel { padding:25px; border-radius:22px; color:var(--white); background:var(--navy); }
.feature-panel h2 { margin:0; font-size:25px; }
.feature-panel p { color:rgba(255,255,255,.7); }
.check-list { display:grid; gap:12px; margin:20px 0 0; padding:0; list-style:none; }
.check-list li { display:flex; gap:10px; align-items:flex-start; font-size:14px; }
.check-list li:before { content:"✓"; display:grid; width:21px; height:21px; flex:0 0 21px; place-items:center; border-radius:50%; color:var(--navy); background:var(--orange); font-size:12px; font-weight:900; }
.area-grid,.project-grid { display:grid; gap:18px; margin-top:30px; }
.area-card,.project-card { overflow:hidden; border:1px solid var(--line); border-radius:18px; background:var(--white); box-shadow:0 4px 22px rgba(26,49,79,.06); }
.area-image,.project-image { display:grid; min-height:190px; place-items:center; color:transparent; background:linear-gradient(135deg,rgba(9,46,90,.3),rgba(247,123,24,.2)),url("assets/images/projeto-residencial-ficticio.png") center/cover; font-size:42px; }
.area-card:nth-child(2) .area-image { background-image:linear-gradient(135deg,rgba(38,63,101,.3),rgba(77,145,186,.18)),url("assets/images/hero-obra-ficticia.png"); background-position:center; background-size:cover; }
.area-card:nth-child(3) .area-image { background-image:linear-gradient(135deg,rgba(24,52,86,.28),rgba(176,90,34,.18)),url("assets/images/projeto-residencial-ficticio.png"); background-position:left center; background-size:cover; }
.area-card:nth-child(4) .area-image { background-image:linear-gradient(135deg,rgba(28,55,76,.28),rgba(73,122,118,.18)),url("assets/images/hero-obra-ficticia.png"); background-position:right center; background-size:cover; }
.area-card-content,.project-card-content { padding:20px; }
.area-card h2,.project-card h2 { margin:0; font-size:22px; }
.area-card p,.project-card p { margin:8px 0 0; color:var(--muted); font-size:14px; }
.project-image img { width:100%; height:100%; min-height:220px; object-fit:cover; }
.project-meta { display:flex; flex-wrap:wrap; gap:8px; margin-top:13px; color:var(--orange-dark); font-size:12px; font-weight:800; }
.empty-state { padding:30px; border:1px dashed #c7d1df; border-radius:18px; color:var(--muted); background:var(--soft); text-align:center; }

.form-layout { display:grid; gap:24px; }
.form-shell { padding:22px; border:1px solid var(--line); border-radius:20px; background:var(--white); box-shadow:var(--shadow); }
.form-shell h2 { margin:0; font-size:27px; line-height:1.2; }
.form-intro { margin:8px 0 0; color:var(--muted); font-size:14px; }
.form-grid { display:grid; gap:16px; margin-top:24px; }
.field label,.field-label { display:block; margin-bottom:7px; color:var(--ink); font-size:14px; font-weight:800; }
.required-mark { color:var(--orange-dark); }
.field input,.field select,.field textarea { display:block; width:100%; min-height:47px; padding:11px 12px; border:1px solid #cbd5e1; border-radius:10px; color:var(--ink); background:var(--white); }
.field textarea { min-height:130px; resize:vertical; }
.field input:focus,.field select:focus,.field textarea:focus { border-color:var(--orange); outline:2px solid rgba(247,123,24,.2); }
.field-help { margin:6px 0 0; color:var(--muted); font-size:12px; }
.checkbox-row { display:flex; gap:10px; align-items:flex-start; color:var(--muted); font-size:13px; line-height:1.45; }
.checkbox-row input { width:18px; height:18px; flex:0 0 18px; margin-top:2px; accent-color:var(--orange); }
.checkbox-row a { color:var(--orange-dark); font-weight:800; }
.honeypot { position:absolute!important; left:-9999px!important; opacity:0!important; }
.form-notice { margin:0 0 18px; padding:13px 14px; border-radius:10px; font-size:14px; font-weight:650; }
.form-notice.success { border:1px solid #a6dbbf; color:#115b3c; background:#eaf8f0; }
.form-notice.error { border:1px solid #f1b4aa; color:#9a2d20; background:#fff0ee; }
.form-sidebar { padding:24px; border-radius:20px; color:var(--white); background:var(--navy); }
.form-sidebar h2 { margin:0; font-size:21px; }
.form-sidebar p { color:rgba(255,255,255,.72); font-size:14px; }
.form-sidebar .check-list { color:rgba(255,255,255,.8); }
.contact-list { display:grid; gap:15px; margin:20px 0 0; padding:0; list-style:none; }
.contact-list a { color:var(--white); font-weight:750; text-decoration:none; }
.contact-list span { display:block; color:rgba(255,255,255,.66); font-size:13px; }
.whatsapp-box { display:block; margin-top:18px; padding:16px; border-radius:13px; color:var(--white); background:#25d366; font-weight:850; text-decoration:none; }
.whatsapp-box:hover { color:var(--white); background:#1cac53; }
.form-progress { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:0 0 24px; }
.form-progress span { display:flex; align-items:center; gap:7px; color:var(--muted); font-size:11px; font-weight:800; }
.form-progress b { display:grid; width:23px; height:23px; place-items:center; border-radius:50%; color:var(--muted); background:#e7edf4; }
.form-progress .active { color:var(--ink); }
.form-progress .active b { color:var(--white); background:var(--orange); }
.form-step { border:0; padding:0; margin:0; min-width:0; }
.js .form-step.is-hidden { display:none; }
.form-actions { display:flex; justify-content:space-between; gap:12px; margin-top:23px; }
.form-actions .button { min-width:120px; }
.button-plain { border:0; color:var(--navy); background:transparent; font-weight:850; }

.site-footer { padding:48px 0 0; color:var(--white); background:var(--navy-deep); }
.footer-grid { display:grid; gap:31px; }
.footer-title { margin:0; font-size:16px; }
.footer-copy { margin:13px 0 0; color:rgba(255,255,255,.65); font-size:14px; }
.footer-links { display:grid; gap:10px; margin:14px 0 0; padding:0; list-style:none; }
.footer-links a { color:rgba(255,255,255,.72); font-size:14px; text-decoration:none; }
.footer-links a:hover { color:var(--orange); }
.footer-bottom { display:flex; flex-direction:column; gap:7px; margin-top:38px; padding:18px 0; border-top:1px solid rgba(255,255,255,.12); color:rgba(255,255,255,.5); font-size:12px; }
.footer-bottom a { color:rgba(255,255,255,.6); }

@media (min-width:640px) { .container { width:min(100% - 48px,1180px); } .hero-actions,.button-row { flex-direction:row; align-items:center; } .hero-actions .button { min-width:190px; } .hero-points { grid-template-columns:repeat(3,1fr); } .cards { grid-template-columns:repeat(2,1fr); } .process { grid-template-columns:repeat(3,1fr); } .area-grid,.project-grid { grid-template-columns:repeat(2,1fr); } .form-grid.two { grid-template-columns:repeat(2,1fr); } .field.full { grid-column:1/-1; } .footer-grid { grid-template-columns:1.3fr 1fr 1fr; } .footer-bottom { flex-direction:row; justify-content:space-between; } }
@media (min-width:900px) { .header-inner { min-height:78px; } .menu-toggle { display:none; } .primary-menu { display:flex!important; align-items:center; gap:3px; padding:0; border:0; } .primary-menu li a { padding:9px 11px; font-size:14px; } .primary-menu .menu-cta a { margin:0 0 0 5px; padding:10px 14px; } .hero-inner { padding:86px 0 68px; } .section { padding:92px 0; } .cards { grid-template-columns:repeat(4,1fr); } .content-grid { grid-template-columns:minmax(0,1fr) 400px; align-items:start; gap:50px; } .area-grid,.project-grid { grid-template-columns:repeat(3,1fr); } .form-layout { grid-template-columns:minmax(0,1fr) 330px; align-items:start; } .form-sidebar { position:sticky; top:102px; } .cta-panel-inner { padding:56px; } }
@media (prefers-reduced-motion:reduce) { *,*:before,*:after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }
