/*
Theme Name: Doplock Code Product
Theme URI: https://doplock.com
Description: Doplock Theme mit Card-Produkt und digitalem Code-Produkt.
Author: Doplock
Template: blocksy
Version: 2.4.4
Text Domain: doplock-blocksy-child
*/

/* Base */
:root{
  --dop-bg:#f7f5f1;
  --dop-card:#ffffff;
  --dop-text:#07070a;
  --dop-muted:#63646f;
  --dop-line:#e7e3dc;
  --dop-orange:#f97316;
  --dop-dark:#07070a;
  --dop-radius:32px;
  --dop-shadow:0 24px 70px rgba(0,0,0,.08);
}

body{
  background:var(--dop-bg);
}

/* Better Blocksy header compatibility */
.site-main{
  overflow:hidden;
}

.doplock-landing{
  background:
    radial-gradient(circle at 84% 10%, rgba(249,115,22,.08), transparent 28%),
    radial-gradient(circle at 12% 30%, rgba(255,255,255,.85), transparent 28%),
    var(--dop-bg);
  color:var(--dop-text);
}

.doplock-container{
  width:min(1180px, calc(100% - 48px));
  margin:0 auto;
}

.doplock-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 18px;
  border:1px solid #fed7aa;
  border-radius:999px;
  background:#fff7ed;
  color:#ea580c;
  font-size:14px;
  font-weight:800;
  margin-bottom:24px;
}

.doplock-btn{
  min-height:56px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  padding:0 30px;
  font-weight:900;
  text-decoration:none;
  transition:all .18s ease;
}

.doplock-btn-primary{
  background:var(--dop-dark);
  color:#fff;
}

.doplock-btn-primary:hover{
  transform:translateY(-1px);
  background:#1f1f24;
  color:#fff;
}

.doplock-btn-secondary{
  background:#fff;
  color:var(--dop-text);
  border:1px solid #d7d3cb;
}

.doplock-btn-secondary:hover{
  background:#fafafa;
  color:var(--dop-text);
}

/* Hero */
.doplock-hero{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(380px,.95fr);
  gap:76px;
  align-items:center;
  padding:96px 0 72px;
}

.doplock-hero h1{
  max-width:760px;
  margin:0 0 28px;
  font-size:clamp(68px,6.4vw,96px);
  line-height:.88;
  letter-spacing:-.08em;
  color:var(--dop-text);
}

.doplock-hero h1 span{
  display:block;
  color:#74747f;
}

.doplock-lead{
  max-width:590px;
  margin:0;
  color:var(--dop-muted);
  font-size:19px;
  line-height:1.72;
}

.doplock-actions{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-top:34px;
}

.doplock-card-frame{
  justify-self:end;
  width:100%;
  max-width:530px;
  padding:18px;
  border:1px solid rgba(0,0,0,.075);
  border-radius:36px;
  background:#fff;
  box-shadow:var(--dop-shadow);
}

.doplock-product-img{
  width:100%;
  height:auto;
  display:block;
  object-fit:contain;
  border-radius:26px;
}

/* Review bar */
.doplock-review{
  padding:0 0 26px;
}

.doplock-review-inner{
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:center;
  gap:18px 24px;
  padding:18px 24px;
  border-radius:26px;
  background:var(--dop-dark);
  color:#fff;
  box-shadow:0 18px 48px rgba(0,0,0,.12);
}

.doplock-review strong,
.doplock-review span{
  color:inherit;
}

.doplock-stars{
  color:#fb923c !important;
  margin-left:10px;
}

.doplock-review-quotes{
  display:flex;
  gap:14px;
  align-items:center;
  color:#e5e7eb;
  font-size:14px;
}

.doplock-dot{
  opacity:.5;
}

/* Sections */
.doplock-section{
  padding:76px 0;
}

.doplock-eyebrow{
  color:var(--dop-orange);
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:13px;
  font-weight:950;
  margin:0 0 14px;
}

.doplock-title{
  margin:0 0 18px;
  font-size:clamp(34px,4.5vw,56px);
  line-height:1.02;
  letter-spacing:-.06em;
  color:var(--dop-text);
}

.doplock-text{
  color:var(--dop-muted);
  font-size:18px;
  line-height:1.7;
  margin:0;
}

.doplock-panel{
  padding:42px;
  border:1px solid rgba(0,0,0,.075);
  border-radius:36px;
  background:#fff;
  box-shadow:0 18px 55px rgba(0,0,0,.06);
}

.doplock-two{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:38px;
  align-items:center;
}

.doplock-video-box{
  aspect-ratio:16/9;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:28px;
  background:#080808;
  color:#fff;
  text-align:center;
}

.doplock-play{
  width:66px;
  height:66px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:var(--dop-orange);
  margin:0 auto 16px;
  color:#fff;
  font-size:28px;
}

/* Gallery */
.doplock-gallery{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin-top:30px;
}

.doplock-gallery-item{
  aspect-ratio:4/5;
  overflow:hidden;
  border:1px solid var(--dop-line);
  border-radius:24px;
  background:#fafafa;
}

.doplock-gallery-item img{
  width:100%;
  height:100%;
  object-fit:cover;
}

/* Steps */
.doplock-steps{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
  margin-top:34px;
}

.doplock-step{
  padding:24px;
  border:1px solid var(--dop-line);
  border-radius:30px;
  background:#fff;
  box-shadow:0 16px 44px rgba(0,0,0,.045);
}

.doplock-step-img{
  aspect-ratio:4/5;
  overflow:hidden;
  border-radius:24px;
  margin-bottom:18px;
  background:#fffaf6;
}

.doplock-step-img img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.doplock-number{
  display:inline-flex;
  margin-bottom:10px;
  color:var(--dop-orange);
  font-size:13px;
  font-weight:950;
  letter-spacing:.1em;
}

.doplock-step h3,
.doplock-benefit h3{
  margin:0 0 10px;
  color:var(--dop-text);
  font-size:22px;
}

.doplock-step p,
.doplock-benefit p{
  margin:0;
  color:var(--dop-muted);
  line-height:1.65;
}

/* Benefits */
.doplock-benefits-wrap{
  background:#fff;
}

.doplock-benefits{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
  margin-top:34px;
}

.doplock-benefit{
  padding:24px;
  border:1px solid var(--dop-line);
  border-radius:30px;
  background:#fff;
}

.doplock-icon{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border-radius:16px;
  margin-bottom:18px;
  background:#ffedd5;
  color:#ea580c;
  font-weight:950;
}

/* Product */
.doplock-product{
  display:grid;
  grid-template-columns:minmax(360px,.95fr) minmax(0,1.05fr);
  gap:70px;
  align-items:center;
}

.doplock-product .doplock-card-frame{
  justify-self:start;
  max-width:560px;
}

.doplock-checks{
  list-style:none;
  padding:0;
  margin:26px 0 0;
  color:#3f3f46;
  font-weight:800;
  line-height:2;
}

/* FAQ */
.doplock-faq{
  background:var(--dop-dark);
  color:#fff;
}

.doplock-faq .doplock-title{
  color:#fff;
}

.doplock-faq details{
  padding:20px 22px;
  margin-top:14px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:22px;
  background:rgba(255,255,255,.08);
}

.doplock-faq summary{
  cursor:pointer;
  font-weight:900;
}

.doplock-faq p{
  margin:14px 0 0;
  color:#d4d4d8;
}

/* WooCommerce / Blocksy minor */
.woocommerce div.product{
  max-width:1180px;
  margin-inline:auto;
}

/* Responsive */
@media (max-width:1180px){
  .doplock-hero{
    grid-template-columns:1fr;
    gap:38px;
    padding:66px 0 50px;
  }

  .doplock-hero h1{
    font-size:clamp(58px,9vw,84px);
    max-width:780px;
  }

  .doplock-card-frame{
    justify-self:start;
    max-width:620px;
  }

  .doplock-review-inner{
    grid-template-columns:1fr;
  }

  .doplock-product,
  .doplock-two{
    grid-template-columns:1fr;
  }
}

