:root { --ink:#251b15; --muted:#705f51; --gold:#b99026; --gold-light:#e6cb81; --paper:#fffdf8; --line:#ded0bc; --shadow:0 15px 35px rgba(75,49,25,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:#fffdf8; font-family:Arial,Helvetica,sans-serif; }
body.no-scroll { overflow:hidden; }
a { color:inherit; text-decoration:none; } img { display:block; max-width:100%; }
.site-header { position:sticky; top:0; z-index:20; display:flex; align-items:center; justify-content:space-between; gap:28px; min-height:70px; padding:9px clamp(18px,7vw,110px); background:rgba(255,253,248,.94); border-bottom:1px solid rgba(185,144,38,.2); backdrop-filter:blur(12px); }
.brand img { width:130px; max-height:52px; object-fit:contain; } nav { display:flex; align-items:center; gap:22px; font-size:13px; font-weight:700; } nav a { transition:color .2s ease, transform .2s ease; } nav a:hover { color:var(--gold); transform:translateY(-1px); }.nav-pill { padding:11px 18px; color:#fff; background:var(--gold); border-radius:8px; text-transform:uppercase; }
.solar-hero { position:relative; display:grid; grid-template-columns:minmax(0, .93fr) minmax(380px, 1.07fr); min-height:590px; overflow:hidden; background:linear-gradient(90deg,rgba(255,249,239,.98) 0%,rgba(255,246,230,.94) 48%,transparent 62%), url('../img/bg-hero.png') center/cover; }
.solar-hero::before { content:""; position:absolute; inset:0; background:url('../img/tropical-1.png') -90px 88%/270px auto no-repeat, url('../img/tropical-4.png') 51% -70px/180px auto no-repeat; opacity:.24; pointer-events:none; }
.solar-hero-copy { position:relative; z-index:1; align-self:center; max-width:620px; padding:70px 30px 70px clamp(18px,7vw,110px); }.eyebrow { display:inline-block; margin-bottom:12px; color:var(--gold); font-size:12px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }.solar-hero h1 { margin:0 0 18px; font-family:Georgia,'Times New Roman',serif; font-size:clamp(42px,5.3vw,74px); font-weight:500; line-height:.96; }.solar-hero p { max-width:410px; margin:0 0 27px; color:#4f4238; font-size:17px; line-height:1.5; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:45px; padding:0 22px; border:0; border-radius:8px; font:700 13px Arial,Helvetica,sans-serif; text-transform:uppercase; cursor:pointer; transition:transform .2s ease,box-shadow .2s ease; }.button:hover { transform:translateY(-3px); box-shadow:0 12px 24px rgba(104,73,13,.24); }.button.primary { color:#fff; background:linear-gradient(135deg,#c9a02e,#a98019); }
.solar-hero-photo { position:relative; min-height:590px; overflow:hidden; }.solar-hero-photo::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(255,247,232,.28),transparent 36%),linear-gradient(0deg,rgba(92,47,10,.12),transparent 44%); }.solar-hero-photo img { width:100%; height:100%; min-height:590px; object-fit:cover; object-position:center; animation:hero-in 1.2s ease both; }
.section { position:relative; padding:clamp(58px,7vw,94px) clamp(18px,7vw,110px); overflow:hidden; }.section-title { max-width:740px; margin-bottom:32px; }.section-title.centered { margin-right:auto; margin-left:auto; text-align:center; }.section h2 { margin:0; font-family:Georgia,'Times New Roman',serif; font-size:clamp(30px,3.5vw,48px); font-weight:500; line-height:1.08; }
.why-section { background:linear-gradient(rgba(255,253,248,.83),rgba(255,253,248,.88)),url('../img/bg-cloud.jpg') center/cover; }.why-section::before { content:""; position:absolute; inset:0; background:url('../img/tropical-2.png') -110px 70%/260px auto no-repeat,url('../img/tropical-5.png') calc(100% + 50px) 8%/220px auto no-repeat; opacity:.2; pointer-events:none; }.why-grid { position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:18px; max-width:1100px; margin:auto; }.why-grid article { text-align:center; }.why-icon { display:grid; width:66px; height:66px; place-items:center; margin:0 auto 14px; color:var(--gold); border:1px solid var(--gold); border-radius:50%; font-family:Georgia,serif; font-size:21px; }.why-grid strong { display:block; margin-bottom:7px; font-size:16px; text-transform:uppercase; }.why-grid p { margin:0; color:var(--muted); font-size:14px; line-height:1.45; }
.services-section { background:linear-gradient(135deg,rgba(255,246,222,.93),rgba(255,253,248,.9)),url('../img/bg-soft.jpg') center/cover; }.services-section::after { content:""; position:absolute; inset:0; background:url('../img/tropical-3.png') 3% 96%/210px auto no-repeat,url('../img/tropical-4.png') 98% 8%/210px auto no-repeat; opacity:.18; pointer-events:none; }.price-grid { position:relative; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; max-width:1000px; margin:auto; }.price-card { display:flex; flex-direction:column; align-items:center; min-height:265px; padding:33px 25px 26px; text-align:center; background:rgba(255,253,248,.9); border:1px solid #cdbb92; border-radius:8px; box-shadow:var(--shadow); transition:transform .25s ease; }.price-card:hover { transform:translateY(-8px); }.price-card.featured { border:2px solid var(--gold); transform:translateY(-13px); }.price-card.featured:hover { transform:translateY(-20px); }.price-card span { margin-bottom:12px; padding:5px 10px; color:#fff; background:var(--gold); border-radius:999px; font-size:11px; font-weight:700; text-transform:uppercase; }.price-card strong { font-size:21px; }.price-card p { flex:1; margin:10px 0; color:var(--muted); line-height:1.45; }.price-card b { margin-bottom:16px; color:var(--gold); font-size:22px; }.price-card a { color:var(--gold); font-weight:800; font-size:13px; text-transform:uppercase; }
.gallery-section { background:#fffdf8; }.gallery-section::before { content:""; position:absolute; inset:0; background:url('../img/tropical-1.png') 1% 8%/180px auto no-repeat,url('../img/tropical-5.png') 99% 88%/190px auto no-repeat; opacity:.15; pointer-events:none; }.solar-gallery { position:relative; display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:155px; gap:10px; max-width:1160px; margin:auto; }.gallery-item { position:relative; padding:0; overflow:hidden; border:0; border-radius:8px; background:#eee; cursor:zoom-in; box-shadow:0 8px 20px rgba(64,40,22,.12); }.gallery-item:nth-child(1),.gallery-item:nth-child(6) { grid-column:span 2; }.gallery-item:nth-child(2),.gallery-item:nth-child(5) { grid-row:span 2; }.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease,filter .45s ease; }.gallery-item:hover img { transform:scale(1.08); filter:saturate(1.1); }
.contact-section { display:grid; grid-template-columns:minmax(0,1fr) minmax(350px,.85fr); align-items:center; gap:55px; min-height:520px; background:linear-gradient(112deg,rgba(255,250,239,.97) 0%,rgba(255,250,239,.9) 47%,rgba(255,250,239,.3) 100%),url('../img/bg-contact.png') center/cover; }.contact-section::before { content:""; position:absolute; inset:0; background:url('../img/tropical-2.png') -70px 96%/230px auto no-repeat; opacity:.2; pointer-events:none; }.contact-copy,.map-frame { position:relative; z-index:1; }.contact-copy p { margin:16px 0 20px; color:var(--muted); font-size:17px; line-height:1.7; }.contact-form { display:grid; grid-template-columns:1fr 1fr; gap:10px; max-width:560px; }.contact-form input,.contact-form textarea,.contact-form select { width:100%; padding:12px 13px; color:var(--ink); background:rgba(255,255,255,.88); border:1px solid #cdbb92; border-radius:6px; font:inherit; }.contact-form textarea,.contact-form button,.schedule-note { grid-column:1/-1; }.contact-form textarea { min-height:94px; resize:vertical; }.contact-form .button { justify-self:start; }.schedule-note { color:#7b622d; font-size:13px; }.map-frame { overflow:hidden; background:#fff; border:5px solid #fff; border-radius:8px; box-shadow:var(--shadow); }.map-frame iframe { width:100%; height:360px; border:0; }.map-frame a { display:block; padding:13px; color:#886817; font-weight:800; text-align:center; text-transform:uppercase; font-size:12px; }
footer { display:flex; justify-content:space-between; gap:16px; padding:25px clamp(18px,7vw,110px); color:#f4ead7; background:#7c5a21; font-size:13px; } footer a { text-decoration:underline; }
.lightbox { position:fixed; inset:0; z-index:50; display:grid; place-items:center; padding:24px; background:rgba(32,22,15,.88); }.lightbox[hidden] { display:none; }.lightbox img { max-width:min(92vw,980px); max-height:86vh; border:7px solid #fff; border-radius:8px; box-shadow:0 30px 80px rgba(0,0,0,.4); }.lightbox-close { position:fixed; top:18px; right:18px; width:42px; height:42px; color:#5f4114; background:#fff; border:0; border-radius:50%; font-size:23px; cursor:pointer; }
.reveal { opacity:0; transform:translateY(28px); transition:opacity .7s ease,transform .7s ease; }.reveal.is-visible { opacity:1; transform:none; }.delay-1 { transition-delay:.12s; }.delay-2 { transition-delay:.22s; }.delay-3 { transition-delay:.32s; }
@keyframes hero-in { from { opacity:.7; transform:scale(1.08); } to { opacity:1; transform:scale(1); } }
@media (max-width:850px) { .site-header { align-items:flex-start; flex-direction:column; gap:8px; } nav { flex-wrap:wrap; gap:12px; }.solar-hero,.contact-section { grid-template-columns:1fr; }.solar-hero-copy { padding-top:65px; padding-bottom:38px; }.solar-hero-photo,.solar-hero-photo img { min-height:390px; }.why-grid { grid-template-columns:1fr 1fr; row-gap:35px; }.price-grid { grid-template-columns:1fr; max-width:460px; }.price-card.featured,.price-card.featured:hover { transform:none; }.solar-gallery { grid-template-columns:repeat(2,1fr); grid-auto-rows:165px; }.contact-section { gap:25px; }.contact-gallery { max-width:500px; }.section { padding-right:24px; padding-left:24px; } }
@media (max-width:500px) { nav a:not(.nav-pill) { font-size:12px; }.solar-hero h1 { font-size:43px; }.solar-gallery { grid-auto-rows:130px; }.why-grid { grid-template-columns:1fr; }.contact-gallery img { height:190px; } footer { flex-direction:column; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; animation-iteration-count:1!important; }.reveal { opacity:1; transform:none; } }

/* Painel administrativo */
.panel-body { display:grid; grid-template-columns:270px 1fr; min-height:100vh; background:#f8f1e8; }.sidebar { position:sticky; top:0; height:100vh; padding:22px; background:#382719; color:#fff; }.panel-logo { display:block; padding:12px; margin-bottom:20px; background:#fff; border-radius:8px; }.panel-logo img { max-height:65px; margin:auto; }.tab-button,.sidebar-link { display:block; width:100%; margin:0 0 9px; padding:13px; color:rgba(255,255,255,.86); background:transparent; border:1px solid rgba(255,255,255,.15); border-radius:6px; font:700 14px Arial,sans-serif; text-align:left; cursor:pointer; }.tab-button.active,.tab-button:hover,.sidebar-link:hover { color:#382719; background:#e4c567; }.panel { padding:34px; }.panel-header { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:22px; }.panel-header h1 { margin:0; font-family:Georgia,serif; }.panel-user,.manager-card p { color:var(--muted); }.tab-panel { display:none; }.tab-panel.active { display:block; }.stats,.dashboard-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }.dashboard-grid { grid-template-columns:minmax(280px,.8fr) minmax(400px,1.2fr); margin-top:18px; }.manager-card,.stats article { padding:24px; background:#fffdf8; border:1px solid var(--line); border-radius:8px; box-shadow:var(--shadow); }.stats span { color:var(--muted); font-weight:700; }.stats strong { display:block; margin-top:8px; color:#9d7620; font-size:30px; }.manager-card h2 { font-size:25px; }.banner-preview img { width:100%; height:230px; margin-bottom:14px; object-fit:cover; border-radius:6px; }.form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:15px; }.form-grid h2,.form-grid .wide,.form-grid .button { grid-column:1/-1; }.stack { display:grid; gap:13px; } label { display:grid; gap:6px; color:#6e531a; font-weight:700; } input,textarea,select { width:100%; min-height:43px; padding:10px; border:1px solid var(--line); border-radius:6px; font:inherit; } textarea { min-height:95px; resize:vertical; }.table-wrap { overflow-x:auto; } table { width:100%; border-collapse:collapse; } th,td { padding:12px 8px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; } th { color:#806321; font-size:12px; text-transform:uppercase; } small { color:var(--muted); }.status { display:inline-block; padding:6px 9px; color:#72520c; background:#fff0bf; border-radius:999px; font-size:12px; font-weight:700; }.icon-danger { width:33px; height:33px; color:#962a2a; background:#fff1f1; border:1px solid #efcaca; border-radius:6px; font-size:22px; cursor:pointer; }.notice { margin-bottom:17px; padding:14px; color:#285437; background:#e7f8eb; border-radius:6px; }.login-body { min-height:100vh; background:linear-gradient(rgba(57,39,25,.8),rgba(125,87,31,.65)),url('../img/banner-bronze.jpg') center/cover; }.login-shell { display:grid; min-height:100vh; place-items:center; padding:24px; }.login-card { display:grid; gap:15px; width:min(100%,440px); padding:30px; background:#fffdf8; border-radius:8px; box-shadow:var(--shadow); }.login-card img { width:170px; margin:auto; }.login-card h1 { margin:0; font:32px Georgia,serif; }.login-help { margin:0; color:var(--muted); font-size:14px; }
@media (max-width:850px) { .panel-body { grid-template-columns:1fr; }.sidebar { position:static; height:auto; }.panel { padding:22px; }.panel-header,.stats,.dashboard-grid,.form-grid { grid-template-columns:1fr; }.panel-header { align-items:flex-start; flex-direction:column; }.contact-form { grid-template-columns:1fr; }.contact-form input,.contact-form select { grid-column:1/-1; } }
