/* ===========================
   A-CONSTRUCT — PROFESSIONAL THEME
   Navy / Orange / White
   =========================== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --navy:#0F172A; --navy-light:#1E293B; --navy-soft:#334155;
  --orange:#F97316; --orange-dark:#EA580C; --orange-soft:#FFF3EB;
  --white:#FFFFFF; --gray-bg:#F8FAFC; --gray-bg2:#F1F5F9;
  --border:#E2E8F0; --text:#374151; --text-light:#64748B;
  --radius:10px; --radius-lg:16px;
  --shadow-sm:0 1px 3px rgba(15,23,42,0.08);
  --shadow:0 4px 16px rgba(15,23,42,0.08);
  --shadow-lg:0 12px 40px rgba(15,23,42,0.12);
  --shadow-orange:0 8px 24px rgba(249,115,22,0.28);
  --font-head:'Poppins',sans-serif;
  --font-body:'Inter',sans-serif;
}
html { scroll-behavior: smooth; }
body { background:var(--white); color:var(--text); font-family:var(--font-body); font-size:16px; line-height:1.7; overflow-x:hidden; }
::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--gray-bg2)}::-webkit-scrollbar-thumb{background:var(--navy-soft);border-radius:5px}
img { max-width:100%; display:block; }

/* TOP BAR */
.topbar { background:var(--navy); color:#cbd5e1; font-size:0.82rem; border-bottom:1px solid var(--navy-light); }
.topbar-inner { max-width:1280px; margin:0 auto; padding:8px 5%; display:flex; justify-content:space-between; align-items:center; }
.topbar-right { display:flex; gap:1.5rem; }
.topbar a { color:#cbd5e1; text-decoration:none; transition:color .2s; }
.topbar a:hover { color:var(--orange); }

/* NAV */
#navbar { position:sticky; top:0; z-index:100; background:var(--white); box-shadow:var(--shadow-sm); transition:box-shadow .3s; }
#navbar.scrolled { box-shadow:var(--shadow); }
.nav-inner { max-width:1280px; margin:0 auto; padding:0 5%; display:flex; align-items:center; justify-content:space-between; height:74px; }
.logo { font-family:var(--font-head); font-weight:800; font-size:1.5rem; letter-spacing:-0.5px; color:var(--navy); text-decoration:none; }
.logo span { color:var(--orange); }
.nav-links { list-style:none; display:flex; align-items:center; gap:2rem; }
.nav-links a { font-family:var(--font-body); font-weight:500; font-size:0.95rem; color:var(--navy); text-decoration:none; transition:color .2s; position:relative; }
.nav-links a:not(.nav-cta):hover { color:var(--orange); }
.nav-links a:not(.nav-cta)::after { content:''; position:absolute; bottom:-6px; left:0; width:0; height:2px; background:var(--orange); transition:width .25s; }
.nav-links a:not(.nav-cta):hover::after { width:100%; }
.nav-cta { background:var(--orange)!important; color:#fff!important; padding:11px 22px; border-radius:var(--radius); font-weight:600!important; box-shadow:var(--shadow-orange); transition:transform .15s,background .2s!important; }
.nav-cta:hover { background:var(--orange-dark)!important; transform:translateY(-2px); }
.hamburger { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:6px; }
.hamburger span { display:block; width:26px; height:3px; background:var(--navy); border-radius:2px; transition:.3s; }
.mobile-menu { display:none; flex-direction:column; background:var(--white); border-top:1px solid var(--border); padding:0 5% 16px; }
.mobile-menu a { font-weight:500; font-size:1.05rem; color:var(--navy); text-decoration:none; padding:15px 0; border-bottom:1px solid var(--border); }
.mobile-cta { color:var(--orange)!important; font-weight:700!important; }
.mobile-menu.open { display:flex; }

/* BUTTONS */
.btn-primary { display:inline-block; background:var(--orange); color:#fff; font-family:var(--font-body); font-weight:600; font-size:1rem; text-decoration:none; padding:14px 30px; border:none; border-radius:var(--radius); cursor:pointer; box-shadow:var(--shadow-orange); transition:transform .15s,background .2s; }
.btn-primary:hover { background:var(--orange-dark); transform:translateY(-2px); }
.btn-primary.full-width { width:100%; text-align:center; display:block; padding:16px; }
.btn-secondary { display:inline-block; background:transparent; color:var(--navy); font-family:var(--font-body); font-weight:600; font-size:1rem; text-decoration:none; padding:13px 30px; border:2px solid var(--navy); border-radius:var(--radius); cursor:pointer; transition:all .2s; }
.btn-secondary:hover { background:var(--navy); color:#fff; transform:translateY(-2px); }

/* SECTION SHARED */
section { scroll-margin-top:90px; }
.section-header { margin-bottom:3.5rem; }
.section-header.centered { text-align:center; max-width:680px; margin-left:auto; margin-right:auto; }
.section-tag { display:inline-block; font-family:var(--font-body); font-weight:600; font-size:0.82rem; letter-spacing:1.5px; text-transform:uppercase; color:var(--orange); background:var(--orange-soft); padding:5px 14px; border-radius:50px; margin-bottom:1rem; }
.section-title { font-family:var(--font-head); font-weight:700; font-size:clamp(2rem,4vw,3rem); line-height:1.15; letter-spacing:-0.5px; color:var(--navy); margin-bottom:1rem; }
.section-sub { color:var(--text-light); font-size:1.05rem; }
.section-header.light .section-tag { background:rgba(249,115,22,0.18); }
.section-header.light .section-title { color:#fff; }

/* HERO */
#hero { background:linear-gradient(180deg,var(--gray-bg) 0%,var(--white) 100%); padding:80px 5% 90px; overflow:hidden; }
.hero-inner { max-width:1280px; margin:0 auto; display:grid; grid-template-columns:1.05fr 0.95fr; gap:4rem; align-items:center; }
.hero-tag { display:inline-block; font-family:var(--font-body); font-weight:600; font-size:0.85rem; letter-spacing:0.5px; color:var(--orange); background:var(--orange-soft); padding:7px 16px; border-radius:50px; margin-bottom:1.5rem; animation:fadeUp .7s ease both; }
.hero-title { font-family:var(--font-head); font-weight:800; font-size:clamp(2.4rem,5vw,3.8rem); line-height:1.1; letter-spacing:-1px; color:var(--navy); margin-bottom:1.5rem; animation:fadeUp .7s ease .1s both; }
.hero-title span { color:var(--orange); position:relative; }
.hero-sub { font-size:1.12rem; color:var(--text-light); max-width:520px; margin-bottom:2rem; animation:fadeUp .7s ease .2s both; }
.hero-actions { display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:2.5rem; animation:fadeUp .7s ease .3s both; }
.hero-trust { display:flex; gap:1.8rem; flex-wrap:wrap; animation:fadeUp .7s ease .4s both; }
.trust-item { display:flex; align-items:center; gap:8px; font-weight:500; font-size:0.95rem; color:var(--navy); }
.trust-check { display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; background:#dcfce7; color:#16a34a; border-radius:50%; font-size:0.75rem; font-weight:700; }

.hero-visual { position:relative; animation:fadeUp .8s ease .3s both; }
.hero-card-main { border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lg); }
.hero-card-img { aspect-ratio:4/3.4; background:linear-gradient(135deg,var(--navy) 0%,var(--navy-light) 100%); display:flex; align-items:center; justify-content:center; position:relative; }
.hero-card-img img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:1; }
.img-placeholder { color:#64748b; font-family:var(--font-body); font-size:0.85rem; text-align:center; line-height:1.8; font-weight:500; }
.hero-stat-card { position:absolute; z-index:5; bottom:-24px; left:-24px; background:var(--orange); color:#fff; padding:1.25rem 1.5rem; border-radius:var(--radius); box-shadow:var(--shadow-orange); display:flex; align-items:center; gap:12px; }
.hero-stat-num { font-family:var(--font-head); font-weight:800; font-size:2.4rem; line-height:1; }
.hero-stat-label { font-size:0.82rem; font-weight:500; line-height:1.2; }
.hero-badge-card { position:absolute; z-index:5; top:-20px; right:-16px; background:#fff; padding:0.9rem 1.2rem; border-radius:var(--radius); box-shadow:var(--shadow-lg); }
.badge-stars { display:block; color:var(--orange); font-size:0.95rem; letter-spacing:1px; }
.badge-text { font-size:0.72rem; color:var(--text-light); font-weight:500; }

/* STATS BAND */
.stats-band { background:var(--navy); padding:0 5%; }
.stats-band-inner { max-width:1280px; margin:0 auto; padding:2.5rem 0; display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.sb-item { text-align:center; flex:1; }
.sb-num { display:block; font-family:var(--font-head); font-weight:800; font-size:2.6rem; color:var(--orange); line-height:1; margin-bottom:6px; }
.sb-label { font-size:0.88rem; color:#cbd5e1; font-weight:500; }
.sb-divider { width:1px; height:50px; background:var(--navy-soft); }

/* SERVICES */
#services { padding:100px 5%; background:var(--white); }
.services-grid { max-width:1280px; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; }
.service-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius-lg); padding:2rem 1.75rem; transition:transform .25s,box-shadow .25s,border-color .25s; }
.service-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:transparent; }
.service-icon { width:56px; height:56px; padding:13px; color:var(--orange); background:var(--orange-soft); border-radius:var(--radius); margin-bottom:1.25rem; transition:background .25s,color .25s; }
.service-card:hover .service-icon { background:var(--orange); color:#fff; }
.service-card h3 { font-family:var(--font-head); font-weight:600; font-size:1.18rem; color:var(--navy); margin-bottom:0.6rem; }
.service-card p { font-size:0.92rem; color:var(--text-light); line-height:1.6; }

/* ABOUT */
#about { padding:100px 5%; background:var(--gray-bg); }
.about-inner { max-width:1280px; margin:0 auto; display:grid; grid-template-columns:0.9fr 1.1fr; gap:4.5rem; align-items:center; }
.about-visual { position:relative; }
.about-img { position:relative; aspect-ratio:4/4.6; background:linear-gradient(135deg,var(--navy) 0%,var(--navy-light) 100%); border-radius:var(--radius-lg); display:flex; align-items:center; justify-content:center; overflow:hidden; box-shadow:var(--shadow-lg); }
.about-img img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:1; }
.about-exp-badge { position:absolute; z-index:5; bottom:-22px; right:-22px; background:var(--orange); color:#fff; width:120px; height:120px; border-radius:var(--radius-lg); display:flex; flex-direction:column; align-items:center; justify-content:center; box-shadow:var(--shadow-orange); }
.exp-num { font-family:var(--font-head); font-weight:800; font-size:2.6rem; line-height:1; }
.exp-text { font-size:0.78rem; font-weight:500; text-align:center; line-height:1.2; margin-top:4px; }
.about-text p { color:var(--text); margin-bottom:1.25rem; font-size:1rem; line-height:1.75; }
.about-text strong { color:var(--navy); font-weight:700; }
.quote-bar { border-left:4px solid var(--orange); padding:1rem 1.5rem; margin:1.5rem 0; background:var(--white); border-radius:0 var(--radius) var(--radius) 0; box-shadow:var(--shadow-sm); }
.quote-bar p { font-family:var(--font-head); font-weight:500; font-size:1.1rem; font-style:italic; color:var(--navy); margin:0; line-height:1.5; }
.about-text .btn-primary { margin-top:0.75rem; }

/* PORTFOLIO */
#portfolio { padding:100px 5%; background:var(--white); }
.portfolio-grid { max-width:1280px; margin:0 auto 3rem; display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.portfolio-item { position:relative; aspect-ratio:4/3.2; border-radius:var(--radius-lg); overflow:hidden; cursor:pointer; box-shadow:var(--shadow); background:var(--navy); }
.portfolio-item img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.portfolio-item:hover img { transform:scale(1.08); }
.portfolio-placeholder { display:none; position:absolute; inset:0; align-items:center; justify-content:center; flex-direction:column; gap:6px; color:#64748b; font-size:0.85rem; font-weight:500; text-align:center; line-height:1.8; background:linear-gradient(135deg,var(--navy) 0%,var(--navy-light) 100%); }
.portfolio-item.no-img .portfolio-placeholder { display:flex; }
.portfolio-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(15,23,42,0.92) 0%,rgba(15,23,42,0.1) 55%,transparent 100%); display:flex; flex-direction:column; justify-content:flex-end; padding:1.5rem; opacity:0; transition:opacity .3s; }
.portfolio-item:hover .portfolio-overlay { opacity:1; }
.portfolio-cat { display:inline-block; align-self:flex-start; font-size:0.72rem; font-weight:600; letter-spacing:1px; text-transform:uppercase; color:var(--navy); background:var(--orange); padding:4px 12px; border-radius:50px; margin-bottom:0.6rem; }
.portfolio-title { font-family:var(--font-head); font-weight:600; font-size:1.15rem; color:#fff; }
.portfolio-cta { text-align:center; }
.portfolio-cta p { font-size:1.1rem; color:var(--navy); font-weight:500; margin-bottom:1.25rem; }

/* LIGHTBOX */
.lightbox { display:none; position:fixed; inset:0; z-index:2000; background:rgba(15,23,42,0.95); align-items:center; justify-content:center; padding:5%; cursor:pointer; }
.lightbox.open { display:flex; animation:fadeIn .25s ease; }
.lightbox-close { position:absolute; top:24px; right:32px; color:#fff; font-size:2rem; cursor:pointer; opacity:0.8; transition:opacity .2s; }
.lightbox-close:hover { opacity:1; }
.lightbox-content { max-width:900px; text-align:center; }
.lightbox-content img { max-width:100%; max-height:80vh; border-radius:var(--radius); box-shadow:var(--shadow-lg); }
.lightbox-content p { color:#fff; font-family:var(--font-head); font-weight:500; font-size:1.1rem; margin-top:1rem; }
.gallery-counter { display:none; margin-top:0.5rem; color:#cbd5e1; font-family:var(--font-body); font-size:0.9rem; font-weight:500; letter-spacing:1px; }
.gallery-nav { position:absolute; top:50%; transform:translateY(-50%); z-index:2; width:54px; height:54px; border:none; border-radius:50%; background:rgba(255,255,255,0.14); color:#fff; font-size:2.2rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s,transform .15s; }
.gallery-nav:hover { background:var(--orange); }
.gallery-nav:active { transform:translateY(-50%) scale(0.92); }
.gallery-prev { left:24px; }
.gallery-next { right:24px; }
.portfolio-multi { position:absolute; top:12px; right:12px; z-index:2; background:rgba(15,23,42,0.72); color:#fff; font-family:var(--font-body); font-size:0.72rem; font-weight:600; letter-spacing:0.3px; padding:5px 10px; border-radius:50px; backdrop-filter:blur(4px); pointer-events:none; }
.portfolio-item.no-img .portfolio-multi { display:none; }

/* WHY US */
#whyus { padding:100px 5%; background:var(--navy); }
.whyus-grid { max-width:1180px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.why-item { background:var(--navy-light); border:1px solid var(--navy-soft); border-radius:var(--radius-lg); padding:2.25rem 2rem; transition:transform .25s,border-color .25s; }
.why-item:hover { transform:translateY(-6px); border-color:var(--orange); }
.why-icon { font-size:2rem; width:64px; height:64px; display:flex; align-items:center; justify-content:center; background:rgba(249,115,22,0.15); border-radius:var(--radius); margin-bottom:1.25rem; }
.why-item h3 { font-family:var(--font-head); font-weight:600; font-size:1.2rem; color:#fff; margin-bottom:0.6rem; }
.why-item p { font-size:0.94rem; color:#cbd5e1; line-height:1.65; }

/* TESTIMONIALS */
#testimonials { padding:100px 5%; background:var(--gray-bg); }
.testimonials-grid { max-width:1280px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.testimonial-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius-lg); padding:2.25rem; box-shadow:var(--shadow-sm); transition:transform .25s,box-shadow .25s; }
.testimonial-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.testimonial-card.featured { background:var(--navy); border-color:var(--navy); }
.testimonial-card.featured p { color:#e2e8f0; }
.testimonial-card.featured .reviewer strong { color:#fff; }
.testimonial-card.featured .reviewer span { color:#94a3b8; }
.stars { color:var(--orange); font-size:1.1rem; letter-spacing:2px; margin-bottom:1.25rem; }
.testimonial-card p { font-size:0.98rem; color:var(--text); line-height:1.75; margin-bottom:1.75rem; }
.reviewer { display:flex; align-items:center; gap:13px; }
.reviewer-init { width:46px; height:46px; background:var(--orange); border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:var(--font-head); font-weight:700; font-size:0.9rem; color:#fff; flex-shrink:0; }
.reviewer strong { display:block; font-family:var(--font-head); font-weight:600; font-size:1rem; color:var(--navy); }
.reviewer span { font-size:0.85rem; color:var(--text-light); }

/* FAQ */
#faq { padding:100px 5%; background:var(--white); }
.faq-wrap { max-width:820px; margin:0 auto; }
.faq-list { margin-top:1rem; }
.faq-item { border:1px solid var(--border); border-radius:var(--radius); margin-bottom:0.85rem; overflow:hidden; transition:box-shadow .2s,border-color .2s; }
.faq-item:hover { box-shadow:var(--shadow-sm); }
.faq-q { width:100%; background:var(--white); border:none; color:var(--navy); font-family:var(--font-head); font-weight:600; font-size:1.05rem; text-align:left; padding:1.3rem 1.5rem; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:1rem; transition:color .2s; }
.faq-q:hover { color:var(--orange); }
.faq-arrow { flex-shrink:0; width:28px; height:28px; display:flex; align-items:center; justify-content:center; background:var(--orange-soft); color:var(--orange); border-radius:50%; font-size:1.2rem; font-weight:400; transition:transform .3s,background .3s; }
.faq-q.open { color:var(--orange); }
.faq-q.open .faq-arrow { transform:rotate(45deg); background:var(--orange); color:#fff; }
.faq-a { max-height:0; overflow:hidden; transition:max-height .4s ease; }
.faq-a p { padding:0 1.5rem 1.4rem; color:var(--text-light); font-size:0.96rem; line-height:1.7; margin:0; }
.faq-a.open { max-height:240px; }

/* CONTACT */
#contact { padding:100px 5%; background:var(--gray-bg); }
.contact-inner { max-width:1280px; margin:0 auto; display:grid; grid-template-columns:0.85fr 1.15fr; gap:4rem; align-items:start; }
.contact-info p { color:var(--text-light); font-size:1.05rem; margin-bottom:2.25rem; }
.contact-details { display:flex; flex-direction:column; gap:1.25rem; }
.contact-detail-item { display:flex; align-items:center; gap:14px; text-decoration:none; padding:1rem 1.25rem; background:var(--white); border:1px solid var(--border); border-radius:var(--radius); transition:transform .15s,box-shadow .15s; }
.contact-detail-item:hover { transform:translateX(4px); box-shadow:var(--shadow); }
.cd-icon { font-size:1.3rem; width:48px; height:48px; display:flex; align-items:center; justify-content:center; background:var(--orange-soft); border-radius:var(--radius); flex-shrink:0; }
.contact-detail-item strong { display:block; font-family:var(--font-head); font-weight:600; font-size:1rem; color:var(--navy); }
.contact-detail-item span { font-size:0.86rem; color:var(--text-light); }

/* FORM */
.form-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius-lg); padding:2.5rem; box-shadow:var(--shadow); }
.form-card h3 { font-family:var(--font-head); font-weight:700; font-size:1.4rem; color:var(--navy); margin-bottom:1.75rem; }
.form-group { margin-bottom:1.35rem; }
.form-group label { display:block; font-family:var(--font-body); font-weight:600; font-size:0.85rem; color:var(--navy); margin-bottom:0.5rem; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
input[type="text"],input[type="email"],input[type="tel"],input[type="date"],textarea {
  width:100%; background:var(--gray-bg); border:1.5px solid var(--border); border-radius:var(--radius);
  padding:12px 15px; color:var(--navy); font-family:var(--font-body); font-size:0.95rem;
  outline:none; transition:border-color .2s,background .2s;
}
input:focus,textarea:focus { border-color:var(--orange); background:#fff; }
input::placeholder,textarea::placeholder { color:#94a3b8; }
textarea { resize:vertical; min-height:90px; }
.checkbox-grid { display:grid; grid-template-columns:1fr 1fr; gap:0.65rem 1rem; }
.cb-label { display:flex; align-items:center; gap:8px; font-size:0.92rem; color:var(--text); cursor:pointer; }
.cb-label input[type="checkbox"] { width:17px; height:17px; accent-color:var(--orange); cursor:pointer; }
.detect-btn { margin-top:0.65rem; width:100%; background:var(--orange-soft); border:1.5px solid #fed7aa; color:var(--orange-dark); font-family:var(--font-body); font-weight:600; font-size:0.88rem; padding:9px 16px; border-radius:var(--radius); cursor:pointer; transition:background .2s; }
.detect-btn:hover { background:#fed7aa; }
.form-error { color:#dc2626; font-size:0.88rem; margin-top:0.75rem; text-align:center; display:none; background:#fef2f2; padding:0.75rem; border-radius:var(--radius); }
.hp-field { position:absolute; left:-9999px; top:-9999px; width:1px; height:1px; opacity:0; pointer-events:none; }

/* AI STEP */
.ai-card { min-height:220px; }
.ai-header { display:flex; align-items:center; gap:13px; padding-bottom:1.25rem; border-bottom:1px solid var(--border); margin-bottom:1.5rem; }
.ai-avatar { width:46px; height:46px; background:var(--navy); border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:var(--font-head); font-weight:700; font-size:0.85rem; color:#fff; flex-shrink:0; }
.ai-header strong { display:block; font-family:var(--font-head); font-weight:600; color:var(--navy); font-size:1rem; }
.ai-status { font-size:0.82rem; color:#16a34a; font-weight:500; }
.ai-bubble { font-size:0.98rem; color:var(--text); line-height:1.8; }
.ai-typing { display:flex; gap:5px; margin-top:1rem; }
.ai-typing span { width:9px; height:9px; background:var(--orange); border-radius:50%; animation:bounce 1.2s ease-in-out infinite; opacity:.7; }
.ai-typing span:nth-child(2){animation-delay:.2s}.ai-typing span:nth-child(3){animation-delay:.4s}

/* CALENDAR */
.cal-sub { color:var(--text-light); font-size:0.95rem; margin-bottom:1.5rem; }
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:5px; margin-bottom:1.5rem; }
.cal-month { font-family:var(--font-head); font-weight:600; font-size:1rem; color:var(--navy); grid-column:1/-1; padding:4px 0 10px; text-align:center; }
.cal-header-cell { text-align:center; font-family:var(--font-body); font-weight:600; font-size:0.72rem; text-transform:uppercase; color:var(--text-light); padding:6px 0; }
.cal-day { text-align:center; padding:10px 3px; border-radius:8px; cursor:pointer; font-size:0.9rem; font-weight:500; color:var(--navy); transition:background .15s,color .15s; }
.cal-day:hover:not(.disabled):not(.empty) { background:var(--orange-soft); color:var(--orange-dark); }
.cal-day.selected { background:var(--orange); color:#fff; }
.cal-day.disabled,.cal-day.empty { color:#cbd5e1; cursor:default; }
.time-slots { margin-top:1.5rem; }
.time-slots h4 { font-family:var(--font-head); font-weight:600; font-size:1rem; color:var(--navy); margin-bottom:1rem; }
.slots-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:9px; }
.slot-btn { background:var(--gray-bg); border:1.5px solid var(--border); border-radius:var(--radius); color:var(--navy); font-family:var(--font-body); font-weight:500; font-size:0.88rem; padding:11px 6px; cursor:pointer; transition:all .15s; }
.slot-btn:hover { border-color:var(--orange); color:var(--orange); background:#fff; }
.booking-confirm { text-align:center; padding:2rem 0; }
.confirm-icon { width:68px; height:68px; background:#dcfce7; border:3px solid #16a34a; border-radius:50%; font-size:2rem; color:#16a34a; display:flex; align-items:center; justify-content:center; margin:0 auto 1.5rem; font-weight:700; }
.booking-confirm h3 { font-family:var(--font-head); font-weight:700; font-size:1.6rem; color:var(--navy); margin-bottom:0.75rem; }
.booking-confirm p { color:var(--text-light); font-size:0.95rem; margin-bottom:0.5rem; }
#confirmDetails { color:var(--orange); font-weight:600; font-size:1.05rem; }

/* FOOTER */
footer { background:var(--navy); color:#cbd5e1; padding:4rem 5% 0; }
.footer-main { max-width:1280px; margin:0 auto; display:grid; grid-template-columns:1.6fr 1fr 1fr 1.3fr; gap:3rem; padding-bottom:3rem; }
.footer-logo { font-family:var(--font-head); font-weight:800; font-size:1.6rem; color:#fff; margin-bottom:1rem; }
.footer-logo span { color:var(--orange); }
.footer-tagline { font-size:0.92rem; color:#94a3b8; line-height:1.7; margin-bottom:1.25rem; max-width:300px; }
.footer-stars { color:var(--orange); font-size:0.95rem; letter-spacing:1px; }
.footer-stars span { color:#94a3b8; font-size:0.82rem; letter-spacing:0; margin-left:6px; }
.footer-col h4 { font-family:var(--font-head); font-weight:600; font-size:1rem; color:#fff; margin-bottom:1.25rem; }
.footer-col a { display:block; color:#94a3b8; text-decoration:none; font-size:0.92rem; padding:6px 0; transition:color .2s; }
.footer-col a:hover { color:var(--orange); }
.footer-text { display:block; color:#94a3b8; font-size:0.92rem; padding:6px 0; }
.footer-cta { color:var(--orange)!important; font-weight:600; margin-top:0.5rem; }
.footer-bottom { max-width:1280px; margin:0 auto; border-top:1px solid var(--navy-light); padding:1.5rem 0; text-align:center; font-size:0.85rem; color:#64748b; }
.footer-bottom p { margin:0; }
.footer-bottom span { color:var(--orange); font-weight:600; }

/* CHAT WIDGET */
#chatWidget { position:fixed; bottom:96px; right:24px; z-index:999; }
#chatBox { width:340px; background:#fff; border:1px solid var(--border); border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); overflow:hidden; margin-bottom:14px; animation:fadeUp .3s ease; }
.chat-header { background:var(--navy); padding:16px 18px; display:flex; align-items:center; gap:11px; }
.chat-avatar { width:40px; height:40px; background:var(--orange); border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:var(--font-head); font-weight:700; font-size:0.82rem; color:#fff; flex-shrink:0; }
.chat-header strong { display:block; font-family:var(--font-head); font-weight:600; font-size:0.95rem; color:#fff; }
.chat-online { font-size:0.75rem; color:#4ade80; }
.chat-close { margin-left:auto; background:none; border:none; color:#94a3b8; cursor:pointer; font-size:1.1rem; padding:4px; transition:color .2s; }
.chat-close:hover { color:#fff; }
.chat-messages { height:300px; overflow-y:auto; padding:18px; display:flex; flex-direction:column; gap:12px; background:var(--gray-bg); }
.chat-msg { display:flex; }
.chat-msg.bot { justify-content:flex-start; }
.chat-msg.user { justify-content:flex-end; }
.msg-bubble { max-width:82%; padding:11px 15px; border-radius:14px; font-size:0.9rem; line-height:1.55; }
.chat-msg.bot .msg-bubble { background:#fff; border:1px solid var(--border); color:var(--text); border-bottom-left-radius:4px; }
.chat-msg.user .msg-bubble { background:var(--orange); color:#fff; font-weight:500; border-bottom-right-radius:4px; }
.chat-typing .msg-bubble { display:flex; gap:4px; align-items:center; padding:13px 15px; }
.chat-typing span { width:7px; height:7px; background:#94a3b8; border-radius:50%; animation:bounce 1.2s ease-in-out infinite; }
.chat-typing span:nth-child(2){animation-delay:.2s}.chat-typing span:nth-child(3){animation-delay:.4s}
.chat-input-wrap { display:flex; border-top:1px solid var(--border); background:#fff; }
#chatInput { flex:1; background:#fff; border:none; padding:14px 16px; color:var(--navy); font-size:0.92rem; font-family:var(--font-body); outline:none; }
#chatInput::placeholder { color:#94a3b8; }
.chat-input-wrap button { background:var(--orange); border:none; color:#fff; font-size:1.2rem; font-weight:700; padding:0 20px; cursor:pointer; transition:background .2s; }
.chat-input-wrap button:hover { background:var(--orange-dark); }
.chat-fab { width:58px; height:58px; background:var(--orange); border:none; border-radius:50%; font-size:1.5rem; cursor:pointer; box-shadow:var(--shadow-orange); transition:transform .2s,background .2s; position:relative; display:flex; align-items:center; justify-content:center; }
.chat-fab:hover { transform:scale(1.08); background:var(--orange-dark); }
.chat-badge { position:absolute; top:-3px; right:-3px; background:#dc2626; color:#fff; border-radius:50%; width:20px; height:20px; font-size:0.7rem; font-weight:700; display:flex; align-items:center; justify-content:center; border:2px solid #fff; }
.chat-badge.hidden { display:none; }

/* WHATSAPP */
.whatsapp-btn { position:fixed; bottom:24px; right:24px; z-index:999; width:58px; height:58px; background:#25d366; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; box-shadow:0 8px 24px rgba(37,211,102,.35); transition:transform .2s,background .2s; }
.whatsapp-btn:hover { transform:scale(1.08); background:#20ba5a; }
.whatsapp-btn svg { width:30px; height:30px; }

/* ANIMATIONS */
@keyframes fadeUp { from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)} }
@keyframes fadeIn { from{opacity:0}to{opacity:1} }
@keyframes bounce { 0%,80%,100%{transform:translateY(0);opacity:.7}40%{transform:translateY(-7px);opacity:1} }

/* RESPONSIVE */
@media(max-width:1024px){
  .services-grid{grid-template-columns:repeat(2,1fr)}
  .whyus-grid,.testimonials-grid{grid-template-columns:repeat(2,1fr)}
  .portfolio-grid{grid-template-columns:repeat(2,1fr)}
  .footer-main{grid-template-columns:1fr 1fr}
}
@media(max-width:900px){
  .nav-links{display:none}
  .hamburger{display:flex}
  .hero-inner{grid-template-columns:1fr;gap:5rem}
  .about-inner,.contact-inner{grid-template-columns:1fr;gap:3.5rem}
  .stats-band-inner{flex-wrap:wrap;gap:1.5rem}
  .sb-item{flex:0 0 40%}
  .sb-divider{display:none}
  .topbar-left{display:none}
  .topbar-inner{justify-content:center}
}
@media(max-width:600px){
  .form-row{grid-template-columns:1fr}
  .checkbox-grid{grid-template-columns:1fr}
  .slots-grid{grid-template-columns:repeat(2,1fr)}
  .services-grid,.whyus-grid,.testimonials-grid,.portfolio-grid{grid-template-columns:1fr}
  .footer-main{grid-template-columns:1fr;gap:2rem}
  .hero-trust{gap:1rem}
  .topbar-right{flex-direction:column;gap:2px;font-size:0.75rem}
  #chatBox{width:calc(100vw - 24px)}
  #chatWidget{right:12px;bottom:88px}
  .hero-stat-card{left:0}
  .gallery-nav{width:42px;height:42px;font-size:1.7rem}
  .gallery-prev{left:6px}
  .gallery-next{right:6px}
}
