:root { --blue:#17365d; --dark:#10243c; --gold:#e6ac45; --light:#f3f6fa; --muted:#5e6c7c; }
* { box-sizing:border-box; }
body { margin:0; font-family:Arial,Helvetica,sans-serif; background:var(--light); color:#223348; line-height:1.65; }
a { color:#145b91; } .container { width:min(1120px,92%); margin:auto; }
header { background:var(--blue); color:white; } .top { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:18px 0; flex-wrap:wrap; }
.logo { color:white; font-size:1.4rem; font-weight:800; text-decoration:none; } .logo span { color:var(--gold); }
nav { display:flex; gap:20px; flex-wrap:wrap; } nav a { color:white; text-decoration:none; }
.hero { background:linear-gradient(125deg,#17365d,#265b83); color:white; padding:65px 0; } .hero h1 { font-size:clamp(2rem,5vw,3.3rem); margin:0 0 12px; }
.hero p { max-width:750px; } main { padding:34px 0 65px; } h1,h2,h3 { line-height:1.2; } h2 { color:var(--blue); }
.card { background:white; padding:26px; border-radius:14px; box-shadow:0 5px 20px #152d4610; margin-bottom:22px; }
.grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; } .two { display:grid; grid-template-columns:2fr 1fr; gap:22px; }
.btn { display:inline-block; border:0; background:var(--blue); color:white; text-decoration:none; padding:11px 17px; border-radius:7px; cursor:pointer; font-weight:bold; margin:4px 4px 4px 0; font-size:.95rem; }
.btn.secondary { background:#eaf1f7; color:var(--blue); } .btn.gold { background:var(--gold); color:#18263a; }
input,select,textarea { width:100%; padding:12px; border:1px solid #cbd5df; border-radius:7px; font:inherit; background:white; }
label { display:block; font-weight:bold; margin:14px 0 5px; } .search { display:flex; gap:8px; max-width:800px; } .search input { flex:1; }
.ad { min-height:105px; border:2px dashed #c8d2df; background:#f9fbfe; color:#718095; display:grid; place-items:center; text-align:center; border-radius:10px; margin:20px 0; padding:15px; font-size:.88rem; }
.flag { width:100%; max-width:650px; aspect-ratio:3/2; object-fit:contain; border:1px solid #d6dce4; background:#fff; }
.meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; } .meta div { background:#f4f7fa; padding:12px; border-radius:7px; } .meta strong { display:block; }
.share { display:flex; flex-wrap:wrap; align-items:center; gap:8px; } .share input { flex:1; min-width:180px; }
.notice { background:#fff7e6; border-left:4px solid #e6ac45; padding:13px; margin:16px 0; } .muted { color:var(--muted); } footer { background:var(--dark); color:#d8e2ef; padding:30px 0; } footer a { color:white; }
.hp { position:absolute; left:-10000px; } .status { padding:12px; border-radius:7px; background:#e6f4ec; }
@media(max-width:760px) { .grid,.two,.meta { grid-template-columns:1fr; } .search { flex-direction:column; } nav { gap:12px; } .card { padding:18px; } }

/* Cartões de download e compartilhamento da ficha da bandeira */
.download-grid, .social-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; margin:15px 0; }
.download-tile { min-width:0; display:flex; flex-direction:column; align-items:center; gap:5px; padding:16px 5px; border:1px solid #d8e2ec; border-radius:12px; background:#fff; color:#17365d; font:inherit; cursor:pointer; transition:transform .15s,box-shadow .15s,border-color .15s; }
.download-tile:not(:disabled):hover,.social-tile:hover { transform:translateY(-3px); box-shadow:0 7px 18px #10243c20; }
.download-tile:disabled { cursor:not-allowed; opacity:.55; }
.download-tile strong { font-size:.92rem; } .download-tile small { font-size:.7rem; color:#607185; text-align:center; }
.file-icon { display:grid; place-items:center; width:43px; height:51px; background:#e8f0fa; color:#17436c; border:2px solid #adc3db; border-radius:5px 12px 5px 5px; font-weight:800; font-size:.75rem; }
.download-tile[data-format="pdf"] .file-icon { background:#ffebeb; color:#b72d2d; border-color:#f0b5b5; }
.download-tile[data-format="eps"] .file-icon,.download-tile[data-format="cdr"] .file-icon { background:#f0ebff; color:#6740a5; border-color:#c7b7ec; }
.download-hint { font-size:.83rem; }
.social-grid { grid-template-columns:repeat(6,minmax(0,1fr)); }
.social-tile { min-width:0; border:0; border-radius:11px; padding:13px 4px 10px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; color:white; cursor:pointer; font:inherit; font-weight:700; font-size:.72rem; transition:transform .15s,box-shadow .15s; }
.social-mark { display:grid; place-items:center; font-size:1.7rem; font-weight:900; line-height:1; height:31px; }
.whatsapp { background:#168d4d; } .facebook { background:#1967d2; } .twitter { background:#161b22; } .telegram { background:#258bc0; } .linkedin { background:#0a679c; } .native-share { background:#546579; }
.copy-label { font-size:.9rem; margin-top:24px; } .copy-bar { display:flex; align-items:stretch; border:1px solid #cbd5df; border-radius:10px; overflow:hidden; background:white; }
.copy-bar input { flex:1; min-width:0; border:0; border-radius:0; background:#f7f9fc; font-size:.85rem; }
.copy-button { display:flex; align-items:center; gap:7px; padding:0 17px; border:0; background:#17365d; color:white; font:inherit; font-weight:700; cursor:pointer; }
.copy-button:hover { background:#265b83; } .copy-feedback { min-height:1em; font-size:.82rem; color:#147c47; margin:6px 0 0; }
@media(max-width:600px) { .download-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } .social-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }


/* Impede seleção casual de conteúdo editorial; formulários e links continuam utilizáveis. */
body { -webkit-user-select:none; user-select:none; -webkit-touch-callout:none; }
input, textarea, select, [contenteditable="true"], .copy-bar input { -webkit-user-select:text; user-select:text; }
:focus-visible { outline:3px solid #e6ac45; outline-offset:3px; }
.sponsor-callout { border-left:5px solid #e6ac45; background:#fffaf0; padding:22px; border-radius:10px; margin:22px 0; }
.article-body { max-width:780px; font-size:1.07rem; }
.article-body p { margin-bottom:1.3rem; }

/* Componentes reutilizáveis nos portais municipais */
.anniversary-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:14px;margin:20px 0 28px; }
.anniversary-item { display:block;background:#fff;border:1px solid #dfe6ee;border-radius:12px;padding:12px;text-align:center;text-decoration:none;color:#17365d;box-shadow:0 3px 12px #10243c0b; }
.anniversary-item img { display:block;width:100%;height:90px;object-fit:contain;background:#f6f8fb;border-radius:7px;margin-bottom:10px; }
.anniversary-item strong,.anniversary-item small { display:block; } .anniversary-item small { color:#64748b;margin-top:3px; }
.blog-preview { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:20px 0 30px; }
.blog-preview article { background:white;border-radius:12px;padding:22px;border:1px solid #e1e8f0; }
.blog-preview h3 { margin-top:0; } .blog-preview p { color:#5e6c7c; }
.video-frame { position:relative;aspect-ratio:16/9;max-width:850px;background:#142d49;border-radius:12px;overflow:hidden;display:grid;place-items:center;color:white;text-align:center; }
.video-frame iframe { width:100%;height:100%;border:0; } .video-frame a { color:#fff; }
.site-footer { background:#10243c;color:#e1eaf4;padding:45px 0 20px;margin-top:20px; }
.footer-grid { display:grid;grid-template-columns:1.1fr 1.1fr .9fr 1.6fr;gap:28px; }
.site-footer h3 { color:#fff;font-size:1rem;margin:0 0 12px; } .site-footer a { color:#d7e7f8;text-decoration:none; }
.site-footer a:hover { text-decoration:underline; } .footer-links { list-style:none;margin:0;padding:0;display:grid;gap:7px; }
.footer-socials,.footer-projects { display:flex;flex-wrap:wrap;gap:9px 14px; } .footer-bottom { border-top:1px solid #476078;margin-top:30px;padding-top:16px;font-size:.83rem;color:#b8c9da; }
@media(max-width:800px) { .blog-preview { grid-template-columns:1fr; } .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:540px) { .footer-grid { grid-template-columns:1fr; } }

/* Ajustes do padrão municipal v3 */
.anniversary-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.footer-grid { grid-template-columns:2fr 1fr 1fr; gap:48px; }
.site-footer { padding:42px 0 18px; }
.footer-socials { margin-top:16px; gap:8px 16px; font-size:.85rem; color:#b8c9da; }
@media(max-width:800px) { .anniversary-grid {grid-template-columns:repeat(2,minmax(0,1fr));} .footer-grid {grid-template-columns:1fr 1fr;gap:24px;} }
@media(max-width:540px) { .anniversary-grid {grid-template-columns:repeat(2,minmax(0,1fr));} .footer-grid {grid-template-columns:1fr;} }


/* ================================================================
   PADRÃO VISUAL COMPARTILHADO — V4
   Troque data-theme="azul-marinho" no <body> para uma das 15 paletas.
   Os tons do texto e do botão são definidos junto à paleta.
   ================================================================ */
:root, body[data-theme="azul-marinho"] { --brand:#1e4d75; --brand-dark:#143450; --brand-light:#eaf2f8; --brand-text:#ffffff; --accent:#e9ac4d; --accent-text:#152d42; --ink:#19334a; --link:#165a88; }
body[data-theme="azul-real"] { --brand:#164fa3; --brand-dark:#103675; --brand-light:#eaf1ff; --brand-text:#fff; --accent:#ffd166; --accent-text:#1c3053; --ink:#1b3455; --link:#164fa3; }
body[data-theme="azul-petroleo"] { --brand:#17677a; --brand-dark:#104655; --brand-light:#e8f5f7; --brand-text:#fff; --accent:#f5bc62; --accent-text:#213b43; --ink:#183f49; --link:#17677a; }
body[data-theme="verde-floresta"] { --brand:#205744; --brand-dark:#173f33; --brand-light:#e9f4ed; --brand-text:#fff; --accent:#e8b65c; --accent-text:#243a2e; --ink:#234638; --link:#20654a; }
body[data-theme="verde-esmeralda"] { --brand:#11765e; --brand-dark:#0d4f41; --brand-light:#e5f6ef; --brand-text:#fff; --accent:#f3c66b; --accent-text:#25483a; --ink:#1b4b3e; --link:#11765e; }
body[data-theme="verde-oliva"] { --brand:#5b6633; --brand-dark:#414b26; --brand-light:#f3f4e8; --brand-text:#fff; --accent:#f1ce78; --accent-text:#363c25; --ink:#3d4429; --link:#57652c; }
body[data-theme="vermelho"] { --brand:#a82f3b; --brand-dark:#751e2b; --brand-light:#fff0f1; --brand-text:#fff; --accent:#f3c57a; --accent-text:#54252a; --ink:#532b32; --link:#a82f3b; }
body[data-theme="vinho"] { --brand:#732f4c; --brand-dark:#4f1d35; --brand-light:#faedf3; --brand-text:#fff; --accent:#f0c17d; --accent-text:#44243a; --ink:#4a2c3b; --link:#732f4c; }
body[data-theme="laranja"] { --brand:#a94c18; --brand-dark:#79340f; --brand-light:#fff2e7; --brand-text:#fff; --accent:#ffe0a0; --accent-text:#603a21; --ink:#633c25; --link:#a94c18; }
body[data-theme="terracota"] { --brand:#9b5140; --brand-dark:#71372c; --brand-light:#fff0eb; --brand-text:#fff; --accent:#f7d49b; --accent-text:#57372d; --ink:#613d35; --link:#9b5140; }
body[data-theme="amarelo-ouro"] { --brand:#785713; --brand-dark:#543d0d; --brand-light:#fff8df; --brand-text:#fff; --accent:#f5d56c; --accent-text:#4b390d; --ink:#59471c; --link:#785713; }
body[data-theme="roxo"] { --brand:#6942a0; --brand-dark:#482c70; --brand-light:#f4eefd; --brand-text:#fff; --accent:#e8c27a; --accent-text:#3d2c57; --ink:#433259; --link:#6942a0; }
body[data-theme="lilas"] { --brand:#75518b; --brand-dark:#52365f; --brand-light:#f7effa; --brand-text:#fff; --accent:#eecf8e; --accent-text:#423049; --ink:#4a3854; --link:#75518b; }
body[data-theme="grafite"] { --brand:#39495c; --brand-dark:#253140; --brand-light:#edf0f4; --brand-text:#fff; --accent:#edc36e; --accent-text:#28333f; --ink:#2e3b4a; --link:#39495c; }
body[data-theme="marrom"] { --brand:#75503b; --brand-dark:#503626; --brand-light:#f7efe8; --brand-text:#fff; --accent:#eac582; --accent-text:#423025; --ink:#503b30; --link:#75503b; }

body { --blue:var(--brand); --dark:var(--brand-dark); --gold:var(--accent); color:var(--ink); }
a { color:var(--link); }
h2 { color:var(--brand); }
.btn { background:var(--brand); color:var(--brand-text); }
.btn.gold { background:var(--accent); color:var(--accent-text); }
.btn.secondary { background:var(--brand-light); color:var(--brand); }
.download-tile, .anniversary-item { color:var(--brand); }
.copy-button { background:var(--brand); }
.copy-button:hover { background:var(--brand-dark); }
:focus-visible { outline-color:var(--accent); }

.site-header, header.site-header { background:#fff; color:var(--ink); border-bottom:1px solid #e7ebef; }
.site-header .top { min-height:78px; padding:12px 0; }
.site-header .logo { color:var(--brand-dark); display:inline-flex; align-items:center; gap:12px; font-size:1.12rem; font-weight:800; }
.site-header .logo-symbol { display:grid; place-items:center; background:var(--brand); color:#fff; width:43px; height:43px; border-radius:12px; font-size:1.4rem; }
.site-header nav { gap:24px; align-items:center; }
.site-header nav a { color:#586b78; font-size:.93rem; }
.site-header nav a:hover { color:var(--brand); }

.home-hero { background:linear-gradient(112deg,var(--brand-dark),var(--brand)); color:var(--brand-text); padding:76px 0 66px; }
.home-hero h1 { max-width:850px; font-size:clamp(2.25rem,5.4vw,4.25rem); letter-spacing:-.035em; line-height:1.12; margin:14px 0 22px; }
.hero-eyebrow, .banner-eyebrow { font-size:.77rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); margin:0; }
.home-hero .hero-description { font-size:1.12rem; line-height:1.7; max-width:740px; margin:0; }
.home-hero .search-strip { background:transparent; padding:28px 0 0; border:0; max-width:100%; }
.search-strip .search { display:grid; grid-template-columns:92px minmax(0,1fr) auto; max-width:100%; gap:10px; align-items:stretch; }
.search-strip .search select { width:92px; min-width:0; }
.search-strip .search input { width:100%; min-width:0; }
.search-strip .search button { white-space:nowrap; margin:0; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

.page-banner { background:linear-gradient(115deg,var(--brand-dark),var(--brand)); color:var(--brand-text); padding:44px 0 48px; }
.page-banner h1 { color:var(--brand-text); font-size:clamp(2.2rem,4.2vw,3.25rem); margin:9px 0 12px; }
.page-banner p:last-child { max-width:760px; margin:0; }
.page-banner + main { padding-top:32px; }

@media(max-width:760px) {
  .site-header .top { gap:10px; }
  .site-header nav { gap:12px; }
  .home-hero { padding:48px 0; }
  .search-strip .search { grid-template-columns:76px minmax(0,1fr); }
  .search-strip .search select { width:76px; }
  .search-strip .search button { grid-column:1 / -1; }
}