@media (max-width:900px){
  .doplock-container{
    width:min(100% - 32px,1120px);
  }

  .doplock-section{
    padding:54px 0;
  }

  .doplock-panel{
    padding:28px;
    border-radius:30px;
  }

  .doplock-steps,
  .doplock-benefits{
    grid-template-columns:1fr;
  }

  .doplock-gallery{
    grid-template-columns:1fr 1fr;
  }
}

@media (max-width:700px){
  .doplock-container{
    width:min(100% - 28px,1120px);
  }

  .doplock-hero{
    padding:34px 0 30px;
    gap:28px;
  }

  .doplock-badge{
    width:100%;
    text-align:center;
  }

  .doplock-hero h1{
    font-size:clamp(44px,13vw,62px);
    line-height:.93;
    letter-spacing:-.075em;
    margin-bottom:22px;
  }

  .doplock-lead{
    font-size:16px;
    line-height:1.65;
  }

  .doplock-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
    margin-top:28px;
  }

  .doplock-btn{
    width:100%;
    min-height:58px;
    font-size:17px;
  }

  .doplock-card-frame{
    max-width:100%;
    padding:12px;
    border-radius:28px;
  }

  .doplock-product-img{
    border-radius:22px;
  }

  .doplock-review-inner{
    padding:18px;
    border-radius:22px;
  }

  .doplock-review-quotes{
    display:grid;
    gap:8px;
    font-size:13px;
  }

  .doplock-dot{
    display:none;
  }

  .doplock-title{
    font-size:clamp(34px,11vw,48px);
  }

  .doplock-gallery{
    grid-template-columns:1fr;
  }

  .doplock-panel{
    padding:22px;
    border-radius:28px;
  }

  .doplock-step,
  .doplock-benefit{
    padding:20px;
    border-radius:26px;
  }

  .doplock-product .doplock-card-frame{
    order:-1;
  }
}


/* =========================================================
   DOPLOCK BLOCKSY MOBILE HEADER + HERO FIX
   ========================================================= */

/* Blocksy header logo: force clean horizontal layout */
#header [data-id="logo"],
.ct-header [data-id="logo"],
.site-branding,
.site-logo-container{
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  flex-direction:row !important;
  min-width:0 !important;
}

#header [data-id="logo"] img,
.ct-header [data-id="logo"] img,
.site-logo-container img,
.site-branding img{
  width:42px !important;
  max-width:42px !important;
  height:42px !important;
  max-height:42px !important;
  object-fit:contain !important;
  display:block !important;
  border-radius:0 !important;
  box-shadow:none !important;
  background:transparent !important;
}

#header [data-id="logo"] .site-title,
.ct-header [data-id="logo"] .site-title,
.site-branding .site-title,
.site-title{
  font-size:24px !important;
  line-height:1 !important;
  font-weight:900 !important;
  letter-spacing:-.05em !important;
  white-space:nowrap !important;
  margin:0 !important;
  color:#0b0b0f !important;
}

#header .ct-container,
.ct-header .ct-container{
  min-height:74px !important;
}

/* Mobile: no stacked logo/text */
@media (max-width: 768px){
  #header [data-row],
  .ct-header [data-row]{
    min-height:74px !important;
  }

  #header [data-row] > div,
  .ct-header [data-row] > div{
    align-items:center !important;
  }

  #header [data-id="logo"],
  .ct-header [data-id="logo"],
  .site-branding{
    max-width:calc(100vw - 110px) !important;
    overflow:hidden !important;
  }

  #header [data-id="logo"] img,
  .ct-header [data-id="logo"] img,
  .site-logo-container img,
  .site-branding img{
    width:38px !important;
    max-width:38px !important;
    height:38px !important;
    max-height:38px !important;
    flex:0 0 38px !important;
  }

  #header [data-id="logo"] .site-title,
  .ct-header [data-id="logo"] .site-title,
  .site-branding .site-title,
  .site-title{
    font-size:22px !important;
    max-width:calc(100vw - 160px) !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }

  #header [data-id="trigger"],
  .ct-header [data-id="trigger"]{
    margin-left:auto !important;
  }

  #header [data-id="trigger"] .ct-icon,
  .ct-header [data-id="trigger"] .ct-icon{
    width:24px !important;
    height:24px !important;
  }
}

/* Doplock landing mobile polish */
@media (max-width: 768px){
  .doplock-container{
    width:min(100% - 30px, 1180px) !important;
  }

  .doplock-hero{
    padding:34px 0 28px !important;
    gap:26px !important;
  }

  .doplock-badge{
    width:100% !important;
    max-width:100% !important;
    text-align:center !important;
    padding:10px 14px !important;
    margin-bottom:22px !important;
    font-size:14px !important;
  }

  .doplock-hero h1{
    font-size:clamp(42px, 12vw, 58px) !important;
    line-height:.93 !important;
    letter-spacing:-.075em !important;
    margin-bottom:22px !important;
  }

  .doplock-lead{
    font-size:17px !important;
    line-height:1.62 !important;
  }

  .doplock-actions{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:12px !important;
    margin-top:28px !important;
  }

  .doplock-btn{
    width:100% !important;
    min-height:58px !important;
    font-size:17px !important;
  }

  .doplock-card-frame{
    margin-top:12px !important;
    padding:12px !important;
    border-radius:28px !important;
  }

  .doplock-product-img{
    border-radius:22px !important;
  }

  .doplock-review-inner{
    border-radius:22px !important;
    padding:18px !important;
  }

  .doplock-review-quotes{
    display:grid !important;
    gap:8px !important;
  }

  .doplock-dot{
    display:none !important;
  }

  .doplock-section{
    padding:48px 0 !important;
  }

  .doplock-panel{
    padding:22px !important;
    border-radius:28px !important;
  }

  .doplock-title{
    font-size:clamp(34px, 10vw, 46px) !important;
  }

  .doplock-gallery,
  .doplock-steps,
  .doplock-benefits{
    grid-template-columns:1fr !important;
  }
}

@media (max-width: 390px){
  #header [data-id="logo"] .site-title,
  .ct-header [data-id="logo"] .site-title,
  .site-branding .site-title,
  .site-title{
    font-size:19px !important;
  }

  .doplock-hero h1{
    font-size:38px !important;
  }

  .doplock-lead{
    font-size:16px !important;
  }
}


/* Mobile compact tiles */
@media (max-width: 768px){
  .doplock-step,
  .doplock-benefit{
    padding:16px !important;
    border-radius:22px !important;
  }

  .doplock-step-img{
    aspect-ratio: 16 / 11 !important;
    border-radius:18px !important;
    margin-bottom:14px !important;
  }

  .doplock-step h3,
  .doplock-benefit h3{
    font-size:20px !important;
    margin-bottom:6px !important;
  }

  .doplock-step p,
  .doplock-benefit p{
    font-size:15px !important;
    line-height:1.55 !important;
  }

  .doplock-steps,
  .doplock-benefits{
    gap:14px !important;
    margin-top:24px !important;
  }

  .doplock-gallery{
    gap:14px !important;
    margin-top:22px !important;
  }

  .doplock-gallery-item{
    aspect-ratio:16 / 11 !important;
    border-radius:20px !important;
  }

  .doplock-panel{
    padding:18px !important;
  }

  .doplock-section{
    padding:40px 0 !important;
  }
}

@media (max-width: 430px){
  .doplock-step-img,
  .doplock-gallery-item{
    aspect-ratio: 16 / 10 !important;
  }

  .doplock-step,
  .doplock-benefit{
    padding:14px !important;
  }
}


