/*
 * Design review fixes (C4 Design - Karawilson, 8 Oct 2026).
 * Loaded after custom.css and respsonive.css. Issue numbers match the review.
 */

/* ------------------------------------------------------------------
 * 1. Header: solid wordmark logo
 * ------------------------------------------------------------------ */
.top-head-inner .left-toph .logo-wordmark {
  max-width: none;
  font-family: "Abril Fatface", Georgia, serif;
  font-size: 30px;
  line-height: 1;
  color: #fff;
  white-space: nowrap;
}

/* ------------------------------------------------------------------
 * 2. Header: "Productions" dropdown
 * ------------------------------------------------------------------ */
.mainNav .menu-item-has-children {
  position: relative;
}
.mainNav .menu-item-has-children > a {
  display: inline-block;
  padding-right: 14px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23fff'/%3E%3C/svg%3E") no-repeat right center / 9px 6px;
}
@media (min-width: 1161px) {
  .mainNav .menu-menu-container ul.sub-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 10;
    min-width: 260px;
    padding: 8px 0;
    background: #1b5e20;
    box-shadow: 0 8px 24px rgb(0 0 0 / 35%);
  }
  .mainNav .menu-item-has-children:hover > .sub-menu,
  .mainNav .menu-item-has-children:focus-within > .sub-menu {
    display: block;
  }
  .mainNav .menu-menu-container ul.sub-menu li {
    display: block;
    padding: 0;
  }
  .mainNav .menu-menu-container ul.sub-menu li a {
    display: block;
    padding: 8px 18px;
  }
}
@media (max-width: 1160px) {
  /* The theme pads each <li> by 6px, which left white gaps beside the green hover row. */
  .mainNav .menu-menu-container ul li,
  .mainNav .menu-menu-container ul.sub-menu li {
    padding-left: 0;
    padding-right: 0;
  }
  .mainNav .menu-menu-container ul li a {
    box-sizing: border-box;
    border-radius: 0;
  }
  .mainNav .menu-menu-container ul.sub-menu {
    display: none;
    padding-left: 16px;
  }
  .mainNav .menu-item-has-children.submenu-open > .sub-menu {
    display: block;
  }
  /* The mobile menu panel is white, so the arrow is dark (white on the green hover).
   * Selectors are long enough to beat the theme's "a:hover { background }" shorthand. */
  .mainNav .menu-menu-container ul li.menu-item-has-children > a {
    padding-right: 48px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23000'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: 12px 8px;
    background-position: right 21px center;
  }
  .mainNav .menu-menu-container ul li.menu-item-has-children > a:hover {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23fff'/%3E%3C/svg%3E");
  }
  .mainNav .menu-menu-container ul li.menu-item-has-children.submenu-open > a {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M0 6l5-6 5 6z' fill='%23000'/%3E%3C/svg%3E");
  }
  .mainNav .menu-menu-container ul li.menu-item-has-children.submenu-open > a:hover {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M0 6l5-6 5 6z' fill='%23fff'/%3E%3C/svg%3E");
  }
}

/* ------------------------------------------------------------------
 * 3-5. Hero (desktop / tablet)
 * ------------------------------------------------------------------ */
/* 4. Dark gradient behind the text block for contrast. */
.slide-sec-top::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(90deg, rgb(0 0 0 / 75%) 0%, rgb(0 0 0 / 50%) 40%, rgb(0 0 0 / 0%) 70%);
}
/* 3. Frame sized to its content, so the heading never crosses it. */
.slide-sec-top .slider-text {
  height: auto;
  padding: 60px 70px 60px 85px;
}
/* The heading keeps the full "Welcome to the website of Kara Wilson" text, so it is
 * smaller than the theme's original 74px to keep the frame a sensible size. */
