/*
Theme Name: Cypress Holidays Final Production Bake v10
Theme URI: https://cypressholidays.com/
Author: JAX Creative / R2
Description: Custom static-scene theme for Cypress Holidays.
Version: 2026.06.29-final-production-bake-v10
Text Domain: cypressholidays
*/

@font-face {
  font-family: "Christmas Comeback";
  src: url("assets/fonts/Christmas-Comeback.otf") format("opentype");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Mountains of Christmas";
  src: url("assets/fonts/MountainsofChristmas-Regular.woff2") format("woff2"),
       url("assets/fonts/MountainsofChristmas-Regular.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

:root{
  --ch-blue:#061a72;
  --ch-red:#9f101e;
  --ch-cream:#fffef8;
  --ch-copy:#161616;
  --ch-content-shadow: 0 0 18px rgba(0,0,0,.35);
}

*{ box-sizing:border-box; }
html, body {
  margin:0;
  padding:0;
  width:100%;
  height:100%;
  background:#02081f;
  overflow:hidden;
}
body {
  font-family: Arial, Helvetica, sans-serif;
  color: var(--ch-copy);
}
body.admin-bar .ch-fullscreen {
  height: calc(100vh - 32px);
  min-height: calc(100vh - 32px);
}
a { color:inherit; }
img { max-width:100%; height:auto; }

.ch-fullscreen{
  height:100vh;
  min-height:100vh;
  width:100vw;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  /* Intentional night-sky surround for the static scene. Keeps side space from feeling like empty bars. */
  background:
    radial-gradient(circle at 12% 18%, rgba(255,255,255,.34) 0 1px, transparent 2px),
    radial-gradient(circle at 86% 12%, rgba(255,255,255,.28) 0 1px, transparent 2px),
    radial-gradient(circle at 18% 72%, rgba(255,255,255,.24) 0 1px, transparent 2px),
    radial-gradient(circle at 78% 66%, rgba(255,255,255,.22) 0 1px, transparent 2px),
    radial-gradient(circle at center 38%, #0b54ca 0%, #063293 38%, #020b3a 72%, #00030f 100%);
  background-size: 180px 180px, 240px 240px, 210px 210px, 260px 260px, 100% 100%;
  overflow:hidden;
}

/* Scene aspect-ratio wrapper. This keeps all absolute overlays locked to the artwork. */
.ch-scene{
  position:relative;
  width:min(100vw, calc(100vh * 1.5));
  aspect-ratio: 3 / 2;
  background-position:center center;
  background-repeat:no-repeat;
  background-size:100% 100%;
  overflow:hidden;
}
body.admin-bar .ch-scene{
  width:min(100vw, calc((100vh - 32px) * 1.5));
}
.ch-home-scene{
  background-image:url("assets/images/Desktop/desktop-home.png");
}
.ch-internal-scene{
  background-image:url("assets/images/Desktop/desktop-interior.png");
}

/* Admin bar is fine, but the public page should feel like an experience. */
.ch-sign{
  position:absolute;
  display:block;
  background-size:contain;
  background-repeat:no-repeat;
  background-position:center;
  text-indent:-9999px;
  overflow:hidden;
  z-index:20;
  transition: transform .12s ease, filter .12s ease;
}
.ch-sign:hover,
.ch-sign:focus{
  transform:scale(1.035);
  filter:brightness(1.08);
  outline:none;
}

/* Homepage signs: larger overlay targets, locked to the scene without scaling the background. */
.ch-home-sign{
  top:3.2%;
  width:17%;
  height:12.5%;
}
.ch-home-sign.meet{ left:2.5%; background-image:url("assets/images/Desktop/desktop-home.png"); }
.ch-home-sign.christmas{ left:22.0%; background-image:url("assets/images/Desktop/desktop-home.png"); }
.ch-home-sign.support{ left:41.5%; background-image:url("assets/images/Desktop/desktop-home.png"); }
.ch-home-sign.faq{ left:61.0%; background-image:url("assets/images/Desktop/desktop-home.png"); }
.ch-home-sign.contact{ left:80.5%; background-image:url("assets/images/Desktop/desktop-home.png"); }

/* Internal desktop signs */
.ch-internal-sign{
  width:14.6%;
  height:13.4%;
}
.ch-left-1{ left:5.2%; top:5.2%; }
.ch-left-2{ left:5.2%; top:22.0%; }
.ch-left-3{ left:5.2%; top:38.9%; }
.ch-left-4{ left:5.2%; top:55.8%; }
.ch-left-5{ left:5.2%; top:72.7%; }
.ch-right-1{ right:5.2%; top:5.2%; }
.ch-right-2{ right:5.2%; top:22.0%; }
.ch-right-3{ right:5.2%; top:38.9%; }
.ch-right-4{ right:5.2%; top:55.8%; }
.ch-right-5{ right:5.2%; top:72.7%; }

.ch-internal-sign.family{ background-image:url("assets/images/Desktop/desktop-interior.png");}
.ch-internal-sign.display{ background-image:url("assets/images/Desktop/desktop-interior.png");}
.ch-internal-sign.santa{ background-image:url("assets/images/Desktop/desktop-interior.png");}
.ch-internal-sign.contact{ background-image:url("assets/images/Desktop/desktop-interior.png");}
.ch-internal-sign.faq{ background-image:url("assets/images/Desktop/desktop-interior.png");}
.ch-internal-sign.articles{ background-image:url("assets/images/Desktop/desktop-interior.png");}
.ch-internal-sign.how{ background-image:url("assets/images/Desktop/desktop-interior.png");}
.ch-internal-sign.support-display{ background-image:url("assets/images/Desktop/desktop-interior.png");}
.ch-internal-sign.carol{ background-image:url("assets/images/Desktop/desktop-interior.png");}
.ch-internal-sign.northpole{ background-image:url("assets/images/Desktop/desktop-interior.png");}

/* Content window */
.ch-content-window{
  position:absolute;
  left:23%;
  top:24.2%;
  width:54%;
  height:65.8%;
  background:rgba(255,255,255,.97);
  border:3px solid rgba(170,0,0,.82);
  box-shadow:var(--ch-content-shadow);
  overflow-y:auto;
  padding:clamp(18px, 1.25vw, 50px);
  z-index:10;
}
.ch-content-window::-webkit-scrollbar{ width:12px; }
.ch-content-window::-webkit-scrollbar-thumb{ background:#9f101e; border-radius:8px; border:3px solid #fff; }
.ch-content-window::-webkit-scrollbar-track{ background:#f3f3f3; }

.ch-content-inner{
  font-family:Garamond, "Times New Roman", serif;
  font-size:18px;
  line-height:1.25;
  text-align:justify;
}
.ch-content-inner p{ margin:0 0 .35em; }
.ch-content-inner h1,
.ch-content-inner .ch-heading-1,
.entry-content h1{
  font-family:"Christmas Comeback", serif;
  font-weight:normal;
  color:rgb(255,0,0);
  font-size:48px;
  line-height:1.05;
  margin:0 0 .25em;
  text-align:center;
}
.ch-content-inner h2,
.ch-content-inner .ch-heading-2,
.entry-content h2{
  font-family:"Mountains of Christmas", cursive;
  font-weight:normal;
  color:rgb(255,0,0);
  font-size:48px;
  line-height:1.05;
  margin:.4em 0 .25em;
  text-align:center;
}
.ch-content-inner h3,
.entry-content h3{
  font-family:"Christmas Comeback", serif;
  font-weight:normal;
  color:#000;
  font-size:36px;
  line-height:1.1;
  margin:.45em 0 .25em;
  text-align:center;
}
.ch-content-inner h4,
.entry-content h4{
  font-family:"Mountains of Christmas", cursive;
  font-weight:normal;
  color:#000;
  font-size:36px;
  line-height:1.1;
  margin:.45em 0 .25em;
  text-align:center;
}
.ch-content-inner hr{
  margin:.7em 0;
  border:0;
  border-top:1px solid rgba(0,0,0,.35);
}

.ch-content-inner img{
  display:block;
  max-width:100%;
  height:auto;
  margin:1.25em auto;
}
.ch-content-inner .wp-caption{
  max-width:100%;
  margin:1.25em auto;
  text-align:center;
}
.ch-content-inner .wp-caption-text{
  font-size:15px;
  line-height:1.4;
  color:#555;
  text-align:center;
}

/* Post listing grid inside internal frame */
.ch-post-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap:clamp(14px, 1.1vw, 32px);
  text-align:left;
}
.ch-post-card{
  display:block;
  text-decoration:none;
  color:#111;
  background:#fff;
  border:1px solid rgba(0,0,0,.18);
  box-shadow:0 2px 8px rgba(0,0,0,.16);
}
.ch-post-card img{
  width:100%;
  aspect-ratio:1300 / 875;
  object-fit:cover;
  display:block;
  margin:0;
}
.ch-post-card-title{
  font-family:"Christmas Comeback","Mountains of Christmas",serif;
  color:var(--ch-red);
  font-size:24px;
  line-height:1.05;
  text-align:center;
  padding:12px 10px 14px;
}
.ch-post-card:hover{ transform:translateY(-2px); }

/* Mobile */
.ch-mobile-only{ display:none; }
.ch-desktop-only{ display:block; }

@media (max-width: 767px){
  html, body{ background:#000; }
  .ch-fullscreen{
    height:100dvh;
    min-height:100dvh;
    align-items:center;
    justify-content:center;
  }
  body.admin-bar .ch-fullscreen{ height:100dvh; min-height:100dvh; }
  .ch-desktop-only{ display:none !important; }
  .ch-mobile-only{ display:block; }

  .ch-scene{
    width:min(100vw, calc(100dvh / 2));
    height:auto;
    aspect-ratio:1 / 2;
    background-size:100% 100%;
  }
  body.admin-bar .ch-scene{
    width:min(100vw, calc(100dvh / 2));
    height:auto;
  }
  .ch-home-scene{
    background-image:url("assets/images/Desktop/desktop-home.png");
  }
  .ch-internal-scene{
    background-image:url("assets/images/Desktop/desktop-interior.png");
  }

  .ch-mobile-home-sign{
    left:23%;
    width:54%;
    height:12.5%;
    z-index:20;
  }
  .ch-mobile-home-sign.meet{ top:25.0%; background-image:url("assets/images/Mobile/Mobile-Wooden-Sign-Meet-Us-Homepage.png");}
  .ch-mobile-home-sign.christmas{ top:38.0%; background-image:url("assets/images/Mobile/Mobile-Wooden-Sign-Christmas-Homepage.png");}
  .ch-mobile-home-sign.support{ top:51.0%; background-image:url("assets/images/Mobile/Mobile-Wooden-Sign-Support-Us-Homepage.png");}
  .ch-mobile-home-sign.faq{ top:64.0%; background-image:url("assets/images/Mobile/Mobile-Wooden-Sign-FAQ-Homepage.png");}
  .ch-mobile-home-sign.contact{ top:77.0%; background-image:url("assets/images/Mobile/Mobile-Wooden-Sign-Contact-Us-Homepage.png");}

  .ch-mobile-menu-checkbox{
    position:absolute;
    opacity:0;
    pointer-events:none;
  }
  .ch-mobile-icon-link{
    position:absolute;
    top:6.55%;
    width:5.7%;
    height:2.85%;
    text-indent:-9999px;
    z-index:55;
    background-size:contain;
    background-repeat:no-repeat;
    background-position:center;
    cursor:pointer;
  }
  .ch-mobile-icon-link.menu{
    left:5.55%;
    background-image:url("assets/images/Mobile/Menu-Hamburger-Icon.png");
  }
  .ch-mobile-icon-link.email{
    right:5.55%;
    background-image:url("assets/images/Mobile/Email-Icon.png");
  }
  .ch-mobile-menu-panel{
    display:none;
    position:absolute;
    left:10%;
    top:12%;
    width:80%;
    max-height:72%;
    overflow-y:auto;
    z-index:50;
    background:rgba(255,255,255,.97);
    border:2px solid #9f101e;
    box-shadow:0 0 18px rgba(0,0,0,.35);
    padding:14px 16px 16px;
    font-family:"Christmas Comeback", "Mountains of Christmas", serif;
    font-size:24px;
    line-height:1.0;
    text-align:center;
  }
  .ch-mobile-menu-checkbox:checked ~ .ch-mobile-menu-panel{
    display:block;
  }
  .ch-mobile-menu-panel ul{
    list-style:none;
    margin:0;
    padding:0;
  }
  .ch-mobile-menu-panel li{
    margin:0;
    padding:0;
    border-bottom:1px solid rgba(159,16,30,.22);
  }
  .ch-mobile-menu-panel a{
    display:block;
    padding:6px 6px;
    color:#9f101e;
    text-decoration:none;
  }
  .ch-mobile-menu-close{
    display:block;
    margin:10px auto 0;
    padding:6px 12px;
    width:max-content;
    border:1px solid rgba(159,16,30,.45);
    color:#111;
    font-family:Arial, Helvetica, sans-serif;
    font-size:14px;
    line-height:1;
    cursor:pointer;
  }

  .ch-content-window{
    left:9.2%;
    top:14.8%;
    width:81.6%;
    height:69.8%;
    padding:24px 22px;
    border:none;
    box-shadow:none;
    background:rgba(255,255,255,.98);
  }
  .ch-content-inner{
    font-size:17px;
    line-height:1.35;
    text-align:left;
  }
  .ch-content-inner h1,
  .ch-content-inner .ch-heading-1,
  .entry-content h1{
    font-size:40px;
  }
  .ch-content-inner h2,
  .ch-content-inner .ch-heading-2,
  .entry-content h2{
    font-size:40px;
  }
  .ch-content-inner h3,
  .entry-content h3{
    font-size:32px;
  }
  .ch-content-inner h4,
  .entry-content h4{
    font-size:32px;
  }
  .ch-post-grid{
    display:block;
  }
  .ch-mobile-post-list{
    list-style:none;
    padding:0;
    margin:0;
    font-family:Garamond, "Times New Roman", serif;
    font-size:20px;
    line-height:1.35;
    text-align:left;
  }
  .ch-mobile-post-list li{
    margin:0;
    border-bottom:1px solid #ddd;
  }
  .ch-mobile-post-list a{
    display:block;
    padding:12px 0;
    color:#111;
    text-decoration:none;
  }
}

@media (min-width:768px) and (max-aspect-ratio: 3/2){
  .ch-fullscreen{ align-items:flex-start; }
}

/* Fallback for normal WordPress blocks inside content */
.aligncenter{ margin-left:auto; margin-right:auto; display:block; }
.alignleft{ float:left; margin:0 1.2em 1em 0; }
.alignright{ float:right; margin:0 0 1em 1.2em; }
.screen-reader-text{ position:absolute; left:-9999px; }


/* =====================================================
   FINAL VISUAL LOCKS - May 2026 Rebuild
   Baked into theme so Customizer CSS is not required.
===================================================== */
.ch-content-inner h1,
.ch-content-inner .ch-heading-1,
.ch-content-window h1,
.entry-content h1,
h1 {
  font-size: 36px !important;
}
.ch-content-inner h2,
.ch-content-inner .ch-heading-2,
.ch-content-window h2,
.entry-content h2,
h2 {
  font-size: 36px !important;
}
.ch-content-inner h3,
.ch-content-window h3,
.entry-content h3,
h3 {
  font-size: 28px !important;
}
.ch-content-inner h4,
.ch-content-window h4,
.entry-content h4,
h4 {
  font-size: 28px !important;
}
.ch-post-card-title,
.ch-post-card-title a,
.ch-post-grid .entry-title,
.ch-post-grid .entry-title a,
.ch-article-card-title,
.ch-article-card-title a {
  font-family: Garamond, "Times New Roman", serif !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  line-height: 1.1 !important;
  text-align: center !important;
}
.ch-post-card-title,
.ch-post-grid .entry-title,
.ch-article-card-title {
  min-height: 50px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 8px 10px !important;
}


/* Desktop/Mobile editor content visibility aliases */
.mobile-only,
.ch-mobile-only { display: none; }

.desktop-only,
.ch-desktop-only { display: block; }

@media (max-width: 767px) {
  .desktop-only,
  .ch-desktop-only { display: none !important; }

  .mobile-only,
  .ch-mobile-only { display: block !important; }
}



/* =====================================================
   FINAL MOBILE CONTENT WINDOW WIDTH LOCK
   Lines up the mobile reading window closer to the village width.
===================================================== */
@media (max-width: 767px) {
  .ch-internal-scene .ch-content-window,
  .ch-content-window {
    left: 7% !important;
    width: 86% !important;
    padding-left: 18px !important;
    padding-right: 18px !important;
    box-sizing: border-box !important;
  }
}



/* =====================================================
   FINAL MOBILE CONTENT WINDOW WIDTH - VILLAGE MATCH
   Match the reading window to the mobile footer village span.
===================================================== */
@media (max-width: 767px) {
  .ch-internal-scene .ch-content-window,
  .ch-content-window {
    left: 4% !important;
    width: 92% !important;
    max-width: 92% !important;
    right: auto !important;
    box-sizing: border-box !important;
    padding-left: 18px !important;
    padding-right: 18px !important;
  }
}



/* =====================================================
   FINAL BACKGROUND LOCK - transparent/current assets only
===================================================== */
.ch-home-scene {
  background-image: url("assets/images/Desktop/desktop-home.png") !important;
}
.ch-internal-scene {
  background-image: url("assets/images/Desktop/desktop-interior.png") !important;
}
@media (max-width: 767px) {
  .ch-home-scene {
    background-image: url("assets/images/Mobile/mobile-home.png") !important;
  }
  .ch-internal-scene {
    background-image: url("assets/images/Mobile/mobile-interior.png") !important;
  }
}


/* =====================================================
   FINAL ASSET + LAYOUT LOCK - 05272026 1025PM
===================================================== */

/* Desktop scenes are now 1920 x 1080, so the stage is 16:9. */
@media (min-width: 768px) {
  .ch-scene {
    width: min(100vw, calc(100vh * 1.77777778)) !important;
    aspect-ratio: 16 / 9 !important;
    background-size: 100% 100% !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
  }

  body.admin-bar .ch-scene {
    width: min(100vw, calc((100vh - 32px) * 1.77777778)) !important;
  }

  .ch-home-scene {
    background-image: url("assets/images/Desktop/desktop-home.png") !important;
  }

  .ch-internal-scene {
    background-image: url("assets/images/Desktop/desktop-interior.png") !important;
  }

  /* Homepage: seven signs across the top, matching the 1920 mock-up. */
  .ch-home-sign {
    top: 4.4% !important;
    width: 13.05% !important;
    height: 14.85% !important;
  }

  .ch-home-sign.meet { left: 3.45% !important; background-image: url("assets/images/Desktop/signs/meet-family.png") !important; }
  .ch-home-sign.display { left: 17.25% !important; background-image: url("assets/images/Desktop/signs/christmas-display.png") !important; }
  .ch-home-sign.santa { left: 31.05% !important; background-image: url("assets/images/Desktop/signs/santa-claus.png") !important; }
  .ch-home-sign.faq { left: 44.85% !important; background-image: url("assets/images/Desktop/signs/faq.png") !important; }
  .ch-home-sign.articles { left: 58.65% !important; background-image: url("assets/images/Desktop/signs/holiday-articles.png") !important; }
  .ch-home-sign.support-display { left: 72.45% !important; background-image: url("assets/images/Desktop/signs/support-display.png") !important; }
  .ch-home-sign.contact { left: 86.25% !important; background-image: url("assets/images/Desktop/signs/get-in-touch.png") !important; }

  /* Internal desktop signs. */
  .ch-internal-sign {
    width: 13.05% !important;
    height: 14.85% !important;
  }

  .ch-left-1 { left: 4.4% !important; top: 7.0% !important; }
  .ch-left-2 { left: 4.4% !important; top: 23.0% !important; }
  .ch-left-3 { left: 4.4% !important; top: 39.2% !important; }
  .ch-left-4 { left: 4.4% !important; top: 55.3% !important; }
  .ch-left-5 { left: 4.4% !important; top: 71.4% !important; }

  .ch-right-1 { right: 4.4% !important; top: 7.0% !important; }
  .ch-right-2 { right: 4.4% !important; top: 23.0% !important; }
  .ch-right-3 { right: 4.4% !important; top: 39.2% !important; }
  .ch-right-4 { right: 4.4% !important; top: 55.3% !important; }
  .ch-right-5 { right: 4.4% !important; top: 71.4% !important; }

  .ch-internal-sign.family { background-image: url("assets/images/Desktop/signs/meet-family.png") !important; }
  .ch-internal-sign.display { background-image: url("assets/images/Desktop/signs/christmas-display.png") !important; }
  .ch-internal-sign.santa { background-image: url("assets/images/Desktop/signs/santa-claus.png") !important; }
  .ch-internal-sign.contact { background-image: url("assets/images/Desktop/signs/get-in-touch.png") !important; }
  .ch-internal-sign.faq { background-image: url("assets/images/Desktop/signs/faq.png") !important; }

  .ch-internal-sign.articles { background-image: url("assets/images/Desktop/signs/holiday-articles.png") !important; }
  .ch-internal-sign.how { background-image: url("assets/images/Desktop/signs/how-we-do-it-all.png") !important; }
  .ch-internal-sign.support-display { background-image: url("assets/images/Desktop/signs/support-display.png") !important; }
  .ch-internal-sign.northpole { background-image: url("assets/images/Desktop/signs/north-pole.png") !important; }
  .ch-internal-sign.carol { background-image: url("assets/images/Desktop/signs/heart-of-the-carol.png") !important; }

  /* Internal content window aligned to the 1920 mock-up. */
  .ch-content-window {
    left: 19.0% !important;
    top: 18.0% !important;
    width: 62.0% !important;
    height: 68.0% !important;
    padding: clamp(18px, 1.45vw, 44px) !important;
    background: rgba(255,255,255,.97) !important;
    border: 3px solid rgba(170,0,0,.82) !important;
    box-shadow: 0 0 18px rgba(0,0,0,.35) !important;
  }
}

/* Mobile scenes remain 500 x 1000, so the stage is 1:2. */
@media (max-width: 767px) {
  .ch-scene {
    width: min(100vw, calc(100dvh / 2)) !important;
    height: auto !important;
    aspect-ratio: 1 / 2 !important;
    background-size: 100% 100% !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
  }

  .ch-home-scene {
    background-image: url("assets/images/Mobile/mobile-home.png") !important;
  }

  .ch-internal-scene {
    background-image: url("assets/images/Mobile/mobile-interior.png") !important;
  }

  .ch-mobile-home-sign {
    left: 17.5% !important;
    width: 65% !important;
    height: 16% !important;
    background-size: contain !important;
  }

  .ch-mobile-home-sign.meet { top: 22.5% !important; background-image: url("assets/images/Mobile/signs/meet-family.png") !important; }
  .ch-mobile-home-sign.display { top: 36.0% !important; background-image: url("assets/images/Mobile/signs/christmas-display.png") !important; }
  .ch-mobile-home-sign.santa { top: 49.5% !important; background-image: url("assets/images/Mobile/signs/santa-claus.png") !important; }
  .ch-mobile-home-sign.faq { top: 63.0% !important; background-image: url("assets/images/Mobile/signs/faq.png") !important; }
  .ch-mobile-home-sign.contact { top: 76.5% !important; background-image: url("assets/images/Mobile/signs/contact.png") !important; }

  .ch-internal-scene .ch-content-window,
  .ch-content-window {
    left: 3% !important;
    width: 94% !important;
    max-width: 94% !important;
    top: 14.8% !important;
    height: 69.8% !important;
    padding-left: 18px !important;
    padding-right: 18px !important;
    box-sizing: border-box !important;
  }
}

/* Heading settings from uploaded notes */
.ch-content-inner h1,
.ch-content-inner .ch-heading-1,
.ch-content-window h1,
.entry-content h1,
h1 {
  font-family: "Christmas Comeback", serif !important;
  font-size: 42px !important;
  color: rgb(255,0,0) !important;
}

.ch-content-inner h2,
.ch-content-inner .ch-heading-2,
.ch-content-window h2,
.entry-content h2,
h2 {
  font-family: "Mountains of Christmas", cursive !important;
  font-size: 42px !important;
  color: rgb(255,0,0) !important;
}

.ch-content-inner h3,
.ch-content-window h3,
.entry-content h3,
h3 {
  font-family: "Christmas Comeback", serif !important;
  font-size: 30px !important;
  color: #000 !important;
}

.ch-content-inner h4,
.ch-content-window h4,
.entry-content h4,
h4 {
  font-family: "Mountains of Christmas", cursive !important;
  font-size: 30px !important;
  color: #000 !important;
}

/* Editor responsive content helpers */
.mobile-only,
.ch-mobile-only { display: none; }

.desktop-only,
.ch-desktop-only { display: block; }

@media (max-width: 767px) {
  .desktop-only,
  .ch-desktop-only { display: none !important; }

  .mobile-only,
  .ch-mobile-only { display: block !important; }
}


/* Homepage fifth sign is Holiday Articles, not How We Do It All */
@media (min-width: 768px) {
  .ch-home-sign.articles {
    left: 58.65% !important;
    background-image: url("assets/images/Desktop/signs/holiday-articles.png") !important;
  }
}


/* =====================================================
   FIX: HOMEPAGE FIFTH SIGN = HOLIDAY ARTICLES
===================================================== */
@media (min-width: 768px) {
  .ch-home-page .ch-home-sign.articles,
  .ch-home-scene .ch-home-sign.articles,
  .ch-sign.ch-home-sign.articles {
    left: 58.65% !important;
    top: 4.4% !important;
    width: 13.05% !important;
    height: 14.85% !important;
    background-image: url("assets/images/Desktop/signs/holiday-articles.png") !important;
    background-size: contain !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    display: block !important;
    z-index: 20 !important;
  }
}


/* =====================================================
   FINAL MOBILE TUNING - 05272026
   1) Mobile homepage wooden signs at 85% previous size.
   2) Mobile interior content window taller toward village.
===================================================== */
@media (max-width: 767px) {
  .ch-mobile-home-sign {
    left: 20.75% !important;
    width: 58.5% !important;
    height: 14.4% !important;
    background-size: contain !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
  }

  .ch-mobile-home-sign.meet { top: 22.0% !important; }
  .ch-mobile-home-sign.display { top: 34.5% !important; }
  .ch-mobile-home-sign.santa { top: 47.0% !important; }
  .ch-mobile-home-sign.faq { top: 59.5% !important; }
  .ch-mobile-home-sign.contact { top: 72.0% !important; }

  .ch-internal-scene .ch-content-window {
    top: 14.8% !important;
    height: 73.0% !important;
  }
}



/* Homepage swap: Visit the North Pole replaces Support the Display */
@media (min-width: 768px) {
  .ch-home-sign.northpole {
    background-image: url("assets/images/Desktop/signs/visit-the-north-pole.png") !important;
  }
}


/* =====================================================
   FIX: HOMEPAGE SIXTH SIGN = VISIT THE NORTH POLE
   Replaces Support the Display in that desktop slot.
===================================================== */
@media (min-width: 768px) {
  .ch-home-page .ch-home-sign.northpole,
  .ch-home-scene .ch-home-sign.northpole,
  .ch-sign.ch-home-sign.northpole {
    left: 72.45% !important;
    top: 4.4% !important;
    width: 13.05% !important;
    height: 14.85% !important;
    background-image: url("assets/images/Desktop/signs/north-pole.png") !important;
    background-size: contain !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    display: block !important;
    z-index: 20 !important;
  }
}


/* =====================================================
   FINAL CONTENT HEADING SPACING LOCK
   Tightens the space beneath headings inside the reading window.
===================================================== */
.ch-content-window h1,
.ch-content-window h2,
.ch-content-window h3,
.ch-content-window h4,
.ch-content-window h5,
.ch-content-window h6,
.ch-content-inner h1,
.ch-content-inner h2,
.ch-content-inner h3,
.ch-content-inner h4,
.ch-content-inner h5,
.ch-content-inner h6,
.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6 {
    margin-top: 0.35em !important;
    margin-bottom: 4px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    line-height: 1.05 !important;
}

.ch-content-window h1 + *,
.ch-content-window h2 + *,
.ch-content-window h3 + *,
.ch-content-window h4 + *,
.ch-content-window h5 + *,
.ch-content-window h6 + *,
.ch-content-inner h1 + *,
.ch-content-inner h2 + *,
.ch-content-inner h3 + *,
.ch-content-inner h4 + *,
.ch-content-inner h5 + *,
.ch-content-inner h6 + * {
    margin-top: 8px !important;
}



/* =====================================================
   PHOTO PAGE / THUMBNAIL GALLERY SYSTEM
   Use inside page content:
   <div class="ch-photo-intro">...</div>
   <div class="ch-gallery">...</div>
===================================================== */

.ch-photo-intro {
    max-width: 92%;
    margin: 0 auto 18px auto;
    text-align: left;
}

.ch-photo-intro p {
    margin: 0 0 12px 0;
}

.ch-gallery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px;
    width: 92%;
    margin: 18px auto 24px auto;
}

.ch-gallery a {
    display: block;
    text-decoration: none;
}

.ch-gallery img {
    width: 100%;
    aspect-ratio: 1 / 1 !important;
    object-fit: cover;
    display: block;
    border: 2px solid rgba(0,0,0,.18);
    box-shadow: 0 3px 8px rgba(0,0,0,.22);
    background: #fff;
    transition: transform .18s ease, box-shadow .18s ease;
}

.ch-gallery a:hover img,
.ch-gallery a:focus img {
    transform: scale(1.025);
    box-shadow: 0 5px 14px rgba(0,0,0,.32);
}

.ch-gallery-caption {
    display: block;
    margin-top: 6px;
    font-family: Garamond, "Times New Roman", serif;
    font-size: 16px;
    line-height: 1.1;
    text-align: center;
    color: #9f101e;
    font-weight: 700;
}

.ch-gallery.compact {
    gap: 12px;
}

@media (max-width: 767px) {
    .ch-photo-intro {
        max-width: 96%;
        margin-bottom: 14px;
    }

    .ch-gallery {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
        width: 96%;
        margin: 14px auto 18px auto;
    }

    .ch-gallery img {
        border-width: 1px;
        box-shadow: 0 2px 6px rgba(0,0,0,.22);
    }

    .ch-gallery-caption {
        font-size: 14px;
    }
}



/* =====================================================
   FINAL PHOTO GALLERY THUMBNAIL GRID FIX
   Forces shortcode/manual galleries into thumbnail cards.
===================================================== */
.ch-content-window .ch-gallery,
.ch-content-inner .ch-gallery,
.entry-content .ch-gallery,
.ch-gallery {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 18px !important;
    width: 92% !important;
    max-width: 92% !important;
    margin: 18px auto 24px auto !important;
    clear: both !important;
}

.ch-content-window .ch-gallery a,
.ch-content-inner .ch-gallery a,
.entry-content .ch-gallery a,
.ch-gallery a {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    text-decoration: none !important;
}

.ch-content-window .ch-gallery img,
.ch-content-inner .ch-gallery img,
.entry-content .ch-gallery img,
.ch-gallery img,
.ch-gallery img.size-thumbnail,
.ch-gallery img.size-medium,
.ch-gallery img.size-medium_large,
.ch-gallery img.size-large,
.ch-gallery img.size-full {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
    object-fit: cover !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 2px solid rgba(0,0,0,.18) !important;
    box-shadow: 0 3px 8px rgba(0,0,0,.22) !important;
    background: #fff !important;
}

@media (max-width: 767px) {
    .ch-content-window .ch-gallery,
    .ch-content-inner .ch-gallery,
    .entry-content .ch-gallery,
    .ch-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
        width: 96% !important;
        max-width: 96% !important;
    }
}



/* =====================================================
   FINAL DESKTOP PHOTO GALLERY GRID LOCK
   Forces shortcode gallery into 3 equal thumbnail columns.
===================================================== */
@media (min-width: 768px) {
    .ch-content-window .ch-gallery,
    .ch-content-inner .ch-gallery,
    .entry-content .ch-gallery,
    .ch-gallery {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        column-gap: 16px !important;
        row-gap: 16px !important;
        width: 76% !important;
        max-width: 760px !important;
        margin: 16px auto 24px auto !important;
        align-items: start !important;
        justify-items: stretch !important;
    }

    .ch-gallery .ch-gallery-item,
    .ch-gallery > a,
    .ch-gallery p > a {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        float: none !important;
        clear: none !important;
    }

    .ch-gallery p {
        display: contents !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .ch-gallery img,
    .ch-gallery .ch-gallery-item img,
    .ch-gallery a img,
    .ch-content-window .ch-gallery img,
    .entry-content .ch-gallery img {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        aspect-ratio: auto !important;
        object-fit: cover !important;
        display: block !important;
        margin: 0 !important;
        padding: 0 !important;
        float: none !important;
    }
}



/* =====================================================
   FINAL DESKTOP PHOTO GALLERY SIZE TUNE
   Increases desktop gallery thumbnails to 110% of prior size.
===================================================== */
@media (min-width: 768px) {
    .ch-content-window .ch-gallery,
    .ch-content-inner .ch-gallery,
    .entry-content .ch-gallery,
    .ch-gallery {
        width: 83.6% !important;
        max-width: 836px !important;
    }

    .ch-gallery img,
    .ch-gallery .ch-gallery-item img,
    .ch-gallery a img,
    .ch-content-window .ch-gallery img,
    .entry-content .ch-gallery img {
        height: auto !important;
    }
}



/* =====================================================
   SAFE GALLERY CSS-ONLY FIX
   2 images per row everywhere, square thumbnails, larger desktop.
   No PHP or JS changes.
===================================================== */

.ch-gallery,
.ch-content-window .ch-gallery,
.ch-content-inner .ch-gallery,
.entry-content .ch-gallery {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px !important;
    width: 92% !important;
    max-width: 900px !important;
    margin: 18px auto 26px auto !important;
    clear: both !important;
    align-items: start !important;
    justify-items: stretch !important;
}

.ch-gallery p {
    display: contents !important;
    margin: 0 !important;
    padding: 0 !important;
}

.ch-gallery a,
.ch-gallery .ch-gallery-item,
.ch-gallery > a,
.ch-gallery p > a {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    clear: none !important;
    text-decoration: none !important;
}

.ch-gallery img,
.ch-gallery a img,
.ch-gallery .ch-gallery-item img,
.ch-gallery img.size-thumbnail,
.ch-gallery img.size-medium,
.ch-gallery img.size-medium_large,
.ch-gallery img.size-large,
.ch-gallery img.size-full,
.ch-content-window .ch-gallery img,
.entry-content .ch-gallery img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    height: auto !important;
    object-fit: cover !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    border: 2px solid rgba(0,0,0,.20) !important;
    box-shadow: 0 4px 10px rgba(0,0,0,.26) !important;
    background: #fff !important;
}

@media (max-width: 767px) {
    .ch-gallery,
    .ch-content-window .ch-gallery,
    .ch-content-inner .ch-gallery,
    .entry-content .ch-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
        width: 96% !important;
        max-width: 96% !important;
        margin: 14px auto 18px auto !important;
    }

    .ch-gallery img,
    .ch-gallery a img,
    .ch-gallery .ch-gallery-item img {
        border-width: 1px !important;
        box-shadow: 0 2px 6px rgba(0,0,0,.22) !important;
    }
}



/* =====================================================
   FINAL DIRECT GALLERY RULE FIX
   Matches actual live markup:
   .ch-internal-scene .ch-content-window .ch-content-inner .ch-gallery
===================================================== */
section.ch-scene .ch-content-window .ch-content-inner .ch-gallery,
section.ch-internal-scene article.ch-content-window div.ch-content-inner div.ch-gallery,
.ch-content-window .ch-content-inner div.ch-gallery,
div.ch-gallery {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px !important;
    width: 92% !important;
    max-width: 900px !important;
    margin: 18px auto 26px auto !important;
    align-items: start !important;
    justify-items: stretch !important;
    clear: both !important;
}

section.ch-scene .ch-content-window .ch-content-inner .ch-gallery > a,
section.ch-internal-scene article.ch-content-window div.ch-content-inner div.ch-gallery > a,
.ch-content-window .ch-content-inner div.ch-gallery > a,
div.ch-gallery > a {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    clear: none !important;
    text-decoration: none !important;
}

section.ch-scene .ch-content-window .ch-content-inner .ch-gallery img,
section.ch-internal-scene article.ch-content-window div.ch-content-inner div.ch-gallery img,
.ch-content-window .ch-content-inner div.ch-gallery img,
div.ch-gallery img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    height: auto !important;
    object-fit: cover !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    border: 2px solid rgba(0,0,0,.20) !important;
    box-shadow: 0 4px 10px rgba(0,0,0,.26) !important;
    background: #fff !important;
}

@media (max-width: 767px) {
    section.ch-scene .ch-content-window .ch-content-inner .ch-gallery,
    section.ch-internal-scene article.ch-content-window div.ch-content-inner div.ch-gallery,
    .ch-content-window .ch-content-inner div.ch-gallery,
    div.ch-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
        width: 96% !important;
        max-width: 96% !important;
        margin: 14px auto 18px auto !important;
    }

    section.ch-scene .ch-content-window .ch-content-inner .ch-gallery img,
    section.ch-internal-scene article.ch-content-window div.ch-content-inner div.ch-gallery img,
    .ch-content-window .ch-content-inner div.ch-gallery img,
    div.ch-gallery img {
        border-width: 1px !important;
        box-shadow: 0 2px 6px rgba(0,0,0,.22) !important;
    }
}