/* Short hero text adjustment */
.doplock-hero h1{
  max-width:680px;
}

@media (max-width:768px){
  .doplock-hero h1{
    font-size:clamp(40px, 11vw, 54px) !important;
  }
}


/* Mobile hero order: first product card, then text */
@media (max-width: 768px){
  .doplock-hero-copy{
    order:2 !important;
  }

  .doplock-hero-media{
    order:1 !important;
    justify-self:center !important;
    margin-top:0 !important;
    margin-bottom:6px !important;
  }
}


/* Badge fix */
@media (max-width: 768px){
  .doplock-badge{
    display:none !important;
  }
}

@media (min-width: 769px){
  .doplock-badge{
    display:inline-flex !important;
  }
}


/* Shop page + menu */
.doplock-shop-page{
  min-height:70vh;
}

.doplock-shop-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,.8fr);
  gap:70px;
  align-items:center;
  padding:88px 0 60px;
}

.doplock-shop-hero h1{
  margin:0 0 22px;
  font-size:clamp(54px,6vw,88px);
  line-height:.9;
  letter-spacing:-.075em;
  color:var(--dop-text);
}

.doplock-shop-actions{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-top:32px;
}

.doplock-shop-card{
  justify-self:end;
  max-width:520px;
}

.doplock-shop-box{
  display:grid;
  grid-template-columns:1fr 420px;
  gap:34px;
  align-items:start;
}

.doplock-shop-summary,
.doplock-buy-panel{
  background:#fff;
  border:1px solid var(--dop-line);
  border-radius:32px;
  padding:34px;
  box-shadow:0 18px 55px rgba(0,0,0,.06);
}

.doplock-buy-panel h3{
  margin:0 0 8px;
  font-size:28px;
  letter-spacing:-.04em;
}

.doplock-price{
  margin:0 0 18px;
  color:var(--dop-text);
  font-size:42px;
  font-weight:950;
  letter-spacing:-.06em;
}

.doplock-full-btn{
  width:100%;
  margin-top:20px;
}

.doplock-notice{
  margin-top:18px;
  padding:14px 16px;
  border:1px solid #fed7aa;
  border-radius:18px;
  background:#fff7ed;
  color:#9a3412;
  font-size:14px;
  line-height:1.45;
}

/* Hide Blocksy no-menu hint if menu creation failed visually */
#header a[href*="nav-menus.php"],
.ct-header a[href*="nav-menus.php"]{
  display:none !important;
}

@media (max-width:900px){
  .doplock-shop-hero,
  .doplock-shop-box{
    grid-template-columns:1fr;
  }

  .doplock-shop-hero{
    padding:44px 0 28px;
    gap:28px;
  }

  .doplock-shop-card{
    justify-self:start;
    max-width:100%;
    order:-1;
  }

  .doplock-shop-actions{
    display:grid;
    grid-template-columns:1fr;
  }

  .doplock-shop-summary,
  .doplock-buy-panel{
    padding:22px;
    border-radius:26px;
  }
}


/* =========================================================
   DOPLOCK MENU COLOR FIX + STRONGER CARD ANIMATION
   ========================================================= */

/* Remove ugly Blocksy blue link color */
:root{
  --theme-link-initial-color:#111111 !important;
  --theme-link-hover-color:#f97316 !important;
  --theme-palette-color-1:#f97316 !important;
  --theme-palette-color-2:#111111 !important;
}

#header a,
.ct-header a,
#header .menu a,
.ct-header .menu a,
#header [data-id="menu"] a,
.ct-header [data-id="menu"] a{
  color:#111111 !important;
  font-weight:800 !important;
  text-decoration:none !important;
}

#header a:hover,
.ct-header a:hover,
#header .menu a:hover,
.ct-header .menu a:hover,
#header [data-id="menu"] a:hover,
.ct-header [data-id="menu"] a:hover{
  color:#f97316 !important;
}

#header [data-id="logo"] .site-title,
.ct-header [data-id="logo"] .site-title,
.site-title{
  color:#111111 !important;
}

#header [data-id="trigger"],
.ct-header [data-id="trigger"]{
  color:#111111 !important;
}

#header [data-id="trigger"]:hover,
.ct-header [data-id="trigger"]:hover{
  color:#f97316 !important;
}

/* Hide Blocksy default blue "create menu" hint */
#header a[href*="nav-menus.php"],
.ct-header a[href*="nav-menus.php"]{
  display:none !important;
}

/* If no menu exists, keep header clean */
#header .ct-header-text,
.ct-header .ct-header-text{
  color:#111111 !important;
}

/* Stronger 3D card motion */
.doplock-hero{
  perspective:1200px;
}

.doplock-hero .doplock-card-frame,
.doplock-hero-media{
  transform-style:preserve-3d;
  animation:doplockCard3D 6.5s ease-in-out infinite !important;
  will-change:transform;
}

.doplock-hero .doplock-card-frame:hover,
.doplock-hero-media:hover{
  animation-play-state:paused !important;
  transform:translateY(-10px) rotateX(5deg) rotateY(-8deg) scale(1.025) !important;
  box-shadow:0 38px 100px rgba(0,0,0,.16) !important;
  border-color:rgba(249,115,22,.35) !important;
}

.doplock-hero .doplock-product-img{
  transform:translateZ(18px);
  transition:transform .35s ease, filter .35s ease;
}

.doplock-hero .doplock-card-frame:hover .doplock-product-img,
.doplock-hero-media:hover .doplock-product-img{
  transform:translateZ(28px) scale(1.018);
}

/* NFC pulse stronger but still clean */
.doplock-hero .doplock-card-frame::before,
.doplock-hero .doplock-card-frame::after,
.doplock-hero-media::before,
.doplock-hero-media::after{
  content:"";
  position:absolute;
  inset:14%;
  border-radius:999px;
  border:1px solid rgba(249,115,22,.24);
  pointer-events:none;
  opacity:0;
  transform:scale(.65);
}

.doplock-hero .doplock-card-frame::before,
.doplock-hero-media::before{
  animation:doplockNfcRing 3.6s ease-out infinite;
}

.doplock-hero .doplock-card-frame::after,
.doplock-hero-media::after{
  animation:doplockNfcRing 3.6s ease-out infinite 1.2s;
}

@keyframes doplockCard3D{
  0%{
    transform:translateY(0) rotateX(0deg) rotateY(0deg) scale(1);
  }
  22%{
    transform:translateY(-8px) rotateX(3deg) rotateY(-5deg) scale(1.01);
  }
  48%{
    transform:translateY(2px) rotateX(-3deg) rotateY(5deg) scale(1.005);
  }
  72%{
    transform:translateY(-6px) rotateX(2deg) rotateY(3deg) scale(1.012);
  }
  100%{
    transform:translateY(0) rotateX(0deg) rotateY(0deg) scale(1);
  }
}

@keyframes doplockNfcRing{
  0%{
    opacity:0;
    transform:scale(.65);
  }
  20%{
    opacity:.5;
  }
  100%{
    opacity:0;
    transform:scale(1.55);
  }
}

/* Mobile: keep animation smaller but visible */
@media (max-width:768px){
  .doplock-hero{
    perspective:900px;
  }

  .doplock-hero .doplock-card-frame,
  .doplock-hero-media{
    animation:doplockCard3DMobile 7s ease-in-out infinite !important;
  }

  .doplock-hero .doplock-card-frame::before,
  .doplock-hero .doplock-card-frame::after,
  .doplock-hero-media::before,
  .doplock-hero-media::after{
    display:none !important;
  }
}

@keyframes doplockCard3DMobile{
  0%,100%{
    transform:translateY(0) rotateX(0deg) rotateY(0deg);
  }
  35%{
    transform:translateY(-5px) rotateX(2deg) rotateY(-3deg);
  }
  70%{
    transform:translateY(2px) rotateX(-2deg) rotateY(3deg);
  }
}

