/* WordPress/Gutenberg compatibility layer. Loaded only on the Dorian plugin page template. */
body.dv-template{margin:0!important;background:#050505!important;color:#fff!important}
body.dv-template #main{margin:0!important;padding:0!important;max-width:none!important;width:100%!important}
body.dv-template .dv-site{margin:0!important;padding:0!important;max-width:none!important;width:100%!important;display:block!important}
body.dv-template .dv-site>.wp-block-group{margin-block-start:0!important;margin-block-end:0!important}
body.dv-template .wp-block-group,body.dv-template .wp-block-image,body.dv-template .wp-block-buttons,body.dv-template .wp-block-button,body.dv-template .wp-block-shortcode{margin-block-start:0}
body.dv-template .wp-block-group{--wp--style--block-gap:0}
body.dv-template .wp-block-heading{font-family:inherit}
body.dv-template figure{margin:0}
body.dv-template .wp-block-image img{max-width:100%;height:auto}

/* Preserve the approved button design while keeping the buttons editable as core blocks. */
body.dv-template .wp-block-button.btn{min-height:0;padding:0;border:0;background:none;display:block;border-radius:0}
body.dv-template .wp-block-button.btn .wp-block-button__link{min-height:48px;background:transparent;display:inline-flex;align-items:center;gap:30px;padding:0 56px 0 18px;border:1px solid rgba(255,255,255,.75);border-radius:12px;color:white;font-size:.87rem;transition:background .25s,color .25s,transform .25s,border-color .25s;position:relative;text-decoration:none;box-shadow:none}
body.dv-template .wp-block-button.btn .wp-block-button__link::before{content:"";position:absolute;right:18px;top:50%;width:28px;height:1px;background:currentColor;transform:translateY(-50%);transition:width .25s cubic-bezier(.2,.75,.25,1)}
body.dv-template .wp-block-button.btn .wp-block-button__link::after{content:"";position:absolute;right:18px;top:50%;width:7px;height:7px;border-right:1px solid currentColor;border-top:1px solid currentColor;transform:translateY(-50%) rotate(45deg)}
body.dv-template .wp-block-button.btn .wp-block-button__link:hover{background:#fff;color:#000;border-color:#fff;transform:translateY(-2px)}
body.dv-template .wp-block-button.btn .wp-block-button__link:hover::before{width:38px}
body.dv-template .wp-block-button.btn-wide .wp-block-button__link{min-height:52px;border-radius:18px;padding-left:22px}

/* Editable card links use a normal paragraph/link block. */
body.dv-template .card-link{display:block!important;margin-top:auto!important;border-top:1px solid rgba(255,255,255,.25);padding-top:20px}
body.dv-template .card-link a{display:flex;justify-content:space-between;align-items:center;text-transform:uppercase;font-size:.69rem;letter-spacing:.08em;font-weight:750;color:inherit;text-decoration:none}
body.dv-template .card-link a::after{content:"→";font-size:1rem;letter-spacing:0;transition:transform .25s cubic-bezier(.2,.75,.25,1)}
body.dv-template .card-link a:hover::after{transform:translateX(7px)}

/* Decorative network fields stay out of Gutenberg markup. */
body.dv-template .dv-network-hero::after{content:"";position:absolute;z-index:-1;inset:-7% -5%;width:110%;height:114%;background:url('../images/network-hero.svg') center/cover no-repeat;opacity:.30;pointer-events:none;transform:translate3d(var(--dv-net-x,0px),var(--dv-net-y,0px),0);will-change:transform}
body.dv-template .hero.dv-network-hero::before{z-index:-2}
body.dv-template .dv-network-newsletter::after{content:"";position:absolute;z-index:-1;left:-3%;top:-14%;width:106%;height:128%;background:url('../images/network-newsletter.svg') center/cover no-repeat;opacity:.30;pointer-events:none;transform:translate3d(var(--dv-net-x,0px),var(--dv-net-y,0px),0) scale(1.02);will-change:transform}

body.dv-template .dv-about-sweep::after{content:"";position:absolute;z-index:1;left:0;right:0;bottom:-1px;width:100%;height:255px;background:url('../images/about-sweep.svg') center bottom/100% 100% no-repeat;pointer-events:none}
body.dv-template .dv-coaching-flow::after{content:"";position:absolute;left:0;right:0;bottom:0;height:460px;background:url('../images/coaching-flow.svg') center bottom/100% 100% no-repeat;opacity:.14;pointer-events:none}
body.dv-template .dv-coaching-flow>.shell{position:relative;z-index:2}

/* Gutenberg-friendly version of the three coaching rows. */
body.dv-template .dv-process-list{display:grid!important}
body.dv-template .dv-process-row{display:grid!important;grid-template-columns:48px 1fr!important;gap:10px!important;border-top:1px solid rgba(255,255,255,.28);padding:17px 0 16px}
body.dv-template .dv-process-row:last-child{border-bottom:1px solid rgba(255,255,255,.28)}
body.dv-template .dv-process-row p{margin:0}
body.dv-template .dv-process-row>p:first-child,body.dv-template .dv-process-row>.wp-block-paragraph:first-child{font-size:.72rem;color:#d0d0d0;padding-top:2px}
body.dv-template .dv-process-row strong{text-transform:uppercase;letter-spacing:.075em;font-size:.73rem}
body.dv-template .dv-process-row small{font-size:.73rem;color:#bdbdbd;line-height:1.4}

/* Credential blocks remain individually editable. */
body.dv-template .credential-grid .wp-block-group{border-top:1px solid rgba(255,255,255,.33);padding-top:13px}
body.dv-template .credential-grid p{margin:0;font-size:.73rem;color:#bdbdbd;line-height:1.45}
body.dv-template .credential-grid p strong{font-size:.72rem;letter-spacing:.08em;color:#fff}

/* Testimonial cards and controls are normal editable group/button blocks. */
body.dv-template .testimonial-track{display:flex!important;flex-wrap:nowrap!important;gap:18px!important}
body.dv-template .testimonial-card{margin:0!important}
body.dv-template .quote-card p:last-child{margin-top:auto}
body.dv-template .carousel-controls{display:flex!important;gap:9px!important;justify-content:center!important}
body.dv-template .wp-block-button.carousel-btn{width:39px;height:39px;margin:0!important}
body.dv-template .wp-block-button.carousel-btn .wp-block-button__link{width:39px;height:39px;padding:0!important;border:1px solid #111;border-radius:50%;background:transparent;color:#111;display:grid;place-items:center;line-height:1;text-decoration:none;box-shadow:none}
body.dv-template .wp-block-button.carousel-btn .wp-block-button__link:hover{background:#111;color:#fff}

/* Dynamic latest-post shortcode. */
body.dv-template .article-image img{width:100%;height:100%;object-fit:cover;display:block;position:relative;z-index:2}

/* Shortcode blocks should inherit the section layout, not editor defaults. */
body.dv-template .wp-block-shortcode{max-width:none!important}

@media (max-width:820px){
  body.dv-template .dv-about-sweep::after{height:210px}
  body.dv-template .dv-process-row{grid-template-columns:38px 1fr!important}
}
@media (max-width:540px){body.dv-template .dv-about-sweep::after{height:172px}}

/* Query Loop keeps the article section dynamic while remaining a real Gutenberg block. */
body.dv-template .dv-article-query{margin:0!important}
body.dv-template .dv-article-query .article-grid{list-style:none!important;padding:0!important;margin:0!important}
body.dv-template .dv-article-query .wp-block-post{margin:0!important}
body.dv-template .dv-article-query .article-card{height:100%}
body.dv-template .dv-article-query .wp-block-post-featured-image.article-image{margin:0 0 20px!important;height:310px;background:#4a4a4a;overflow:hidden;position:relative}
body.dv-template .dv-article-query .wp-block-post-featured-image.article-image a{display:block;width:100%;height:100%}
body.dv-template .dv-article-query .wp-block-post-featured-image.article-image img{width:100%;height:100%;object-fit:cover}
body.dv-template .dv-article-query .wp-block-post-title{font-size:1.4rem;letter-spacing:-.035em;margin:0 0 12px}
body.dv-template .dv-article-query .wp-block-post-title a{color:inherit;text-decoration:none}
body.dv-template .dv-article-query .wp-block-post-excerpt{margin:0}
body.dv-template .dv-article-query .wp-block-post-excerpt__excerpt{color:#c9c9c9;font-size:.82rem;line-height:1.48;margin:0 0 17px;max-width:93%}
body.dv-template .dv-article-query .wp-block-post-date{margin:0}
body.dv-template .dv-article-query .wp-block-post-date time{text-transform:uppercase;font-size:.66rem;letter-spacing:.08em;color:#c4c4c4;font-weight:700}

/* Gutenberg-editable newsletter mockup becomes a real input on the front end via the plugin JS. */
body.dv-template .dv-newsletter-ui .dv-email-label{position:absolute;left:0;bottom:43px;text-transform:uppercase;font-size:.68rem;font-weight:750;letter-spacing:.08em;margin:0}
body.dv-template .dv-newsletter-ui .dv-email-placeholder{border:0;background:transparent;min-width:0;padding:8px 0 3px;color:#7c7c7c;margin:0;font-size:.87rem}
body.dv-template .dv-newsletter-ui .wp-block-buttons{margin:0!important}
body.dv-template .dv-newsletter-ui .wp-block-button.dv-subscribe-button{margin:0!important}
body.dv-template .dv-newsletter-ui .wp-block-button.dv-subscribe-button .wp-block-button__link{border:0!important;background:transparent!important;color:#111!important;text-transform:uppercase;font-size:.74rem;font-weight:800;letter-spacing:.08em;padding:8px 0 3px!important;box-shadow:none!important;text-decoration:none!important}
body.dv-template .dv-newsletter-ui .form-note,body.dv-template .dv-newsletter-ui .form-status{margin-left:0!important;margin-right:0!important}

@media (max-width:1080px){body.dv-template .dv-article-query .wp-block-post-featured-image.article-image{height:270px}}
@media (max-width:820px){body.dv-template .dv-article-query .article-grid{grid-template-columns:1fr!important;gap:45px!important}body.dv-template .dv-article-query .wp-block-post-featured-image.article-image{height:min(60vw,370px)}}
@media (max-width:540px){body.dv-template .dv-article-query .wp-block-post-featured-image.article-image{height:61vw}}

/* v0.3 — WordPress/Blocksy integration fixes */

/* Keep the plugin header below the WordPress toolbar for logged-in admins. */
body.dv-template.admin-bar .site-header{
  top:var(--dv-admin-bar-height,32px)!important;
}
body.dv-template.admin-bar .primary-nav.open{
  top:var(--dv-admin-bar-height,32px)!important;
}
body.dv-template.admin-bar .skip-link:focus{
  top:calc(var(--dv-admin-bar-height,32px) + 1rem)!important;
}

/* Blocksy's heading color variables must not tint headings inside this isolated design. */
body.dv-template .dv-site :where(h1,h2,h3,h4,h5,h6,.wp-block-heading){
  color:inherit!important;
}
body.dv-template .dv-site :where(h1,h2,h3,h4,h5,h6,.wp-block-heading) a{
  color:inherit!important;
}
body.dv-template .dv-site .section-dark{color:#fff!important}
body.dv-template .dv-site .section-light{color:#080808!important}
body.dv-template .dv-site .newsletter{color:#080808!important}

/* Recreate the small matrix/dot fields that were separate decorative nodes in the HTML preview. */
body.dv-template .service-art{
  --dv-art-bg:#d2d2d2;
  background-color:var(--dv-art-bg)!important;
  background-image:
    linear-gradient(130deg,var(--dv-art-bg) 0 46%,transparent 47% 73%,var(--dv-art-bg) 74%),
    radial-gradient(circle,rgba(0,103,168,.48) 1.45px,transparent 1.6px)!important;
  background-size:100% 100%,18px 18px!important;
  background-position:center,18px 0!important;
}
body.dv-template .service-art.art-programs{--dv-art-bg:#cbcdcf}
body.dv-template .service-art.art-consultations{--dv-art-bg:#d5d5d5}
body.dv-template .service-art::before,
body.dv-template .service-art::after{z-index:2}

body.dv-template .about-photo{position:relative!important}
body.dv-template .about-photo::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:44px 44px;
  -webkit-mask-image:linear-gradient(135deg,transparent 40%,#000 78%);
  mask-image:linear-gradient(135deg,transparent 40%,#000 78%);
  opacity:.6;
}

body.dv-template .coaching-media{
  z-index:1!important;
  background-color:#191a1d!important;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px),
    radial-gradient(circle,rgba(17,122,174,.38) 1.15px,transparent 1.35px),
    linear-gradient(180deg,#1f1f22,#191a1d)!important;
  background-size:42px 42px,42px 42px,20px 20px,100% 100%!important;
  background-position:0 0,0 0,10px 7px,0 0!important;
}
body.dv-template .coaching-quote-wrap{
  position:relative!important;
  overflow:visible!important;
}
body.dv-template .coaching-quote-wrap > .coaching-quote{
  position:relative!important;
  z-index:5!important;
  width:min(82%,360px)!important;
  margin:-118px 0 27px auto!important;
}
body.dv-template .coaching-quote p:last-child{
  display:flex!important;
  gap:15px!important;
  align-items:center!important;
  margin:0!important;
  font-family:Inter,ui-sans-serif,system-ui,sans-serif!important;
  font-style:normal!important;
  font-size:.78rem!important;
}
body.dv-template .coaching-quote p:last-child span{color:#a9a9a9!important}

/* Gutenberg Buttons wrap the carousel links in an extra element. Reset that wrapper so only one control is drawn. */
body.dv-template .wp-block-buttons.carousel-controls{
  display:flex!important;
  gap:10px!important;
  justify-content:center!important;
  margin:34px 0 0!important;
  padding:0!important;
}
body.dv-template .wp-block-button.carousel-btn{
  width:39px!important;
  height:39px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#111!important;
  display:block!important;
}
body.dv-template .wp-block-button.carousel-btn:hover{
  background:transparent!important;
  color:#111!important;
}
body.dv-template .wp-block-button.carousel-btn .wp-block-button__link{
  width:39px!important;
  height:39px!important;
  min-height:39px!important;
  margin:0!important;
  padding:0!important;
  border:1px solid #111!important;
  border-radius:50%!important;
  background:transparent!important;
  color:#111!important;
  display:grid!important;
  place-items:center!important;
  line-height:1!important;
  font-size:0!important;
  box-shadow:none!important;
  text-decoration:none!important;
}
body.dv-template .wp-block-button.carousel-btn .wp-block-button__link::after{content:none!important}
body.dv-template .wp-block-button.carousel-btn.prev .wp-block-button__link::before,
body.dv-template .wp-block-button.carousel-btn.next .wp-block-button__link::before{
  display:block!important;
  position:static!important;
  width:auto!important;
  height:auto!important;
  background:none!important;
  transform:none!important;
  font-size:16px!important;
  line-height:1!important;
  color:currentColor!important;
}
body.dv-template .wp-block-button.carousel-btn.prev .wp-block-button__link::before{content:"←"!important}
body.dv-template .wp-block-button.carousel-btn.next .wp-block-button__link::before{content:"→"!important}
body.dv-template .wp-block-button.carousel-btn .wp-block-button__link:hover{
  background:#111!important;
  color:#fff!important;
}

/* Match the approved newsletter input row instead of Gutenberg's flow layout. */
body.dv-template .dv-newsletter-ui{position:relative!important}
body.dv-template .dv-newsletter-ui .input-row{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:end!important;
  column-gap:15px!important;
  row-gap:0!important;
  min-height:58px!important;
  margin:0!important;
  padding:0 0 9px!important;
  border:0!important;
  border-bottom:2px solid #111!important;
  position:relative!important;
}
body.dv-template .dv-newsletter-ui .dv-email-label{
  position:absolute!important;
  left:0!important;
  top:0!important;
  bottom:auto!important;
  margin:0!important;
  line-height:1.2!important;
}
body.dv-template .dv-newsletter-ui .input-row > input{
  grid-column:1!important;
  grid-row:1!important;
  align-self:end!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  margin:0!important;
  padding:30px 0 3px!important;
  border:0!important;
  outline:0!important;
  background:transparent!important;
  color:#111!important;
  line-height:1.2!important;
}
body.dv-template .dv-newsletter-ui .input-row > .wp-block-buttons{
  grid-column:2!important;
  grid-row:1!important;
  align-self:end!important;
  margin:0!important;
  padding:0!important;
}
body.dv-template .dv-newsletter-ui .wp-block-button.dv-subscribe-button .wp-block-button__link{
  display:inline-flex!important;
  align-items:center!important;
  gap:14px!important;
  position:relative!important;
  padding:30px 42px 3px 0!important;
  white-space:nowrap!important;
}
body.dv-template .dv-newsletter-ui .wp-block-button.dv-subscribe-button .wp-block-button__link::before{
  content:""!important;
  position:absolute!important;
  right:0!important;
  top:calc(50% + 13px)!important;
  width:28px!important;
  height:1px!important;
  background:currentColor!important;
  transform:translateY(-50%)!important;
  transition:width .25s var(--ease)!important;
}
body.dv-template .dv-newsletter-ui .wp-block-button.dv-subscribe-button .wp-block-button__link::after{
  content:""!important;
  position:absolute!important;
  right:0!important;
  top:calc(50% + 13px)!important;
  width:7px!important;
  height:7px!important;
  border-right:1px solid currentColor!important;
  border-top:1px solid currentColor!important;
  transform:translateY(-50%) rotate(45deg)!important;
}
body.dv-template .dv-newsletter-ui .wp-block-button.dv-subscribe-button .wp-block-button__link:hover::before{width:38px!important}
body.dv-template .dv-newsletter-ui .form-note{margin-top:12px!important}
body.dv-template .dv-newsletter-ui .form-status{margin-top:8px!important}

/* Keep the animated background layers above the section background but behind editable content. */
body.dv-template .dv-network-hero,
body.dv-template .dv-network-newsletter{isolation:isolate!important}
body.dv-template .dv-network-hero::after,
body.dv-template .dv-network-newsletter::after{z-index:0!important}
body.dv-template .dv-network-hero > *,
body.dv-template .dv-network-newsletter > *{position:relative;z-index:1}
body.dv-template .hero.dv-network-hero::before,
body.dv-template .newsletter.dv-network-newsletter::before{z-index:-1!important}

@media (max-width:820px){
  body.dv-template .coaching-quote-wrap > .coaching-quote{width:min(72%,380px)!important;margin:-98px 0 27px auto!important}
}
@media (max-width:782px){
  body.dv-template.admin-bar .site-header,
  body.dv-template.admin-bar .primary-nav.open{top:var(--dv-admin-bar-height,46px)!important}
}
@media (max-width:540px){
  body.dv-template .coaching-quote-wrap > .coaching-quote{width:min(84%,340px)!important;margin:-84px 0 23px auto!important}
  body.dv-template .dv-newsletter-ui .input-row{grid-template-columns:minmax(0,1fr) auto!important}
}
body.dv-template .site-footer h3{color:#fff!important}


/* v0.4 — pixel-fidelity pass against the approved standalone homepage */

/* The approved buttons use a real label + line-arrow pair. site.js adds those
   decorative children on the front end while the button text stays editable in Gutenberg. */
body.dv-template .wp-block-button.btn{
  min-height:0!important;padding:0!important;border:0!important;background:none!important;
  display:block!important;border-radius:0!important;box-shadow:none!important
}
body.dv-template .wp-block-button.btn .wp-block-button__link{
  min-height:48px!important;
  background:transparent!important;
  display:inline-flex!important;
  align-items:center!important;
  gap:30px!important;
  padding:0 18px!important;
  border:1px solid rgba(255,255,255,.75)!important;
  border-radius:12px!important;
  color:#fff!important;
  font-size:.87rem!important;
  line-height:1!important;
  font-weight:400!important;
  transition:background .25s,color .25s,transform .25s,border-color .25s!important;
  position:relative!important;
  text-decoration:none!important;
  box-shadow:none!important;
  white-space:nowrap!important
}
body.dv-template .wp-block-button.btn .wp-block-button__link::before,
body.dv-template .wp-block-button.btn .wp-block-button__link::after{content:none!important}
body.dv-template .wp-block-button.btn .wp-block-button__link i,
body.dv-template .card-link a i,
body.dv-template .dv-subscribe-button .wp-block-button__link i{
  width:28px!important;height:1px!important;background:currentColor!important;display:block!important;
  position:relative!important;flex:0 0 auto!important;transition:width .25s var(--ease)!important
}
body.dv-template .wp-block-button.btn .wp-block-button__link i::after,
body.dv-template .card-link a i::after,
body.dv-template .dv-subscribe-button .wp-block-button__link i::after{
  content:""!important;width:7px!important;height:7px!important;border-right:1px solid currentColor!important;
  border-top:1px solid currentColor!important;position:absolute!important;right:0!important;top:50%!important;
  transform:translateY(-50%) rotate(45deg)!important
}
body.dv-template .wp-block-button.btn .wp-block-button__link:hover{
  background:#fff!important;color:#000!important;transform:translateY(-2px)!important;border-color:#fff!important
}
body.dv-template .wp-block-button.btn .wp-block-button__link:hover i,
body.dv-template .card-link a:hover i,
body.dv-template .dv-subscribe-button .wp-block-button__link:hover i{width:38px!important}
body.dv-template .wp-block-button.btn-wide .wp-block-button__link{
  width:auto!important;justify-content:center!important;border-radius:18px!important;min-height:52px!important;padding-inline:22px!important
}

/* Service card arrows: exact line-arrow treatment from the approved cards. */
body.dv-template .card-link{
  margin-top:auto!important;border-top:1px solid rgba(255,255,255,.25)!important;padding-top:20px!important;
  display:block!important
}
body.dv-template .card-link a{
  display:flex!important;justify-content:space-between!important;align-items:center!important;gap:24px!important;
  text-transform:uppercase!important;font-size:.69rem!important;letter-spacing:.08em!important;font-weight:750!important;
  color:inherit!important;text-decoration:none!important
}
body.dv-template .card-link a::before,body.dv-template .card-link a::after{content:none!important}

/* Recreate the restrained matrix fields with the same separate masked layer as the standalone page. */
body.dv-template .service-art{
  background:#d2d2d2!important;background-image:none!important;position:relative!important;overflow:hidden!important
}
body.dv-template .service-art.art-programs{background:#cbcdcf!important}
body.dv-template .service-art.art-consultations{background:#d5d5d5!important}
body.dv-template .service-art .dv-service-dots{
  position:absolute!important;inset:0!important;
  background-image:radial-gradient(circle,rgba(0,103,168,.45) 1.5px,transparent 1.6px)!important;
  background-size:18px 18px!important;
  -webkit-mask-image:linear-gradient(130deg,transparent 0 48%,#000 49% 72%,transparent 73%)!important;
  mask-image:linear-gradient(130deg,transparent 0 48%,#000 49% 72%,transparent 73%)!important;
  opacity:.38!important;transform:translateX(18px);transition:transform .5s var(--ease)!important;z-index:1!important
}
body.dv-template .service-card:hover .service-art .dv-service-dots{transform:translateX(0)!important}
body.dv-template .service-art::before,body.dv-template .service-art::after{z-index:2!important}

/* Use the actual overlay layers from the approved image treatments rather than flattened stronger gradients. */
body.dv-template .about-photo::after{content:none!important}
body.dv-template .about-photo .photo-grid{
  position:absolute!important;inset:0!important;z-index:2!important;pointer-events:none!important;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px)!important;
  background-size:44px 44px!important;
  -webkit-mask-image:linear-gradient(135deg,transparent 40%,#000)!important;
  mask-image:linear-gradient(135deg,transparent 40%,#000)!important;
  opacity:.6!important
}
body.dv-template .coaching-media{
  background:linear-gradient(180deg,#1f1f22,#191a1d)!important;background-image:linear-gradient(180deg,#1f1f22,#191a1d)!important;
  position:relative!important;overflow:hidden!important;z-index:1!important
}
body.dv-template .coaching-media-grid{
  position:absolute!important;inset:0!important;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px)!important;
  background-size:42px 42px!important;opacity:.5!important;
  -webkit-mask-image:linear-gradient(135deg,rgba(0,0,0,.2),#000 38%,#000 82%,transparent)!important;
  mask-image:linear-gradient(135deg,rgba(0,0,0,.2),#000 38%,#000 82%,transparent)!important
}
body.dv-template .coaching-media-mesh{
  position:absolute!important;inset:-12% -18%!important;
  background-image:radial-gradient(circle,rgba(17,122,174,.45) 1.2px,transparent 1.3px)!important;
  background-size:20px 20px!important;opacity:.24!important;transform:rotate(-12deg)!important
}

/* Gutenberg's block flow reset had been wiping out the deliberate testimonial spacing. */
body.dv-template .testimonial-intro{margin-bottom:62px!important}
body.dv-template .testimonial-viewport{margin:0!important}
body.dv-template .testimonial-track{padding:0 18px!important;margin:0!important}
body.dv-template .wp-block-buttons.carousel-controls{
  display:flex!important;gap:9px!important;justify-content:center!important;margin:30px 0 0!important;padding:0!important
}
body.dv-template .wp-block-button.carousel-btn{
  width:39px!important;height:39px!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important
}
body.dv-template .wp-block-button.carousel-btn .wp-block-button__link{
  width:39px!important;height:39px!important;min-height:39px!important;margin:0!important;padding:0!important;
  border:1px solid #111!important;border-radius:50%!important;background:transparent!important;color:#111!important;
  display:grid!important;place-items:center!important;line-height:1!important;font-size:16px!important;font-weight:400!important;
  text-indent:0!important;box-shadow:none!important;text-decoration:none!important
}
body.dv-template .wp-block-button.carousel-btn .wp-block-button__link::before,
body.dv-template .wp-block-button.carousel-btn .wp-block-button__link::after{content:none!important;display:none!important}
body.dv-template .wp-block-button.carousel-btn .wp-block-button__link:hover{background:#111!important;color:#fff!important}

/* Preserve the intended spacing before the dynamic article grid as well. */
body.dv-template .articles-head{margin-bottom:55px!important}

/* Newsletter: use the exact compact input baseline and arrow CTA instead of Blocksy form defaults. */
body.dv-template .dv-newsletter-ui{position:relative!important;align-self:center!important}
body.dv-template .dv-newsletter-ui .input-row{
  display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:end!important;gap:15px!important;
  min-height:0!important;margin:0!important;padding:0 0 9px!important;border:0!important;border-bottom:2px solid #111!important;
  position:relative!important;overflow:visible!important
}
body.dv-template .dv-newsletter-ui .dv-email-label{
  position:absolute!important;left:0!important;top:auto!important;bottom:43px!important;margin:0!important;
  text-transform:uppercase!important;font-size:.68rem!important;font-weight:750!important;letter-spacing:.08em!important;line-height:1.2!important
}
body.dv-template .dv-newsletter-ui .input-row > input{
  grid-column:1!important;grid-row:1!important;align-self:end!important;width:100%!important;min-width:0!important;max-width:none!important;
  height:auto!important;min-height:0!important;max-height:none!important;margin:0!important;padding:8px 0 3px!important;
  border:0!important;border-radius:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;
  color:#111!important;font:inherit!important;font-size:.87rem!important;line-height:1.4!important;overflow:visible!important;
  -webkit-appearance:none!important;appearance:none!important
}
body.dv-template .dv-newsletter-ui .input-row > input::placeholder{color:#7c7c7c!important;opacity:1!important}
body.dv-template .dv-newsletter-ui .input-row > .wp-block-buttons{
  grid-column:2!important;grid-row:1!important;align-self:end!important;margin:0!important;padding:0!important
}
body.dv-template .dv-newsletter-ui .wp-block-button.dv-subscribe-button{
  margin:0!important;padding:0!important;border:0!important;background:none!important;display:block!important
}
body.dv-template .dv-newsletter-ui .wp-block-button.dv-subscribe-button .wp-block-button__link{
  border:0!important;border-radius:0!important;background:transparent!important;color:#111!important;
  text-transform:uppercase!important;font-size:.74rem!important;font-weight:800!important;letter-spacing:.08em!important;
  padding:8px 0 3px!important;display:inline-flex!important;align-items:center!important;gap:14px!important;
  white-space:nowrap!important;box-shadow:none!important;text-decoration:none!important;line-height:1!important
}
body.dv-template .dv-newsletter-ui .wp-block-button.dv-subscribe-button .wp-block-button__link::before,
body.dv-template .dv-newsletter-ui .wp-block-button.dv-subscribe-button .wp-block-button__link::after{content:none!important}
body.dv-template .dv-newsletter-ui .form-note{margin:12px 0 0!important}
body.dv-template .dv-newsletter-ui .form-status{margin:8px 0 0!important}

@media (max-width:540px){
  body.dv-template .testimonial-intro{margin-bottom:45px!important}
  body.dv-template .dv-newsletter-ui .input-row{grid-template-columns:minmax(0,1fr) auto!important}
  body.dv-template .dv-newsletter-ui .input-row > input{max-width:190px!important}
}
body.dv-template .dv-coaching-flow::after{content:none!important;display:none!important}
body.dv-template .dv-coaching-flow > .coaching-flow{display:block!important}

/* v0.5 — final homepage interaction polish */

/* Gutenberg gives the approved CTA an extra wrapper with the same .btn class.
   Prevent either layer from lifting: the hover interaction should only extend the arrow. */
body.dv-template .wp-block-button.btn,
body.dv-template .wp-block-button.btn:hover,
body.dv-template .wp-block-button.btn:focus-within{
  transform:none!important;
}
body.dv-template .wp-block-button.btn .wp-block-button__link,
body.dv-template .wp-block-button.btn .wp-block-button__link:hover,
body.dv-template .wp-block-button.btn .wp-block-button__link:focus{
  transform:none!important;
}

/* Draw carousel controls geometrically rather than relying on font arrows.
   This keeps both directions visually centred inside the 39px circles. */
body.dv-template .wp-block-button.carousel-btn .wp-block-button__link{
  position:relative!important;
  display:block!important;
  font-size:0!important;
  line-height:0!important;
}
body.dv-template .wp-block-button.carousel-btn .wp-block-button__link::before,
body.dv-template .wp-block-button.carousel-btn .wp-block-button__link::after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  pointer-events:none!important;
  color:currentColor!important;
}
body.dv-template .wp-block-button.carousel-btn .wp-block-button__link::before{
  width:15px!important;
  height:1px!important;
  background:currentColor!important;
  top:50%!important;
  left:50%!important;
  transform:translate(-50%,-50%)!important;
}
body.dv-template .wp-block-button.carousel-btn.next .wp-block-button__link::after{
  width:6px!important;
  height:6px!important;
  border-top:1px solid currentColor!important;
  border-right:1px solid currentColor!important;
  right:10px!important;
  top:50%!important;
  transform:translateY(-50%) rotate(45deg)!important;
}
body.dv-template .wp-block-button.carousel-btn.prev .wp-block-button__link::after{
  width:6px!important;
  height:6px!important;
  border-left:1px solid currentColor!important;
  border-bottom:1px solid currentColor!important;
  left:10px!important;
  top:50%!important;
  transform:translateY(-50%) rotate(45deg)!important;
}

/* Automatic article fallback. The markup is inserted by site.js only when a post
   has no featured image, and deliberately reuses the approved mesh-thumb treatment. */
body.dv-template .article-card > .dv-article-placeholder{
  display:block!important;
  width:100%!important;
  height:310px!important;
  margin:0 0 20px!important;
  background:#4a4a4a!important;
  overflow:hidden!important;
  position:relative!important;
}
@media (max-width:1080px){body.dv-template .article-card > .dv-article-placeholder{height:270px!important}}
@media (max-width:820px){body.dv-template .article-card > .dv-article-placeholder{height:min(60vw,370px)!important}}
@media (max-width:540px){body.dv-template .article-card > .dv-article-placeholder{height:61vw!important}}


/* v0.6 — service-height, carousel centering and footer cleanup */

/* Keep all three homepage service cards on the exact same visual baseline even when copy lengths differ. */
@media (min-width:821px){
  body.dv-template .service-grid{align-items:stretch!important;grid-auto-rows:1fr!important}
  body.dv-template .service-card{height:480px!important;min-height:480px!important}
  body.dv-template .service-body{min-height:260px!important}
}

/* Use a centered SVG mask for the carousel icons. This avoids font metrics and
   makes the complete arrow, not just its shaft, geometrically centred. */
body.dv-template .wp-block-button.carousel-btn .wp-block-button__link{
  position:relative!important;
  display:block!important;
  font-size:0!important;
  line-height:0!important;
}
body.dv-template .wp-block-button.carousel-btn .wp-block-button__link::after{
  content:none!important;display:none!important
}
body.dv-template .wp-block-button.carousel-btn .wp-block-button__link::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  width:18px!important;
  height:18px!important;
  left:50%!important;
  top:50%!important;
  transform:translate(-50%,-50%)!important;
  background:currentColor!important;
  pointer-events:none!important;
  -webkit-mask-repeat:no-repeat!important;
  mask-repeat:no-repeat!important;
  -webkit-mask-position:center!important;
  mask-position:center!important;
  -webkit-mask-size:18px 18px!important;
  mask-size:18px 18px!important;
}
body.dv-template .wp-block-button.carousel-btn.next .wp-block-button__link::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M3.5 9h10.25M9.75 5l4 4-4 4' fill='none' stroke='black' stroke-width='1.25' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E")!important;
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M3.5 9h10.25M9.75 5l4 4-4 4' fill='none' stroke='black' stroke-width='1.25' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E")!important;
}
body.dv-template .wp-block-button.carousel-btn.prev .wp-block-button__link::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M14.5 9H4.25M8.25 5l-4 4 4 4' fill='none' stroke='black' stroke-width='1.25' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E")!important;
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M14.5 9H4.25M8.25 5l-4 4 4 4' fill='none' stroke='black' stroke-width='1.25' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E")!important;
}



/* v0.7: carousel controls use inline SVG injected by site.js. This avoids
   font glyph metrics and CSS-mask rendering differences across browsers. */
body.dv-template .wp-block-button.carousel-btn .wp-block-button__link::before,
body.dv-template .wp-block-button.carousel-btn .wp-block-button__link::after{
  content:none!important;
  display:none!important;
}
body.dv-template .wp-block-button.carousel-btn .wp-block-button__link{
  display:grid!important;
  place-items:center!important;
  font-size:0!important;
  line-height:0!important;
}
body.dv-template .wp-block-button.carousel-btn .wp-block-button__link .dv-carousel-arrow{
  width:18px!important;
  height:18px!important;
  display:block!important;
  overflow:visible!important;
  pointer-events:none!important;
}
body.dv-template .wp-block-button.carousel-btn .wp-block-button__link .dv-carousel-arrow path{
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.35!important;
  stroke-linecap:square!important;
  stroke-linejoin:miter!important;
  vector-effect:non-scaling-stroke!important;
}

/* v1.0 editor-ready image slots: default placeholders preserve the approved look,
   while replacing the image in Gutenberg immediately displays the real media. */
body.dv-template .coaching-media > img{
  position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
  object-fit:cover!important;z-index:0!important;margin:0!important
}
body.dv-template .coaching-media > .coaching-media-grid,
body.dv-template .coaching-media > .coaching-media-mesh{z-index:2!important;pointer-events:none!important}
body.dv-template .coaching-media::before,body.dv-template .coaching-media::after{z-index:3!important;pointer-events:none!important}
body.dv-template .testimonial-card.ghost .dv-progress-image{
  position:absolute!important;inset:0!important;width:100%!important;height:100%!important;margin:0!important
}
body.dv-template .testimonial-card.ghost .dv-progress-image img{
  width:100%!important;height:100%!important;object-fit:cover!important;display:block!important
}
body.dv-template .testimonial-card.ghost::after{z-index:2!important;pointer-events:none!important}

/* v1.2 genuine custom Homepage Hero block */
body.dv-template .dv-homepage-hero-block{width:100%!important;max-width:none!important;margin:0!important;padding:0!important;display:block!important}
body.dv-template .dv-homepage-hero-block .dv-title-line{display:inline}
body.dv-template .dv-homepage-hero-block h1>.dv-title-primary{font-weight:850!important}
body.dv-template .dv-homepage-hero-block h1>.dv-title-accent{font-weight:800!important}
body.dv-template .dv-homepage-hero-block .portrait-frame{margin:0!important}

/* v1.3 native-nested Homepage Hero. The parent owns design; its children remain genuine core Gutenberg blocks. */
body.dv-template .dv-homepage-hero-nested{width:100%!important;max-width:none!important;margin:0!important;padding:0!important;display:block!important}
body.dv-template .dv-homepage-hero-nested .hero-copy>.wp-block-heading{margin:0 0 35px!important;color:#fff!important}
body.dv-template .dv-homepage-hero-nested .hero-copy>.hero-lede{margin:0 0 36px!important;color:#c2c2c2!important}
body.dv-template .dv-homepage-hero-nested .hero-copy>.wp-block-buttons{margin:0!important}
body.dv-template .dv-homepage-hero-nested .hero-visual>.wp-block-image.portrait-frame{margin:0!important;width:100%!important}
body.dv-template .dv-homepage-hero-nested .hero-visual>.wp-block-image.portrait-frame img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center 43%!important}


/* v1.5 native Services integration.
   The generic .dv-site reset is intentionally strong for legacy full-page patterns, but the
   nested Services block is itself a section and must retain the approved section rhythm. */
body.dv-template .dv-homepage-services-nested.services{
  margin:0!important;
  padding:100px 0 125px!important;
  max-width:none!important;
  width:100%!important;
  display:block!important;
}
body.dv-template .dv-homepage-services-nested.services .section-title{margin-bottom:62px!important}
body.dv-template .dv-homepage-hero-nested + .dv-homepage-services-nested.services{margin-top:0!important}
@media(max-width:820px){
  body.dv-template .dv-homepage-services-nested.services{padding:86px 0 96px!important}
}
@media(max-width:540px){
  body.dv-template .dv-homepage-services-nested.services{padding:70px 0 76px!important}
}


/* v1.6 Services fidelity fixes. */
/* The Gutenberg Spacer used as the editable dot-matrix layer carries an inline 100px height.
   Force it to occupy the entire approved 220px artwork panel on the front end. */
body.dv-template .dv-homepage-services-nested .service-art .dv-service-dots{
  inset:0!important;width:100%!important;height:100%!important;min-height:100%!important;
  margin:0!important;padding:0!important
}
/* Core Paragraph/theme margins could add space above the eyebrow. Match the approved card exactly. */
body.dv-template .dv-homepage-services-nested .service-body .micro{
  margin:0 0 10px!important;padding:0!important
}


/* v1.7 Services spacing fidelity: remove Blocksy/Gutenberg flow gap between
   the small category line and the service title. */
body.dv-template .dv-homepage-services-nested .service-body{
  --wp--style--block-gap:0px!important;
  gap:0!important;
  row-gap:0!important
}
body.dv-template .dv-homepage-services-nested .service-body>*{
  margin-block-start:0!important
}
body.dv-template .dv-homepage-services-nested .service-body .micro{
  margin:0 0 5px!important;
  line-height:1.12!important
}
body.dv-template .dv-homepage-services-nested .service-body h3{
  margin-top:0!important;
  margin-block-start:0!important
}

/* v2.0 architecture prototype: native Gutenberg blocks only. */
body.dv-template .dv-native-homepage-prototype{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
body.dv-template .dv-native-homepage-prototype .dv-service-columns{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:18px!important;margin:0!important}
body.dv-template .dv-native-homepage-prototype .dv-service-columns>.wp-block-column{min-width:0!important;margin:0!important}
body.dv-template .dv-native-homepage-prototype .dv-service-columns .service-card{height:100%!important}
body.dv-template .dv-native-homepage-prototype .service-body{--wp--style--block-gap:0px!important;gap:0!important;row-gap:0!important}
body.dv-template .dv-native-homepage-prototype .service-body .micro{margin:0!important;padding:0!important;line-height:1.08!important}
body.dv-template .dv-native-homepage-prototype .service-body .micro + h3{margin-top:2px!important;margin-block-start:2px!important}
body.dv-template .dv-homepage-services-nested .service-body .micro{margin-bottom:0!important}
body.dv-template .dv-homepage-services-nested .service-body .micro + h3{margin-top:2px!important;margin-block-start:2px!important}
@media(max-width:820px){
  body.dv-template .dv-native-homepage-prototype .dv-service-columns{grid-template-columns:1fr!important}
  body.dv-template .dv-native-homepage-prototype .dv-service-columns .service-card{grid-template-columns:.9fr 1.1fr!important;grid-template-rows:none!important;min-height:315px!important}
}
@media(max-width:540px){
  body.dv-template .dv-native-homepage-prototype .dv-service-columns .service-card{grid-template-columns:1fr!important;grid-template-rows:190px 1fr!important}
}

/* v2.1 — separate section patterns. Each pattern owns only one section. */
body.dv-template .dv-section-pattern{width:100%!important;max-width:none!important;margin:0!important;padding:0!important;display:block!important}
body.dv-template .dv-pattern-hero-wrap .hero-copy>.wp-block-heading{margin:0 0 35px!important;color:#fff!important}
body.dv-template .dv-pattern-hero-wrap .hero-copy>.hero-lede{margin:0 0 36px!important;color:#c2c2c2!important}
body.dv-template .dv-pattern-hero-wrap .hero-copy>.wp-block-buttons{margin:0!important}
body.dv-template .dv-pattern-hero-wrap .hero-visual>.wp-block-image.portrait-frame{margin:0!important;width:100%!important}
body.dv-template .dv-pattern-hero-wrap .hero-visual>.wp-block-image.portrait-frame img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center 43%!important}

body.dv-template .dv-pattern-services-wrap .services{margin:0!important;padding:100px 0 125px!important;max-width:none!important;width:100%!important;display:block!important}
body.dv-template .dv-pattern-services-wrap .services .section-title{margin-bottom:62px!important}
body.dv-template .dv-pattern-services-wrap .dv-service-columns{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:18px!important;margin:0!important}
body.dv-template .dv-pattern-services-wrap .dv-service-columns>.wp-block-column{min-width:0!important;margin:0!important}
body.dv-template .dv-pattern-services-wrap .dv-service-columns .service-card{height:100%!important}
body.dv-template .dv-pattern-services-wrap .service-body{--wp--style--block-gap:0!important;gap:0!important;row-gap:0!important}
body.dv-template .dv-pattern-services-wrap .service-body>*{margin-block-start:0!important}
body.dv-template .dv-pattern-services-wrap .service-body .micro{margin:0!important;padding:0!important;line-height:1.08!important}
body.dv-template .dv-pattern-services-wrap .service-body .micro+h3{margin-top:2px!important;margin-block-start:2px!important}
body.dv-template .dv-pattern-services-wrap .service-art .dv-service-dots{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:100%!important;margin:0!important;padding:0!important}
@media(max-width:820px){
  body.dv-template .dv-pattern-services-wrap .services{padding:86px 0 96px!important}
  body.dv-template .dv-pattern-services-wrap .dv-service-columns{grid-template-columns:1fr!important}
  body.dv-template .dv-pattern-services-wrap .dv-service-columns .service-card{grid-template-columns:.9fr 1.1fr!important;grid-template-rows:none!important;min-height:315px!important}
}
@media(max-width:540px){
  body.dv-template .dv-pattern-services-wrap .services{padding:70px 0 76px!important}
  body.dv-template .dv-pattern-services-wrap .dv-service-columns .service-card{grid-template-columns:1fr!important;grid-template-rows:190px 1fr!important}
}

/* v2.1.11 — proper WordPress menu-location markup for the plugin header. */
body.dv-template .primary-nav>.primary-nav-list{
  list-style:none!important;margin:0!important;padding:0!important;display:flex!important;align-items:center!important;gap:34px!important
}
body.dv-template .primary-nav>.primary-nav-list>li{list-style:none!important;margin:0!important;padding:0!important}
@media(max-width:820px){
 body.dv-template .primary-nav>.primary-nav-list{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:20px!important;width:100%!important}
}

/* v2.1.12 — dedicated editable Dorian footer menu locations. */
body.dv-template .site-footer .dorian-footer-menu-wrap{margin:0!important;padding:0!important}
body.dv-template .site-footer .dorian-footer-menu{
  list-style:none!important;margin:0!important;padding:0!important
}
body.dv-template .site-footer .dorian-footer-menu>li{
  list-style:none!important;margin:0!important;padding:0!important
}
body.dv-template .site-footer .footer-grid .dorian-footer-menu{
  display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:0!important
}
body.dv-template .site-footer .footer-grid .dorian-footer-menu a{
  display:inline-block!important;margin:4px 0!important
}
body.dv-template .site-footer .footer-bottom>.dorian-footer-menu-wrap{margin-left:auto!important}
body.dv-template .site-footer .footer-bottom .dorian-footer-menu{
  display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:19px!important;flex-wrap:wrap!important
}
body.dv-template .site-footer .footer-bottom .dorian-footer-menu a{margin:0!important}
@media(max-width:820px){
  body.dv-template .site-footer .footer-bottom>.dorian-footer-menu-wrap{margin-left:0!important}
  body.dv-template .site-footer .footer-bottom .dorian-footer-menu{justify-content:flex-start!important}
}
@media(max-width:540px){
  body.dv-template .site-footer .footer-bottom .dorian-footer-menu{gap:12px 17px!important}
}