/* =====================================================
   GALLERY V2 CACHE-BUST FINAL LOCK
   Exact live markup from DevTools:
   div.ch-gallery > a.ch-gallery-item > img.attachment-medium
===================================================== */

.ch-content-window div.ch-gallery,
.ch-content-inner div.ch-gallery,
.entry-content div.ch-gallery,
article.ch-content-window div.ch-gallery,
section.ch-internal-scene article.ch-content-window div.ch-content-inner div.ch-gallery,
div.ch-gallery {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px !important;
    width: 92% !important;
    max-width: 920px !important;
    margin: 18px auto 26px auto !important;
    clear: both !important;
    align-items: start !important;
    justify-items: stretch !important;
}

.ch-content-window div.ch-gallery > a,
.ch-content-inner div.ch-gallery > a,
.entry-content div.ch-gallery > a,
article.ch-content-window div.ch-gallery > a,
div.ch-gallery > a.ch-gallery-item,
div.ch-gallery > a {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    clear: none !important;
    text-decoration: none !important;
    cursor: pointer !important;
}

.ch-content-window div.ch-gallery img,
.ch-content-inner div.ch-gallery img,
.entry-content div.ch-gallery img,
article.ch-content-window div.ch-gallery img,
section.ch-internal-scene article.ch-content-window div.ch-content-inner div.ch-gallery img,
div.ch-gallery > a.ch-gallery-item > img,
div.ch-gallery img.attachment-medium,
div.ch-gallery img.size-medium,
div.ch-gallery img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
    object-fit: cover !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    border: 2px solid rgba(0,0,0,.20) !important;
    box-shadow: 0 4px 10px rgba(0,0,0,.26) !important;
    background: #fff !important;
}