@media (prefers-reduced-motion: reduce){
  .doplock-hero .doplock-card-frame,
  .doplock-hero-media,
  .doplock-hero .doplock-card-frame::before,
  .doplock-hero .doplock-card-frame::after,
  .doplock-hero-media::before,
  .doplock-hero-media::after{
    animation:none !important;
  }
}


/* Legal pages + card border cleanup */
.doplock-hero .doplock-card-frame,
.doplock-product .doplock-card-frame,
.doplock-shop-card{
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
  padding:0 !important;
  border-radius:0 !important;
}

.doplock-hero .doplock-product-img,
.doplock-product .doplock-product-img,
.doplock-shop-card .doplock-product-img{
  border-radius:28px !important;
  box-shadow:0 24px 70px rgba(0,0,0,.10);
}

.doplock-legal-page{
  min-height:70vh;
}

.doplock-legal-hero{
  padding:80px 0 24px;
}

.doplock-legal-hero h1{
  margin:0 0 18px;
  font-size:clamp(46px,6vw,82px);
  line-height:.92;
  letter-spacing:-.075em;
  color:var(--dop-text);
}

.doplock-legal-card{
  max-width:900px;
  padding:42px;
  border:1px solid var(--dop-line);
  border-radius:34px;
  background:#fff;
  box-shadow:0 18px 55px rgba(0,0,0,.06);
}

.doplock-legal-card h2{
  margin:28px 0 10px;
  font-size:26px;
  letter-spacing:-.04em;
}

.doplock-legal-card h2:first-child{
  margin-top:0;
}

.doplock-legal-card p,
.doplock-legal-card li{
  color:var(--dop-muted);
  font-size:17px;
  line-height:1.7;
}

.doplock-legal-card a{
  color:var(--dop-orange);
  font-weight:800;
}

.doplock-contact-box{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  margin:22px 0;
}

.doplock-contact-box p,
.doplock-form-placeholder{
  padding:18px;
  border:1px solid var(--dop-line);
  border-radius:22px;
  background:#faf9f6;
}

.doplock-form-placeholder{
  color:var(--dop-muted);
  font-weight:800;
  text-align:center;
}

.doplock-legal-footer{
  display:flex;
  justify-content:center;
  gap:18px;
  flex-wrap:wrap;
  padding:26px 18px;
  background:#080808;
  color:#fff;
}

.doplock-legal-footer a{
  color:#fff !important;
  text-decoration:none;
  font-size:14px;
  font-weight:800;
}

.doplock-legal-footer a:hover{
  color:#f97316 !important;
}

@media (max-width:768px){
  .doplock-legal-hero{
    padding:44px 0 12px;
  }

  .doplock-legal-card{
    padding:22px;
    border-radius:26px;
  }

  .doplock-contact-box{
    grid-template-columns:1fr;
  }

  .doplock-hero .doplock-product-img,
  .doplock-product .doplock-product-img,
  .doplock-shop-card .doplock-product-img{
    border-radius:22px !important;
  }
}


/* === Doplock selected animation option === */

/* Smaller card global adjustment */
.doplock-hero .doplock-card-frame,.doplock-hero-media{width:100%!important;justify-self:center!important}
.doplock-product .doplock-card-frame,.doplock-shop-card{max-width:460px!important}
@media (max-width:768px){
  .doplock-hero .doplock-card-frame,.doplock-hero-media{max-width:86%!important;margin-inline:auto!important}
  .doplock-product .doplock-card-frame,.doplock-shop-card{max-width:88%!important;margin-inline:auto!important}
}
@media (prefers-reduced-motion:reduce){
  .doplock-hero .doplock-card-frame,.doplock-hero-media,.doplock-hero .doplock-card-frame::before,.doplock-hero .doplock-card-frame::after,.doplock-hero-media::before,.doplock-hero-media::after{animation:none!important;transition:none!important}
}


.doplock-hero .doplock-card-frame,.doplock-hero-media{max-width:420px!important;animation:doplockMagnetic 7s cubic-bezier(.45,0,.25,1) infinite!important;transform-origin:center center!important}
.doplock-hero .doplock-card-frame:hover,.doplock-hero-media:hover{animation-play-state:paused!important;transform:translate3d(0,-12px,0) rotateX(7deg) rotateY(8deg) scale(1.035)!important;filter:drop-shadow(0 30px 45px rgba(0,0,0,.18))!important}
@keyframes doplockMagnetic{0%,100%{transform:translate3d(0,0,0) rotateX(0) rotateY(0) rotateZ(0)}20%{transform:translate3d(-5px,-7px,0) rotateX(4deg) rotateY(-6deg) rotateZ(-.4deg)}45%{transform:translate3d(5px,-2px,0) rotateX(-2deg) rotateY(6deg) rotateZ(.5deg)}70%{transform:translate3d(0,-9px,0) rotateX(3deg) rotateY(2deg) rotateZ(-.2deg)}}



/* === Gallery full-image fix (Apple/Safari friendly) === */
.doplock-gallery{
  align-items:start !important;
}

.doplock-gallery-item{
  aspect-ratio:auto !important;
  min-height:0 !important;
  padding:18px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:#fafafa !important;
}

.doplock-gallery-item img{
  width:100% !important;
  height:auto !important;
  max-width:100% !important;
  max-height:none !important;
  display:block !important;
  object-fit:contain !important;
  -webkit-transform:translateZ(0);
  transform:translateZ(0);
}

@media (max-width:768px){
  .doplock-gallery-item{
    padding:12px !important;
  }
}


/* Extra mobile card size reduction */
@media (max-width:768px){
  .doplock-hero .doplock-card-frame,
  .doplock-hero-media{
    max-width:68% !important;
    margin-inline:auto !important;
  }

  .doplock-product .doplock-card-frame,
  .doplock-shop-card{
    max-width:76% !important;
    margin-inline:auto !important;
  }
}


/* Extra-extra mobile size reduction: hero smaller, product/shop also smaller */
@media (max-width:768px){
  .doplock-hero .doplock-card-frame,
  .doplock-hero-media{
    max-width:56% !important;
    margin-inline:auto !important;
  }

  .doplock-product .doplock-card-frame,
  .doplock-shop-card{
    max-width:64% !important;
    margin-inline:auto !important;
  }
}

@media (max-width:430px){
  .doplock-hero .doplock-card-frame,
  .doplock-hero-media{
    max-width:50% !important;
  }

  .doplock-product .doplock-card-frame,
  .doplock-shop-card{
    max-width:58% !important;
  }
}


/* Sticky header fix */
#header,
.ct-header,
[data-device="desktop"] .ct-header,
[data-device="mobile"] .ct-header{
  position:sticky !important;
  top:0 !important;
  z-index:99999 !important;
  background:#ffffff !important;
  box-shadow:0 8px 28px rgba(0,0,0,.055) !important;
}

#header [data-row],
.ct-header [data-row]{
  background:#ffffff !important;
}

html{
  scroll-padding-top:96px !important;
}

@media (max-width:768px){
  html{
    scroll-padding-top:82px !important;
  }

  #header,
  .ct-header{
    box-shadow:0 6px 22px rgba(0,0,0,.06) !important;
  }
}


/* Rebalanced mobile card sizing */
@media (max-width: 768px){
  .doplock-hero .doplock-card-frame,
  .doplock-hero-media{
    max-width: 82% !important;
    margin-inline: auto !important;
    margin-top: 4px !important;
    margin-bottom: 6px !important;
  }

  .doplock-product .doplock-card-frame,
  .doplock-shop-card{
    max-width: 86% !important;
    margin-inline: auto !important;
    margin-top: 6px !important;
  }
}

