/* ==========================================================================
   SEO landing page theme (body.landing) – slate + gold, Manrope / Sora
   ========================================================================== */
body.landing {
  --lp-ink: #14181f; --lp-ink-2: #2a313d; --lp-muted: #6b7280; --lp-line: #e6e8ec;
  --lp-bg: #ffffff; --lp-alt: #f6f5f1; --lp-dark: #14181f; --lp-dark-2: #1d232d;
  --lp-gold: #c9a227; --lp-gold-2: #e3bb3c; --lp-gold-soft: #faf3dc;
  --lp-radius: 18px; --lp-font: 'Manrope', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; --lp-head: 'Sora', 'Manrope', Arial, sans-serif;
  font-family: var(--lp-font); color: var(--lp-ink); background: var(--lp-bg); font-size: 17px;
}
:where(body.landing) :is(h1, h2, h3) { font-family: var(--lp-head); color: var(--lp-ink); letter-spacing: -.015em; font-weight: 700; }
:where(body.landing) h2 { font-size: clamp(1.7rem, 3vw, 2.5rem); line-height: 1.15; }
:where(body.landing) h3 { font-size: 1.2rem; }
:where(body.landing) a { color: var(--lp-ink-2); }
body.landing .ico { background-color: currentColor; }
.lp-eyebrow { display: inline-flex; align-items: center; gap: 10px; font-size: .78rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--lp-gold); margin-bottom: 12px; }
.lp-eyebrow::before { content: ""; width: 26px; height: 2px; background: var(--lp-gold); }
.lp-muted { color: var(--lp-muted); }