.ch-gallery p {
    display: contents !important;
    margin: 0 !important;
    padding: 0 !important;
}

@media (max-width: 767px) {
    .ch-content-window div.ch-gallery,
    .ch-content-inner div.ch-gallery,
    .entry-content div.ch-gallery,
    article.ch-content-window div.ch-gallery,
    section.ch-internal-scene article.ch-content-window div.ch-content-inner div.ch-gallery,
    div.ch-gallery {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
        width: 96% !important;
        max-width: 96% !important;
        margin: 14px auto 18px auto !important;
    }
}

/* Lightweight gallery lightbox */
#ch-gallery-lightbox-v2 {
    position: fixed !important;
    inset: 0 !important;
    z-index: 999999 !important;
    display: none !important;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(0,0,0,.88) !important;
}

#ch-gallery-lightbox-v2.is-open {
    display: flex !important;
}

#ch-gallery-lightbox-v2 img {
    max-width: 88vw !important;
    max-height: 84vh !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    background: #fff !important;
    box-shadow: 0 0 30px rgba(0,0,0,.65) !important;
}

.ch-lb-close-v2,
.ch-lb-prev-v2,
.ch-lb-next-v2 {
    position: absolute !important;
    z-index: 1000000 !important;
    border: 0 !important;
    background: rgba(255,255,255,.88) !important;
    color: #9f101e !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-weight: bold !important;
    cursor: pointer !important;
}

