/*
Theme Name: Dean Chambers
Theme URI: https://www.deanchambers.ca/
Author: Town Geek
Author URI: https://www.towngeek.ca/
Description: A responsive WordPress rebuild of the Dean Chambers website, including editable pages, gallery, contact forms, and an optional 25+ age gate.
Version: 5.0
Requires at least: 6.0
Tested up to: 6.9
Requires PHP: 7.4
Text Domain: dean-chambers
*/

:root {
  --dc-bg: #05060a;
  --dc-bg-soft: #0c0f18;
  --dc-panel: rgba(16, 20, 33, 0.94);
  --dc-panel-2: #11172a;
  --dc-text: #f7f7fb;
  --dc-muted: #b9bdd0;
  --dc-purple: #8f43ff;
  --dc-purple-2: #c04cff;
  --dc-blue: #398cff;
  --dc-line: rgba(255,255,255,.12);
  --dc-shadow: 0 24px 70px rgba(0,0,0,.42);
  --dc-radius: 18px;
  --dc-max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--dc-text);
  background:
    radial-gradient(circle at 20% -10%, rgba(61,96,255,.22), transparent 34rem),
    radial-gradient(circle at 90% 15%, rgba(170,52,255,.15), transparent 32rem),
    var(--dc-bg);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
body.dc-lock { overflow: hidden; }
a { color: #a9c7ff; text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: #fff; }
img { max-width: 100%; height: auto; display: block; }
button, input, textarea, select { font: inherit; }

.dc-container { width: min(calc(100% - 36px), var(--dc-max)); margin-inline: auto; }
.dc-site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(5,6,10,.88);
  border-bottom: 1px solid var(--dc-line);
  backdrop-filter: blur(16px);
}
.dc-header-row { min-height: 76px; display: flex; align-items: center; gap: 24px; }
.dc-brand { margin-right: auto; color: #fff; text-decoration: none; letter-spacing: .16em; font-weight: 700; font-size: clamp(17px, 2vw, 23px); white-space: nowrap; }
.dc-brand:hover { color: #fff; }
.dc-menu { display: flex; align-items: center; gap: 5px; margin: 0; padding: 0; list-style: none; }
.dc-menu a { display: block; padding: 11px 12px; color: #e9eaf2; text-decoration: none; font-size: 14px; letter-spacing: .03em; border-radius: 999px; }
.dc-menu a:hover, .dc-menu .current-menu-item > a, .dc-menu .current_page_item > a { background: rgba(143,67,255,.18); color: #fff; }
.dc-header-call { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 0 17px; color: #fff; text-decoration: none; font-size: 14px; font-weight: 700; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; }
.dc-header-call:hover { background: #fff; color: #08090d; }
.dc-nav-toggle { display: none; border: 0; background: transparent; padding: 10px; cursor: pointer; }
.dc-nav-toggle span { display: block; width: 26px; height: 2px; margin: 5px 0; background: #fff; transition: .2s ease; }

.dc-main { min-height: 60vh; }
.dc-section { padding: clamp(66px, 9vw, 116px) 0; position: relative; }
.dc-section.dc-compact { padding: clamp(48px, 6vw, 78px) 0; }
.dc-section.dc-dark { background: rgba(0,0,0,.26); border-top: 1px solid rgba(255,255,255,.06); border-bottom: 1px solid rgba(255,255,255,.06); }
.dc-section.dc-panel-bg { background: linear-gradient(140deg, rgba(16,21,40,.96), rgba(8,10,17,.98)); }
.dc-kicker { margin: 0 0 12px; color: #b98cff; letter-spacing: .2em; text-transform: uppercase; font-size: 13px; font-weight: 700; }
.dc-title { margin: 0 0 20px; font-size: clamp(40px, 7vw, 84px); line-height: .98; letter-spacing: -.045em; }
.dc-section-title { margin: 0 0 18px; font-size: clamp(31px, 4.4vw, 54px); line-height: 1.05; letter-spacing: -.03em; }
.dc-subtitle { max-width: 760px; margin: 0 auto; color: var(--dc-muted); font-size: clamp(18px, 2.1vw, 23px); }
.dc-center { text-align: center; }
.dc-center .dc-subtitle { margin-inline: auto; }
.dc-lead { color: #d8daea; font-size: clamp(19px, 2vw, 24px); }
.dc-small { font-size: 14px; color: var(--dc-muted); }
.dc-muted { color: var(--dc-muted); }
.dc-gradient-text { background: linear-gradient(90deg, #fff, #9bc4ff 45%, #d995ff); -webkit-background-clip: text; background-clip: text; color: transparent; }

.dc-hero {
  min-height: min(820px, 88vh);
  display: grid;
  align-items: end;
  position: relative;
  overflow: hidden;
  background-position: center;
  background-size: cover;
  isolation: isolate;
}
.dc-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(3,4,8,.95) 0%, rgba(4,6,12,.68) 48%, rgba(3,4,8,.28) 100%), linear-gradient(0deg, var(--dc-bg) 0%, transparent 45%); }
.dc-hero-content { padding: clamp(90px, 13vw, 170px) 0 clamp(70px, 9vw, 115px); max-width: 760px; }
.dc-hero .dc-subtitle { margin: 0; color: #f0f1f9; }
.dc-hero-quote { margin: 16px 0 0; color: #c4b1ef; font-style: italic; font-size: 20px; }
.dc-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.dc-center .dc-actions { justify-content: center; }
.dc-button { appearance: none; display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 24px; border: 1px solid transparent; border-radius: 999px; background: linear-gradient(135deg, var(--dc-purple), #6739e9); color: #fff; text-decoration: none; font-weight: 700; cursor: pointer; box-shadow: 0 12px 30px rgba(102,56,230,.28); transition: transform .2s ease, box-shadow .2s ease; }
.dc-button:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 18px 38px rgba(102,56,230,.4); }
.dc-button.dc-outline { background: rgba(8,10,17,.4); border-color: rgba(255,255,255,.35); box-shadow: none; }
.dc-button.dc-outline:hover { background: #fff; color: #08090d; }
.dc-button.dc-small-button { min-height: 42px; padding: 0 18px; font-size: 14px; }

.dc-grid { display: grid; gap: 24px; }
.dc-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dc-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dc-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dc-card { overflow: hidden; border: 1px solid var(--dc-line); border-radius: var(--dc-radius); background: linear-gradient(145deg, rgba(20,25,41,.98), rgba(9,11,18,.98)); box-shadow: var(--dc-shadow); }
.dc-card-media { aspect-ratio: 16 / 10; overflow: hidden; background: #10131d; }
.dc-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.dc-card:hover .dc-card-media img { transform: scale(1.04); }
.dc-card-body { padding: clamp(24px, 3vw, 36px); }
.dc-card h2, .dc-card h3 { margin-top: 0; line-height: 1.15; }
.dc-card p:last-child { margin-bottom: 0; }
.dc-price { color: #fff; font-size: 22px; font-weight: 700; }
.dc-rate-list { margin: 18px 0 0; padding: 0; list-style: none; }
.dc-rate-list li { display: flex; justify-content: space-between; gap: 18px; padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.1); }
.dc-rate-list li:last-child { border-bottom: 0; }
.dc-rate-list strong { color: #d9b7ff; white-space: nowrap; }
.dc-notice { margin: 28px auto 0; max-width: 900px; padding: 18px 22px; border: 1px solid rgba(190,132,255,.3); border-radius: 14px; background: rgba(122,55,221,.10); color: #ece5ff; }

.dc-split { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr); gap: clamp(34px, 7vw, 86px); align-items: center; }
.dc-split.dc-reverse > :first-child { order: 2; }
.dc-feature-image { border-radius: var(--dc-radius); overflow: hidden; box-shadow: var(--dc-shadow); border: 1px solid rgba(255,255,255,.1); }
.dc-feature-image img { width: 100%; min-height: 420px; object-fit: cover; }
.dc-stat-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px 22px; margin: 27px 0 0; padding: 0; list-style: none; }
.dc-stat-list li { padding: 13px 0; border-bottom: 1px solid var(--dc-line); color: #e4e6f0; }

.dc-quote-section { min-height: 490px; display: grid; place-items: center; position: relative; background-position: center; background-size: cover; isolation: isolate; }
.dc-quote-section::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(0,0,0,.66); }
.dc-big-quote { max-width: 900px; margin: 0 auto; text-align: center; font-size: clamp(30px, 5vw, 62px); line-height: 1.1; font-style: italic; }

.dc-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.dc-gallery a { display: block; aspect-ratio: 1 / 1; overflow: hidden; border-radius: 9px; background: #121621; border: 1px solid rgba(255,255,255,.1); }
.dc-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease, opacity .4s ease; }
.dc-gallery a:hover img { transform: scale(1.05); opacity: .9; }
.dc-lightbox { position: fixed; inset: 0; z-index: 1000; display: none; place-items: center; padding: 30px; background: rgba(0,0,0,.92); }
.dc-lightbox.is-open { display: grid; }
.dc-lightbox img { max-height: 90vh; max-width: min(1100px, 94vw); border-radius: 10px; }
.dc-lightbox-close { position: absolute; top: 18px; right: 22px; border: 0; background: transparent; color: #fff; font-size: 42px; cursor: pointer; }

.dc-faq { max-width: 900px; margin: 34px auto 0; }
.dc-faq details { margin: 0 0 12px; border: 1px solid var(--dc-line); border-radius: 14px; background: rgba(16,20,32,.84); overflow: hidden; }
.dc-faq summary { padding: 20px 24px; cursor: pointer; font-weight: 700; list-style: none; }
.dc-faq summary::-webkit-details-marker { display: none; }
.dc-faq summary::after { content: "+"; float: right; color: #c08dff; font-size: 23px; line-height: 1; }
.dc-faq details[open] summary::after { content: "–"; }
.dc-faq-answer { padding: 0 24px 22px; color: #d2d5e2; }

.dc-contact-wrap { display: grid; grid-template-columns: .8fr 1.2fr; gap: 34px; align-items: start; }
.dc-contact-card { padding: 30px; border: 1px solid var(--dc-line); border-radius: var(--dc-radius); background: rgba(14,18,30,.9); }
.dc-contact-card h2, .dc-contact-card h3 { margin-top: 0; }
.dc-contact-list { margin: 0; padding: 0; list-style: none; }
.dc-contact-list li { padding: 11px 0; border-bottom: 1px solid var(--dc-line); }
.dc-contact-list li:last-child { border-bottom: 0; }
.dc-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.dc-field { display: flex; flex-direction: column; gap: 7px; }
.dc-field.dc-full { grid-column: 1 / -1; }
.dc-field label { color: #e8e9f1; font-size: 14px; font-weight: 700; }
.dc-field input, .dc-field textarea { width: 100%; border: 1px solid rgba(255,255,255,.18); border-radius: 10px; background: rgba(2,4,8,.8); color: #fff; padding: 13px 14px; outline: none; }
.dc-field input:focus, .dc-field textarea:focus { border-color: #995fff; box-shadow: 0 0 0 3px rgba(153,95,255,.15); }
.dc-field textarea { min-height: 150px; resize: vertical; }
.dc-form-status { margin-bottom: 18px; padding: 13px 16px; border-radius: 10px; }
.dc-form-status.success { background: rgba(41,168,111,.18); border: 1px solid rgba(69,215,145,.35); }
.dc-form-status.error { background: rgba(212,62,76,.18); border: 1px solid rgba(237,87,101,.35); }
.dc-hp { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

/* Contact Form 7 integration */
.dc-contact-card .wpcf7 { margin: 0; }
.dc-contact-card .wpcf7-form { margin: 0; }
.dc-contact-card .wpcf7-form-control-wrap { display: block; width: 100%; }
.dc-contact-card .wpcf7 input[type="text"],
.dc-contact-card .wpcf7 input[type="email"],
.dc-contact-card .wpcf7 input[type="tel"],
.dc-contact-card .wpcf7 textarea {
  width: 100%;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 10px;
  background: rgba(2,4,8,.8);
  color: #fff;
  padding: 13px 14px;
  outline: none;
  font: inherit;
}
.dc-contact-card .wpcf7 input[type="text"]:focus,
.dc-contact-card .wpcf7 input[type="email"]:focus,
.dc-contact-card .wpcf7 input[type="tel"]:focus,
.dc-contact-card .wpcf7 textarea:focus { border-color: #995fff; box-shadow: 0 0 0 3px rgba(153,95,255,.15); }
.dc-contact-card .wpcf7 textarea { min-height: 150px; resize: vertical; }
.dc-contact-card .wpcf7-not-valid { border-color: #ed5765 !important; }
.dc-contact-card .wpcf7-not-valid-tip { margin-top: 7px; color: #ff929c; font-size: 13px; }
.dc-contact-card .wpcf7 form .wpcf7-response-output {
  margin: 18px 0 0;
  padding: 13px 16px;
  border: 1px solid rgba(69,215,145,.35);
  border-radius: 10px;
  background: rgba(41,168,111,.18);
  color: #fff;
}
.dc-contact-card .wpcf7 form.invalid .wpcf7-response-output,
.dc-contact-card .wpcf7 form.unaccepted .wpcf7-response-output,
.dc-contact-card .wpcf7 form.payment-required .wpcf7-response-output,
.dc-contact-card .wpcf7 form.failed .wpcf7-response-output,
.dc-contact-card .wpcf7 form.aborted .wpcf7-response-output,
.dc-contact-card .wpcf7 form.spam .wpcf7-response-output { border-color: rgba(237,87,101,.45); background: rgba(212,62,76,.18); }
.dc-contact-card .wpcf7-spinner { vertical-align: middle; }
.dc-cf7-missing { padding: 16px; border: 1px solid rgba(237,187,87,.4); border-radius: 10px; background: rgba(212,151,62,.14); }

.dc-partner-logos { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 26px; margin-top: 35px; }
.dc-partner-logos img { max-height: 140px; width: auto; border-radius: 8px; }
.dc-disclaimer { max-width: 950px; margin: 0 auto; padding: 28px; border-radius: 15px; border: 1px solid var(--dc-line); background: rgba(255,255,255,.035); color: #c9ccda; text-align: center; font-size: 14px; }

.dc-page-header { padding: clamp(92px, 12vw, 150px) 0 clamp(50px, 7vw, 88px); text-align: center; background: radial-gradient(circle at top, rgba(89,75,245,.22), transparent 35rem); border-bottom: 1px solid var(--dc-line); }
.dc-page-header h1 { margin: 0; font-size: clamp(43px, 6vw, 73px); letter-spacing: -.04em; }
.dc-entry > :first-child { margin-top: 0; }

.dc-site-footer { border-top: 1px solid var(--dc-line); background: #030407; }
.dc-footer-main { display: grid; grid-template-columns: 1.25fr .75fr .75fr; gap: 40px; padding: 58px 0 42px; }
.dc-footer-title { margin: 0 0 12px; letter-spacing: .12em; font-size: 19px; }
.dc-footer-heading { margin: 0 0 12px; font-size: 15px; text-transform: uppercase; letter-spacing: .12em; color: #aeb3c7; }
.dc-footer-links { margin: 0; padding: 0; list-style: none; }
.dc-footer-links li { margin: 7px 0; }
.dc-footer-links a { color: #d4d6e0; text-decoration: none; }
.dc-footer-links a:hover { color: #fff; }
.dc-footer-bottom { display: flex; justify-content: space-between; gap: 20px; padding: 22px 0; border-top: 1px solid var(--dc-line); color: #8f94a8; font-size: 13px; }

.dc-age-gate { position: fixed; inset: 0; z-index: 2000; display: none; place-items: center; padding: 24px; background: rgba(0,0,0,.94); backdrop-filter: blur(12px); }
.dc-age-gate.is-open { display: grid; }
.dc-age-box { width: min(560px, 100%); padding: clamp(28px, 5vw, 48px); text-align: center; border: 1px solid rgba(255,255,255,.17); border-radius: 22px; background: linear-gradient(150deg,#171b2d,#080a10); box-shadow: 0 30px 100px rgba(0,0,0,.65); }
.dc-age-box h2 { margin: 0 0 15px; font-size: clamp(31px,5vw,46px); }
.dc-age-box p { color: #c9ccda; }
.dc-age-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 26px; }

.alignwide { width: min(calc(100% - 36px), 1400px); margin-inline: auto; }
.alignfull { width: 100%; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

@media (max-width: 980px) {
  .dc-nav-toggle { display: block; }
  .dc-header-call { display: none; }
  .dc-site-nav { position: absolute; left: 0; right: 0; top: 100%; display: none; padding: 12px 18px 20px; background: rgba(5,6,10,.98); border-bottom: 1px solid var(--dc-line); }
  .dc-site-nav.is-open { display: block; }
  .dc-menu { display: block; }
  .dc-menu a { padding: 13px 14px; border-radius: 8px; }
  .dc-split, .dc-contact-wrap { grid-template-columns: 1fr; }
  .dc-split.dc-reverse > :first-child { order: initial; }
  .dc-grid-3, .dc-grid-4 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dc-gallery { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .dc-footer-main { grid-template-columns: 1fr 1fr; }
  .dc-footer-main > :first-child { grid-column: 1 / -1; }
}

@media (max-width: 650px) {
  body { font-size: 16px; }
  .dc-container { width: min(calc(100% - 24px), var(--dc-max)); }
  .dc-header-row { min-height: 66px; }
  .dc-grid-2, .dc-grid-3, .dc-grid-4 { grid-template-columns: 1fr; }
  .dc-gallery { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .dc-form-grid, .dc-stat-list { grid-template-columns: 1fr; }
  .dc-field.dc-full { grid-column: auto; }
  .dc-actions .dc-button { width: 100%; }
  .dc-rate-list li { display: block; }
  .dc-rate-list strong { display: block; margin-top: 4px; }
  .dc-footer-main { grid-template-columns: 1fr; }
  .dc-footer-main > :first-child { grid-column: auto; }
  .dc-footer-bottom { flex-direction: column; }
}


/* Elementor / visual builder compatibility */
.elementor-page .dc-page-content,
.elementor-page main.dc-main { max-width: none; padding: 0; }
.elementor-page .entry-content { margin: 0; }
.elementor-section.elementor-section-boxed > .elementor-container,
.e-con.e-con-boxed > .e-con-inner { max-width: 1180px; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.dc-builder-note { background:#fff; border-left:4px solid #b61f3a; padding:14px 16px; margin:18px 0; }


/* Dynamic partner and social links */
.dc-social-link {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  color: #fff;
  text-decoration: none;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}
.dc-social-link:hover { background: #fff; color: #08090d; transform: translateY(-1px); }
.dc-social-link svg { width: 18px; height: 18px; fill: currentColor; }
.dc-footer-social { margin-top: 16px; }
.dc-partner-link { display: inline-flex; border-radius: 8px; overflow: hidden; text-decoration: none; }
.dc-partner-link img { transition: transform .2s ease, opacity .2s ease; }
.dc-partner-link:hover img { transform: translateY(-2px); opacity: .92; }
.dc-partner-logos .dc-partner-link img { max-height: 140px; width: auto; }


/* v5.0 native Elementor test pages */
.dc-native-section { padding: clamp(64px,8vw,110px) 0; background:#05060a; }
.dc-native-section > .elementor-container { width:min(calc(100% - 36px),1180px); }
.dc-native-center { text-align:center; }
.dc-native-hero { min-height:720px; display:flex; align-items:center; background-position:center; background-size:cover; }
.dc-native-hero > .elementor-background-overlay { opacity:1; }
.dc-native-hero-content { max-width:760px; }
.dc-native-title .elementor-heading-title,
.dc-native-title { font-size:clamp(58px,8vw,116px)!important; line-height:.9!important; letter-spacing:-.055em!important; font-weight:800!important; }
.dc-gradient-text .elementor-heading-title,
.dc-gradient-text { background:linear-gradient(90deg,#fff 0%,#d9e7ff 26%,#8fbaff 51%,#c193ff 74%,#ff55c4 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent; }
.dc-native-subtitle { max-width:650px; font-size:clamp(18px,2.3vw,26px); color:#e7e9f3; }
.dc-native-kicker p { margin:0 0 12px; color:#d9b7ff; text-transform:uppercase; letter-spacing:.18em; font-size:13px; font-weight:800; }
.dc-native-section-title .elementor-heading-title { font-size:clamp(40px,5vw,68px)!important; line-height:1.02!important; }
.dc-native-card { margin:10px; padding:0 0 30px!important; border:1px solid rgba(255,255,255,.11); border-radius:18px; background:rgba(16,20,32,.92); overflow:hidden; box-shadow:0 24px 70px rgba(0,0,0,.32); }
.dc-native-card > .elementor-column-wrap > .elementor-widget-wrap { padding:28px!important; }
.dc-native-card .elementor-widget-image:first-child { margin:-28px -28px 25px; }
.dc-native-card .elementor-widget-image:first-child img { width:100%; height:310px; object-fit:cover; }
.dc-native-card .elementor-button,
.dc-native-primary-button .elementor-button,
.dc-native-secondary-button .elementor-button { border-radius:999px; padding:15px 25px; font-weight:800; letter-spacing:.07em; }
.dc-native-primary-button,.dc-native-secondary-button { display:inline-block; margin-right:10px; }
.dc-native-primary-button .elementor-button { background:linear-gradient(90deg,#7657ff,#ba52e9); }
.dc-native-secondary-button .elementor-button { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.28); }
.dc-native-quote-section { text-align:center; }
.dc-native-quote .elementor-heading-title { max-width:900px; margin:auto; font-size:clamp(34px,5vw,65px)!important; font-style:italic; }
.dc-native-partner img { max-height:145px; width:auto!important; border-radius:10px; }
.dc-native-feature-image img { width:100%; min-height:520px; object-fit:cover; border-radius:18px; }
.dc-native-about-photo img { aspect-ratio:4/5; object-fit:cover; border-radius:12px; }
.dc-native-contact-card { margin:10px; padding:30px!important; border:1px solid rgba(255,255,255,.11); border-radius:18px; background:rgba(16,20,32,.92); }
.dc-native-gallery-section .gallery { display:grid!important; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.dc-native-gallery-section .gallery-item { width:auto!important; margin:0!important; }
.dc-native-gallery-section .gallery-icon img { width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:10px; border:0!important; }
@media(max-width:980px){
 .dc-native-title .elementor-heading-title,.dc-native-title{font-size:clamp(50px,11vw,84px)!important}
 .dc-native-gallery-section .gallery{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:650px){
 .dc-native-section{padding:58px 0}
 .dc-native-hero{min-height:680px;background-position:center center}
 .dc-native-title .elementor-heading-title,.dc-native-title{font-size:clamp(52px,16vw,76px)!important}
 .dc-native-gallery-section .gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
 .dc-native-card,.dc-native-contact-card{margin:8px 0}
}

/* v5.1 pixel-close native Elementor Home draft */
.dc-el-home-hero {
  min-height: 690px;
  overflow: hidden;
  background-position: center center !important;
}
.dc-el-home-hero > .elementor-background-overlay { opacity: 1; }
.dc-el-home-hero > .elementor-container,
.dc-el-intro > .elementor-container,
.dc-el-card-row > .elementor-container,
.dc-el-disclaimer > .elementor-container,
.dc-el-contact-section > .elementor-container { width: min(calc(100% - 36px), var(--dc-max)); }
.dc-el-home-hero .dc-hero-content > .elementor-column-wrap > .elementor-widget-wrap {
  align-content: center;
  max-width: 760px;
  padding: clamp(90px,13vw,170px) 0 clamp(70px,9vw,115px);
}
.dc-el-home-hero .dc-kicker p { margin: 0 0 12px; color:#b98cff; letter-spacing:.2em; text-transform:uppercase; font-size:13px; font-weight:700; }
.dc-el-home-hero .dc-title .elementor-heading-title {
  margin:0 0 20px;
  font-size:clamp(40px,7vw,84px);
  line-height:.98;
  letter-spacing:-.045em;
  font-weight:800;
  background:linear-gradient(90deg,#fff 0%,#e1e7ff 35%,#ab8cff 72%,#ff5dbd 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
}
.dc-el-home-hero .dc-subtitle p { max-width:760px; margin:0; color:#f0f1f9; font-size:clamp(18px,2.1vw,23px); }
.dc-el-home-hero .dc-hero-quote p { margin:16px 0 0; color:#c4b1ef; font-style:italic; font-size:20px; }
.dc-el-home-hero .dc-el-studio-line p { margin:18px 0 0; }
.dc-el-home-hero .dc-el-actions { margin-top:24px; max-width:650px; }
.dc-el-home-hero .dc-el-actions > .elementor-container { margin:0; }
.dc-el-home-hero .dc-el-actions .elementor-column { width:auto!important; margin-right:10px; }
.dc-el-home-hero .dc-el-actions .elementor-widget-wrap { padding:0!important; }
.dc-el-home-hero .dc-el-actions .elementor-button {
  min-height:48px; padding:14px 24px; border-radius:999px;
  background:linear-gradient(90deg,var(--dc-purple),var(--dc-pink));
  color:#fff; font-weight:700; text-transform:uppercase; letter-spacing:.08em;
}
.dc-el-home-hero .dc-el-actions .dc-outline .elementor-button { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.26); }
.dc-el-home-hero .dc-small p { margin:14px 0 0; color:var(--dc-muted); font-size:14px; }
.dc-el-intro { padding:clamp(66px,9vw,116px) 0; text-align:center; }
.dc-el-intro .dc-kicker p,
.dc-el-disclaimer .dc-kicker p,
.dc-el-contact-section .dc-kicker p,
.dc-el-card-row .dc-kicker p { margin:0 0 12px; color:#b98cff; letter-spacing:.2em; text-transform:uppercase; font-size:13px; font-weight:700; }
.dc-el-intro .dc-section-title .elementor-heading-title,
.dc-el-disclaimer .dc-section-title .elementor-heading-title { margin:0 0 18px; font-size:clamp(31px,4.4vw,54px); line-height:1.05; letter-spacing:-.03em; }
.dc-el-intro .dc-subtitle p { max-width:760px; margin:0 auto; color:var(--dc-muted); font-size:clamp(18px,2.1vw,23px); }
.dc-el-intro .dc-notice { max-width:900px; margin:32px auto 0; padding:18px 22px; border:1px solid rgba(185,140,255,.26); border-radius:14px; background:rgba(185,140,255,.08); color:#dfe1ec; }
.dc-el-card-row { padding:clamp(66px,9vw,116px) 0; background:rgba(0,0,0,.26); border-top:1px solid rgba(255,255,255,.06); border-bottom:1px solid rgba(255,255,255,.06); }
.dc-el-card-row .dc-el-card { overflow:hidden; border:1px solid var(--dc-line); border-radius:18px; background:linear-gradient(145deg,rgba(22,26,41,.95),rgba(9,11,18,.98)); box-shadow:0 22px 60px rgba(0,0,0,.3); }
.dc-el-card-row .dc-el-card + .dc-el-card { margin-left:28px; }
.dc-el-card-row .dc-el-card > .elementor-column-wrap > .elementor-widget-wrap { padding:0 30px 34px; align-content:flex-start; }
.dc-el-card-row .dc-card-media { margin:0 -30px 28px; width:calc(100% + 60px); }
.dc-el-card-row .dc-card-media img { display:block; width:100%; height:340px; object-fit:cover; }
.dc-el-card-row .dc-el-card-title .elementor-heading-title { margin:0 0 14px; font-size:clamp(27px,3vw,40px); letter-spacing:-.02em; }
.dc-el-card-row .dc-el-card-copy { min-height:170px; color:#d6d8e5; }
.dc-el-card-row .dc-el-card-copy p { margin:0; }
.dc-el-card-row .dc-small-button .elementor-button { padding:12px 19px; border-radius:999px; background:linear-gradient(90deg,var(--dc-purple),var(--dc-pink)); color:#fff; font-size:13px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.dc-el-quote { min-height:510px; display:flex; align-items:center; text-align:center; background-position:center center!important; background-size:cover!important; }
.dc-el-quote > .elementor-background-overlay { opacity:1; }
.dc-el-quote .dc-big-quote .elementor-heading-title { max-width:950px; margin:0 auto; color:#fff; font-family:Georgia,'Times New Roman',serif; font-style:italic; font-size:clamp(37px,6vw,76px); font-weight:500; line-height:1.1; text-shadow:0 4px 30px rgba(0,0,0,.6); }
.dc-el-disclaimer { padding:clamp(66px,9vw,116px) 0; text-align:center; }
.dc-el-disclaimer .dc-disclaimer > .elementor-widget-container { max-width:950px; margin:0 auto; padding:28px; border-radius:15px; border:1px solid var(--dc-line); background:rgba(255,255,255,.035); color:#c9ccda; text-align:center; font-size:14px; }
.dc-el-contact-section { padding:clamp(66px,9vw,116px) 0; background:linear-gradient(140deg,rgba(16,21,40,.96),rgba(8,10,17,.98)); }
.dc-el-contact-section .dc-el-contact-card { padding:32px!important; border:1px solid var(--dc-line); border-radius:18px; background:rgba(8,10,17,.72); }
.dc-el-contact-section .dc-el-contact-card + .dc-el-contact-card { margin-left:28px; }
.dc-el-contact-section .dc-el-contact-title .elementor-heading-title { margin:0 0 18px; font-size:clamp(28px,3.4vw,43px); line-height:1.08; }
.dc-el-contact-section .dc-contact-list { margin:0; padding:0; list-style:none; }
.dc-el-contact-section .dc-contact-list li { margin:10px 0; }
.dc-el-contact-section .dc-partner-logos { margin-top:30px; }
.dc-el-contact-section .dc-partner-logos > .elementor-container { align-items:center; }
.dc-el-contact-section .dc-el-partner-logo img { max-height:130px; width:auto; border-radius:8px; }
.dc-el-contact-section .dc-el-contact-form .wpcf7 { width:100%; }
@media (max-width:980px) {
  .dc-el-card-row .dc-el-card + .dc-el-card,
  .dc-el-contact-section .dc-el-contact-card + .dc-el-contact-card { margin-left:18px; }
  .dc-el-card-row .dc-card-media img { height:300px; }
}
@media (max-width:767px) {
  .dc-el-home-hero { min-height:700px; background-position:62% center!important; }
  .dc-el-home-hero .dc-hero-content > .elementor-column-wrap > .elementor-widget-wrap { padding:90px 0 70px; }
  .dc-el-home-hero .dc-el-actions .elementor-column { width:100%!important; margin:0 0 10px; }
  .dc-el-home-hero .dc-el-actions .elementor-button { width:100%; }
  .dc-el-card-row .dc-el-card + .dc-el-card,
  .dc-el-contact-section .dc-el-contact-card + .dc-el-contact-card { margin:24px 0 0; }
  .dc-el-card-row .dc-el-card-copy { min-height:0; }
  .dc-el-contact-section .dc-partner-logos .elementor-column { width:50%!important; }
}
