:root {
  --bg: #050914;
  --bg-soft: #09111f;
  --panel: rgba(13, 24, 43, .78);
  --panel-solid: #0d182b;
  --text: #f7f9fc;
  --muted: #9eacc2;
  --line: rgba(255,255,255,.1);
  --primary: #2d7cff;
  --primary-2: #55d6ff;
  --success: #35d49a;
  --danger: #ff6b7c;
  --radius: 24px;
  --shadow: 0 28px 80px rgba(0, 0, 0, .35);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: 'Poppins', system-ui, sans-serif; color: var(--text); background: var(--bg); line-height: 1.6; overflow-x: hidden; }
body.no-scroll { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button { cursor: pointer; }
img { max-width: 100%; display: block; }
.container { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }
.eyebrow { display: inline-flex; align-items: center; gap: 9px; padding: 8px 12px; border: 1px solid rgba(85,214,255,.2); border-radius: 999px; background: rgba(45,124,255,.08); color: #a8e9ff; font-size: .76rem; letter-spacing: .13em; text-transform: uppercase; font-weight: 700; }
.eyebrow::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--primary-2); box-shadow: 0 0 18px var(--primary-2); }
.section-head { max-width: 720px; margin-bottom: 42px; }
.section-head h2 { font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1.1; margin: 14px 0 14px; letter-spacing: -.04em; }
.section-head p { color: var(--muted); margin: 0; font-size: 1.02rem; }
section { position: relative; padding: 100px 0; }
[data-reveal] { opacity: 0; transform: translateY(24px); transition: .75s ease; }
[data-reveal].is-visible { opacity: 1; transform: none; }

