/* Xibalba Digital Site Studio v2.0 — Brand + mobile-first refinements.
   Real brand palette sampled from supplied official logos.
   Base components in site.css. These overrides are intentionally loaded last.
*/
:root {
  --xd-red: #ff5353;
  --xd-red-strong: #ab2433;
  --xd-red-soft: #ff7777;
  --xd-aqua: #40e0d0;
  --xd-gold: #d4af37;
  --xd-ink: #0b0d10;
  --xd-display: 'Bebas Neue','Arial Narrow',Impact,sans-serif;
}
body.xd-layout .xd-site { font-size:16px; line-height:1.58; text-rendering:optimizeLegibility; }
/* Base rules target the narrowest screens first; wider layouts below. */
.xd-wrap { width:min(calc(100% - 32px), 1220px); }
.xd-site h1, .xd-site h2,
.xd-service-card h3, .xd-blog-card h2,
.xd-form-panel h3, .xd-metric-title {
  font-family:var(--xd-display);
  font-weight:400;
  letter-spacing:.012em;
  text-wrap:balance;
}
.xd-site h1 { font-size:clamp(3.6rem,12.2vw,7rem); line-height:.95; }
.xd-site h2 { font-size:clamp(2.8rem,10.5vw,5rem); line-height:.97; }
.xd-site h3 { line-height:1.08; }
.xd-site p, .xd-site .xd-lead { text-wrap:pretty; }
/* Logo composition uses the provided Xibalba brand mark + the provided wordmark. */
.xd-brand { max-width:none; min-width:0; min-height:44px; }
.xd-logo-lockup { display:inline-flex; flex-direction:row; align-items:center; gap:8px; max-width:100%; }
.xd-logo-mark { display:block; width:36px; height:auto; max-height:36px; object-fit:contain; }
.xd-logo-wordmark-img { display:block; width:160px; height:auto; object-fit:contain; }
.xd-logo-image { max-width:190px!important; max-height:58px!important; }
.xd-header { background:rgba(9,12,15,.94); border-bottom:1px solid rgba(255,255,255,.13); }
.xd-header-inner { height:76px; min-height:76px; }
.xd-menu-toggle { display:block; min-width:46px; min-height:46px; border:1px solid rgba(255,255,255,.25); border-radius:4px; padding:10px; }
.xd-menu-toggle span { margin:5px auto; }
.xd-main-nav { top:76px; }
.xd-main-nav>a { min-height:46px; display:flex; align-items:center; }
.xd-main-nav .xd-nav-contact { min-height:46px; }
.xd-site a, .xd-site button { -webkit-tap-highlight-color:transparent; }
.xd-site :focus-visible { outline:3px solid var(--xd-aqua); outline-offset:3px; }
/* Hero: quiet obsidian field, real signal motif, careful accents (not gradients everywhere). */
.xd-hero { padding:132px 0 24px; min-height:0; background:
  radial-gradient(ellipse 70% 90% at 105% 8%, rgba(255,83,83,.12), transparent 62%),
  linear-gradient(128deg,#080a0d 1%,#101419 83%);
}
.xd-hero::before {
  content:'X / D'; position:absolute; z-index:0; pointer-events:none;
  right:-2%; bottom:-10%; color:rgba(255,255,255,.025);
  font:400 clamp(180px,38vw,620px)/1 var(--xd-display);
  letter-spacing:-.02em;
}
.xd-topography { opacity:.2; right:-280px; top:45px; }
.xd-hero-layout { grid-template-columns:1fr; gap:26px; }
.xd-hero-copy { padding:0 0 12px; }
.xd-hero h1 { font-size:clamp(4.5rem,14vw,8rem); line-height:.90; letter-spacing:.003em; max-width:850px; margin-bottom:24px; }
.xd-hero .xd-lead { font-size:clamp(1rem,2.1vw,1.18rem); line-height:1.65; max-width:630px; }
.xd-hero .xd-eyebrow { color:#ff7c7c; }
.xd-hero .xd-hero-tag { margin-top:34px; gap:15px; }
.xd-hero .xd-hero-tag span { color:#b8c0c4; font-weight:650; letter-spacing:.12em; }
.xd-hero .xd-hero-tag span:before { content:''; display:inline-block; width:5px; height:5px; background:var(--xd-aqua); margin-right:9px; vertical-align:middle; }
.xd-hero-visual {
  transform:none; min-height:405px; max-width:610px; margin:10px 0 46px;
  padding:24px 22px 0;
  border:1px solid rgba(255,255,255,.18); border-radius:9px;
  background:linear-gradient(154deg,rgba(31,37,42,.94),rgba(15,19,23,.98));
  box-shadow:0 17px 65px rgba(0,0,0,.3);
}
.xd-hero-visual:before { background:linear-gradient(90deg,var(--xd-aqua),var(--xd-red),transparent); }
.xd-visual-top { font-size:9px; line-height:1.4; }
.xd-small-dot { background:var(--xd-aqua); box-shadow:0 0 10px rgba(64,224,208,.32); }
.xd-metric-title { font-size:clamp(1.9rem,7.1vw,3.2rem); letter-spacing:.008em; line-height:1.05; margin-top:35px; }
.xd-metric-title strong { font-weight:400; color:#fff; }
.xd-signal-label { color:#b0b6bb; }
.xd-signal-trace { color:var(--xd-aqua); float:right; font-size:8px; }
.xd-data-pills span:last-child { border-color:rgba(64,224,208,.42); color:var(--xd-aqua); }
.xd-hero-bottom { padding-top:18px; }
.xd-hero-bottom>span { max-width:48%; }
.xd-capabilities-inner { padding-block:22px; }
.xd-capabilities-inner i { color:#b62d38; }
/* Editorial hierarchy, tighter but not crowded on small devices. */
.xd-section { padding:74px 0; }
.xd-section-head { margin-bottom:35px; }
.xd-section-head h2 { max-width:900px; }
.xd-section-head>p,.xd-head-split>p { font-size:16px; line-height:1.65; }
.xd-services-grid { grid-template-columns:1fr; gap:12px; }
.xd-service-card,.xd-service-card:nth-child(4),.xd-service-card:nth-child(5) {
  grid-column:auto; min-height:245px; padding:24px; border-radius:4px;
  box-shadow:0 1px 0 rgba(15,18,22,.035);
}
.xd-service-card h3 { font-size:clamp(2.2rem,7.7vw,3rem); line-height:1; letter-spacing:.012em; }
.xd-service-card:focus-visible { outline-color:var(--xd-red-strong); }
.xd-service-card-top span:last-child, .xd-card-action { color:var(--xd-red-strong); }
.xd-service-card-top { margin-bottom:27px; }
.xd-site .xd-eyebrow { letter-spacing:.15em; }
.xd-section-light .xd-eyebrow,.xd-section-muted .xd-eyebrow { color:var(--xd-red-strong); }
.xd-section-light .xd-eyebrow-mark,.xd-section-muted .xd-eyebrow-mark { border-color:var(--xd-red-strong); }
.xd-section-light .xd-feature>span,.xd-section-light .xd-method-row>span,
.xd-section-light .xd-blog-card>span:first-child { color:var(--xd-red-strong); }
.xd-page-hero { padding:142px 0 74px; background:radial-gradient(ellipse 65% 100% at 105% 22%,rgba(255,83,83,.1),transparent 75%),#0a0d10; }
.xd-page-hero h1 { font-size:clamp(3.8rem,12vw,7.3rem); line-height:.93; letter-spacing:.012em; }
.xd-page-hero p { font-size:17px; line-height:1.64; }
.xd-sticky-copy h2 { font-size:clamp(2.65rem,9.6vw,5rem); }
.xd-service-details,.xd-contact-grid,.xd-about-grid,.xd-faq-layout { gap:40px; }
.xd-faqs summary { min-height:44px; }
.xd-end-cta {
  position:relative; overflow:hidden;
  background:var(--xd-red); color:#111416; padding:72px 0;
}
.xd-end-cta:before {
  content:''; pointer-events:none; position:absolute; inset:0;
  background:repeating-radial-gradient(ellipse at 90% 10%,transparent 0 20px,rgba(0,0,0,.075) 21px,transparent 22px,transparent 49px);
  opacity:.34;
}
.xd-end-grid { position:relative; z-index:1; }
.xd-end-cta h2 { font-size:clamp(3.1rem,11vw,5.4rem); }
.xd-end-cta p { color:#25292c; font-weight:500; }
/* Crucial fix: never put coral button on the coral CTA section. */
.xd-end-cta .xd-button-primary { background:#11161a; border-color:#11161a; color:#fff!important; }
.xd-end-cta .xd-button-primary:hover,.xd-end-cta .xd-button-primary:focus-visible {
  background:#fff; border-color:#fff; color:#11161a!important;
  box-shadow:0 10px 30px rgba(0,0,0,.13);
}
.xd-end-cta .xd-text-link,.xd-end-cta .xd-text-link-dark { color:#191d20; border-bottom:1px solid rgba(20,23,26,.63); }
.xd-end-cta .xd-text-link:hover { color:#000; }
.xd-button-primary { background:var(--xd-red); color:#12151a!important; border-color:var(--xd-red); }
.xd-button-primary:hover { background:#ff8585; }
.xd-button { min-height:48px; max-width:100%; }
.xd-actions { gap:15px; }
.xd-contact-link a { overflow-wrap:anywhere; }
.xd-footer { border-top:1px solid rgba(255,255,255,.05); }
.xd-footer .xd-brand .xd-logo-mark { width:43px; max-height:43px; }
.xd-footer .xd-brand .xd-logo-wordmark-img { width:184px; }
.xd-footer-title { color:#fff; }
.xd-footer-top a:not(.xd-brand):hover { color:var(--xd-aqua); }
.xd-form-panel h3 { font-size:2.3rem; }
.xd-lead-form input:not([type=checkbox]),.xd-lead-form textarea,.xd-lead-form select { font-size:16px; min-height:48px; }
.xd-consent a { text-underline-offset:3px; }
.xd-richtext h2 { font-size:clamp(2.5rem,8vw,4.2rem); }
.xd-richtext a { color:#a1202d; }
@media (min-width:640px) {
  .xd-wrap { width:min(calc(100% - 48px),1220px); }
  .xd-logo-mark { width:40px; max-height:40px; }
  .xd-logo-wordmark-img { width:186px; }
  .xd-header-inner { height:82px; min-height:82px; }
  .xd-main-nav { top:82px; }
  .xd-hero { padding-top:150px; }
  .xd-hero h1 { font-size:clamp(5.8rem,11vw,8.25rem); }
  .xd-hero-visual { padding:31px 31px 0; }
  .xd-services-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .xd-section { padding:95px 0; }
  .xd-service-card,.xd-service-card:nth-child(4),.xd-service-card:nth-child(5) { min-height:285px; }
  .xd-page-hero h1 { font-size:clamp(5rem,9vw,7.3rem); }
  .xd-end-cta { padding:90px 0; }
}
@media (min-width:901px) {
  .xd-wrap { width:min(calc(100% - 76px),1220px); }
  .xd-header-inner { height:94px; min-height:94px; }
  .xd-menu-toggle { display:none; }
  .xd-main-nav { display:flex; position:static; flex-direction:row; gap:28px; box-shadow:none; background:none; border:0; padding:0; }
  .xd-main-nav>a { min-height:44px; border:none; font-size:13px; padding:0; }
  .xd-main-nav .xd-nav-contact { margin-left:6px; padding:10px 17px; }
  .xd-hero { padding-top:186px; }
  .xd-hero-layout { grid-template-columns:minmax(0,1.07fr) minmax(0,.93fr); align-items:center; gap:45px; }
  .xd-hero h1 { font-size:clamp(5rem,7.1vw,8.1rem); }
  .xd-hero-copy { padding-bottom:64px; }
  .xd-hero-visual { margin:0 0 0 auto; min-height:450px; }
  .xd-section { padding:118px 0; }
  .xd-services-grid { grid-template-columns:repeat(6,minmax(0,1fr)); }
  .xd-service-card { grid-column:span 2; min-height:335px; padding:29px; }
  .xd-service-card:nth-child(4),.xd-service-card:nth-child(5) { grid-column:span 3; min-height:295px; }
  .xd-head-split { grid-template-columns:1.2fr .8fr; gap:70px; }
  .xd-service-details { grid-template-columns:.9fr 1.1fr; gap:80px; }
  .xd-about-grid { grid-template-columns:1fr 1fr; gap:95px; }
  .xd-contact-grid { grid-template-columns:.95fr 1.05fr; gap:90px; }
  .xd-faq-layout { grid-template-columns:.75fr 1.25fr; gap:95px; }
  .xd-end-cta { padding:106px 0; }
  .xd-end-grid { grid-template-columns:1.15fr .85fr; }
  .xd-page-hero { padding-top:190px; padding-bottom:107px; }
}
@media(min-width:1220px) {
 .xd-hero-visual { transform:perspective(1400px) rotateY(-2.5deg); }
}
@media (prefers-reduced-motion:reduce) {
 .xd-site *,.xd-site *:before,.xd-site *:after { scroll-behavior:auto!important; animation:none!important; transition:none!important; }
}
