/*
Theme Name: DV Studio Booth Block Theme
Theme URI: https://www.dvstudiobooth.com
Author: DV Studios LLC
Description: Highly editable full-site block theme for DV Studio Booth. Edit pages, templates, colors, fonts, navigation, images and reusable patterns in the WordPress Site Editor.
Version: 1.0.5
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: dv-studio-booth
License: GPL-2.0-or-later
*/

:root{--dv-cream:#faf7f2;--dv-cream-mid:#f2ece0;--dv-cream-deep:#e8dfd0;--dv-brown:#2a2118;--dv-muted:#7a6a56;--dv-gold:#b8914e;--dv-white:#fffdf9}
html{scroll-behavior:smooth} body{overflow-x:hidden}
.dv-kicker{letter-spacing:.32em;text-transform:uppercase;font-size:.68rem}
.dv-serif{font-family:var(--wp--preset--font-family--serif)}
.dv-hero-title{font-size:clamp(3.2rem,7vw,6.5rem)!important;line-height:.95!important}
.dv-hero-actions{justify-content:center!important}
.dv-placeholder{min-height:420px;display:flex;align-items:center;justify-content:center;text-align:center;letter-spacing:.22em;text-transform:uppercase;font-size:.7rem;color:var(--wp--preset--color--gold)}
.dv-included-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px!important;background:var(--wp--preset--color--cream-deep)}
.dv-included-grid>.wp-block-group{height:100%;min-height:220px}
.dv-process-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem!important}
.dv-step-number{width:44px;height:44px;border:1px solid var(--wp--preset--color--gold);border-radius:999px;display:flex;align-items:center;justify-content:center;margin-inline:auto}
.dv-gallery-mosaic{display:grid!important;grid-template-columns:1.15fr .85fr .85fr;grid-template-rows:280px 200px;gap:8px!important}
.dv-gallery-mosaic .wp-block-image{margin:0!important;height:100%}
.dv-gallery-mosaic .wp-block-image img{width:100%;height:100%;object-fit:cover}
.dv-gallery-mosaic .wp-block-image:first-child{grid-row:1/3}
.dv-gallery-mosaic .wp-block-image:nth-child(5){grid-column:span 2}
.wp-block-gallery.is-style-dv-slideshow,.wp-block-gallery.is-style-dv-carousel{position:relative;display:block!important;overflow:hidden}
.wp-block-gallery.is-style-dv-slideshow>.wp-block-image,.wp-block-gallery.is-style-dv-carousel>.wp-block-image{margin:0!important}
.wp-block-gallery.is-style-dv-slideshow>.wp-block-image{display:none;width:100%!important}
.wp-block-gallery.is-style-dv-slideshow>.wp-block-image.dv-active{display:block}
.wp-block-gallery.is-style-dv-slideshow img{width:100%;height:min(68vh,680px);object-fit:cover}
.wp-block-gallery.is-style-dv-carousel{display:flex!important;gap:12px!important;scroll-snap-type:x mandatory;overflow-x:auto;padding-bottom:8px}
.wp-block-gallery.is-style-dv-carousel>.wp-block-image{flex:0 0 calc(33.333% - 8px);scroll-snap-align:start}
.wp-block-gallery.is-style-dv-carousel img{width:100%;height:360px;object-fit:cover}
.dv-gallery-controls{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:16px}
.dv-gallery-controls button{border:1px solid currentColor;background:transparent;padding:.55rem .85rem;cursor:pointer}
.dv-gallery-dots{display:flex;gap:7px}.dv-gallery-dot{width:8px!important;height:8px!important;padding:0!important;border-radius:50%;opacity:.35;background:currentColor!important}.dv-gallery-dot.is-active{opacity:1}
.dv-review-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px!important;background:var(--wp--preset--color--cream-deep)}
.dv-review-grid>.wp-block-group{height:100%}
.dv-legal-content h2{scroll-margin-top:100px}.dv-toc{border-left:3px solid var(--wp--preset--color--gold)}
.dv-back-home a{text-decoration:none}
.wp-block-navigation__responsive-container.is-menu-open{padding:2rem!important;background:var(--wp--preset--color--cream)!important;color:var(--wp--preset--color--brown)!important}