header { position: fixed; inset: 0 0 auto; z-index: 100; transition: .3s ease; border-bottom: 1px solid transparent; }
header.scrolled { background: rgba(5,9,20,.82); backdrop-filter: blur(18px); border-color: var(--line); }
.header-container { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.logo-link { display: flex; align-items: center; min-width: 160px; }
.site-logo { max-width: 180px; max-height: 50px; object-fit: contain; }
.logo-text { font-size: 1.2rem; font-weight: 800; letter-spacing: -.02em; }
header nav ul { display: flex; align-items: center; list-style: none; gap: 30px; padding: 0; margin: 0; }
header nav a { color: #c9d3e4; font-size: .9rem; font-weight: 500; transition: .2s; }
header nav a:hover { color: #fff; }
.nav-cta { padding: 11px 18px; border-radius: 999px; background: linear-gradient(135deg, var(--primary), #245dde); color: #fff !important; box-shadow: 0 10px 30px rgba(45,124,255,.25); }
.hamburguer { display:none; width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 12px; align-items:center; justify-content:center; flex-direction:column; gap:5px; }
.hamburguer span { width:20px; height:2px; background:#fff; transition:.25s; }

.hero { min-height: 850px; padding: 0; display: flex; align-items: center; overflow: hidden; }
.hero-swiper { position: absolute; inset: 0; width:100%; height:100%; }
.hero-swiper .swiper-slide { background-size: cover; background-position: center; }
.hero-swiper .swiper-slide::after { content:''; position:absolute; inset:0; background: linear-gradient(90deg, rgba(5,9,20,.96) 0%, rgba(5,9,20,.82) 40%, rgba(5,9,20,.35) 72%, rgba(5,9,20,.68) 100%), linear-gradient(180deg, rgba(5,9,20,.15), var(--bg)); }
.hero::before { content:''; position:absolute; z-index:2; width:620px; height:620px; border-radius:50%; left:-220px; top:110px; background:rgba(45,124,255,.2); filter:blur(130px); pointer-events:none; }
.hero-content { position: relative; z-index: 4; padding-top: 120px; }
.hero-copy { max-width: 720px; }
.hero h1 { font-size: clamp(3rem, 7vw, 6rem); line-height: .98; letter-spacing: -.065em; margin: 22px 0 22px; max-width: 850px; }
.hero h1 .gradient { background: linear-gradient(100deg, #fff 20%, #8fe8ff 55%, #6c9fff); -webkit-background-clip:text; background-clip:text; color:transparent; }
.hero-copy > p { color:#b9c6d9; font-size: clamp(1rem, 2vw, 1.2rem); max-width: 650px; }
.hero-actions { display:flex; gap:14px; margin-top:34px; flex-wrap:wrap; }
.btn-primary, .btn-secondary { min-height: 54px; border-radius: 14px; padding: 0 24px; display:inline-flex; align-items:center; justify-content:center; gap:10px; font-weight:700; border:1px solid transparent; transition:.25s ease; }
.btn-primary { background:linear-gradient(135deg,var(--primary),#245dde); box-shadow:0 14px 40px rgba(45,124,255,.28); }
.btn-primary:hover { transform:translateY(-2px); box-shadow:0 18px 50px rgba(45,124,255,.4); }
.btn-secondary { border-color:var(--line); background:rgba(255,255,255,.05); backdrop-filter:blur(10px); }
.btn-secondary:hover { background:rgba(255,255,255,.09); }
.hero-trust { display:flex; gap:28px; margin-top:48px; flex-wrap:wrap; }
.hero-trust div { display:flex; gap:10px; align-items:center; color:#b9c6d9; font-size:.9rem; }
.hero-trust svg { width:20px; height:20px; color:var(--primary-2); }

#equipe { background:linear-gradient(180deg,var(--bg),#07101d); padding-top:60px; }
.intro-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:70px; align-items:center; }
.intro-panel { padding:32px; border:1px solid var(--line); border-radius:var(--radius); background:linear-gradient(145deg,rgba(45,124,255,.11),rgba(255,255,255,.025)); box-shadow:var(--shadow); }
.intro-panel .metric { padding:18px 0; display:flex; justify-content:space-between; gap:20px; border-bottom:1px solid var(--line); }
.intro-panel .metric:last-child { border-bottom:0; }
.metric strong { font-size:1.05rem; }
.metric span { color:var(--muted); text-align:right; }

#servicos { background:#07101d; }
.servicos-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.servico-card { min-height:180px; padding:26px; border:1px solid var(--line); border-radius:20px; background:rgba(255,255,255,.035); position:relative; overflow:hidden; transition:.3s ease; }
.servico-card::before { content:''; position:absolute; width:150px; height:150px; right:-70px; top:-70px; border-radius:50%; background:var(--primary); filter:blur(70px); opacity:.22; }
.servico-card:hover { transform:translateY(-6px); border-color:rgba(85,214,255,.28); background:rgba(255,255,255,.055); }
.service-icon { width:42px; height:42px; display:grid; place-items:center; border-radius:12px; background:rgba(45,124,255,.13); color:#8ddfff; margin-bottom:25px; }
.servico-card h3 { margin:0 0 8px; font-size:1.05rem; }
.servico-card span { color:#a8e9ff; font-size:1.22rem; font-weight:700; }

#galeria { background:linear-gradient(180deg,#07101d,var(--bg)); overflow:hidden; }
.mySwiper { overflow:visible; padding-bottom:52px; }
.mySwiper .swiper-slide { border-radius:22px; overflow:hidden; border:1px solid var(--line); aspect-ratio:4/5; background:#0d182b; }
.mySwiper img { width:100%; height:100%; object-fit:cover; cursor:zoom-in; transition:.45s ease; }
.mySwiper .swiper-slide:hover img { transform:scale(1.04); }
.swiper-button-next,.swiper-button-prev { color:#fff!important; width:44px!important; height:44px!important; border-radius:50%; background:rgba(9,17,31,.75); backdrop-filter:blur(12px); border:1px solid var(--line); }
.swiper-button-next:after,.swiper-button-prev:after { font-size:16px!important; font-weight:800; }
.swiper-pagination-bullet { background:#71829d!important; }
.swiper-pagination-bullet-active { background:var(--primary-2)!important; }

#reserva { background: radial-gradient(circle at 15% 20%, rgba(45,124,255,.12), transparent 30%), #060b16; }
.booking-shell { display:grid; grid-template-columns:.82fr 1.18fr; border:1px solid var(--line); border-radius:28px; overflow:hidden; background:rgba(13,24,43,.63); box-shadow:var(--shadow); }
.booking-info { padding:44px; background:linear-gradient(160deg,rgba(45,124,255,.16),rgba(85,214,255,.035)); border-right:1px solid var(--line); }
.booking-info h2 { font-size:clamp(2.1rem,4vw,3.2rem); line-height:1.06; letter-spacing:-.045em; margin:15px 0 16px; }
.booking-info > p { color:var(--muted); }
.booking-steps { display:grid; gap:16px; margin-top:34px; }
.booking-step { display:flex; gap:13px; align-items:flex-start; }
.booking-step b { width:30px; height:30px; flex:none; display:grid; place-items:center; border-radius:9px; background:rgba(85,214,255,.1); color:#a8e9ff; font-size:.8rem; }
.booking-step strong { display:block; font-size:.92rem; }
.booking-step span { display:block; color:var(--muted); font-size:.8rem; margin-top:2px; }
.booking-form-wrap { padding:44px; }
#form-reserva { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.field { display:flex; flex-direction:column; gap:8px; }
.field.full { grid-column:1/-1; }
.field label { font-size:.78rem; color:#c8d4e5; font-weight:600; }
.field input,.field select { width:100%; min-height:54px; border-radius:13px; border:1px solid var(--line); background:#0a1425; color:#f5f8fc; padding:0 15px; outline:none; transition:.2s; }
.field input::placeholder { color:#687993; }
.field input:focus,.field select:focus { border-color:rgba(85,214,255,.55); box-shadow:0 0 0 4px rgba(45,124,255,.1); }
.field input:disabled,.field select:disabled { opacity:.48; cursor:not-allowed; }
.booking-summary { grid-column:1/-1; display:none; grid-template-columns:repeat(2,1fr); gap:12px; border:1px solid rgba(85,214,255,.15); background:rgba(45,124,255,.07); border-radius:16px; padding:16px; margin-top:4px; }
.booking-summary.ready { display:grid; }
.summary-item small { display:block; color:#7f91aa; font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; }
.summary-item strong { display:block; margin-top:2px; font-size:.88rem; }
#reserva-btn { grid-column:1/-1; min-height:58px; border:0; border-radius:14px; background:linear-gradient(135deg,var(--primary),#245dde); color:#fff; font-weight:750; box-shadow:0 14px 35px rgba(45,124,255,.22); transition:.25s; position:relative; }
#reserva-btn:not(:disabled):hover { transform:translateY(-2px); }
#reserva-btn:disabled { opacity:.4; cursor:not-allowed; box-shadow:none; }
.form-message { grid-column:1/-1; min-height:0; font-size:.87rem; }
.form-message.error { padding:12px 14px; border-radius:12px; color:#ffd2d7; background:rgba(255,107,124,.1); border:1px solid rgba(255,107,124,.22); }
.booking-success { display:none; grid-column:1/-1; text-align:center; padding:30px 20px; border-radius:18px; border:1px solid rgba(53,212,154,.23); background:rgba(53,212,154,.08); }
.booking-success.show { display:block; }
.booking-success .check { width:58px; height:58px; border-radius:50%; margin:0 auto 14px; display:grid; place-items:center; background:rgba(53,212,154,.16); color:var(--success); font-size:1.7rem; }
.booking-success h3 { margin:0 0 8px; }
.booking-success p { margin:4px 0; color:#b9c6d9; }
.booking-complete > :not(.booking-success) { display:none!important; }
.flatpickr-calendar { font-family:'Poppins',sans-serif!important; }

#contato { background:#080f1b; padding:80px 0; }
.contact-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px; }
.contact-card { padding:24px; border:1px solid var(--line); border-radius:18px; background:rgba(255,255,255,.025); }
.contact-card small { display:block; color:#71829d; text-transform:uppercase; letter-spacing:.09em; font-size:.67rem; }
.contact-card strong { display:block; margin-top:8px; word-break:break-word; }
footer { background:#050914; border-top:1px solid var(--line); padding:26px 0; color:#7788a1; font-size:.8rem; }
footer .container { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.dev-link { color:#b8c7dc; }

.whatsapp-float { position:fixed; right:22px; bottom:22px; width:56px; height:56px; border-radius:18px; display:grid; place-items:center; z-index:90; color:#fff; background:#20c66b; box-shadow:0 15px 40px rgba(32,198,107,.3); transition:.2s; }
.whatsapp-float:hover { transform:translateY(-3px); }
.lightbox { display:none; position:fixed; inset:0; z-index:999; background:rgba(2,5,10,.94); align-items:center; justify-content:center; padding:30px; }
.lightbox.active { display:flex; }
.lightbox-content { max-width:min(1000px,80vw); max-height:84vh; object-fit:contain; border-radius:16px; }
.lightbox-close { position:absolute; top:22px; right:30px; font-size:34px; cursor:pointer; color:#fff; }
.lightbox-prev,.lightbox-next { position:absolute; top:50%; transform:translateY(-50%); font-size:34px; padding:20px; cursor:pointer; }
.lightbox-prev { left:16px; }.lightbox-next { right:16px; }


.booking-photo { margin:24px 0 4px; border:1px solid var(--line); border-radius:18px; overflow:hidden; aspect-ratio:16/9; background:#0a1425; box-shadow:0 18px 40px rgba(0,0,0,.2); }
.booking-photo img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease; }
.booking-photo:hover img { transform:scale(1.025); }
#periodo-select option:disabled { color:#64748b; }
@media (max-width: 900px) {
  section { padding:78px 0; }
  .hamburguer { display:flex; }
  header nav { position:absolute; top:72px; left:20px; right:20px; opacity:0; pointer-events:none; transform:translateY(-8px); transition:.25s; background:rgba(7,14,26,.96); border:1px solid var(--line); border-radius:18px; padding:14px; backdrop-filter:blur(18px); }
  header nav.active { opacity:1; pointer-events:auto; transform:none; }
  header nav ul { flex-direction:column; align-items:stretch; gap:4px; }
  header nav a { display:block; padding:12px; }
  .hero { min-height:760px; }
  .hero h1 { font-size:clamp(3rem,12vw,4.5rem); }
  .intro-grid,.booking-shell { grid-template-columns:1fr; gap:28px; }
  .booking-info { border-right:0; border-bottom:1px solid var(--line); }
  .servicos-grid { grid-template-columns:repeat(2,1fr); }
  .contact-grid { grid-template-columns:1fr; }
}
@media (max-width: 620px) {
  .container { width:min(100% - 28px,1180px); }
  .header-container { min-height:72px; }
  .site-logo { max-width:145px; max-height:42px; }
  .hero { min-height:720px; }
  .hero-content { padding-top:90px; }
  .hero-actions > * { width:100%; }
  .hero-trust { gap:14px; }
  .servicos-grid { grid-template-columns:1fr; }
  .booking-info,.booking-form-wrap { padding:28px 20px; }
  #form-reserva { grid-template-columns:1fr; }
  .field.full,.booking-summary,#reserva-btn,.form-message,.booking-success { grid-column:1; }
  .booking-summary { grid-template-columns:1fr; }
  footer .container { flex-direction:column; text-align:center; }
  .lightbox-prev,.lightbox-next { font-size:24px; padding:10px; }
}

/* Seleção múltipla de serviços no formulário */
.field-hint { color:#71829d; font-weight:500; margin-left:5px; }
.services-picker { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.service-option { min-height:64px; display:flex; align-items:center; gap:11px; padding:12px 13px; border:1px solid var(--line); border-radius:13px; background:#0a1425; cursor:pointer; transition:.2s ease; user-select:none; }
.service-option:hover { border-color:rgba(85,214,255,.42); background:rgba(45,124,255,.08); }
.service-option input { position:absolute; opacity:0; pointer-events:none; width:1px; height:1px; }
.service-option-check { width:28px; height:28px; border:1px solid rgba(255,255,255,.16); border-radius:8px; display:grid; place-items:center; color:transparent; background:rgba(255,255,255,.035); flex:0 0 auto; font-weight:800; }
.service-option-copy { display:flex; flex-direction:column; min-width:0; }
.service-option-copy strong { color:#f7faff; font-size:.87rem; line-height:1.25; }
.service-option-copy small { color:#7ecbff; margin-top:3px; font-weight:600; }
.service-option.selected { border-color:rgba(85,214,255,.58); box-shadow:0 0 0 3px rgba(45,124,255,.09); background:rgba(45,124,255,.12); }
.service-option.selected .service-option-check { color:#06111f; background:#55d6ff; border-color:#55d6ff; }
.service-option.attention { animation:servicePulse .75s ease 2; }
.selected-services-info { margin-top:8px; color:#8ca0bb; font-size:.78rem; }
.servico-card[data-service-id] { cursor:pointer; }
.servico-card.selected { border-color:rgba(85,214,255,.58); box-shadow:0 0 0 3px rgba(45,124,255,.08); }
.service-card-action { display:block; margin-top:16px; color:#7ecbff; font-size:.76rem; font-weight:700; position:relative; z-index:1; }
@keyframes servicePulse { 50% { box-shadow:0 0 0 5px rgba(85,214,255,.16); } }
@media (max-width:680px) { .services-picker { grid-template-columns:1fr; } }


/* ===== GALERIA DE TRABALHOS ===== */
.portfolio-gallery {
    position: relative;
    overflow: hidden;
    padding-top: 82px;
    padding-bottom: 92px;
    background:
        radial-gradient(circle at 16% 18%, rgba(41, 124, 255, .10), transparent 29%),
        radial-gradient(circle at 86% 72%, rgba(50, 213, 255, .07), transparent 28%),
        linear-gradient(180deg, #050914 0%, #07101d 48%, #050914 100%);
}
.portfolio-gallery::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px);
    background-size: 48px 48px;
    mask-image: linear-gradient(to bottom, transparent, #000 18%, #000 82%, transparent);
}
.gallery-heading {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 32px;
    margin-bottom: 34px;
}
.gallery-head-copy { margin-bottom: 0; max-width: 720px; }
.gallery-head-copy h2 { max-width: 680px; }
.gallery-social-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.gallery-social-btn {
    min-width: 178px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 16px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: rgba(12, 23, 42, .78);
    color: #fff;
    text-decoration: none;
    transition: transform .25s ease, border-color .25s ease, background .25s ease;
    backdrop-filter: blur(14px);
}
.gallery-social-btn:hover {
    transform: translateY(-3px);
    border-color: rgba(86, 170, 255, .65);
    background: rgba(19, 39, 70, .92);
}
.gallery-social-btn .social-icon {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    flex: 0 0 38px;
    border-radius: 12px;
    background: rgba(69, 150, 255, .12);
    color: #50d7ff;
    font-size: 22px;
}
.gallery-social-btn span:last-child { display: grid; }
.gallery-social-btn small { color: #8395af; font-size: .68rem; line-height: 1.2; }
.gallery-social-btn strong { font-size: .92rem; line-height: 1.3; }
.gallery-showcase {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-auto-rows: 150px;
    gap: 14px;
}
.gallery-tile,
.gallery-extra-item {
    border: 0;
    padding: 0;
    margin: 0;
    overflow: hidden;
    position: relative;
    cursor: zoom-in;
    background: #0d182b;
    border-radius: 20px;
    outline: 1px solid rgba(120, 166, 220, .16);
}
.gallery-tile:nth-child(6n+1) { grid-column: span 5; grid-row: span 3; }
.gallery-tile:nth-child(6n+2) { grid-column: span 4; grid-row: span 2; }
.gallery-tile:nth-child(6n+3) { grid-column: span 3; grid-row: span 2; }
.gallery-tile:nth-child(6n+4) { grid-column: span 3; grid-row: span 2; }
.gallery-tile:nth-child(6n+5) { grid-column: span 4; grid-row: span 2; }
.gallery-tile:nth-child(6n+6) { grid-column: span 5; grid-row: span 3; }
.gallery-tile img,
.gallery-extra-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .55s cubic-bezier(.2,.7,.2,1), filter .4s ease;
}
.gallery-tile:hover img,
.gallery-extra-item:hover img {
    transform: scale(1.055);
    filter: brightness(.82);
}
.gallery-tile-overlay {
    position: absolute;
    inset: auto 14px 14px 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 13px;
    background: rgba(4, 11, 23, .70);
    color: #fff;
    font: 600 .78rem/1.2 'Poppins', sans-serif;
    backdrop-filter: blur(12px);
    opacity: 0;
    transform: translateY(8px);
    transition: .25s ease;
}
.gallery-tile:hover .gallery-tile-overlay,
.gallery-tile:focus-visible .gallery-tile-overlay {
    opacity: 1;
    transform: translateY(0);
}
.gallery-tile-overlay b { color: #52d8ff; font-size: 1rem; }
.gallery-bottom-actions {
    position: relative;
    z-index: 1;
    margin-top: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap;
}
.gallery-see-all { cursor: pointer; }
.gallery-text-link {
    color: #8fc8ff;
    font-weight: 600;
    font-size: .9rem;
    text-decoration: none;
}
.gallery-text-link:hover { color: #fff; }
.gallery-extra {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-top: 18px;
}
.gallery-extra[hidden] { display: none; }
.gallery-extra-item { aspect-ratio: 1 / 1; border-radius: 16px; }

@media (max-width: 980px) {
    .gallery-heading { align-items: flex-start; flex-direction: column; }
    .gallery-social-actions { justify-content: flex-start; }
    .gallery-showcase { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 230px; }
    .gallery-tile:nth-child(n) { grid-column: span 1; grid-row: span 1; }
    .gallery-tile:first-child { grid-column: span 2; grid-row: span 2; }
    .gallery-extra { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
    .portfolio-gallery { padding-top: 62px; padding-bottom: 68px; }
    .gallery-social-actions { width: 100%; }
    .gallery-social-btn { flex: 1 1 155px; min-width: 0; }
    .gallery-showcase { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 170px; gap: 10px; }
    .gallery-tile:first-child { grid-column: span 2; grid-row: span 2; }
    .gallery-tile-overlay { display: none; }
    .gallery-extra { grid-template-columns: repeat(2, 1fr); gap: 10px; }
}


/* =====================================================================
   IDENTIDADE VISUAL STUDIO BELLAS
   Rosé Gold • Nude • Off-white • Marrom Rosado
   Mantém a estrutura e todas as funcionalidades existentes.
   ===================================================================== */

:root {
  --bg: #FFF9F6;
  --bg-soft: #FAEEE9;
  --panel: rgba(255, 252, 249, .92);
  --panel-solid: #FFFDFC;
  --text: #4A3430;
  --muted: #8A6B64;
  --line: rgba(163, 110, 97, .18);
  --primary: #C98372;
  --primary-2: #E8AA9A;
  --success: #7EA98C;
  --danger: #C86F7C;
  --rose-gold: #C98372;
  --rose-medium: #DEA091;
  --rose-light: #F0C9BE;
  --nude-light: #FAE9E2;
  --brown-rose: #A36E61;
  --brown-deep: #3D2B27;
  --off-white: #FFF9F6;
  --radius: 24px;
  --shadow: 0 24px 65px rgba(117, 77, 67, .13);
}

body {
  color: var(--text);
  background: var(--bg);
}

/* Etiquetas e títulos */
.eyebrow {
  border-color: rgba(201, 131, 114, .28);
  background: rgba(232, 170, 154, .13);
  color: #9B5F52;
}
.eyebrow::before {
  background: var(--primary);
  box-shadow: 0 0 16px rgba(201, 131, 114, .42);
}
.section-head p { color: var(--muted); }

/* Header */
header.scrolled {
  background: rgba(255, 249, 246, .91);
  border-color: rgba(163, 110, 97, .13);
  box-shadow: 0 8px 28px rgba(91, 59, 52, .07);
}
header.scrolled nav a,
header.scrolled .logo-text { color: #5A403A; }
header nav a { color: rgba(255, 248, 244, .84); }
header nav a:hover { color: #fff; }
header.scrolled nav a:hover { color: var(--primary); }
.nav-cta {
  background: linear-gradient(135deg, #D49280, #B96F60);
  color: #fff !important;
  box-shadow: 0 10px 30px rgba(185, 111, 96, .25);
}
.hamburguer { border-color: rgba(201, 131, 114, .30); }
header.scrolled .hamburguer span { background: #5A403A; }

/* HERO: fundo profundo para valorizar o rosé e a logo */
.hero {
  background: #33231F;
}
.hero-swiper .swiper-slide::after {
  background:
    linear-gradient(90deg,
      rgba(49, 32, 28, .97) 0%,
      rgba(67, 43, 37, .88) 39%,
      rgba(77, 48, 41, .46) 72%,
      rgba(53, 35, 31, .74) 100%
    ),
    linear-gradient(180deg, rgba(61, 41, 36, .08), #3D2B27);
}
.hero::before {
  background: rgba(222, 160, 145, .28);
}
.hero h1 { color: #FFF9F6; }
.hero h1 .gradient {
  background: linear-gradient(100deg, #FFFDFB 12%, #F3C6BA 52%, #D99180 92%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.hero-copy > p,
.hero-trust div { color: #E9D8D2; }
.hero-trust svg { color: #F0B4A5; }
.hero .eyebrow {
  color: #FFD9CE;
  border-color: rgba(240, 180, 165, .34);
  background: rgba(240, 180, 165, .10);
}
.hero .eyebrow::before {
  background: #F2B7A8;
  box-shadow: 0 0 18px rgba(242,183,168,.55);
}
.btn-primary {
  color: #fff;
  background: linear-gradient(135deg, #D99685, #B96F60);
  box-shadow: 0 14px 38px rgba(185, 111, 96, .25);
}
.btn-primary:hover {
  box-shadow: 0 18px 48px rgba(185, 111, 96, .34);
}
.hero .btn-secondary {
  color: #FFF9F6;
  border-color: rgba(255,255,255,.18);
  background: rgba(255, 249, 246, .08);
}
.hero .btn-secondary:hover { background: rgba(255, 249, 246, .14); }

/* Atendimento / equipe */
#equipe {
  background: linear-gradient(180deg, #FFF9F6 0%, #FBEFEA 100%);
}
.intro-panel {
  border-color: rgba(201,131,114,.19);
  background: linear-gradient(145deg, rgba(250,233,226,.95), rgba(255,253,252,.98));
  box-shadow: var(--shadow);
}
.intro-panel .metric { border-color: rgba(163,110,97,.14); }
.metric span { color: var(--muted); }

/* Serviços */
#servicos {
  background: #FFFDFC;
}
.servico-card {
  border-color: rgba(163,110,97,.16);
  background: linear-gradient(145deg, #FFFDFC, #FCF2EE);
  box-shadow: 0 12px 35px rgba(113,76,67,.055);
}
.servico-card::before {
  background: #E6A595;
  opacity: .18;
}
.servico-card:hover {
  border-color: rgba(201,131,114,.42);
  background: #FFF8F5;
  box-shadow: 0 18px 42px rgba(113,76,67,.10);
}
.service-icon {
  background: rgba(201,131,114,.12);
  color: #B76F5F;
}
.servico-card span,
.service-card-action { color: #B66D5D; }

/* Galeria principal */
#galeria,
.portfolio-gallery {
  background:
    radial-gradient(circle at 14% 18%, rgba(232,170,154,.15), transparent 30%),
    radial-gradient(circle at 86% 74%, rgba(201,131,114,.10), transparent 28%),
    linear-gradient(180deg, #FBEEE9 0%, #FFF9F6 48%, #F9ECE7 100%);
}
.portfolio-gallery::before {
  background-image:
    linear-gradient(rgba(163,110,97,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(163,110,97,.035) 1px, transparent 1px);
}
.gallery-social-btn {
  border-color: rgba(163,110,97,.18);
  background: rgba(255, 253, 252, .84);
  color: #4A3430;
  box-shadow: 0 9px 28px rgba(100,67,59,.06);
}
.gallery-social-btn:hover {
  border-color: rgba(201,131,114,.50);
  background: #FFF9F6;
}
.gallery-social-btn .social-icon {
  background: rgba(201,131,114,.12);
  color: #B86F60;
}
.gallery-social-btn small { color: #9A746B; }
.gallery-tile,
.gallery-extra-item {
  background: #F4E3DD;
  outline-color: rgba(163,110,97,.15);
  box-shadow: 0 10px 30px rgba(98,65,57,.08);
}
.gallery-tile-overlay {
  border-color: rgba(255,255,255,.20);
  background: rgba(61, 43, 39, .73);
  color: #fff;
}
.gallery-tile-overlay b { color: #F2B6A7; }
.gallery-text-link { color: #A96052; }
.gallery-text-link:hover { color: #70473E; }

/* Reserva */
#reserva {
  background:
    radial-gradient(circle at 13% 20%, rgba(232,170,154,.17), transparent 31%),
    #FFF9F6;
}
.booking-shell {
  border-color: rgba(163,110,97,.18);
  background: rgba(255,253,252,.94);
  box-shadow: 0 28px 70px rgba(92,60,52,.12);
}
.booking-info {
  color: #FFF9F6;
  background:
    radial-gradient(circle at 16% 15%, rgba(240,190,177,.16), transparent 30%),
    linear-gradient(160deg, #5B3D36 0%, #3D2B27 100%);
  border-color: rgba(255,255,255,.09);
}
.booking-info > p,
.booking-step span { color: #E5D4CE; }
.booking-info .eyebrow {
  color: #FFD9CE;
  border-color: rgba(240,180,165,.30);
  background: rgba(240,180,165,.10);
}
.booking-step b {
  background: rgba(240,180,165,.14);
  color: #F6C5B8;
}
.booking-form-wrap { background: #FFFDFC; }
.field label { color: #694C45; }
.field input,
.field select {
  border-color: rgba(163,110,97,.18);
  background: #FFF9F6;
  color: #4A3430;
}
.field input::placeholder { color: #B0958E; }
.field input:focus,
.field select:focus {
  border-color: rgba(201,131,114,.72);
  box-shadow: 0 0 0 4px rgba(201,131,114,.10);
}
.booking-summary {
  border-color: rgba(201,131,114,.22);
  background: #FAECE7;
}
.summary-item small { color: #9D756B; }
#reserva-btn {
  background: linear-gradient(135deg, #D99685, #B96F60);
  box-shadow: 0 14px 35px rgba(185,111,96,.22);
}
.form-message.error {
  color: #9B3F4D;
  background: rgba(200,111,124,.09);
  border-color: rgba(200,111,124,.22);
}
.booking-success {
  border-color: rgba(126,169,140,.28);
  background: rgba(126,169,140,.09);
}
.booking-success p { color: #80635C; }
.booking-photo {
  background: #F7E9E4;
  box-shadow: 0 18px 40px rgba(95,61,53,.10);
}

/* Seleção múltipla de serviços */
.field-hint,
.selected-services-info { color: #9A746B; }
.service-option {
  border-color: rgba(163,110,97,.18);
  background: #FFF9F6;
}
.service-option:hover {
  border-color: rgba(201,131,114,.45);
  background: #FAECE7;
}
.service-option-check {
  border-color: rgba(163,110,97,.24);
  background: #FFFDFC;
}
.service-option-copy strong { color: #4A3430; }
.service-option-copy small { color: #B66D5D; }
.service-option.selected {
  border-color: rgba(201,131,114,.65);
  box-shadow: 0 0 0 3px rgba(201,131,114,.09);
  background: #F9E7E1;
}
.service-option.selected .service-option-check {
  color: #fff;
  background: #C98372;
  border-color: #C98372;
}
.servico-card.selected {
  border-color: rgba(201,131,114,.62);
  box-shadow: 0 0 0 3px rgba(201,131,114,.09);
}
@keyframes servicePulse {
  50% { box-shadow: 0 0 0 5px rgba(201,131,114,.14); }
}

/* Contato e rodapé */
#contato {
  background: #F8ECE7;
}
.contact-card {
  border-color: rgba(163,110,97,.16);
  background: rgba(255,253,252,.85);
}
.contact-card small { color: #9A746B; }
footer {
  background: #3D2B27;
  color: #D7BEB7;
  border-top-color: rgba(255,255,255,.08);
}
.dev-link { color: #F0C4B8; }

/* Lightbox */
.lightbox { background: rgba(44,29,26,.95); }

/* WhatsApp mantém o verde reconhecível, porém mais elegante */
.whatsapp-float {
  background: #25B96B;
  box-shadow: 0 15px 40px rgba(37,185,107,.25);
}

/* Flatpickr / calendário */
.flatpickr-calendar {
  color: #4A3430 !important;
  background: #FFFDFC !important;
  border-color: rgba(163,110,97,.18) !important;
  box-shadow: 0 18px 45px rgba(90,57,50,.16) !important;
}
.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange {
  background: #C98372 !important;
  border-color: #C98372 !important;
  color: #fff !important;
}
.flatpickr-day:hover {
  background: #FAE7E0 !important;
  border-color: #FAE7E0 !important;
}

/* Menu mobile claro */
@media (max-width: 900px) {
  header nav {
    background: rgba(255,249,246,.97);
    border-color: rgba(163,110,97,.15);
    box-shadow: 0 20px 45px rgba(89,57,50,.12);
  }
  header nav a { color: #5A403A; }
  header nav a:hover { color: #B86F60; }
  header:not(.scrolled) .hamburguer span { background: #fff; }
}

/* Polimento de seleção de texto */
::selection {
  background: #E7B0A2;
  color: #3D2B27;
}