@media (min-width: 1025px) {
  .slide-sec-top .slider-text h1 {
    font-size: 60px;
    line-height: 1.12;
  }
}
.slide-sec-top .slider-text:after {
  width: 100%;
  height: 100%;
  top: 0;
}
.slide-sec-top .slider-text h1 {
  margin-bottom: 0;
}
.slide-sec-top .slider-text p {
  font-size: 18px;
  max-width: 520px;
}
/* 5. Filled primary CTA plus a secondary link. */
.hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 28px;
  margin-top: 28px;
}
.slide-sec-top .slider-text .hero-actions .redmoreBtn {
  margin-top: 0;
}
.redmoreBtn--primary {
  background: var(--greenColor);
  border-color: var(--greenColor);
}
.redmoreBtn--primary:hover,
.redmoreBtn--primary:focus {
  background: #1b5e20;
  border-color: #1b5e20;
}
.hero-secondary-link {
  color: #fff;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.hero-secondary-link:hover,
.hero-secondary-link:focus {
  color: #c8e6c9;
}
@media (max-width: 1024px) {
  .slide-sec-top .slider-text {
    max-width: 640px;
    padding: 50px 50px 50px 60px;
  }
  .slide-sec-top .slider-text h1 {
    font-size: 44px;
    line-height: 1.12;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .slide-sec-top .slider-text {
    max-width: 540px;
    padding: 40px 40px 40px 50px;
  }
  .slide-sec-top .slider-text h1 {
    font-size: 36px;
  }
  .slide-sec-top .slider-text:after {
    width: 100%;
    height: 100%;
    top: 0;
  }
}

/* ------------------------------------------------------------------
 * 21-22. Hero (mobile): framed text over the lower part of the photo
 * ------------------------------------------------------------------ */
@media (max-width: 767px) {
  /* Photo fills the hero behind the framed text, as in the original design. */
  .slide-sec-top {
    background: #000;
    overflow: hidden;
  }
  .slide-sec-top img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    max-width: 100%;
    height: 480px;
    transform: none;
    object-fit: cover;
    object-position: 72% 20%;
  }
  /* Fade the photo to black behind the text so it stays readable. */
  .slide-sec-top::before {
    bottom: auto;
    height: 480px;
    z-index: 1;
    background: linear-gradient(180deg, rgb(0 0 0 / 0%) 45%, rgb(0 0 0 / 70%) 75%, #000 100%);
  }
  .slide-sec-top .slider-text {
    position: relative;
    left: auto;
    z-index: 2;
    transform: none;
    max-width: none;
    padding: 44px 16px 36px 24px;
    margin: 270px 14px 0 14px;
  }
  .slide-sec-top + .about-us {
    padding-top: 16px;
  }
  /* Same frame as desktop: thick white border, rounded corners, open on the right. */
  .slide-sec-top .slider-text:after {
    display: block;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: solid 8px #fff;
    border-right: 0;
    border-radius: 30px;
  }
  .slide-sec-top .slider-text h1 {
    font-size: 28px;
  }
  .slide-sec-top .slider-text p {
    font-size: 17px;
  }
}

/* ------------------------------------------------------------------
 * 6. About: left-aligned paragraph
 * ------------------------------------------------------------------ */
.about-us .about-content-sec {
  max-width: 977px;
  margin: 0 auto;
  text-align: left;
}
.about-us .about-content-sec p {
  line-height: 1.7;
}
.about-us .redmoreBtn2 {
  max-width: none;
  width: auto;
  margin-top: 36px;
}
@media (max-width: 767px) {
  .about-us .about-content-sec,
  .testimonials .sp-testimonial-free {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
}

/* ------------------------------------------------------------------
 * 7-10. Next Public Performances
 * ------------------------------------------------------------------ */
/* 8. Venue, dates and time as one vertical list. */
.personal-style-block {
  flex-direction: column;
  align-items: flex-start;
  width: fit-content;
  max-width: 100%;
  margin: 30px auto 0;
  padding: 0;
}
.personal-style-block .icons1 {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 40px;
  margin: 0 0 16px;
  padding-left: 0;
}
.personal-style-block .icons1 img {
  position: static;
  flex: none;
  width: 40px;
  height: 40px;
}
.personal-style-block .icons1 span {
  float: none;
}
.personal-style .book-tickets-btn {
  margin-top: 14px;
}
/* 10. Image fills its column and is centred against the text. */
/* Show the whole photo (no cropping): scale it to fit and centre it in its column. */
.personal-style .infoWrap .flyer-col .kara {
  text-align: center;
}
.personal-style .infoWrap .flyer-col .kara img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 85vh;
  margin: 0 auto;
}

/* ------------------------------------------------------------------
 * 11-14. Moments & Memories gallery
 * ------------------------------------------------------------------ */
/* 13. Same content width as the rest of the page. */
.gallery-container {
  max-width: 1248px;
  margin: 0 auto;
  padding: 0 24px;
}
/* 11. Client prefers the original irregular grid (tall and short tiles), so it is kept.
 * The grid height scales with its width, so the tiles keep the original shapes
 * now that the gallery sits inside the page margins. */
@media (min-width: 768px) {
  .commercial_section #gallery-1 {
    height: auto;
    aspect-ratio: 20 / 21;
  }
}
/* 12. Keep the top of posters (titles) in view. */
.commercial_section #gallery-1 .gallery-item img {
  object-position: center top;
}
/* 14. Captions as typed in the Media Library (e.g. "Deco Diva"), not all capitals. */
.commercial_section #gallery-1 .gallery-item .gallery-caption {
  text-transform: none;
  letter-spacing: 0.5px;
  font-size: 17px;
}
@media (max-width: 767px) {
  .gallery-container {
    padding: 0 16px;
  }
}
/* 15. Art Work captions (title, medium, year) sit under each painting.
 * Text comes from each image's Caption in the Media Library. */