.lp-topbar { background: var(--lp-dark); color: #cfd3da; font-size: .88rem; }
.lp-topbar .container { display: flex; justify-content: space-between; align-items: center; min-height: 36px; gap: 16px; }
.lp-topbar a { color: #fff; }
.lp-topbar .ico { color: var(--lp-gold); }

.lp-header { position: sticky; top: 0; z-index: 100; background: rgba(255,255,255,.92); backdrop-filter: blur(10px); border-bottom: 1px solid var(--lp-line); }
.lp-header .container { display: flex; align-items: center; gap: 28px; min-height: 80px; }
.lp-header .brand .brand-text { font-family: var(--lp-head); color: var(--lp-ink); }
.lp-header .brand .brand-text small { color: var(--lp-gold); }
.lp-nav { margin-left: auto; }
.lp-nav a { font-weight: 600; color: var(--lp-ink-2); }
.lp-nav a:hover { background: var(--lp-alt); color: var(--lp-ink); }
.lp-call { display: inline-flex; align-items: center; gap: 12px; background: var(--lp-dark); color: #fff !important; border-radius: 999px; padding: 8px 20px 8px 12px; text-decoration: none !important; transition: background .15s, transform .15s; }
.lp-call:hover { background: var(--lp-ink-2); transform: translateY(-1px); }
.lp-call .ico { width: 34px; height: 34px; margin: 0; background-color: var(--lp-gold); -webkit-mask-size: 55%; mask-size: 55%; border-radius: 50%; background-image: none; }
.lp-call .ico { -webkit-mask: none; mask: none; position: relative; background: var(--lp-gold); border-radius: 50%; }
.lp-call .ico::after { content: ""; position: absolute; inset: 8px; background: var(--lp-dark); -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25c1.1.37 2.3.57 3.6.57a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1L6.6 10.8z'/></svg>") center / contain no-repeat; mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25c1.1.37 2.3.57 3.6.57a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1L6.6 10.8z'/></svg>") center / contain no-repeat; }
.lp-call small { display: block; font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: #aab1bd; line-height: 1; }
.lp-call strong { font-family: var(--lp-head); font-size: 1.1rem; line-height: 1.2; }
body.landing .nav-toggle span { background: var(--lp-ink); }

/* buttons */
.lp-btn { display: inline-flex; align-items: center; justify-content: center; gap: .4em; font-family: var(--lp-font); font-weight: 800; font-size: 1rem; padding: 14px 24px; border-radius: 12px; text-decoration: none !important; border: 2px solid transparent; transition: transform .15s, box-shadow .15s, background .15s; white-space: nowrap; }
.lp-btn:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(0,0,0,.18); }
.lp-btn-gold { background: var(--lp-gold); color: var(--lp-dark); }
.lp-btn-gold:hover { background: var(--lp-gold-2); }
.lp-btn-ghost { background: rgba(255,255,255,.08); color: #fff; border-color: rgba(255,255,255,.35); }
.lp-btn-dark { background: var(--lp-dark); color: #fff; }
.lp-btn-lg { padding: 17px 30px; font-size: 1.1rem; }

/* hero */
.lp-hero { position: relative; background: var(--lp-dark); color: #fff; overflow: hidden; }
.lp-hero .hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0; transition: opacity .6s; }
.lp-hero .hero-bg.is-loaded { opacity: 1; }
.lp-hero-overlay { position: absolute; inset: 0; background: linear-gradient(100deg, rgba(20,24,31,.96) 0%, rgba(20,24,31,.86) 50%, rgba(20,24,31,.55) 100%); }
.lp-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--lp-gold), transparent); opacity: .6; }
.lp-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.15fr .85fr; gap: 56px; align-items: center; padding-top: 84px; padding-bottom: 84px; }
body.landing .lp-hero h1 { color: #fff; font-size: clamp(2.2rem, 4.4vw, 3.7rem); line-height: 1.08; margin-bottom: 18px; }
.lp-hero h1 em { font-style: normal; color: var(--lp-gold); }
.lp-lede { font-size: 1.12rem; color: #c9cfd8; max-width: 620px; margin-bottom: 28px; line-height: 1.7; }
.lp-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 26px; }
.lp-badges { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 10px 22px; color: #e3e6ea; font-size: .95rem; font-weight: 600; }
.lp-badges li { display: flex; align-items: center; }
.lp-badges .ico { color: var(--lp-gold); }
.lp-form-card { background: #fff; color: var(--lp-ink); border-radius: var(--lp-radius); padding: 30px; box-shadow: 0 30px 70px rgba(0,0,0,.35); border-top: 4px solid var(--lp-gold); }
.lp-form-card h2 { font-size: 1.55rem; margin: 8px 0 4px; }
.lp-form-card > p { color: var(--lp-muted); font-size: .95rem; margin-bottom: 16px; }
.lp-form-tag { display: inline-block; background: var(--lp-gold-soft); color: #8a6d0f; font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; padding: 5px 10px; border-radius: 6px; }
body.landing .form input, body.landing .form textarea { border-radius: 10px; border-color: var(--lp-line); }
body.landing .form input:focus, body.landing .form textarea:focus { border-color: var(--lp-gold); box-shadow: 0 0 0 3px rgba(201,162,39,.25); }
body.landing .form label { color: var(--lp-ink-2); }
body.landing .form .btn-primary { background: var(--lp-dark); color: #fff; border-radius: 12px; font-family: var(--lp-font); font-weight: 800; }
body.landing .form .btn-primary:hover { background: var(--lp-ink-2); }

/* stats */
.lp-stats { background: var(--lp-dark-2); color: #fff; border-bottom: 1px solid rgba(255,255,255,.06); }
.lp-stats .container { display: grid; grid-template-columns: repeat(3, 1fr); }
.lp-stat { padding: 26px 24px; text-align: center; border-left: 1px solid rgba(255,255,255,.08); }
.lp-stat:first-child { border-left: 0; }
.lp-stat strong { display: block; font-family: var(--lp-head); font-size: 2rem; color: var(--lp-gold); line-height: 1; margin-bottom: 6px; }
.lp-stat span { color: #aab1bd; font-size: .95rem; }

/* sections */
.lp-section { padding: 88px 0; }
.lp-section-alt { background: var(--lp-alt); }
.lp-section-dark { background: var(--lp-dark); color: #d6dae1; }
.lp-head { max-width: 720px; margin: 0 auto 48px; text-align: center; }
.lp-head .lp-eyebrow { justify-content: center; }
.lp-head .lp-eyebrow::after { content: ""; width: 26px; height: 2px; background: var(--lp-gold); }
.lp-head p { color: var(--lp-muted); font-size: 1.05rem; }
.lp-head-light h2 { color: #fff; }
.lp-head-light p { color: #aab1bd; }

.lp-services { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.lp-service { position: relative; background: #fff; border: 1px solid var(--lp-line); border-radius: var(--lp-radius); padding: 30px 28px 28px; overflow: hidden; transition: transform .2s, box-shadow .2s, border-color .2s; }
.lp-service:hover { transform: translateY(-4px); box-shadow: 0 24px 50px rgba(20,24,31,.1); border-color: var(--lp-gold); }
.lp-num { display: inline-block; font-family: var(--lp-head); font-weight: 700; color: var(--lp-gold); font-size: .95rem; letter-spacing: .1em; margin-bottom: 16px; }
.lp-service h3 { margin-bottom: 8px; }
.lp-service p { color: var(--lp-muted); margin: 0; font-size: .97rem; }
.lp-service::after { content: ""; position: absolute; right: -30px; top: -30px; width: 110px; height: 110px; border-radius: 50%; background: var(--lp-gold-soft); z-index: -0; opacity: 0; transition: opacity .2s; }
.lp-service:hover::after { opacity: 1; }
.lp-service > * { position: relative; z-index: 1; }

.lp-split { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.lp-split-media { position: relative; }
.lp-photo { margin: 0; border-radius: var(--lp-radius); overflow: hidden; box-shadow: 0 30px 60px rgba(20,24,31,.18); }
.lp-photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.lp-float { position: absolute; left: -18px; bottom: -22px; background: var(--lp-dark); color: #fff; border-radius: 14px; padding: 16px 20px; display: flex; gap: 12px; align-items: center; box-shadow: 0 20px 40px rgba(0,0,0,.25); }
.lp-float .ico { width: 28px; height: 28px; margin: 0; color: var(--lp-gold); }
.lp-float strong { display: block; font-family: var(--lp-head); font-size: 1.3rem; line-height: 1; }
.lp-float span { font-size: .85rem; color: #aab1bd; }
.lp-split-copy p { color: var(--lp-ink-2); line-height: 1.75; }
.lp-quote { margin: 22px 0 26px; padding: 18px 22px; border-left: 3px solid var(--lp-gold); background: #fff; border-radius: 0 12px 12px 0; font-style: italic; color: var(--lp-ink-2); }
.lp-section-alt .lp-quote { background: #fff; }

.lp-about { max-width: 860px; margin: 0 auto; columns: 2; column-gap: 48px; color: var(--lp-ink-2); line-height: 1.8; }
.lp-about p { break-inside: avoid; }
.lp-about p:first-child { font-size: 1.12rem; font-weight: 600; color: var(--lp-ink); column-span: all; margin-bottom: 1.4em; }

.lp-reasons { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.lp-reason { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.09); border-radius: var(--lp-radius); padding: 28px; }
.lp-reason-head { display: flex; align-items: center; gap: 14px; margin-bottom: 12px; }
.lp-reason-ico { width: 48px; height: 48px; border-radius: 12px; background: var(--lp-gold); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.lp-reason-ico .ico { width: 24px; height: 24px; margin: 0; color: var(--lp-dark); }
.lp-reason h3 { color: #fff; margin: 0; }
.lp-reason p { margin: 0; color: #c0c6cf; line-height: 1.7; }

.lp-two { display: grid; grid-template-columns: 1.05fr .95fr; gap: 64px; align-items: start; }
.lp-two h2 { margin-bottom: 8px; }
.lp-jobs { list-style: none; padding: 0; margin: 24px 0 0; position: relative; }
.lp-jobs::before { content: ""; position: absolute; left: 9px; top: 8px; bottom: 8px; width: 2px; background: var(--lp-line); }
.lp-job { position: relative; display: flex; gap: 20px; padding: 0 0 26px; }
.lp-job-dot { width: 20px; height: 20px; border-radius: 50%; background: #fff; border: 4px solid var(--lp-gold); flex-shrink: 0; position: relative; z-index: 1; margin-top: 2px; }
.lp-job h3 { font-size: 1.05rem; margin-bottom: 4px; }
.lp-job p { margin: 0; color: var(--lp-muted); font-size: .95rem; line-height: 1.6; }
.lp-areas { list-style: none; padding: 0; margin: 24px 0 22px; display: flex; flex-wrap: wrap; gap: 8px; }
.lp-areas li a { color: inherit; text-decoration: none; }
.lp-areas li:has(a):hover { background: var(--lp-dark); color: #fff; border-color: var(--lp-dark); }
.lp-more { padding-top: 0; }
.lp-more-links { justify-content: center; max-width: 1000px; margin: 0 auto; }
.lp-areas li { background: var(--lp-alt); border: 1px solid var(--lp-line); color: var(--lp-ink-2); font-weight: 600; font-size: .9rem; padding: 8px 14px; border-radius: 999px; }
.lp-map { border-radius: var(--lp-radius); overflow: hidden; border: 1px solid var(--lp-line); box-shadow: 0 20px 40px rgba(20,24,31,.08); }
.lp-map iframe { width: 100%; height: 300px; border: 0; display: block; }

.lp-reviews { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.lp-review { margin: 0; background: #fff; border-radius: var(--lp-radius); padding: 28px; border: 1px solid var(--lp-line); display: flex; flex-direction: column; }
.lp-stars { color: var(--lp-gold); letter-spacing: 3px; margin-bottom: 12px; }
.lp-review blockquote { margin: 0 0 20px; color: var(--lp-ink-2); line-height: 1.7; flex: 1; }
.lp-review figcaption { display: flex; align-items: center; gap: 12px; }
.lp-avatar { width: 42px; height: 42px; border-radius: 50%; background: var(--lp-dark); color: var(--lp-gold); font-family: var(--lp-head); font-weight: 700; display: flex; align-items: center; justify-content: center; }
.lp-review figcaption strong { display: block; line-height: 1.1; }
.lp-review figcaption span:not(.lp-avatar) { font-size: .88rem; color: var(--lp-muted); }

.lp-gallery { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.lp-shot { margin: 0; border-radius: var(--lp-radius); overflow: hidden; background: #fff; border: 1px solid var(--lp-line); }
.lp-shot img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.lp-shot figcaption { padding: 14px 16px; }
.lp-shot figcaption strong { display: block; font-size: .98rem; margin-bottom: 2px; }
.lp-shot figcaption span { font-size: .85rem; color: var(--lp-muted); }

.lp-two-faq { grid-template-columns: .85fr 1.15fr; }
.lp-faq { margin: 0; max-width: none; }
.lp-faq-item { border-radius: 14px; border-color: var(--lp-line); }
.lp-faq-item.is-open { border-color: var(--lp-gold); }
body.landing .faq-q { font-family: var(--lp-font); font-weight: 700; color: var(--lp-ink); }
body.landing .faq-q::after { background: var(--lp-gold); }
.lp-info-card { background: #fff; border: 1px solid var(--lp-line); border-radius: var(--lp-radius); padding: 24px 26px; margin-top: 28px; }
.lp-info-card h3 { margin-bottom: 12px; }
.lp-info { margin: 0; }
.lp-info-row { display: grid; grid-template-columns: 120px 1fr; gap: 12px; padding: 9px 0; border-top: 1px solid var(--lp-line); font-size: .93rem; }
.lp-info-row:first-child { border-top: 0; }
.lp-info dt { color: var(--lp-muted); font-weight: 600; }
.lp-info dd { margin: 0; color: var(--lp-ink); font-weight: 600; }
.lp-info dd a { color: var(--lp-ink); }

.lp-cta { background: radial-gradient(900px 400px at 85% 0%, rgba(201,162,39,.25), transparent 60%), var(--lp-dark); color: #fff; text-align: center; padding: 84px 0; }
.lp-cta h2 { color: #fff; margin-bottom: 10px; }
.lp-cta p { color: #c0c6cf; max-width: 640px; margin: 0 auto 28px; font-size: 1.08rem; }
.lp-cta .lp-hero-actions { justify-content: center; margin: 0; }

body.landing .site-footer a:hover { color: var(--lp-gold); }
body.landing .site-footer .brand .brand-text small, body.landing .footer-contact .ico { color: var(--lp-gold); }
body.landing .site-footer .btn-primary { background: var(--lp-gold); color: var(--lp-dark); }
body.landing .mobile-call-bar .btn-primary { background: var(--lp-gold); color: var(--lp-dark); }

@media (max-width: 1024px) {
  .lp-hero-grid { grid-template-columns: 1fr; gap: 40px; }
  .lp-form-card { max-width: 560px; }
  .lp-services, .lp-reviews { grid-template-columns: repeat(2, 1fr); }
  .lp-gallery { grid-template-columns: repeat(2, 1fr); }
  .lp-two, .lp-two-faq, .lp-split { grid-template-columns: 1fr; gap: 40px; }
  .lp-float { left: 12px; bottom: 12px; }
}
@media (max-width: 900px) {
  .lp-topbar { display: none; }
  .lp-header .container { min-height: 68px; gap: 10px; }
  .lp-call { padding: 6px 14px 6px 8px; margin-left: auto; }
  .lp-call small { display: none; }
  .lp-call strong { font-size: .95rem; white-space: nowrap; }
  .lp-call { padding: 5px 12px 5px 6px; gap: 8px; }
  .lp-call .ico { width: 28px; height: 28px; }
  .lp-call .ico::after { inset: 6px; }
  .lp-header .brand img { height: 30px; max-width: 150px; object-fit: contain; }
  .lp-nav { margin-left: 0; }
  .lp-hero-grid { padding-top: 56px; padding-bottom: 56px; }
  .lp-section { padding: 60px 0; }
  .lp-about { columns: 1; }
  .lp-reasons { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .lp-stats .container { grid-template-columns: 1fr; }
  .lp-stat { border-left: 0; border-top: 1px solid rgba(255,255,255,.08); padding: 18px; }
  .lp-stat:first-child { border-top: 0; }
  .lp-services, .lp-reviews, .lp-gallery { grid-template-columns: 1fr; }
  .lp-hero-actions .lp-btn { width: 100%; }
  .lp-form-card { padding: 22px; }
  .lp-btn { white-space: normal; }
  .lp-info-row { grid-template-columns: 1fr; gap: 2px; }
}
