/* =========================================================
   LUMORA 1.0.0
   Generic Bootstrap 5 theme for Web Profile CMS.
   Visual direction adapted from FlexStart (BootstrapMade),
   integrated against the Web Profile CMS theme contract.
   ========================================================= */

:root {
  --l-primary: #4154f1;
  --l-primary-dark: #2437cf;
  --l-primary-soft: #eef1ff;
  --l-secondary: #6f42c1;
  --l-heading: #012970;
  --l-body: #444444;
  --l-muted: #6b7280;
  --l-border: #e7e9f2;
  --l-surface: #ffffff;
  --l-soft: #f6f9ff;
  --l-success: #00a76f;
  --l-warning: #f68c09;
  --l-danger: #e9222c;
  --l-shadow-sm: 0 4px 18px rgba(1, 41, 112, 0.06);
  --l-shadow-md: 0 14px 40px rgba(1, 41, 112, 0.10);
  --l-shadow-lg: 0 24px 70px rgba(1, 41, 112, 0.15);
  --l-radius-sm: 12px;
  --l-radius: 18px;
  --l-radius-lg: 28px;
  --l-font: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --bs-primary: #4154f1;
  --bs-primary-rgb: 65, 84, 241;
  --bs-body-font-family: var(--l-font);
  --bs-body-color: var(--l-body);
  --bs-body-bg: #fff;
}