.commercial_section #gallery-2 .gallery-item .gallery-caption {
  margin: 10px 0 0;
  padding: 0;
  color: #ddd;
  font-size: 15px;
  line-height: 1.4;
  text-align: left;
}
/* 14-15. Images open in the lightbox (js/gallery-lightbox.js). */
.commercial_section .gallery-item img {
  cursor: zoom-in;
}

/* ------------------------------------------------------------------
 * Lightbox
 * ------------------------------------------------------------------ */
.kw-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 56px 64px 24px;
  background: rgb(0 0 0 / 92%);
}
.kw-lightbox[hidden] {
  display: none;
}
.kw-lightbox__img {
  max-width: 100%;
  max-height: calc(100vh - 160px);
  object-fit: contain;
}
.kw-lightbox__caption {
  max-width: 800px;
  margin-top: 16px;
  color: #fff;
  font-size: 16px;
  text-align: center;
}
.kw-lightbox__caption[hidden],
.kw-lightbox__enquire[hidden] {
  display: none;
}
.kw-lightbox__enquire {
  margin-top: 12px;
  padding: 10px 22px;
  background: var(--greenColor);
  color: #fff;
  font-weight: 600;
  font-size: 14px;
  text-transform: uppercase;
}
.kw-lightbox__enquire:hover,
.kw-lightbox__enquire:focus {
  background: #1b5e20;
  color: #fff;
}
.kw-lightbox__btn {
  position: absolute;
  border: 0;
  background: none;
  color: #fff;
  font-size: 40px;
  line-height: 1;
  cursor: pointer;
  padding: 8px 12px;
}
.kw-lightbox__btn:focus-visible {
  outline: 2px solid #fff;
}
.kw-lightbox__close { top: 8px; right: 12px; }
.kw-lightbox__prev  { left: 8px; top: 50%; transform: translateY(-50%); }
.kw-lightbox__next  { right: 8px; top: 50%; transform: translateY(-50%); }
body.kw-lightbox-open {
  overflow: hidden;
}

/* ------------------------------------------------------------------
 * 16-17. Testimonials
 * ------------------------------------------------------------------ */
/* 16. Solid dark background instead of the busy collage. */
.testimonials {
  background: #161616;
}
/* 17. Regular weight, left-aligned, short pull-quote. */
.testimonials .sp-testimonial-content p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  overflow: hidden;
  font-style: normal;
  font-weight: normal;
  font-size: 18px;
  line-height: 1.6;
  text-align: left;
}
/* Long reviews: show only the opening paragraph as the pull-quote. */
.testimonials .sp-testimonial-content p ~ p {
  display: none;
}
.testimonials .sp-testimonial-free .sp-testimonial-client-name {
  text-align: left;
  font-size: 20px !important;
  margin-bottom: 40px;
}
.testimonials .sp-testimonial-free .sp-testimonial-client-name::before {
  content: "\2014\00a0";
}
.testimonials .read-full-review {
  display: inline-block;
  margin-top: 28px;
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.testimonials .read-full-review:hover,
.testimonials .read-full-review:focus {
  color: #c8e6c9;
}

/* ------------------------------------------------------------------
 * 18. Get in touch: readable text on the green background
 * ------------------------------------------------------------------ */
.getTouchBg {
  position: relative;
}
.getTouchBg::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgb(0 0 0 / 55%);
}
.getTouchBg .container {
  position: relative;
}
.getTouchBg p {
  text-transform: none;
  letter-spacing: normal;
  font-size: 18px;
  line-height: 1.6;
}