@media (max-width: 430px){
  .doplock-hero .doplock-card-frame,
  .doplock-hero-media{
    max-width: 88% !important;
    margin-inline: auto !important;
  }

  .doplock-product .doplock-card-frame,
  .doplock-shop-card{
    max-width: 90% !important;
    margin-inline: auto !important;
  }
}


/* Doplock code product */
.doplock-shop-products{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px;
  margin-top:28px;
}

.doplock-product-choice{
  padding:26px;
  border:1px solid var(--dop-line);
  border-radius:28px;
  background:#fff;
  box-shadow:0 14px 38px rgba(0,0,0,.055);
}

.doplock-product-choice h3{
  margin:0 0 8px;
  font-size:28px;
  letter-spacing:-.04em;
}

.doplock-product-tag{
  display:inline-flex;
  align-items:center;
  padding:7px 12px;
  border-radius:999px;
  background:#fff7ed;
  color:#ea580c;
  font-size:12px;
  font-weight:900;
  margin-bottom:16px;
}

.doplock-code-box{
  display:grid;
  place-items:center;
  min-height:210px;
  border-radius:24px;
  background:linear-gradient(135deg,#111,#2b2b31);
  color:#fff;
  text-align:center;
  margin-bottom:18px;
  position:relative;
  overflow:hidden;
}

.doplock-code-box::before{
  content:"";
  position:absolute;
  width:180px;
  height:180px;
  border-radius:999px;
  border:1px solid rgba(249,115,22,.35);
  animation:doplockCodePulse 3.4s ease-out infinite;
}

.doplock-code-box strong{
  position:relative;
  z-index:1;
  display:block;
  font-size:32px;
  letter-spacing:-.05em;
}

.doplock-code-box span{
  position:relative;
  z-index:1;
  display:block;
  margin-top:6px;
  color:#d4d4d8;
  font-size:14px;
}

@keyframes doplockCodePulse{
  0%{transform:scale(.72);opacity:0}
  25%{opacity:.55}
  100%{transform:scale(1.55);opacity:0}
}

@media (max-width:900px){
  .doplock-shop-products{
    grid-template-columns:1fr;
  }

  .doplock-product-choice{
    padding:20px;
    border-radius:24px;
  }

  .doplock-code-box{
    min-height:170px;
  }
}


/* Code product v2 */
.doplock-shop-products{
  align-items:stretch;
}

.doplock-product-choice{
  display:flex;
  flex-direction:column;
  height:100%;
}

.doplock-product-choice .doplock-text{
  margin-bottom:0;
}

.doplock-product-media{
  width:100%;
  aspect-ratio: 1.72 / 1;
  margin-bottom:20px;
}

.doplock-product-media .doplock-card-frame,
.doplock-product-media .doplock-code-box{
  width:100%;
  height:100%;
  max-width:none;
  margin:0;
}

.doplock-product-media .doplock-card-frame{
  display:flex;
  align-items:center;
  justify-content:center;
}

.doplock-product-media .doplock-product-img{
  width:100%;
  height:100%;
  object-fit:contain;
}

.doplock-code-box{
  min-height:0;
  border-radius:28px;
  background:
    radial-gradient(circle at 30% 35%, rgba(249,115,22,.14), transparent 26%),
    linear-gradient(135deg,#101114 0%, #1c1f27 48%, #2b2f3b 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}

.doplock-code-box::before{
  width:280px;
  height:280px;
  border-color:rgba(249,115,22,.18);
  animation:doplockCodePulse 4.2s ease-out infinite;
}

.doplock-code-box::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(115deg, transparent 0 36%, rgba(255,255,255,.045) 50%, transparent 64%),
    linear-gradient(transparent, transparent);
  transform:translateX(-45%);
  animation:doplockCodeSweep 5.8s ease-in-out infinite;
}

.doplock-code-box__grid,
.doplock-code-box__rings,
.doplock-code-box__content{
  position:relative;
  z-index:1;
}

.doplock-code-box__grid{
  position:absolute;
  inset:18px;
  border-radius:22px;
  background-image:
    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size:22px 22px;
  mask-image:linear-gradient(to bottom, rgba(0,0,0,.14), rgba(0,0,0,.65));
}

.doplock-code-box__rings{
  position:absolute;
  width:280px;
  height:280px;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  border-radius:50%;
  border:1px solid rgba(249,115,22,.14);
  box-shadow:0 0 0 26px rgba(249,115,22,.05), 0 0 0 58px rgba(249,115,22,.03);
}

.doplock-code-box__content{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  text-align:center;
  padding:24px;
  height:100%;
}

.doplock-code-icon{
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border-radius:18px;
  background:rgba(255,255,255,.08);
  color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08), 0 14px 24px rgba(0,0,0,.22);
  backdrop-filter: blur(4px);
}

.doplock-code-icon svg{
  width:30px;
  height:30px;
  display:block;
}

.doplock-code-box strong{
  font-size:22px;
  margin-top:2px;
}

.doplock-code-box span{
  margin-top:0;
  font-size:14px;
}

.doplock-code-mini{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:center;
  margin-top:6px;
}

.doplock-code-mini em{
  font-style:normal;
  font-size:11px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:#f3f4f6;
  background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.08);
  border-radius:999px;
  padding:6px 10px;
}

.doplock-full-btn{
  margin-top:auto;
}

@keyframes doplockCodeSweep{
  0%,100%{transform:translateX(-45%)}
  50%{transform:translateX(45%)}
}

@media (max-width:900px){
  .doplock-product-media{
    aspect-ratio:1.62 / 1;
  }

  .doplock-code-box__rings{
    width:220px;
    height:220px;
    box-shadow:0 0 0 18px rgba(249,115,22,.05), 0 0 0 40px rgba(249,115,22,.03);
  }

  .doplock-code-box::before{
    width:220px;
    height:220px;
  }

  .doplock-code-icon{
    width:50px;
    height:50px;
    border-radius:16px;
  }

  .doplock-code-icon svg{
    width:26px;
    height:26px;
  }

  .doplock-code-box strong{
    font-size:20px;
  }
}


/* =========================================================
   MOBILE SIDEBAR RESET (STANDARD BLOCKSY BEHAVIOUR + VISIBLE COLOR)
   ========================================================= */
@media (max-width: 999px){
  /* only keep a visible dark overlay */
  .ct-backdrop,
  #offcanvas .ct-backdrop,
  .ct-panel-actions .ct-backdrop,
  .ct-sidebar-modal .ct-backdrop,
  [data-behaviour*="side"] .ct-backdrop{
    background:rgba(7, 10, 16, .52) !important;
    opacity:1 !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }

  /* use simple clean white panel so everything stays visible */
  #offcanvas .ct-panel,
  #offcanvas .ct-panel-content,
  #offcanvas .ct-panel-inner,
  .ct-sidebar-modal .ct-panel,
  .ct-sidebar-modal .ct-panel-content,
  .ct-sidebar-modal .ct-panel-inner{
    background:#ffffff !important;
    box-shadow:none !important;
    border:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }
}

/* =========================================================
   SIMPLE CODE PRODUCT LOOK
   ========================================================= */
.doplock-product-media-code .doplock-code-box,
.doplock-code-ticket{
  position:relative;
  display:flex !important;
  flex-direction:column;
  justify-content:space-between;
  min-height:100%;
  padding:22px;
  border-radius:28px;
  background:linear-gradient(180deg, #ffffff 0%, #faf8f4 100%) !important;
  border:1px solid rgba(17,17,17,.08);
  box-shadow:0 14px 34px rgba(0,0,0,.06);
  color:#111111 !important;
  overflow:hidden;
}

.doplock-code-ticket::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:50%;
  border-top:1px dashed rgba(17,17,17,.14);
}