.ch-lb-close-v2 {
    top: 18px !important;
    right: 22px !important;
    width: 42px !important;
    height: 42px !important;
    border-radius: 50% !important;
    font-size: 28px !important;
    line-height: 42px !important;
}

.ch-lb-prev-v2,
.ch-lb-next-v2 {
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 48px !important;
    height: 64px !important;
    border-radius: 8px !important;
    font-size: 38px !important;
    line-height: 64px !important;
}

.ch-lb-prev-v2 { left: 18px !important; }
.ch-lb-next-v2 { right: 18px !important; }

body.ch-lightbox-open-v2 {
    overflow: hidden !important;
}



/* =====================================================
   GALLERY V3 DESKTOP SIZE TUNE
   Desktop: 4 per row, square thumbnails.
   Mobile remains 2 per row.
===================================================== */
@media (min-width: 768px) {
    .ch-content-window div.ch-gallery,
    .ch-content-inner div.ch-gallery,
    .entry-content div.ch-gallery,
    article.ch-content-window div.ch-gallery,
    section.ch-internal-scene article.ch-content-window div.ch-content-inner div.ch-gallery,
    div.ch-gallery {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 14px !important;
        width: 92% !important;
        max-width: 920px !important;
    }

    .ch-content-window div.ch-gallery img,
    .ch-content-inner div.ch-gallery img,
    .entry-content div.ch-gallery img,
    article.ch-content-window div.ch-gallery img,
    section.ch-internal-scene article.ch-content-window div.ch-content-inner div.ch-gallery img,
    div.ch-gallery > a.ch-gallery-item > img,
    div.ch-gallery img.attachment-medium,
    div.ch-gallery img.size-medium,
    div.ch-gallery img {
        aspect-ratio: 1 / 1 !important;
        object-fit: cover !important;
    }
}