html { scroll-behavior: smooth; }
body {
  font-family: var(--l-font);
  color: var(--l-body);
  background: var(--l-surface);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body::selection { background: rgba(65,84,241,.16); color: var(--l-heading); }
a { color: var(--l-primary); transition: .2s ease; }
a:hover { color: var(--l-primary-dark); }
h1,h2,h3,h4,h5,h6 { color: var(--l-heading); font-weight: 700; letter-spacing: -.025em; }
p { line-height: 1.75; }
img { max-width: 100%; }
.text-primary-custom { color: var(--l-primary) !important; }
.text-slate { color: var(--l-muted) !important; }
.text-navy { color: var(--l-heading) !important; }
.bg-soft { background: var(--l-soft) !important; }
.lumora-letterspace { letter-spacing: .14em; }

.section { padding: 96px 0; }
.section-header { margin-bottom: 48px; }
.section-title { font-size: clamp(2rem, 4vw, 3rem); line-height: 1.12; margin-bottom: 16px; }
.section-subtitle { color: var(--l-muted); font-size: 1.08rem; line-height: 1.75; max-width: 680px; }
.eyebrow, .hero-kicker {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 7px 14px; border-radius: 999px;
  color: var(--l-primary); background: var(--l-primary-soft);
  font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
  margin-bottom: 16px;
}
.eyebrow::before { content:""; width:7px; height:7px; border-radius:50%; background:var(--l-primary); box-shadow:0 0 0 5px rgba(65,84,241,.10); }

/* Header */
.lumora-header { z-index: 1030; padding: 16px 0; transition: .3s ease; }
.lumora-header.scrolled { padding: 9px 0; background: rgba(255,255,255,.93); backdrop-filter: blur(14px); box-shadow: var(--l-shadow-sm); border-bottom: 1px solid rgba(231,233,242,.7); }
.navbar-lumora { min-height: 64px; padding: 0; }
.navbar-brand-custom { color: var(--l-heading) !important; font-size: 1.42rem; font-weight: 800; letter-spacing: -.04em; text-decoration: none; }
.lumora-brand-logo { max-height: 44px; width:auto; object-fit:contain; }
.lumora-footer-logo { max-height: 46px; max-width: 190px; object-fit:contain; }
.lumora-brand-mark { width:34px; height:34px; border-radius: 11px 14px 11px 14px; background: linear-gradient(135deg,var(--l-primary),#8b5cf6); box-shadow:0 10px 24px rgba(65,84,241,.25); position:relative; transform:rotate(-5deg); }
.lumora-brand-mark::after { content:""; position:absolute; inset:9px; border:2px solid #fff; border-radius:50%; }
.lumora-brand-text { color:var(--l-heading); }
.navbar-lumora .nav-link { color:#183153; font-size:.94rem; font-weight:650; padding:.72rem .86rem !important; border-radius:10px; }
.navbar-lumora .nav-link:hover, .navbar-lumora .nav-link.active { color:var(--l-primary); background:rgba(65,84,241,.07); }
.navbar-lumora .dropdown-menu { border-radius:16px; padding:10px; min-width:220px; border:1px solid rgba(231,233,242,.75)!important; }
.navbar-lumora .dropdown-item { border-radius:10px; padding:.65rem .8rem; font-weight:600; color:#334155; }
.navbar-lumora .dropdown-item:hover { color:var(--l-primary); background:var(--l-primary-soft); }
.lumora-nav-cta { white-space: nowrap; }
.navbar-toggler-custom { width:44px; height:44px; padding:0; border:0; border-radius:12px; background:var(--l-primary-soft); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; box-shadow:none!important; }
.navbar-toggler-custom .bar { width:20px; height:2px; border-radius:2px; background:var(--l-heading); transition:.25s ease; }
.navbar-toggler-custom.active .bar:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.navbar-toggler-custom.active .bar:nth-child(2){ opacity:0; }
.navbar-toggler-custom.active .bar:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

/* Buttons */
.btn { border-radius: 10px; font-weight: 700; padding: .78rem 1.45rem; border-width:1px; transition:.22s ease; }
.btn-primary { background:var(--l-primary); border-color:var(--l-primary); box-shadow:0 10px 24px rgba(65,84,241,.22); }
.btn-primary:hover { background:var(--l-primary-dark); border-color:var(--l-primary-dark); transform:translateY(-2px); box-shadow:0 15px 30px rgba(65,84,241,.28); }
.btn-light-custom { background:#fff; color:var(--l-heading); border:1px solid var(--l-border); box-shadow:var(--l-shadow-sm); }
.btn-light-custom:hover { color:var(--l-primary); border-color:#cfd5ff; transform:translateY(-2px); }
.btn-white { background:#fff; color:var(--l-primary); border-color:#fff; box-shadow:0 12px 30px rgba(0,0,0,.10); }
.btn-white:hover { color:var(--l-heading); background:#f8faff; border-color:#f8faff; transform:translateY(-2px); }
.btn-lg-custom { padding: .98rem 1.75rem; font-size:1rem; }
.btn-sm-custom { padding:.58rem 1rem; font-size:.88rem; }

/* Hero */
.hero { min-height: 760px; display:flex; align-items:center; padding: 150px 0 85px; position:relative; overflow:hidden; background:linear-gradient(120deg,#fff 0%,#f8f9ff 55%,#eef3ff 100%); }
.hero::before { content:""; position:absolute; inset:0; background-image:radial-gradient(rgba(65,84,241,.11) 1px, transparent 1px); background-size:28px 28px; mask-image:linear-gradient(to right,#000,transparent 70%); opacity:.45; pointer-events:none; }
.hero-orb, .page-header-orb { position:absolute; border-radius:50%; filter:blur(2px); pointer-events:none; }
.hero-orb-one { width:420px; height:420px; right:-180px; top:55px; background:radial-gradient(circle,rgba(111,66,193,.18),rgba(111,66,193,0) 68%); }
.hero-orb-two { width:320px; height:320px; left:-180px; bottom:-70px; background:radial-gradient(circle,rgba(65,84,241,.16),rgba(65,84,241,0) 70%); }
.hero-content { position:relative; z-index:2; }
.hero h1 { font-size:clamp(2.8rem,6vw,4.8rem); line-height:1.04; font-weight:800; letter-spacing:-.055em; }
.lumora-hero-copy { color:#52627a; max-width:620px; }
.hero-visual { position:relative; z-index:2; }
.lumora-hero-image { width:100%; max-height:560px; object-fit:contain; filter:drop-shadow(0 30px 45px rgba(1,41,112,.13)); }
.lumora-hero-illustration { min-height:480px; position:relative; display:flex; align-items:center; justify-content:center; }
.lumora-browser-card { width:min(100%,560px); background:#fff; border:1px solid rgba(65,84,241,.14); border-radius:26px; box-shadow:var(--l-shadow-lg); overflow:hidden; transform:rotate(1.2deg); }
.lumora-browser-top { height:56px; display:flex; align-items:center; gap:8px; padding:0 20px; border-bottom:1px solid var(--l-border); background:#fbfcff; }
.lumora-browser-top span { width:10px; height:10px; border-radius:50%; background:#d7dcf3; }
.lumora-browser-top span:first-child{background:#ff7a90}.lumora-browser-top span:nth-child(2){background:#ffc85e}.lumora-browser-top span:nth-child(3){background:#62d8a6}
.lumora-browser-top div { height:13px; width:42%; border-radius:999px; background:#eef1f7; margin-left:auto; }
.lumora-browser-body { min-height:330px; padding:36px; display:grid; grid-template-columns:1.05fr .95fr; gap:28px; align-items:center; }
.lumora-browser-copy span { display:block; width:84px; height:14px; border-radius:999px; background:#dfe4ff; margin-bottom:18px; }
.lumora-browser-copy strong { display:block; width:94%; height:54px; border-radius:12px; background:linear-gradient(90deg,#0b2f6a,#4154f1); margin-bottom:18px; }
.lumora-browser-copy em { display:block; width:100%; height:10px; border-radius:10px; background:#edf0f6; margin:10px 0; }
.lumora-browser-copy em:nth-of-type(2){width:72%}
.lumora-browser-copy button { width:112px; height:38px; border:0; border-radius:9px; background:var(--l-primary); margin-top:18px; }
.lumora-browser-art { position:relative; aspect-ratio:1; border-radius:50% 40% 55% 45%; background:linear-gradient(145deg,#dfe5ff,#f6e8ff); }
.lumora-browser-art div { position:absolute; width:58%; height:58%; border-radius:24px; background:linear-gradient(145deg,var(--l-primary),#845ef7); left:20%; top:19%; transform:rotate(-8deg); box-shadow:0 22px 30px rgba(65,84,241,.25); }
.lumora-browser-art span { position:absolute; border-radius:50%; border:7px solid rgba(255,255,255,.9); width:58px; height:58px; right:-8px; top:40px; }
.lumora-browser-art span:last-child { width:34px; height:34px; left:-8px; right:auto; top:auto; bottom:42px; border-width:5px; }
.lumora-floating-card { position:absolute; display:flex; gap:9px; align-items:center; padding:12px 16px; background:#fff; border:1px solid rgba(231,233,242,.9); border-radius:14px; box-shadow:var(--l-shadow-md); color:var(--l-heading); font-weight:700; }
.lumora-floating-card i { color:var(--l-primary); font-size:1.2rem; }
.lumora-floating-card-one { left:-10px; bottom:68px; }
.lumora-floating-card-two { right:-5px; top:64px; }
.lumora-hero-carousel .carousel-item { transition:opacity .6s ease-in-out; }
.lumora-carousel-indicators { bottom:22px; }
.lumora-carousel-indicators [data-bs-target] { width:9px; height:9px; border-radius:50%; background-color:var(--l-primary); border:0; margin:0 5px; }
.lumora-carousel-control { width:48px; height:48px; top:50%; transform:translateY(-50%); border-radius:50%; background:rgba(1,41,112,.54); opacity:.75; margin:0 18px; }

/* Logo cloud */
.client-strip { background:#fff; border-top:1px solid #f0f2f7; border-bottom:1px solid #f0f2f7; }
.logo-cloud-item { min-height:58px; display:flex; align-items:center; justify-content:center; padding:9px 14px; color:#7b8799; font-weight:700; filter:grayscale(1); opacity:.72; transition:.25s ease; }
.logo-cloud-item:hover { filter:grayscale(0); opacity:1; transform:translateY(-2px); }
.lumora-client-logo { max-width:138px; max-height:48px; object-fit:contain; }
.lumora-client-logo-large { max-width:170px; max-height:70px; }

/* Cards */
.card-premium, .service-card, .contact-info-card, .testimonial-card, .widget, .blog-card { background:#fff; border:1px solid var(--l-border); border-radius:var(--l-radius); box-shadow:var(--l-shadow-sm); }
.card-premium, .service-card, .contact-info-card, .testimonial-card, .widget { padding:30px; }
.card-premium, .service-card, .blog-card { display:flex; flex-direction:column; transition:.25s ease; }
.card-premium:hover, .service-card:hover, .blog-card:hover { transform:translateY(-7px); box-shadow:var(--l-shadow-md); border-color:#d9ddff; }
.card-title { color:var(--l-heading); font-weight:750; }
.card-link-arrow { display:inline-flex; align-items:center; gap:7px; color:var(--l-primary); text-decoration:none; font-weight:750; }
.card-link-arrow i { transition:.2s ease; }
.card-link-arrow:hover i { transform:translate(3px,-2px); }
.service-card { position:relative; overflow:hidden; min-height:100%; }
.service-card::before { content:""; position:absolute; width:120px; height:120px; border-radius:50%; right:-68px; top:-70px; background:var(--l-primary-soft); transition:.3s ease; }
.service-card:hover::before { transform:scale(1.8); }
.service-card-number { position:absolute; top:21px; right:23px; color:#d8defe; font-weight:800; font-size:1rem; z-index:1; }
.icon-box { width:58px; height:58px; border-radius:16px; display:inline-flex; align-items:center; justify-content:center; font-size:1.45rem; }
.icon-box-primary { color:var(--l-primary); background:#eef1ff; }
.icon-box-secondary { color:#a22ee9; background:#f8ebff; }
.icon-box-success { color:#00a76f; background:#e6fff6; }
.icon-box-white { color:#fff; background:rgba(255,255,255,.14); }
.lumora-card-thumb { width:100%; height:210px; object-fit:cover; border-radius:14px; }

/* About */
.about-image-wrap { position:relative; padding:0 18px 20px 0; }
.about-image-wrap::before { content:""; position:absolute; width:76%; height:76%; border-radius:36px; left:-24px; top:-24px; background:linear-gradient(145deg,#e8ecff,#f9edff); z-index:0; }
.lumora-about-image { height:460px; object-fit:cover; border-radius:28px; position:relative; z-index:2; box-shadow:var(--l-shadow-md); }
.about-image-accent { position:absolute; width:100px; height:100px; border:18px solid rgba(65,84,241,.12); border-radius:50%; right:-8px; bottom:-5px; z-index:3; }
.lumora-value-list { display:flex; flex-wrap:wrap; gap:11px 18px; }
.lumora-value-list span { display:inline-flex; align-items:center; gap:7px; color:#35445a; font-weight:650; }
.lumora-value-list i { color:var(--l-primary); }

/* Portfolio */
.portfolio-card { position:relative; overflow:hidden; border-radius:20px; min-height:320px; background:linear-gradient(145deg,#e7ebff,#f7efff); box-shadow:var(--l-shadow-sm); }
.portfolio-card img, .lumora-project-placeholder { width:100%; height:350px; object-fit:cover; transition:.45s ease; }
.lumora-project-placeholder { background:linear-gradient(145deg,#dde4ff,#f5e9ff); position:relative; }
.lumora-project-placeholder::after { content:""; position:absolute; width:120px; height:120px; border-radius:32px; background:linear-gradient(145deg,var(--l-primary),#8854d8); left:50%; top:50%; transform:translate(-50%,-50%) rotate(-10deg); opacity:.55; }
.portfolio-overlay { position:absolute; inset:auto 16px 16px 16px; padding:18px 18px; border-radius:16px; background:rgba(255,255,255,.94); backdrop-filter:blur(12px); display:flex; align-items:center; justify-content:space-between; gap:12px; box-shadow:0 16px 30px rgba(1,41,112,.12); transform:translateY(8px); opacity:.96; transition:.3s ease; }
.portfolio-card:hover img { transform:scale(1.055); }
.portfolio-card:hover .portfolio-overlay { transform:translateY(0); }
.portfolio-overlay h5 { margin:2px 0 4px; font-size:1.08rem; }
.portfolio-overlay span { color:var(--l-muted); font-size:.86rem; }
.portfolio-kicker { color:var(--l-primary)!important; font-size:.72rem!important; text-transform:uppercase; font-weight:800; letter-spacing:.08em; }
.portfolio-arrow { width:42px; height:42px; border-radius:50%; background:var(--l-primary); color:#fff!important; display:flex; align-items:center; justify-content:center; flex:0 0 auto; }

/* Testimonials */
.lumora-testimonials-section { background:linear-gradient(180deg,#fff,#fbfcff); }
.testimonial-card { position:relative; }
.testimonial-stars { color:#ffc107; letter-spacing:2px; font-size:.85rem; }
.testimonial-author { display:flex; align-items:center; gap:13px; }
.testimonial-author img, .lumora-avatar-placeholder { width:52px; height:52px; border-radius:50%; object-fit:cover; }
.lumora-avatar-placeholder { display:flex; align-items:center; justify-content:center; background:var(--l-primary-soft); color:var(--l-primary); font-size:1.35rem; }
.testimonial-author .name { color:var(--l-heading); font-weight:750; }
.testimonial-author .role { color:var(--l-muted); font-size:.87rem; }

/* Blog */
.blog-card { overflow:hidden; padding:0; }
.blog-card-img { display:block; overflow:hidden; background:var(--l-primary-soft); }
.blog-card-img img { width:100%; height:230px; object-fit:cover; transition:.4s ease; }
.blog-card:hover .blog-card-img img { transform:scale(1.045); }
.blog-card-body { padding:26px; display:flex; flex-direction:column; flex:1; }
.blog-card-body .card-title a { color:var(--l-heading); text-decoration:none; }
.blog-card-body .card-title a:hover { color:var(--l-primary); }
.blog-meta { color:#8893a6; font-size:.85rem; font-weight:650; }

/* CTA */
.cta-section { position:relative; overflow:hidden; padding:58px; border-radius:var(--l-radius-lg); background:linear-gradient(120deg,#4154f1 0%,#5851db 48%,#7b4fd4 100%); color:#fff; box-shadow:0 24px 70px rgba(65,84,241,.25); }
.cta-section h2 { color:#fff; font-size:clamp(2rem,4vw,3rem); }
.cta-section p { color:rgba(255,255,255,.82); }
.cta-kicker { display:inline-block; font-size:.77rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:#dce0ff; margin-bottom:12px; }
.cta-orb { position:absolute; width:320px; height:320px; border-radius:50%; right:-110px; top:-150px; background:rgba(255,255,255,.10); box-shadow:0 0 0 55px rgba(255,255,255,.04); }

/* Page header */
.page-header { position:relative; overflow:hidden; padding:155px 0 72px; background:linear-gradient(135deg,#f8faff,#edf2ff); border-bottom:1px solid #edf0f7; }
.page-header h1 { font-size:clamp(2.4rem,5vw,4rem); line-height:1.08; margin:0; }
.page-header-orb-one { width:280px; height:280px; left:-120px; bottom:-140px; background:rgba(65,84,241,.10); }
.page-header-orb-two { width:230px; height:230px; right:-90px; top:40px; background:rgba(134,80,210,.09); }
.breadcrumb-custom { display:flex; align-items:center; gap:9px; color:var(--l-muted); font-size:.9rem; }
.breadcrumb-custom a { text-decoration:none; font-weight:700; }
.breadcrumb-custom .active { color:#607089; }
.breadcrumb-custom i { font-size:.68rem; }

/* Generic inner content */
.rounded-img { border-radius:22px; }
.lumora-detail-image, .lumora-project-hero, .lumora-article-hero { max-height:560px; object-fit:cover; box-shadow:var(--l-shadow-sm); }
.rich-content { color:#3f4b5f; font-size:1.03rem; line-height:1.85; }
.rich-content h1,.rich-content h2,.rich-content h3,.rich-content h4,.rich-content h5,.rich-content h6 { margin-top:1.7em; margin-bottom:.7em; }
.rich-content img { max-width:100%; height:auto; border-radius:16px; }
.rich-content blockquote { border-left:4px solid var(--l-primary); padding:16px 20px; background:var(--l-soft); border-radius:0 14px 14px 0; color:#40516b; }
.widget { position:sticky; top:110px; }
.widget-link-list { list-style:none; padding:0; }
.widget-link-list li { display:flex; justify-content:space-between; gap:18px; padding:13px 0; border-bottom:1px solid var(--l-border); color:var(--l-muted); }
.widget-link-list li:last-child { border-bottom:0; }
.widget-link-list span { text-align:right; color:var(--l-heading); font-weight:700; }
.lumora-team-photo { width:150px; height:150px; border-radius:50%; object-fit:cover; border:6px solid var(--l-primary-soft); }
.lumora-person-placeholder { display:flex; align-items:center; justify-content:center; background:linear-gradient(145deg,#edf1ff,#f7ecff); color:var(--l-primary); font-size:2.6rem; }
.lumora-gallery-media { min-height:250px; background:linear-gradient(145deg,#edf1ff,#f7ecff); overflow:hidden; }
.lumora-gallery-media img { width:100%; height:260px; object-fit:cover; transition:.35s ease; }
.lumora-gallery-media:hover img { transform:scale(1.04); }
.lumora-play { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:62px; height:62px; border-radius:50%; background:var(--l-primary); color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.9rem; box-shadow:0 12px 30px rgba(65,84,241,.32); }

/* FAQ */
.accordion-custom .accordion-item { border:1px solid var(--l-border); border-radius:14px!important; overflow:hidden; margin-bottom:14px; background:#fff; box-shadow:var(--l-shadow-sm); }
.accordion-custom .accordion-button { color:var(--l-heading); font-weight:750; padding:20px 22px; box-shadow:none; }
.accordion-custom .accordion-button:not(.collapsed) { color:var(--l-primary); background:var(--l-primary-soft); }
.accordion-custom .accordion-button:focus { box-shadow:none; }
.accordion-custom .accordion-body { padding:20px 22px; color:var(--l-muted); line-height:1.75; }

/* Contact */
.contact-info-card { transition:.25s ease; }
.contact-info-card:hover { transform:translateY(-5px); box-shadow:var(--l-shadow-md); }
.form-label { color:var(--l-heading); font-weight:700; font-size:.9rem; }
.form-control { border:1px solid #dfe3ec; border-radius:12px; padding:.85rem 1rem; min-height:50px; box-shadow:none!important; }
textarea.form-control { min-height:150px; }
.form-control:focus { border-color:#aeb8ff; box-shadow:0 0 0 4px rgba(65,84,241,.09)!important; }
.form-text { color:#8a96a8; }
.map-frame { min-height:220px; border-radius:20px; overflow:hidden; background:linear-gradient(145deg,#eef2ff,#f9eeff); }
.lumora-map-link a { min-height:220px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; color:var(--l-primary); font-weight:750; text-decoration:none; }
.lumora-hours-card { background:linear-gradient(135deg,#012970,#3347ad); color:#fff; border:0; }

/* Footer */
.footer-lumora { background:#f7f9ff; border-top:1px solid #edf0f6; color:#667085; position:relative; }
.lumora-footer-main { padding:76px 0 52px; }
.footer-lumora h6 { color:var(--l-heading); margin-bottom:18px; font-size:.92rem; text-transform:uppercase; letter-spacing:.07em; }
.lumora-footer-copy { color:#778397; max-width:360px; }
.footer-link { display:block; width:max-content; max-width:100%; margin-bottom:10px; text-decoration:none; color:#667085; }
.footer-link:hover { color:var(--l-primary); transform:translateX(2px); }
.social-icon { width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--l-primary); background:#fff; border:1px solid var(--l-border); font-size:.72rem; font-weight:800; text-decoration:none; box-shadow:var(--l-shadow-sm); }
.social-icon:hover { color:#fff; background:var(--l-primary); border-color:var(--l-primary); transform:translateY(-2px); }
.footer-bottom { padding:22px 0; border-top:1px solid #e7eaf3; font-size:.84rem; color:#8893a4; }
.back-to-top { position:fixed; right:22px; bottom:22px; width:44px; height:44px; border:0; border-radius:12px; background:var(--l-primary); color:#fff; box-shadow:0 12px 28px rgba(65,84,241,.28); display:flex; align-items:center; justify-content:center; font-size:1.35rem; opacity:0; visibility:hidden; transform:translateY(12px); transition:.25s ease; z-index:1020; }
.back-to-top.show { opacity:1; visibility:visible; transform:none; }

/* Pagination */
.pagination { gap:6px; }
.page-link { border:1px solid var(--l-border); border-radius:10px!important; color:var(--l-heading); min-width:40px; text-align:center; }
.page-link:hover, .active>.page-link { background:var(--l-primary); border-color:var(--l-primary); color:#fff; }

/* Reveal */
.reveal { opacity:0; transform:translateY(20px); transition:opacity .55s ease, transform .55s ease; }
.reveal.is-visible { opacity:1; transform:none; }

@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; }
}

@media (max-width:1199.98px) {
  .lumora-header { background:rgba(255,255,255,.96); box-shadow:var(--l-shadow-sm); padding:9px 0; }
  .navbar-collapse { max-height:calc(100vh - 88px); overflow-y:auto; padding:14px 2px 8px; }
  .navbar-lumora .nav-link { padding:.7rem .8rem!important; }
  .navbar-lumora .dropdown-menu { box-shadow:none!important; margin:0 0 8px 12px; background:#fafbff; }
}
@media (max-width:991.98px) {
  .section { padding:78px 0; }
  .hero { min-height:auto; padding:135px 0 72px; }
  .hero h1 { max-width:760px; margin-left:auto; margin-right:auto; }
  .lumora-hero-copy { margin-left:auto; margin-right:auto; }
  .lumora-hero-illustration { min-height:390px; }
  .cta-section { padding:46px 38px; }
  .widget { position:static; }
  .lumora-about-image { height:400px; }
}
@media (max-width:767.98px) {
  .section { padding:64px 0; }
  .section-header { margin-bottom:34px; }
  .hero { padding-top:120px; }
  .hero h1 { font-size:clamp(2.5rem,12vw,3.6rem); }
  .lumora-browser-body { padding:22px; gap:14px; min-height:260px; }
  .lumora-floating-card { font-size:.78rem; padding:9px 11px; }
  .lumora-floating-card-one { left:-4px; bottom:35px; }
  .lumora-floating-card-two { right:-2px; top:45px; }
  .lumora-carousel-control { display:none; }
  .page-header { padding:125px 0 56px; }
  .cta-section { padding:36px 26px; border-radius:22px; }
  .portfolio-card img,.lumora-project-placeholder { height:300px; }
  .lumora-about-image { height:340px; }
}
@media (max-width:575.98px) {
  .lumora-browser-card { border-radius:20px; }
  .lumora-browser-body { grid-template-columns:1fr; }
  .lumora-browser-art { display:none; }
  .lumora-hero-illustration { min-height:310px; }
  .card-premium,.service-card,.contact-info-card,.testimonial-card,.widget { padding:24px; }
}