/* v1.0.5 — Pricing clarification */
.dv-starting-price-note{
  margin-top:-.45rem!important;
  margin-bottom:1.5rem!important;
  color:var(--wp--preset--color--muted, #7a6a56);
  font-family:var(--wp--preset--font-family--sans);
  font-size:.72rem!important;
  font-weight:300;
  letter-spacing:.035em;
  line-height:1.55;
}
@media(max-width:900px){.dv-included-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dv-process-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dv-review-grid{grid-template-columns:1fr}.wp-block-gallery.is-style-dv-carousel>.wp-block-image{flex-basis:calc(50% - 6px)}}
@media(max-width:600px){.dv-included-grid,.dv-process-grid{grid-template-columns:1fr}.dv-gallery-mosaic{grid-template-columns:1fr 1fr;grid-template-rows:220px 170px 170px}.dv-gallery-mosaic .wp-block-image:first-child{grid-column:1/3;grid-row:auto}.dv-gallery-mosaic .wp-block-image:nth-child(5){grid-column:auto}.wp-block-gallery.is-style-dv-carousel>.wp-block-image{flex-basis:100%}.dv-placeholder{min-height:260px}.dv-hero-title{font-size:clamp(2.8rem,15vw,4.4rem)!important}}


/* v1.0.2 — robust frontend + Site Editor layout fixes. */
.dv-included-grid,
.dv-review-grid{
  width:100%!important;
  max-width:1200px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
}
.dv-included-grid > *,
.dv-review-grid > *{
  width:auto!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  box-sizing:border-box!important;
}
.dv-included-grid > .wp-block-group{
  min-height:220px!important;
}
.dv-review-grid > .wp-block-group{
  min-height:220px!important;
}

/* Core Gallery adds flex widths to nested image blocks; reset them for the DV mosaic. */
.wp-block-gallery.dv-gallery-mosaic,
.wp-block-gallery.is-style-dv-mosaic{
  width:100%!important;
  max-width:1200px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  display:grid!important;
  grid-template-columns:1.15fr .85fr .85fr!important;
  grid-template-rows:280px 200px!important;
  gap:8px!important;
  align-items:stretch!important;
}
.wp-block-gallery.dv-gallery-mosaic > .wp-block-image,
.wp-block-gallery.is-style-dv-mosaic > .wp-block-image{
  width:auto!important;
  max-width:none!important;
  min-width:0!important;
  height:100%!important;
  margin:0!important;
  flex:none!important;
  box-sizing:border-box!important;
}
.wp-block-gallery.dv-gallery-mosaic > .wp-block-image img,
.wp-block-gallery.is-style-dv-mosaic > .wp-block-image img{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  height:100%!important;
  object-fit:cover!important;
}
.wp-block-gallery.dv-gallery-mosaic > .wp-block-image:first-child,
.wp-block-gallery.is-style-dv-mosaic > .wp-block-image:first-child{grid-row:1 / 3!important}
.wp-block-gallery.dv-gallery-mosaic > .wp-block-image:nth-child(5),
.wp-block-gallery.is-style-dv-mosaic > .wp-block-image:nth-child(5){grid-column:span 2!important}

/* Hide an unresolved reviews shortcode. A connected reviews plugin will replace the shortcode with markup. */
.wp-block-shortcode:has(> :only-child){max-width:1200px}
.wp-block-shortcode:not(:has(*)){display:none!important}

/* Site Editor wrappers: put the actual child block-list on the grid. */
.editor-styles-wrapper .dv-included-grid,
.editor-styles-wrapper .dv-review-grid,
.editor-styles-wrapper .dv-gallery-mosaic,
.editor-styles-wrapper .is-style-dv-mosaic{
  display:block!important;
  width:100%!important;
  max-width:1200px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  background:transparent!important;
}
.editor-styles-wrapper .dv-included-grid > .block-editor-inner-blocks > .block-editor-block-list__layout,
.editor-styles-wrapper .dv-review-grid > .block-editor-inner-blocks > .block-editor-block-list__layout{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:1px!important;
  width:100%!important;
  max-width:none!important;
  background:var(--wp--preset--color--cream-deep)!important;
}
.editor-styles-wrapper .dv-included-grid > .block-editor-inner-blocks > .block-editor-block-list__layout > *,
.editor-styles-wrapper .dv-review-grid > .block-editor-inner-blocks > .block-editor-block-list__layout > *{
  width:auto!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
}
.editor-styles-wrapper .dv-gallery-mosaic > .block-editor-inner-blocks > .block-editor-block-list__layout,
.editor-styles-wrapper .is-style-dv-mosaic > .block-editor-inner-blocks > .block-editor-block-list__layout{
  display:grid!important;
  grid-template-columns:1.15fr .85fr .85fr!important;
  grid-template-rows:280px 200px!important;
  gap:8px!important;
  width:100%!important;
  max-width:none!important;
}
.editor-styles-wrapper .dv-gallery-mosaic [data-type="core/image"],
.editor-styles-wrapper .is-style-dv-mosaic [data-type="core/image"]{
  width:auto!important;
  max-width:none!important;
  min-width:0!important;
  height:100%!important;
  margin:0!important;
}
.editor-styles-wrapper .dv-gallery-mosaic [data-type="core/image"]:first-child,
.editor-styles-wrapper .is-style-dv-mosaic [data-type="core/image"]:first-child{grid-row:1 / 3!important}
.editor-styles-wrapper .dv-gallery-mosaic [data-type="core/image"]:nth-child(5),
.editor-styles-wrapper .is-style-dv-mosaic [data-type="core/image"]:nth-child(5){grid-column:span 2!important}
.editor-styles-wrapper .dv-gallery-mosaic [data-type="core/image"] .wp-block-image,
.editor-styles-wrapper .dv-gallery-mosaic [data-type="core/image"] .components-resizable-box__container,
.editor-styles-wrapper .dv-gallery-mosaic [data-type="core/image"] .block-editor-media-placeholder,
.editor-styles-wrapper .dv-gallery-mosaic [data-type="core/image"] img,
.editor-styles-wrapper .is-style-dv-mosaic [data-type="core/image"] .wp-block-image,
.editor-styles-wrapper .is-style-dv-mosaic [data-type="core/image"] .components-resizable-box__container,
.editor-styles-wrapper .is-style-dv-mosaic [data-type="core/image"] .block-editor-media-placeholder,
.editor-styles-wrapper .is-style-dv-mosaic [data-type="core/image"] img{
  width:100%!important;
  max-width:none!important;
  height:100%!important;
  object-fit:cover!important;
}
@media(max-width:900px){
  .editor-styles-wrapper .dv-included-grid > .block-editor-inner-blocks > .block-editor-block-list__layout,
  .editor-styles-wrapper .dv-review-grid > .block-editor-inner-blocks > .block-editor-block-list__layout{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:600px){
  .wp-block-gallery.dv-gallery-mosaic,.wp-block-gallery.is-style-dv-mosaic{grid-template-columns:1fr 1fr!important;grid-template-rows:220px 170px 170px!important}
  .wp-block-gallery.dv-gallery-mosaic > .wp-block-image:first-child,.wp-block-gallery.is-style-dv-mosaic > .wp-block-image:first-child{grid-column:1 / 3!important;grid-row:auto!important}
  .wp-block-gallery.dv-gallery-mosaic > .wp-block-image:nth-child(5),.wp-block-gallery.is-style-dv-mosaic > .wp-block-image:nth-child(5){grid-column:auto!important}
  .editor-styles-wrapper .dv-included-grid > .block-editor-inner-blocks > .block-editor-block-list__layout,
  .editor-styles-wrapper .dv-review-grid > .block-editor-inner-blocks > .block-editor-block-list__layout{grid-template-columns:1fr!important}
}

/* v1.0.3 — auto-moving Moments We've Made carousel for the existing editable image group. */
.dv-moments-auto-carousel{
  --dv-moments-gap:18px;
  position:relative;
  width:100%;
  max-width:1200px;
  margin:1.5rem auto 0;
  overflow:hidden;
}
.dv-moments-viewport{overflow:hidden;width:100%;touch-action:pan-y;}
.dv-moments-track{
  display:flex;
  align-items:stretch;
  gap:var(--dv-moments-gap);
  will-change:transform;
  transition:transform .75s cubic-bezier(.22,.61,.36,1);
}
.dv-moments-slide{
  flex:0 0 calc((100% - (var(--dv-moments-gap) * 2))/3);
  min-width:0;
}
.dv-moments-slide-figure{
  width:100%!important;
  height:100%!important;
  margin:0!important;
}
.dv-moments-slide-figure img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  aspect-ratio:4/5;
  object-fit:cover!important;
  object-position:center;
}
.dv-moments-slide-figure figcaption{
  margin:.65rem 0 0;
  text-align:center;
  font-size:.78rem;
  color:var(--wp--preset--color--muted, #7a6a56);
}
.dv-moments-source-hidden{display:none!important;}
.dv-moments-controls{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:.7rem;
  margin-top:1rem;
}
.dv-moments-arrow{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:2.45rem;
  height:2.45rem;
  padding:0;
  border:1px solid rgba(42,33,24,.28);
  border-radius:999px;
  background:transparent;
  color:var(--wp--preset--color--brown, #2a2118);
  font:inherit;
  cursor:pointer;
  transition:background-color .2s ease,border-color .2s ease;
}
.dv-moments-arrow:hover,.dv-moments-arrow:focus-visible{
  background:var(--wp--preset--color--cream, #faf7f2);
  border-color:var(--wp--preset--color--gold, #b8914e);
  outline:none;
}
@media(max-width:900px){
  .dv-moments-auto-carousel{--dv-moments-gap:14px;}
  .dv-moments-slide{flex-basis:calc((100% - var(--dv-moments-gap))/2);}
}
@media(max-width:600px){
  .dv-moments-auto-carousel{--dv-moments-gap:10px;margin-top:1rem;}
  .dv-moments-slide{flex-basis:calc((100% - var(--dv-moments-gap))/2);}
  .dv-moments-slide-figure img{aspect-ratio:4/5;}
}
@media(prefers-reduced-motion:reduce){
  .dv-moments-track{transition:none!important;}
}