/* =====================================================
   FINAL HEADING LOCK - H1 THROUGH H6
   Restores all requested Cypress Holidays heading styles.
===================================================== */

.ch-content-window h1,
.ch-content-inner h1,
.entry-content h1,
h1 {
    font-family: "Christmas Comeback", serif !important;
    font-size: 42px !important;
    font-weight: normal !important;
}

.ch-content-window h2,
.ch-content-inner h2,
.entry-content h2,
h2 {
    font-family: "Mountains of Christmas", cursive !important;
    font-size: 42px !important;
    font-weight: normal !important;
}

.ch-content-window h3,
.ch-content-inner h3,
.entry-content h3,
h3 {
    font-family: "Christmas Comeback", serif !important;
    font-size: 30px !important;
    font-weight: normal !important;
}

.ch-content-window h4,
.ch-content-inner h4,
.entry-content h4,
h4 {
    font-family: "Mountains of Christmas", cursive !important;
    font-size: 30px !important;
    font-weight: normal !important;
}

.ch-content-window h5,
.ch-content-inner h5,
.entry-content h5,
h5 {
    font-family: "Christmas Comeback", serif !important;
    font-size: 24px !important;
    font-weight: normal !important;
}

.ch-content-window h6,
.ch-content-inner h6,
.entry-content h6,
h6 {
    font-family: "Mountains of Christmas", cursive !important;
    font-size: 24px !important;
    font-weight: normal !important;
}



/* =====================================================
   FINAL ARTICLE / HOW-TO CARD GRID LOCK
   Holiday Articles + How We Do It All cards:
   Desktop = 3 across
   Mobile = 2 across
   This does NOT affect .ch-gallery photo galleries.
===================================================== */

@media (min-width: 768px) {
    .ch-post-grid,
    .ch-article-grid,
    .ch-card-grid,
    .ch-posts-grid,
    .ch-howto-grid,
    .ch-content-window .ch-post-grid,
    .ch-content-window .ch-article-grid,
    .ch-content-window .ch-card-grid,
    .ch-content-window .ch-posts-grid,
    .ch-content-window .ch-howto-grid {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 18px !important;
        width: 92% !important;
        max-width: 920px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        align-items: start !important;
    }

    .ch-post-card,
    .ch-article-card,
    .ch-howto-card,
    .ch-content-window .ch-post-card,
    .ch-content-window .ch-article-card,
    .ch-content-window .ch-howto-card {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        box-sizing: border-box !important;
    }

    .ch-post-card img,
    .ch-article-card img,
    .ch-howto-card img,
    .ch-post-grid img,
    .ch-article-grid img,
    .ch-howto-grid img {
        width: 100% !important;
        height: auto !important;
        object-fit: cover !important;
    }
}

@media (max-width: 767px) {
    .ch-post-grid,
    .ch-article-grid,
    .ch-card-grid,
    .ch-posts-grid,
    .ch-howto-grid,
    .ch-content-window .ch-post-grid,
    .ch-content-window .ch-article-grid,
    .ch-content-window .ch-card-grid,
    .ch-content-window .ch-posts-grid,
    .ch-content-window .ch-howto-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
        width: 96% !important;
        max-width: 96% !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}


/* =====================================================
   CYPRESS HOLIDAYS BOOK VIEWER
   Usage: [ch_book ids="123,456,789"]
===================================================== */
.ch-book-viewer {
    width: 92%;
    max-width: 900px;
    margin: 24px auto;
    text-align: center;
}
.ch-book-stage {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 420px;
    padding: 18px 56px;
    background: rgba(255,255,255,.35);
    border: 1px solid rgba(0,0,0,.12);
    box-shadow: inset 0 0 20px rgba(0,0,0,.12);
}
.ch-book-page { display: none; width: 100%; }
.ch-book-page.is-active { display: block; }
.ch-book-page img {
    display: block;
    max-width: 100%;
    max-height: 620px;
    width: auto;
    height: auto;
    margin: 0 auto;
    box-shadow: 0 5px 18px rgba(0,0,0,.32);
    background: #fff;
}
.ch-book-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 42px;
    height: 58px;
    border: none;
    border-radius: 8px;
    background: rgba(159,16,30,.92);
    color: #fff;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 34px;
    font-weight: bold;
    line-height: 1;
    cursor: pointer;
    z-index: 5;
}
.ch-book-prev { left: 8px; }
.ch-book-next { right: 8px; }
.ch-book-counter {
    margin-top: 10px;
    font-family: Garamond, "Times New Roman", serif;
    font-size: 17px;
    color: #9f101e;
    font-weight: bold;
}
@media (max-width: 767px) {
    .ch-book-viewer { width: 96%; max-width: 96%; margin: 18px auto; }
    .ch-book-stage { min-height: 260px; padding: 12px 42px; }
    .ch-book-page img { max-height: 520px; }
    .ch-book-nav { width: 34px; height: 50px; font-size: 28px; }
    .ch-book-prev { left: 4px; }
    .ch-book-next { right: 4px; }
}


/* =====================================================
   FINAL BOOK VIEWER SIZE TUNE
   Makes the Heart of the Carol book smaller on desktop.
===================================================== */
@media (min-width: 768px) {
    .ch-book-viewer {
        width: 70% !important;
        max-width: 600px !important;
    }

    .ch-book-page img {
        max-height: 450px !important;
    }
}



/* =====================================================
   FINAL BOOK VIEWER TWO-PAGE DESKTOP SPREAD
   Desktop shows two pages at a time. Mobile stays one page.
===================================================== */
@media (min-width: 768px) {
    .ch-book-viewer {
        width: 82% !important;
        max-width: 820px !important;
    }

    .ch-book-stage {
        display: grid !important;
        grid-template-columns: 42px 1fr 1fr 42px !important;
        gap: 14px !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 18px 14px !important;
        min-height: 430px !important;
    }

    .ch-book-page {
        display: none !important;
        width: 100% !important;
    }

    .ch-book-page.is-active,
    .ch-book-page.is-spread-active {
        display: block !important;
    }

    .ch-book-page.is-active {
        grid-column: 2 !important;
    }

    .ch-book-page.is-spread-active {
        grid-column: 3 !important;
    }

    .ch-book-page img {
        max-height: 430px !important;
        max-width: 100% !important;
        width: auto !important;
        height: auto !important;
    }

    .ch-book-prev,
    .ch-book-next {
        position: static !important;
        transform: none !important;
        align-self: center !important;
        justify-self: center !important;
    }

    .ch-book-prev {
        grid-column: 1 !important;
    }

    .ch-book-next {
        grid-column: 4 !important;
    }

    .ch-book-counter {
        margin-top: 8px !important;
    }
}

@media (max-width: 767px) {
    .ch-book-page.is-spread-active {
        display: none !important;
    }
}



/* =====================================================
   FINAL BOOK VIEWER TRUE SINGLE-PAGE LOCK
   Forces one page at a time on desktop and mobile.
===================================================== */
.ch-book-viewer {
    width: 70% !important;
    max-width: 600px !important;
}

.ch-book-stage {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 420px !important;
    padding: 18px 56px !important;
}

.ch-book-page {
    display: none !important;
    width: 100% !important;
    grid-column: auto !important;
}

.ch-book-page.is-active {
    display: block !important;
}

.ch-book-page.is-spread-active,
.ch-book-page.is-spread-active img {
    display: none !important;
}

.ch-book-page img {
    max-height: 450px !important;
    max-width: 100% !important;
    width: auto !important;
    height: auto !important;
}

.ch-book-prev,
.ch-book-next {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
}

.ch-book-prev { left: 8px !important; }
.ch-book-next { right: 8px !important; }