/* ------------------------------------------------------------------
 * 20. Footer
 * ------------------------------------------------------------------ */
.footer .copyright .footer-sep {
  margin: 0 6px;
}
.footer .copyright a {
  color: #fff;
  text-decoration: underline;
}

/* ------------------------------------------------------------------
 * Accessibility (C1 Health Checkup)
 * ------------------------------------------------------------------ */
/* The mobile menu toggle is now a real <button>. */
button.hamburgerNav {
  border: 0;
  padding: 0;
  background: transparent;
  color: inherit;
}
button.hamburgerNav::after {
  left: 0; /* the theme only set this on ::before and the span */
}
button.hamburgerNav:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 6px;
}
/* Testimonial dots: at least 24px apart so they are easy to tap. */
.testimonials .swiper-pagination .swiper-pagination-bullet {
  width: 14px;
  height: 14px;
  margin: 0 5px !important;
}
/* Default page template: title is now an <h1>; keep the previous h2 look. */
.branding h1.page-title {
  text-align: center;
  font-size: 36px;
}
/* Issue 15: artwork title with medium, year and size underneath. */
.commercial_section .artwork-caption .artwork-title {
  display: block;
  color: #fff;
  font-weight: 500;
}
.commercial_section .artwork-caption .artwork-meta {
  display: block;
  color: #bdbdbd;
  font-size: 14px;
}
/* Testimonial photo: fill the circle. The theme's old rule (198px wide, shifted
 * -39px/-35px) was tuned to a badly sized file and zooms into the regenerated one. */
.testimonials .sp-testimonial-free .sp-testimonial-client-image img {
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: cover;
  transform: none;
}

/* ------------------------------------------------------------------
 * Client feedback (20 Oct 2026)
 * ------------------------------------------------------------------ */
/* Next Public Performances: title and note only, centred. */
.personal-style--note .infoWrap {
  justify-content: center;
}
/* Fluid spacing: scales between phone and desktop instead of fixed big gaps. */
.about-us {
  padding-bottom: clamp(24px, 4vw, 50px);
}
.personal-style--note .infoWrap {
  margin-bottom: 0;
}
.personal-style--note .personalinfo {
  padding: clamp(24px, 4vw, 50px) 20px clamp(28px, 4.5vw, 56px);
}
.personal-style--note + section {
  padding-top: clamp(30px, 4vw, 50px);
}
.personal-style--note .performances-note {
  max-width: 640px;
  margin: 24px auto 0;
  font-size: 18px;
  line-height: 1.6;
  text-align: center;
}
/* Get in touch: centre the sentence (point 18). */
.getTouchBg p {
  text-align: center;
}
/* Contact page: caption under the painting. */
.contactUs .col-md-6 > img {
  display: block;
}
.contact-image-caption {
  margin: 0 0 12px;
  color: #fff;
  font-size: 18px;
  font-weight: 500;
  text-align: center;
}
/* Biography and production pages: play titles stand out on the black background. */
.cmsPages a {
  color: #7ddc84;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.cmsPages a:hover,
.cmsPages a:focus {
  color: #fff;
}
/* Menu: highlight "Productions" when one of its pages is open, the same way
 * the current page is highlighted (.current-menu-item in Customizer > Additional CSS). */
.mainNav .current-menu-parent,
.mainNav .current-menu-ancestor {
  background-color: #09791a;
  border-radius: 5px;
}
.mainNav .current-menu-parent > a,
.mainNav .current-menu-ancestor > a {
  color: #fff;
}