.doplock-code-ticket::after{
  content:"";
  position:absolute;
  inset:12px;
  border-radius:20px;
  border:1px solid rgba(17,17,17,.05);
  pointer-events:none;
}

.doplock-code-ticket__top,
.doplock-code-ticket__bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  position:relative;
  z-index:1;
}

.doplock-code-ticket__middle{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:10px;
  position:relative;
  z-index:1;
  padding:20px 0;
}

.doplock-code-label,
.doplock-code-status,
.doplock-code-ticket__bottom span{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:0 12px;
  border-radius:999px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.02em;
}

.doplock-code-label{
  background:#111111;
  color:#ffffff;
}

.doplock-code-status,
.doplock-code-ticket__bottom span{
  background:#fff;
  border:1px solid rgba(17,17,17,.08);
  color:#4b5563;
}

.doplock-code-string{
  display:block;
  width:100%;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size:clamp(22px, 2vw, 28px);
  line-height:1.15;
  font-weight:800;
  letter-spacing:.08em;
  color:#111111;
  background:#fff;
  border:1px solid rgba(17,17,17,.08);
  border-radius:16px;
  padding:16px 18px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5);
}

.doplock-code-note{
  font-size:14px;
  line-height:1.45;
  color:#6b7280;
}

/* kill old complex visual pieces if any remain */
.doplock-code-box__grid,
.doplock-code-box__rings,
.doplock-code-box__content,
.doplock-code-box::before,
.doplock-code-box::after,
.doplock-code-icon,
.doplock-code-mini{
  display:none !important;
}

@media (max-width: 900px){
  .doplock-code-ticket{
    padding:18px;
    border-radius:24px;
  }

  .doplock-code-ticket__top,
  .doplock-code-ticket__bottom{
    flex-wrap:wrap;
  }

  .doplock-code-string{
    font-size:20px;
    padding:14px 14px;
  }
}

/* =========================================================
   MOBILE SIDEBAR HARD FIX
   clean instant offcanvas, no broken slider strips
   ========================================================= */