@media (max-width: 767px) {
    .ch-book-viewer {
        width: 96% !important;
        max-width: 96% !important;
    }

    .ch-book-stage {
        min-height: 260px !important;
        padding: 12px 42px !important;
    }

    .ch-book-page img {
        max-height: 520px !important;
    }
}



/* =====================================================
   FINAL BOOK VIEWER SINGLE-PAGE SIZE TUNE
   Wider single-page book view for better readability.
===================================================== */
@media (min-width: 768px) {
    .ch-book-viewer {
        width: 88% !important;
        max-width: 760px !important;
    }

    .ch-book-stage {
        min-height: 500px !important;
        padding: 18px 58px !important;
    }

    .ch-book-page img {
        max-height: 560px !important;
        max-width: 100% !important;
        width: auto !important;
        height: auto !important;
    }

    .ch-book-prev { left: 10px !important; }
    .ch-book-next { right: 10px !important; }
}



/* =====================================================
   CYPRESS HOLIDAYS VIDEO LIGHTBOX SYSTEM
===================================================== */
.ch-video-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 18px !important;
    width: 92% !important;
    max-width: 920px !important;
    margin: 20px auto 28px auto !important;
}
.ch-video-card {
    display: block !important;
    text-decoration: none !important;
    background: #fff !important;
    box-shadow: 0 4px 10px rgba(0,0,0,.28) !important;
    border: 2px solid rgba(0,0,0,.18) !important;
    overflow: hidden !important;
    cursor: pointer !important;
}
.ch-video-thumb-wrap {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    aspect-ratio: 16 / 9 !important;
    background: #111 !important;
}
.ch-video-thumb {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}
.ch-video-play {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: 58px !important;
    height: 58px !important;
    border-radius: 50% !important;
    background: rgba(159,16,30,.92) !important;
    box-shadow: 0 3px 12px rgba(0,0,0,.45) !important;
}
.ch-video-play:before {
    content: "" !important;
    position: absolute !important;
    left: 23px !important;
    top: 17px !important;
    width: 0 !important;
    height: 0 !important;
    border-top: 12px solid transparent !important;
    border-bottom: 12px solid transparent !important;
    border-left: 18px solid #fff !important;
}
.ch-video-title {
    display: block !important;
    padding: 10px 8px 12px !important;
    font-family: "Christmas Comeback", serif !important;
    font-size: 24px !important;
    line-height: 1.05 !important;
    text-align: center !important;
    color: #9f101e !important;
}
@media (max-width: 767px) {
    .ch-video-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
        width: 96% !important;
        max-width: 96% !important;
    }
    .ch-video-title { font-size: 18px !important; }
    .ch-video-play { width: 46px !important; height: 46px !important; }
    .ch-video-play:before {
        left: 19px !important;
        top: 13px !important;
        border-top-width: 10px !important;
        border-bottom-width: 10px !important;
        border-left-width: 15px !important;
    }
}
#ch-video-lightbox {
    position: fixed !important;
    inset: 0 !important;
    z-index: 999999 !important;
    display: none !important;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(0,0,0,.90) !important;
    padding: 24px !important;
}
#ch-video-lightbox.is-open { display: flex !important; }
.ch-video-lightbox-inner {
    position: relative !important;
    width: min(92vw, 1000px) !important;
    aspect-ratio: 16 / 9 !important;
    background: #000 !important;
    box-shadow: 0 0 30px rgba(0,0,0,.7) !important;
}
.ch-video-frame,
.ch-video-frame iframe,
.ch-video-frame video {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    border: 0 !important;
    background: #000 !important;
}
.ch-video-close {
    position: absolute !important;
    top: -52px !important;
    right: 0 !important;
    width: 42px !important;
    height: 42px !important;
    border: none !important;
    border-radius: 50% !important;
    background: rgba(255,255,255,.9) !important;
    color: #9f101e !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 28px !important;
    font-weight: bold !important;
    line-height: 42px !important;
    cursor: pointer !important;
}
body.ch-video-lightbox-open { overflow: hidden !important; }


/* Responsive inline video embeds
   Keeps YouTube and other iframe video embeds from overflowing the mobile content window. */
.ch-content-inner iframe[src*="youtube.com"],
.ch-content-inner iframe[src*="youtu.be"],
.ch-content-inner iframe[src*="youtube-nocookie.com"],
.ch-content-window iframe[src*="youtube.com"],
.ch-content-window iframe[src*="youtu.be"],
.ch-content-window iframe[src*="youtube-nocookie.com"] {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    aspect-ratio: 16 / 9 !important;
    height: auto !important;
    margin-left: auto !important;
    margin-right: auto !important;
    border: 0 !important;
}

.ch-content-inner p iframe[src*="youtube.com"],
.ch-content-inner p iframe[src*="youtu.be"],
.ch-content-inner p iframe[src*="youtube-nocookie.com"] {
    margin-top: 0.75rem !important;
    margin-bottom: 0.75rem !important;
}


/* =====================================================
   RESPONSIVE EMBED FIX - V2
   Forces inline YouTube/video embeds to stay inside the mobile
   reading window, even when Classic Editor iframe width/height
   attributes are set (ex: width="560" height="315").
===================================================== */
.ch-content-window,
.ch-content-inner,
.ch-content-inner p {
  max-width: 100% !important;
  box-sizing: border-box !important;
}

.ch-content-window {
  overflow-x: hidden !important;
}