@media (max-width: 999px){
  html body .ct-backdrop,
  html body #offcanvas .ct-backdrop,
  html body .ct-sidebar-modal .ct-backdrop,
  html body [data-behaviour*="side"] .ct-backdrop{
    background: rgba(9, 12, 18, 0.58) !important;
    opacity: 1 !important;
    visibility: visible !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  html body #offcanvas,
  html body .ct-sidebar-modal,
  html body [data-behaviour*="side"]{
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  html body #offcanvas .ct-panel,
  html body #offcanvas .ct-panel-content,
  html body #offcanvas .ct-panel-inner,
  html body .ct-sidebar-modal .ct-panel,
  html body .ct-sidebar-modal .ct-panel-content,
  html body .ct-sidebar-modal .ct-panel-inner{
    background: #ffffff !important;
    color: #111111 !important;
    width: min(88vw, 360px) !important;
    max-width: min(88vw, 360px) !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: -18px 0 40px rgba(0,0,0,.10) !important;
    margin-left: auto !important;
    transform: translate3d(0,0,0) !important;
    transition: opacity .2s ease !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
  }

  html body #offcanvas .ct-panel::before,
  html body #offcanvas .ct-panel::after,
  html body #offcanvas .ct-panel-content::before,
  html body #offcanvas .ct-panel-content::after,
  html body #offcanvas .ct-panel-inner::before,
  html body #offcanvas .ct-panel-inner::after,
  html body .ct-sidebar-modal .ct-panel::before,
  html body .ct-sidebar-modal .ct-panel::after,
  html body .ct-sidebar-modal .ct-panel-content::before,
  html body .ct-sidebar-modal .ct-panel-content::after,
  html body .ct-sidebar-modal .ct-panel-inner::before,
  html body .ct-sidebar-modal .ct-panel-inner::after{
    content: none !important;
    display: none !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  html body #offcanvas [class*="menu"],
  html body .ct-sidebar-modal [class*="menu"]{
    background: transparent !important;
    box-shadow: none !important;
  }

  html body #offcanvas a,
  html body #offcanvas button,
  html body .ct-sidebar-modal a,
  html body .ct-sidebar-modal button{
    color: #111111 !important;
    opacity: 1 !important;
  }

  html body #offcanvas .sub-menu,
  html body .ct-sidebar-modal .sub-menu{
    background: transparent !important;
  }
}


/* FAQ section */
.doplock-faq-home .doplock-title{
  margin-bottom:28px;
}

.doplock-faq-list{
  display:grid;
  gap:14px;
}

.doplock-faq-item{
  border:1px solid var(--dop-line);
  border-radius:24px;
  background:#fff;
  box-shadow:0 12px 34px rgba(0,0,0,.045);
  overflow:hidden;
}

.doplock-faq-item summary{
  cursor:pointer;
  list-style:none;
  padding:22px 24px;
  color:var(--dop-text);
  font-size:20px;
  font-weight:900;
  letter-spacing:-.035em;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}

.doplock-faq-item summary::-webkit-details-marker{
  display:none;
}

.doplock-faq-item summary::after{
  content:"+";
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  flex:0 0 32px;
  border-radius:999px;
  background:#fff7ed;
  color:#f97316;
  font-size:22px;
  font-weight:900;
}

.doplock-faq-item[open] summary::after{
  content:"–";
  background:#111;
  color:#fff;
}

.doplock-faq-item p{
  margin:0;
  padding:0 24px 24px;
  color:var(--dop-muted);
  font-size:17px;
  line-height:1.65;
}

.doplock-faq-more{
  margin-top:24px;
  display:flex;
  justify-content:center;
}

.doplock-faq-page-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 360px;
  gap:28px;
  align-items:start;
}

.doplock-faq-side{
  position:sticky;
  top:110px;
  padding:28px;
  border:1px solid var(--dop-line);
  border-radius:28px;
  background:#fff;
  box-shadow:0 16px 42px rgba(0,0,0,.055);
}

.doplock-faq-side h2{
  margin:0 0 12px;
  font-size:30px;
  letter-spacing:-.05em;
}

.doplock-faq-side p{
  color:var(--dop-muted);
  line-height:1.6;
  margin-bottom:22px;
}

@media (max-width:900px){
  .doplock-faq-page-grid{
    grid-template-columns:1fr;
  }

  .doplock-faq-side{
    position:static;
  }

  .doplock-faq-item summary{
    padding:18px 18px;
    font-size:18px;
  }

  .doplock-faq-item p{
    padding:0 18px 18px;
    font-size:16px;
  }
}


/* =========================================================
   FINAL MOBILE MENU FIX
   full clean panel, no broken slider crop
   ========================================================= */
@media (max-width: 999px){
  html body .ct-backdrop,
  html body #offcanvas .ct-backdrop,
  html body .ct-sidebar-modal .ct-backdrop{
    background: rgba(7, 10, 16, .46) !important;
    opacity: 1 !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  html body #offcanvas .ct-panel,
  html body #offcanvas .ct-panel-content,
  html body #offcanvas .ct-panel-inner,
  html body .ct-sidebar-modal .ct-panel,
  html body .ct-sidebar-modal .ct-panel-content,
  html body .ct-sidebar-modal .ct-panel-inner{
    background: #ffffff !important;
    color: #111111 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    min-width: 100vw !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    margin: 0 !important;
    padding: 0 !important;
    left: 0 !important;
    right: 0 !important;
    transform: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  html body #offcanvas .ct-panel-content,
  html body #offcanvas .ct-panel-inner,
  html body .ct-sidebar-modal .ct-panel-content,
  html body .ct-sidebar-modal .ct-panel-inner{
    padding: 22px 28px 34px !important;
  }

  html body #offcanvas .ct-panel::before,
  html body #offcanvas .ct-panel::after,
  html body #offcanvas .ct-panel-content::before,
  html body #offcanvas .ct-panel-content::after,
  html body #offcanvas .ct-panel-inner::before,
  html body #offcanvas .ct-panel-inner::after{
    display: none !important;
    content: none !important;
  }

  html body #offcanvas [data-id="logo"],
  html body #offcanvas .site-branding,
  html body .ct-sidebar-modal [data-id="logo"],
  html body .ct-sidebar-modal .site-branding{
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    min-height: 76px !important;
    margin-bottom: 20px !important;
    border-bottom: 1px solid rgba(17,17,17,.08) !important;
  }

  html body #offcanvas .site-title,
  html body .ct-sidebar-modal .site-title{
    color:#111111 !important;
    font-size: 28px !important;
    font-weight: 900 !important;
    letter-spacing: -.055em !important;
  }

  html body #offcanvas .ct-toggle-close,
  html body #offcanvas .ct-close-button,
  html body .ct-sidebar-modal .ct-toggle-close,
  html body .ct-sidebar-modal .ct-close-button{
    width: 46px !important;
    height: 46px !important;
    color: #111111 !important;
    background: #f4f4f5 !important;
    border-radius: 999px !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  html body #offcanvas .mobile-menu,
  html body #offcanvas .menu,
  html body .ct-sidebar-modal .mobile-menu,
  html body .ct-sidebar-modal .menu{
    display: grid !important;
    gap: 10px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
  }

  html body #offcanvas .mobile-menu li,
  html body #offcanvas .menu li,
  html body .ct-sidebar-modal .mobile-menu li,
  html body .ct-sidebar-modal .menu li{
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  html body #offcanvas .mobile-menu a,
  html body #offcanvas .menu a,
  html body .ct-sidebar-modal .mobile-menu a,
  html body .ct-sidebar-modal .menu a{
    display: block !important;
    padding: 15px 16px !important;
    border-radius: 18px !important;
    background: #fafafa !important;
    border: 1px solid rgba(17,17,17,.06) !important;
    color: #111111 !important;
    font-size: 22px !important;
    font-weight: 900 !important;
    letter-spacing: -.045em !important;
    line-height: 1.1 !important;
    text-decoration: none !important;
  }

  html body #offcanvas .mobile-menu a:hover,
  html body #offcanvas .menu a:hover,
  html body .ct-sidebar-modal .mobile-menu a:hover,
  html body .ct-sidebar-modal .menu a:hover{
    color: #f97316 !important;
    background: #fff7ed !important;
  }
}


/* COMPLETE UPDATE: OWN MOBILE MENU, TRUST, SHOP INFO, FAQ GROUPS */
@media (max-width: 999px){
  #header .ct-header-trigger,
  .ct-header .ct-header-trigger,
  [data-id="trigger"],
  [data-id="menu-trigger"]{
    display:none !important;
  }

  .doplock-mobile-menu-button{
    display:flex !important;
  }

  #offcanvas,
  .ct-sidebar-modal{
    display:none !important;
  }
}

@media (min-width: 1000px){
  .doplock-mobile-menu-button,
  .doplock-mobile-menu-overlay{
    display:none !important;
  }
}

.doplock-mobile-menu-button{
  position:fixed;
  top:18px;
  right:18px;
  z-index:100000;
  width:48px;
  height:48px;
  border:0;
  border-radius:999px;
  background:#111;
  box-shadow:0 14px 32px rgba(0,0,0,.16);
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
  cursor:pointer;
}

.doplock-mobile-menu-button span{
  width:20px;
  height:2px;
  background:#fff;
  border-radius:999px;
  display:block;
}

.doplock-mobile-menu-overlay{
  position:fixed;
  inset:0;
  z-index:100001;
  background:rgba(8,10,14,.42);
  opacity:0;
  pointer-events:none;
  transition:opacity .22s ease;
}

.doplock-mobile-menu-overlay.is-open{
  opacity:1;
  pointer-events:auto;
}

.doplock-mobile-menu-panel{
  min-height:100dvh;
  width:100%;
  background:#fff;
  transform:translateY(16px);
  transition:transform .24s cubic-bezier(.22,1,.36,1);
  padding:26px;
  overflow-y:auto;
}

.doplock-mobile-menu-overlay.is-open .doplock-mobile-menu-panel{
  transform:translateY(0);
}

.doplock-menu-open{
  overflow:hidden;
}

.doplock-mobile-menu-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding-bottom:22px;
  border-bottom:1px solid rgba(17,17,17,.08);
}

.doplock-mobile-menu-brand{
  display:flex;
  align-items:center;
  gap:14px;
  color:#111 !important;
  text-decoration:none;
  font-weight:950;
  font-size:28px;
  letter-spacing:-.06em;
}

.doplock-mobile-menu-brand img{
  width:42px;
  height:42px;
  object-fit:contain;
}

.doplock-mobile-menu-close{
  width:48px;
  height:48px;
  border:0;
  border-radius:999px;
  background:#f4f4f5;
  color:#111;
  font-size:34px;
  line-height:1;
  cursor:pointer;
}

.doplock-mobile-menu-nav{
  display:grid;
  gap:10px;
  margin:28px 0;
}

.doplock-mobile-menu-nav a{
  display:block;
  padding:18px 18px;
  border:1px solid rgba(17,17,17,.07);
  border-radius:20px;
  background:#fafafa;
  color:#111 !important;
  text-decoration:none;
  font-size:24px;
  line-height:1.05;
  font-weight:950;
  letter-spacing:-.055em;
}

.doplock-mobile-menu-nav a:hover{
  background:#fff7ed;
  color:#f97316 !important;
}

.doplock-mobile-menu-cta .doplock-btn{
  width:100%;
}

.doplock-trust-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:18px;
  margin-top:28px;
}

.doplock-trust-card{
  border:1px solid var(--dop-line);
  border-radius:28px;
  background:#fff;
  padding:26px;
  box-shadow:0 14px 38px rgba(0,0,0,.045);
}

.doplock-trust-card span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:40px;
  height:40px;
  border-radius:999px;
  background:#fff7ed;
  color:#f97316;
  font-weight:950;
  margin-bottom:18px;
}

.doplock-trust-card h3{
  margin:0 0 10px;
  font-size:24px;
  letter-spacing:-.04em;
}

.doplock-trust-card p{
  margin:0;
  color:var(--dop-muted);
  line-height:1.6;
}

.doplock-trust-card a{
  color:#f97316;
  font-weight:900;
}

.doplock-shop-info{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin-top:34px;
}

.doplock-shop-info > div{
  border:1px solid var(--dop-line);
  border-radius:26px;
  padding:24px;
  background:#fff;
}

.doplock-shop-info h3{
  margin:0 0 8px;
  font-size:22px;
  letter-spacing:-.04em;
}

.doplock-shop-info p{
  color:var(--dop-muted);
  line-height:1.6;
  margin:0;
}

.doplock-faq-groups{
  display:grid;
  gap:34px;
}

.doplock-faq-group h2{
  margin:0 0 16px;
  font-size:32px;
  letter-spacing:-.055em;
}

@media (max-width:1100px){
  .doplock-trust-grid{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
}

@media (max-width:768px){
  .doplock-mobile-menu-button{
    top:16px;
    right:16px;
    width:46px;
    height:46px;
  }

  .doplock-mobile-menu-panel{
    padding:22px;
  }

  .doplock-mobile-menu-brand{
    font-size:24px;
  }

  .doplock-mobile-menu-nav a{
    font-size:22px;
    padding:17px 16px;
  }

  .doplock-trust-grid,
  .doplock-shop-info{
    grid-template-columns:1fr;
  }

  .doplock-trust-card,
  .doplock-shop-info > div{
    padding:22px;
    border-radius:24px;
  }
}


/* DOPLOCK GUIDE CHATBOT */
.doplock-guide-button{
  position:fixed;
  right:22px;
  bottom:22px;
  z-index:100002;
  min-height:52px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:0 18px;
  border:0;
  border-radius:999px;
  background:#111;
  color:#fff;
  font-size:15px;
  font-weight:900;
  box-shadow:0 18px 44px rgba(0,0,0,.18);
  cursor:pointer;
}

.doplock-guide-button-dot{
  width:10px;
  height:10px;
  border-radius:999px;
  background:#f97316;
  box-shadow:0 0 0 6px rgba(249,115,22,.18);
}

.doplock-guide-widget{
  position:fixed;
  right:22px;
  bottom:88px;
  z-index:100003;
  width:min(390px, calc(100vw - 28px));
  opacity:0;
  transform:translateY(12px) scale(.98);
  pointer-events:none;
  transition:opacity .18s ease, transform .18s ease;
}

.doplock-guide-widget.is-open{
  opacity:1;
  transform:translateY(0) scale(1);
  pointer-events:auto;
}

.doplock-guide-card{
  overflow:hidden;
  border:1px solid rgba(17,17,17,.08);
  border-radius:28px;
  background:#fff;
  box-shadow:0 26px 80px rgba(0,0,0,.18);
}

.doplock-guide-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:20px;
  background:#111;
  color:#fff;
}

.doplock-guide-head strong{
  display:block;
  font-size:20px;
  letter-spacing:-.04em;
}

.doplock-guide-head span{
  display:block;
  margin-top:5px;
  color:#d4d4d8;
  font-size:13px;
  line-height:1.4;
}

.doplock-guide-head button{
  width:34px;
  height:34px;
  border:0;
  border-radius:999px;
  background:rgba(255,255,255,.1);
  color:#fff;
  font-size:26px;
  line-height:1;
  cursor:pointer;
}

.doplock-guide-messages{
  max-height:260px;
  overflow-y:auto;
  padding:16px;
  display:grid;
  gap:10px;
  background:#fafafa;
}

.doplock-guide-message{
  max-width:88%;
  padding:12px 14px;
  border-radius:18px;
  font-size:14px;
  line-height:1.45;
}

.doplock-guide-message-bot{
  justify-self:start;
  background:#fff;
  color:#111;
  border:1px solid rgba(17,17,17,.07);
}

.doplock-guide-message-user{
  justify-self:end;
  background:#111;
  color:#fff;
}

.doplock-guide-quick{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  padding:14px 16px 4px;
  background:#fff;
}

.doplock-guide-quick button{
  border:1px solid rgba(249,115,22,.18);
  border-radius:999px;
  background:#fff7ed;
  color:#ea580c;
  padding:8px 11px;
  font-size:12px;
  font-weight:850;
  cursor:pointer;
}

.doplock-guide-form{
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px;
  padding:14px 16px 16px;
  background:#fff;
}

.doplock-guide-form input{
  min-height:44px;
  border:1px solid rgba(17,17,17,.12);
  border-radius:999px;
  padding:0 14px;
  font-size:14px;
  outline:none;
}

.doplock-guide-form input:focus{
  border-color:#f97316;
}

.doplock-guide-form button{
  min-height:44px;
  border:0;
  border-radius:999px;
  padding:0 16px;
  background:#111;
  color:#fff;
  font-weight:900;
  cursor:pointer;
}

@media (max-width:768px){
  .doplock-guide-button{
    right:16px;
    bottom:16px;
    min-height:48px;
    padding:0 15px;
  }

  .doplock-guide-widget{
    right:14px;
    bottom:76px;
    width:calc(100vw - 28px);
  }

  .doplock-guide-card{
    border-radius:24px;
  }

  .doplock-guide-messages{
    max-height:240px;
  }
}


/* Hide search bar / search icon */
#header [data-id="search"],
.ct-header [data-id="search"],
#header .ct-header-search,
.ct-header .ct-header-search,
#header .search-form,
.ct-header .search-form,
#header .wp-block-search,
.ct-header .wp-block-search,
.site-header .search-form,
.site-header .wp-block-search,
.ct-search-box,
.ct-search-trigger,
button[data-toggle-panel="#search-modal"],
a[data-toggle-panel="#search-modal"]{
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

#search-modal,
.ct-search-modal,
.ct-panel[data-behaviour*="search"]{
  display:none !important;
}


/* Doplock Guide size + header overlap fix */
.doplock-guide-widget{
  width:min(330px, calc(100vw - 36px)) !important;
  right:20px !important;
  bottom:84px !important;
  top:auto !important;
}

.doplock-guide-card{
  max-height:min(620px, calc(100vh - 130px)) !important;
  display:flex !important;
  flex-direction:column !important;
  border-radius:24px !important;
}

.doplock-guide-head{
  padding:16px 18px !important;
  flex:0 0 auto !important;
}

.doplock-guide-head strong{
  font-size:18px !important;
}

.doplock-guide-head span{
  font-size:12px !important;
  line-height:1.35 !important;
}

.doplock-guide-messages{
  max-height:220px !important;
  flex:1 1 auto !important;
}

.doplock-guide-message{
  font-size:13px !important;
  padding:10px 12px !important;
  border-radius:16px !important;
}

.doplock-guide-quick{
  max-height:118px !important;
  overflow-y:auto !important;
  padding:12px 14px 4px !important;
}

.doplock-guide-quick button{
  font-size:11px !important;
  padding:7px 10px !important;
}

.doplock-guide-form{
  padding:12px 14px 14px !important;
  flex:0 0 auto !important;
}

.doplock-guide-form input,
.doplock-guide-form button{
  min-height:40px !important;
  font-size:13px !important;
}

.doplock-guide-button{
  min-height:48px !important;
  right:20px !important;
  bottom:20px !important;
  font-size:14px !important;
  padding:0 16px !important;
}

@media (max-width:768px){
  .doplock-guide-widget{
    width:calc(100vw - 32px) !important;
    left:16px !important;
    right:16px !important;
    bottom:76px !important;
    top:96px !important;
  }

  .doplock-guide-card{
    max-height:calc(100vh - 120px) !important;
    border-radius:22px !important;
  }

  .doplock-guide-head{
    padding:14px 16px !important;
  }

  .doplock-guide-head strong{
    font-size:17px !important;
  }

  .doplock-guide-head span{
    font-size:12px !important;
  }

  .doplock-guide-head button{
    width:34px !important;
    height:34px !important;
    font-size:24px !important;
  }

  .doplock-guide-messages{
    max-height:180px !important;
    padding:12px !important;
  }

  .doplock-guide-message{
    font-size:13px !important;
    max-width:90% !important;
  }

  .doplock-guide-quick{
    max-height:104px !important;
    padding:10px 12px 2px !important;
  }

  .doplock-guide-form{
    grid-template-columns:1fr !important;
    gap:8px !important;
    padding:10px 12px 12px !important;
  }

  .doplock-guide-form input,
  .doplock-guide-form button{
    width:100% !important;
    min-height:40px !important;
  }

  .doplock-guide-button{
    right:14px !important;
    bottom:14px !important;
    min-height:44px !important;
    font-size:13px !important;
    padding:0 14px !important;
  }
}

@media (max-width:420px){
  .doplock-guide-widget{
    top:88px !important;
    bottom:68px !important;
  }

  .doplock-guide-card{
    max-height:calc(100vh - 112px) !important;
  }

  .doplock-guide-quick{
    max-height:86px !important;
  }

  .doplock-guide-messages{
    max-height:160px !important;
  }
}


/* Doplock Guide content update */
.doplock-guide-quick{
  max-height:150px !important;
}

.doplock-guide-quick button{
  white-space:nowrap;
}

@media (max-width:768px){
  .doplock-guide-quick{
    max-height:128px !important;
  }
}