.ch-content-inner p:has(> iframe) {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

.ch-content-inner iframe,
.ch-content-window iframe,
.entry-content iframe {
  max-width: 100% !important;
  box-sizing: border-box !important;
}

.ch-content-inner iframe[src*="youtube.com"],
.ch-content-inner iframe[src*="youtu.be"],
.ch-content-inner iframe[src*="youtube-nocookie.com"],
.ch-content-window iframe[src*="youtube.com"],
.ch-content-window iframe[src*="youtu.be"],
.ch-content-window iframe[src*="youtube-nocookie.com"],
.entry-content iframe[src*="youtube.com"],
.entry-content iframe[src*="youtu.be"],
.entry-content iframe[src*="youtube-nocookie.com"] {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  aspect-ratio: 16 / 9 !important;
  margin: 0.75rem auto !important;
  border: 0 !important;
}

@media (max-width: 767px) {
  .ch-content-inner iframe[src*="youtube.com"],
  .ch-content-inner iframe[src*="youtu.be"],
  .ch-content-inner iframe[src*="youtube-nocookie.com"],
  .ch-content-window iframe[src*="youtube.com"],
  .ch-content-window iframe[src*="youtu.be"],
  .ch-content-window iframe[src*="youtube-nocookie.com"],
  .entry-content iframe[src*="youtube.com"],
  .entry-content iframe[src*="youtu.be"],
  .entry-content iframe[src*="youtube-nocookie.com"] {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    aspect-ratio: 16 / 9 !important;
  }
}


/* Table image spacing fix
   Removes the default WordPress vertical margins from centered images inside tables.
   This keeps wooden sign grids and other table-based image layouts tighter. */
table img.aligncenter {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  display: block;
}


/* Editable lead-in text above post listing grids */
.ch-listing-intro {
  max-width: 760px;
  margin: 0 auto 24px auto;
  text-align: center;
  font-family: Garamond, Georgia, serif;
  font-size: 20px;
  line-height: 1.35;
  color: #000;
}

.ch-listing-intro p {
  margin: 0 0 14px 0;
  text-align: center;
}

.ch-listing-intro p:last-child {
  margin-bottom: 0;
}

@media (max-width: 768px) {
  .ch-listing-intro {
    max-width: 92%;
    margin-bottom: 18px;
    font-size: 18px;
    line-height: 1.3;
  }
}


/* Heading typography restoration */
.ch-content-inner h1, .entry-content h1 {
  font-family: "Christmas Comeback", serif !important;
  font-size: 42px !important;
  font-weight: normal !important;
}
.ch-content-inner h2, .entry-content h2 {
  font-family: "Mountains of Christmas", serif !important;
  font-size: 42px !important;
  font-weight: normal !important;
}
.ch-content-inner h3, .entry-content h3 {
  font-family: "Christmas Comeback", serif !important;
  font-size: 30px !important;
  font-weight: normal !important;
}
.ch-content-inner h4, .entry-content h4 {
  font-family: "Mountains of Christmas", serif !important;
  font-size: 30px !important;
  font-weight: normal !important;
}
.ch-content-inner h5, .entry-content h5 {
  font-family: "Christmas Comeback", serif !important;
  font-size: 24px !important;
  font-weight: normal !important;
}
.ch-content-inner h6, .entry-content h6 {
  font-family: "Mountains of Christmas", serif !important;
  font-size: 24px !important;
  font-weight: normal !important;
}

/* =====================================================
   SOCIAL/CONTACT ICONS + INTERIOR BACKGROUND LOCK - 06152026 V4
   Uses Ryan's desktop-interior-2 and mobile-interior-2 assets.
===================================================== */
.ch-internal-scene {
  background-image: url("assets/images/Desktop/desktop-interior-2.png") !important;
}

.ch-social-contact-icons {
  position: absolute !important;
  left: 50% !important;
  top: 88.0% !important;
  transform: translateX(-50%) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 1.05% !important;
  width: auto !important;
  z-index: 55 !important;
  pointer-events: auto !important;
}

.ch-social-contact-icons .ch-social-icon {
  display: block !important;
  width: 80px !important;
  height: 85px !important;
  text-indent: 0 !important;
  overflow: visible !important;
  background: transparent !important;
}

.ch-social-contact-icons .ch-social-icon img {
  display: block !important;
  width: 80px !important;
  height: 85px !important;
  object-fit: contain !important;
  max-width: none !important;
}

.ch-social-contact-icons .ch-social-icon:hover img,
.ch-social-contact-icons .ch-social-icon:focus img {
  transform: scale(1.04);
}

@media (min-width: 768px) {
  .ch-internal-scene {
    background-image: url("assets/images/Desktop/desktop-interior-2.png") !important;
  }
}

@media (max-width: 767px) {
  .ch-internal-scene {
    background-image: url("assets/images/Mobile/mobile-interior-2.png") !important;
  }

  .ch-social-contact-icons {
    top: 89.6% !important;
    gap: 1.15% !important;
    width: 90% !important;
  }

  .ch-social-contact-icons .ch-social-icon {
    width: 7.2% !important;
    height: auto !important;
    aspect-ratio: 80 / 85 !important;
  }

  .ch-social-contact-icons .ch-social-icon img {
    width: 100% !important;
    height: 100% !important;
  }
}

/* =====================================================
   SOCIAL ICON + MOBILE SPACING TUNING - 06152026 V5
   Ryan feedback: desktop icons smaller; mobile content matches mobile-interior-2 artwork and icons slightly bigger.
===================================================== */
@media (min-width: 768px) {
  .ch-social-contact-icons {
    top: 88.2% !important;
    gap: 0.85% !important;
  }

  .ch-social-contact-icons .ch-social-icon,
  .ch-social-contact-icons .ch-social-icon img {
    width: 62px !important;
    height: 66px !important;
  }
}

@media (max-width: 767px) {
  .ch-internal-scene .ch-content-window,
  .ch-content-window {
    left: 9.6% !important;
    width: 80.8% !important;
    max-width: 80.8% !important;
    top: 12.6% !important;
    height: 75.3% !important;
  }

  .ch-social-contact-icons {
    top: 89.9% !important;
    width: 84% !important;
    gap: 1.35% !important;
  }

  .ch-social-contact-icons .ch-social-icon {
    width: 8.45% !important;
    height: auto !important;
    aspect-ratio: 80 / 85 !important;
  }
}

/* =====================================================
   SOCIAL ICON + MOBILE CONTENT TUNING - 06152026 V6
   Ryan feedback: desktop icons 95% and higher; mobile window widened, less top padding, smaller mobile titles.
===================================================== */
@media (min-width: 768px) {
  .ch-social-contact-icons {
    top: 87.15% !important;
    gap: 0.82% !important;
  }

  .ch-social-contact-icons .ch-social-icon,
  .ch-social-contact-icons .ch-social-icon img {
    width: 59px !important;
    height: 63px !important;
  }
}

@media (max-width: 767px) {
  .ch-internal-scene .ch-content-window,
  .ch-content-window {
    left: 4% !important;
    width: 92% !important;
    max-width: 92% !important;
    right: auto !important;
    top: 12.6% !important;
    height: 75.3% !important;
    padding: 10px 18px 22px !important;
    box-sizing: border-box !important;
  }

  .ch-content-inner h1,
  .ch-content-inner .ch-heading-1,
  .ch-content-window h1,
  .entry-content h1,
  h1 {
    font-size: 34px !important;
    line-height: 0.98 !important;
    margin-top: 0 !important;
    margin-bottom: 0.22em !important;
  }

  .ch-content-inner h2,
  .ch-content-inner .ch-heading-2,
  .ch-content-window h2,
  .entry-content h2,
  h2 {
    font-size: 32px !important;
    line-height: 1.0 !important;
  }

  .ch-content-inner h3,
  .ch-content-window h3,
  .entry-content h3,
  h3 {
    font-size: 28px !important;
    line-height: 1.05 !important;
  }

  .ch-social-contact-icons {
    top: 89.7% !important;
    width: 88% !important;
    gap: 1.25% !important;
  }

  .ch-social-contact-icons .ch-social-icon {
    width: 9.0% !important;
    height: auto !important;
    aspect-ratio: 80 / 85 !important;
  }
}


/* MAGIC SIGN GRID - 06162026 v10
   Responsive wooden-sign grid for in-page sign groups.
   Desktop uses 3 across, tightened so signs stay visually grouped.
   Mobile/tablet keeps 2 across for readability. */
.ch-content-inner .magic-sign-grid,
.ch-content-window .magic-sign-grid,
.entry-content .magic-sign-grid,
.magic-sign-grid{
  display:grid !important;
  grid-template-columns:repeat(3, 205px) !important;
  justify-content:center !important;
  justify-items:center !important;
  align-items:center !important;
  column-gap:26px !important;
  row-gap:32px !important;
  width:min(100%, 667px) !important;
  max-width:667px !important;
  margin:32px auto 42px !important;
  padding:0 !important;
}

.magic-sign-grid br{
  display:none !important;
}

.magic-sign-grid p{
  display:contents !important;
  margin:0 !important;
  padding:0 !important;
}

.magic-sign-grid a{
  display:block !important;
  width:205px !important;
  max-width:205px !important;
  margin:0 auto !important;
  padding:0 !important;
  text-align:center !important;
  line-height:0 !important;
}

.magic-sign-grid img{
  display:block !important;
  width:205px !important;
  max-width:205px !important;
  height:auto !important;
  margin:0 auto !important;
}

@media (max-width:768px){
  .ch-content-inner .magic-sign-grid,
  .ch-content-window .magic-sign-grid,
  .entry-content .magic-sign-grid,
  .magic-sign-grid{
    grid-template-columns:repeat(2, minmax(130px, 1fr)) !important;
    column-gap:16px !important;
    row-gap:24px !important;
    width:min(100%, 360px) !important;
    margin:22px auto 34px !important;
  }

  .magic-sign-grid a,
  .magic-sign-grid img{
    max-width:155px !important;
  }
}

@media (max-width:430px){
  .ch-content-inner .magic-sign-grid,
  .ch-content-window .magic-sign-grid,
  .entry-content .magic-sign-grid,
  .magic-sign-grid{
    grid-template-columns:repeat(2, minmax(118px, 1fr)) !important;
    column-gap:12px !important;
    row-gap:20px !important;
    width:min(100%, 330px) !important;
  }

  .magic-sign-grid a,
  .magic-sign-grid img{
    max-width:145px !important;
  }
}

/* =====================================================
   NATIVE SEARCH SYSTEM - 06222026
   Desktop footer search icon + mobile header search icon.
===================================================== */
.ch-search-form{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:10px;
  max-width:680px;
  margin:0 auto 24px;
}
.ch-search-field{
  flex:1 1 auto;
  min-width:0;
  font-family:Garamond,"Times New Roman",serif;
  font-size:22px;
  padding:8px 12px;
  border:1px solid rgba(0,0,0,.35);
  border-radius:4px;
  background:#fff;
  color:#111;
}
.ch-search-submit{
  flex:0 0 auto;
  font-family:"Christmas Comeback","Mountains of Christmas",serif;
  font-size:24px;
  line-height:1;
  padding:9px 16px;
  border:1px solid rgba(0,0,0,.35);
  border-radius:4px;
  background:#f5f5f5;
  color:#b00000;
  cursor:pointer;
}
.ch-search-submit:hover,
.ch-search-submit:focus{
  background:#fff;
}
.ch-search-results-heading{
  text-align:center;
  margin:8px 0 18px !important;
}
.ch-search-intro{
  text-align:center;
  margin:4px 0 12px !important;
}
.ch-search-no-results{
  text-align:center;
}
.ch-search-page .ch-post-grid{
  margin-top:6px !important;
}
.ch-search-card-placeholder{
  width:100%;
  aspect-ratio:1300 / 875;
  background:rgba(0,0,0,.08);
  display:block;
}

@media (min-width:768px){
  .ch-social-contact-icons .ch-social-icon.search,
  .ch-social-contact-icons .ch-social-icon.search img{
    width:59px !important;
    height:63px !important;
  }
}

@media (max-width:767px){
  .ch-mobile-icon-link{
    top:6.0% !important;
    width:44px !important;
    height:44px !important;
    max-width:44px !important;
    max-height:44px !important;
    background-size:38px 38px !important;
  }
  .ch-mobile-icon-link.menu{
    left:5.8% !important;
    background-image:url("assets/images/Mobile/Menu-Hamburger-Icon.png") !important;
  }
  .ch-mobile-icon-link.search{
    right:5.8% !important;
    background-image:url("assets/images/Mobile/Search-Icon.png") !important;
  }
  .ch-mobile-icon-link.email{
    display:none !important;
  }
  .ch-search-form{
    flex-direction:column;
    gap:8px;
    margin:0 auto 16px;
    max-width:88%;
  }
  .ch-search-field,
  .ch-search-submit{
    width:100%;
    box-sizing:border-box;
    font-size:20px;
  }
  .ch-search-results-grid.ch-post-grid{
    display:block !important;
    width:88% !important;
    margin:0 auto !important;
  }
  .ch-search-results-grid .ch-post-card{
    margin-bottom:18px !important;
  }
}


/* =====================================================
   SEARCH TEST V3 FIXES
   Mobile header icon sizing/placement: keep icons out of logo.
   Desktop unchanged.
===================================================== */
@media (max-width:767px){
  .ch-mobile-icon-link,
  .ch-mobile-icon-link.menu,
  .ch-mobile-icon-link.search{
    top:6.85% !important;
    width:38px !important;
    height:38px !important;
    max-width:38px !important;
    max-height:38px !important;
    min-width:38px !important;
    min-height:38px !important;
    background-size:32px 32px !important;
    background-repeat:no-repeat !important;
    background-position:center center !important;
  }
  .ch-mobile-icon-link.menu{
    left:2.2% !important;
  }
  .ch-mobile-icon-link.search{
    right:2.2% !important;
  }
}
@media (max-width:390px){
  .ch-mobile-icon-link,
  .ch-mobile-icon-link.menu,
  .ch-mobile-icon-link.search{
    width:34px !important;
    height:34px !important;
    max-width:34px !important;
    max-height:34px !important;
    min-width:34px !important;
    min-height:34px !important;
    background-size:29px 29px !important;
  }
}


/* =====================================================
   HOMEPAGE SOCIAL/SEARCH ICONS + MOBILE HUB SIGN FIX - 06222026
   Adds footer icon row to homepage and keeps related-reading signs contained on mobile.
===================================================== */
.ch-home-page .ch-social-contact-icons {
  display:flex !important;
}
@media (min-width:768px){
  .ch-home-page .ch-social-contact-icons{
    top:86.8% !important;
    z-index:60 !important;
  }
}
@media (max-width:767px){
  .ch-home-page .ch-social-contact-icons{
    top:89.7% !important;
    width:88% !important;
    z-index:60 !important;
  }
  .ch-hub-sign-wrap,
  .entry-content .ch-hub-sign-wrap,
  .ch-content-inner .ch-hub-sign-wrap,
  .site-content .ch-hub-sign-wrap,
  .ch-hub-sign-link,
  .entry-content .ch-hub-sign-link,
  .ch-content-inner .ch-hub-sign-link,
  .ch-hub-sign-link img.ch-hub-sign-img,
  .entry-content .ch-hub-sign-link img.ch-hub-sign-img,
  .ch-content-inner .ch-hub-sign-link img.ch-hub-sign-img,
  img.ch-hub-sign-img{
    width:min(390px,72vw) !important;
    max-width:min(390px,72vw) !important;
  }
}

/* =====================================================
   FINAL PRODUCTION BAKE OVERRIDES — 2026.06.29
===================================================== */

/* Mobile-only heading scale reduction */
@media (max-width: 767px) {
  .ch-content-inner h1,
  .ch-content-inner .ch-heading-1,
  .entry-content h1 {
    font-size: 30px !important;
    line-height: 1.05 !important;
  }
  .ch-content-inner h2,
  .ch-content-inner .ch-heading-2,
  .entry-content h2 {
    font-size: 30px !important;
    line-height: 1.05 !important;
  }
  .ch-content-inner h3,
  .entry-content h3 {
    font-size: 24px !important;
    line-height: 1.08 !important;
  }
  .ch-content-inner h4,
  .entry-content h4 {
    font-size: 24px !important;
    line-height: 1.08 !important;
  }
}

/* Mobile list indent reduction */
@media (max-width: 767px) {
  .entry-content ul,
  .entry-content ol,
  .ch-content-inner ul,
  .ch-content-inner ol {
    padding-left: 22px !important;
    margin-left: 0 !important;
  }
  .entry-content li,
  .ch-content-inner li {
    margin-bottom: 8px !important;
  }
}

/* Mobile article/how-to/hub listings now use featured-image tiles instead of text-only lists. */
@media (max-width: 767px) {
  .ch-mobile-post-grid.ch-post-grid,
  .ch-post-listing-page .ch-mobile-post-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    width: 100% !important;
    margin: 10px auto 18px auto !important;
  }
  .ch-mobile-post-grid .ch-post-card {
    display: block !important;
    text-decoration: none !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }
  .ch-mobile-post-grid .ch-post-card img {
    display: block !important;
    width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    object-fit: cover !important;
    border: 2px solid rgba(0,0,0,.18) !important;
    box-shadow: 0 2px 6px rgba(0,0,0,.22) !important;
  }
  .ch-mobile-post-grid .ch-post-card-title {
    min-height: 44px !important;
    padding: 6px 6px !important;
    font-size: 14px !important;
    line-height: 1.05 !important;
    text-align: center !important;
    font-family: Garamond, "Times New Roman", serif !important;
    font-weight: 700 !important;
    color: #111 !important;
  }
}

/* Holiday Articles article-only search bar */
.ch-article-search-form {
  margin: 10px auto 14px auto !important;
}
.ch-article-search-form .ch-search-field::placeholder {
  color: rgba(0,0,0,.58);
}

/* Related Reading / Hub signs: final 600x120 source assets, centered cleanly */
.ch-hub-sign-wrap,
.entry-content .ch-hub-sign-wrap,
.ch-content-inner .ch-hub-sign-wrap,
.site-content .ch-hub-sign-wrap {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  text-align: center !important;
  margin: 6px auto 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
  clear: both !important;
  width: 100% !important;
  max-width: 100% !important;
}
.ch-hub-sign-link,
.entry-content .ch-hub-sign-link,
.ch-content-inner .ch-hub-sign-link {
  display: block !important;
  width: 600px !important;
  max-width: 82% !important;
  margin: 0 auto !important;
  padding: 0 !important;
  line-height: 0 !important;
  transition: transform .15s ease, filter .15s ease;
}
.ch-hub-sign-link:hover {
  transform: scale(1.025);
  filter: brightness(1.06);
}
.ch-hub-sign-link img.ch-hub-sign-img,
.entry-content .ch-hub-sign-link img.ch-hub-sign-img,
.ch-content-inner .ch-hub-sign-link img.ch-hub-sign-img,
img.ch-hub-sign-img {
  display: block !important;
  width: 600px !important;
  max-width: 100% !important;
  height: auto !important;
  margin: 0 auto !important;
  padding: 0 !important;
}
@media (max-width: 767px) {
  .ch-hub-sign-wrap,
  .entry-content .ch-hub-sign-wrap,
  .ch-content-inner .ch-hub-sign-wrap {
    display: flex !important;
    justify-content: center !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    transform: translateX(-3px);
  }
  .ch-hub-sign-link,
  .ch-hub-sign-link img.ch-hub-sign-img {
    width: min(390px, 78vw) !important;
    max-width: 78vw !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

/* Display Status native sign system */
.ch-display-status-box {
  text-align: center;
  margin: 16px auto 20px auto;
  padding: 0;
  max-width: 720px;
  font-family: Garamond, "Times New Roman", serif;
}
.ch-display-status-sign {
  display: block;
  width: 450px;
  max-width: 82%;
  height: auto;
  margin: 0 auto 8px auto;
}
.ch-display-status-small {
  font-weight: bold;
  font-size: 24px;
  margin-bottom: 8px;
}
.ch-display-status-main {
  font-weight: bold;
  font-size: 30px;
  color: red;
  text-transform: uppercase;
}
.ch-display-countdown,
.ch-display-hours,
.ch-display-message {
  margin-top: 8px;
  font-size: 18px;
  line-height: 1.25;
  text-align: center;
}
.ch-display-message { font-style: italic; }
@media (max-width: 767px) {
  .ch-display-status-sign {
    width: 320px;
    max-width: 90%;
  }
  .ch-display-countdown,
  .ch-display-hours,
  .ch-display-message {
    font-size: 16px;
  }
}

/* Mobile menu items tightened slightly */
@media (max-width: 767px) {
  .ch-mobile-menu-list a {
    font-size: 25px !important;
    line-height: 1.1 !important;
    padding-top: 5px !important;
    padding-bottom: 5px !important;
  }
}


/* Final Bake v3: related-reading/hub signs should use the new crisp 600x120 masters, rendered smaller. */
.ch-hub-sign,
.ch-related-hub-sign {
  display: flex;
  justify-content: center;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.ch-hub-sign img,
.ch-related-hub-sign img {
  display: block;
  width: 75%;
  max-width: 450px;
  height: auto;
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 768px) {
  .ch-hub-sign img,
  .ch-related-hub-sign img {
    width: 75%;
    max-width: 450px;
    height: auto;
  }
}


/* Final Bake v4: hard override related reading / hub sign render size and centering. */
.ch-hub-sign-wrap,
.entry-content .ch-hub-sign-wrap,
.ch-content-inner .ch-hub-sign-wrap,
.site-content .ch-hub-sign-wrap {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 8px auto 0 auto !important;
  padding: 0 !important;
  text-align: center !important;
  line-height: 0 !important;
  transform: none !important;
}

.ch-hub-sign-link,
.entry-content .ch-hub-sign-link,
.ch-content-inner .ch-hub-sign-link,
.site-content .ch-hub-sign-link {
  display: block !important;
  width: 450px !important;
  max-width: 75% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 0 !important;
  line-height: 0 !important;
  text-align: center !important;
}

.ch-hub-sign-link img.ch-hub-sign-img,
.entry-content .ch-hub-sign-link img.ch-hub-sign-img,
.ch-content-inner .ch-hub-sign-link img.ch-hub-sign-img,
.site-content .ch-hub-sign-link img.ch-hub-sign-img,
img.ch-hub-sign-img {
  display: block !important;
  width: 450px !important;
  max-width: 100% !important;
  height: auto !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 0 !important;
}

@media (max-width: 767px) {
  .ch-hub-sign-wrap,
  .entry-content .ch-hub-sign-wrap,
  .ch-content-inner .ch-hub-sign-wrap,
  .site-content .ch-hub-sign-wrap {
    justify-content: center !important;
    transform: none !important;
  }

  .ch-hub-sign-link,
  .entry-content .ch-hub-sign-link,
  .ch-content-inner .ch-hub-sign-link,
  .site-content .ch-hub-sign-link,
  .ch-hub-sign-link img.ch-hub-sign-img,
  .entry-content .ch-hub-sign-link img.ch-hub-sign-img,
  .ch-content-inner .ch-hub-sign-link img.ch-hub-sign-img,
  .site-content .ch-hub-sign-link img.ch-hub-sign-img,
  img.ch-hub-sign-img {
    width: min(450px, 75vw) !important;
    max-width: 75vw !important;
    height: auto !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

/* Final Bake v4: make article-search results use normal card grids only. */
.ch-article-search-results-grid {
  margin-top: 12px !important;
}


/* Final Bake v6 hard override: hub/related signs from 600x120 masters render at 450px desktop and 75vw mobile. */
html body .ch-content-inner .ch-hub-sign-wrap,
html body .entry-content .ch-hub-sign-wrap,
html body .ch-hub-sign-wrap {
  display: flex !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  transform: none !important;
}
html body .ch-content-inner .ch-hub-sign-link,
html body .entry-content .ch-hub-sign-link,
html body .ch-hub-sign-link {
  width: 450px !important;
  max-width: 75% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
html body .ch-content-inner .ch-hub-sign-link img.ch-hub-sign-img,
html body .entry-content .ch-hub-sign-link img.ch-hub-sign-img,
html body img.ch-hub-sign-img {
  width: 450px !important;
  max-width: 100% !important;
  height: auto !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
@media (max-width: 767px) {
  html body .ch-content-inner .ch-hub-sign-link,
  html body .entry-content .ch-hub-sign-link,
  html body .ch-hub-sign-link,
  html body .ch-content-inner .ch-hub-sign-link img.ch-hub-sign-img,
  html body .entry-content .ch-hub-sign-link img.ch-hub-sign-img,
  html body img.ch-hub-sign-img {
    width: min(450px, 75vw) !important;
    max-width: 75vw !important;
  }
}
