/*
Theme Name: BraveWorld
Author: BraveWorld	
Author URI: http://braveworld.co.nz
Description: The7 is perfectly scalable, performance and SEO optimized, responsive, retina ready multipurpose WordPress theme.
Version: 1.0.1
Text Domain: braveworld
License: This WordPress theme is comprised of two parts: (1) The PHP code and integrated HTML are licensed under the GPL license as is WordPress itself.  You will find a copy of the license text in the same directory as this text file. Or you can read it here: http://wordpress.org/about/gpl/ (2) All other parts of the theme including, but not limited to the CSS code, images, and design are licensed according to the license purchased. Read about licensing details here: http://themeforest.net/licenses/regular_extended
Template: dt-the7
*/

/* =========================================================
   CORE WORDPRESS / GLOBAL ELEMENTS
   – Base resets, links, buttons, tables, common helpers
   ========================================================= */

/* hide wp bakery button at top of blog editor */ 
.wpb_switch-to-composer { visibility: hidden; }

html { margin-top: 0 !important; }
body { margin-top: 0 !important; }

a { font-family: var(--wp--preset--font-family--sans-serif); }

.content {
  table, td, th,
  table.xa_sp_table {
    border-color: transparent;
    background-color: transparent;
  }

  table,
  table.xa_sp_table {
    box-shadow: 0 0 10px var(--wp--preset--color--grey-400);
  }
}


/* =========================================================
   HEADER, MASTHEAD & NAV
   – Header backgrounds, branding, menus, dividers
   ========================================================= */

.masthead:not(.mixed-header),
.top-bar-bg,
#phantom {
  background: var(--wp--preset--color--lavender-blush);
}

.masthead:not(.side-header):not(.mixed-header) .header-bar,
.header-space { min-height: 114px; }

body {
  .masthead:not(.side-header).dividers .main-nav>li::before,
  .masthead:not(.side-header).dividers.surround .main-nav>li:last-child::after {
    width: 4px;
    height: 4px;
    background-color: var(--wp--preset--color--orange-web);
    border: none;
    border-radius: 50%;
  }

  .wc-ico-cart,
  .mini-search .submit { font-weight: normal !important; }
}

/* Menu highlights */
.current-menu-item,
.menu-item:hover {
  text-shadow:
    -1px -1px 0 rgba(255, 255, 255, 0.05),
     1px -1px 0 rgba(255, 255, 255, 0.05),
    -1px  1px 0 rgba(255, 255, 255, 0.05),
     1px  1px 0 rgba(255, 255, 255, 0.05);
}

/* Branding / logos */
.branding img { margin-top: -50px !important; }
.mobile-branding img { margin-top: 8px !important; }

.logo-box {
  img {
    height: 40px;
    width: auto;
    margin: 10px 0;
  }
}
.footer .logo-box img { height: 70px; }

/* =========================================================
   MOBILE HEADER & NAV VISIBILITY
   – Tidy mobile element toggles & positions
   ========================================================= */

.mobile-header-bar,
.mobile-navigation,
.mobile-mini-widgets,
.mobile-branding { display: none; }

@media (max-width: 950px) {
  .mobile-header-bar .mobile-branding {
    img:first-child { display: none !important; }
    img.mobile-logo.preload-me { display: block !important; }
  }

  .mobile-header-bar,
  .mobile-navigation,
  .mobile-mini-widgets,
  .mobile-branding { display: block; }
}

@media (max-width: 480px) {
  .masthead-mobile { margin-bottom: 0; }

  .mobile-mini-widgets {
    position: absolute;
    bottom: -34px;
    right: 0;
    width: 100%;
    background: var(--wp--preset--color--white);
  }
}

/* Fine-tuning mobile layout spacing */
@media screen and (max-width: 1050px) {
  .first-switch-logo-left.first-switch-menu-right {
    .mobile-header-bar { padding-top: 20px !important; }

    .mobile-header-bar .mobile-navigation {
      right: 20px;
      position: absolute;
      top: 20px;
    }
  }

  .show-device-logo {
    .branding img.mobile-logo,
    .mobile-branding img.mobile-logo { width: 200px; }
  }
}

@media screen and (max-width: 778px) {
  .masthead:not(.side-header) .mobile-header-bar,
  .side-header.masthead-mobile-header .mobile-header-bar { padding-top: 15px !important; }
}

/* Force showing device logos in sticky modes */
@media screen and (max-width: 1050px) {
  .mobile-branding img.mobile-logo,
  .mobile-branding img.mobile-desktop-logo,
  .show-device-logo .branding img,
  .show-device-logo .mobile-branding img,
  .sticky-mobile-logo-first-switch,
  .sticky-mobile-logo-second-switch,
  .sticky-mobile-on .mobile-branding * {
    display: block !important;
  }
}

/* =========================================================
   PAGE TITLE / FANCY HEADER
   – Normalise background handling site-wide
   ========================================================= */

/* The7: force blank page-title background everywhere */
.fancy-title, .fancy-header, .page-title, .page-title .wf-wrap { background-image: none !important; }

@media screen and (min-width: 779px) {
  .page-title.solid-bg.bg-img-enabled {
    background-position: 50% 100px !important;
    opacity: 1;
  }
}

@media (max-width: 600px) {
  .page-title.solid-bg.bg-img-enabled,
  .single-post .page-title.solid-bg.bg-img-enabled { background-size: cover !important; }
}

/* =========================================================
   LAYOUT / CONTENT SPACING
   ========================================================= */

#page {
  #content>div:first-of-type { padding-top: 30px; }

  .page-title .wf-wrap:after,
  .fancy-header .wf-wrap:after { /* decorative afters hidden on small screens below */ }
}

.home #page #content>div:first-of-type { padding-top: 0; }

.search #content { margin-top: 50px; }

.content-bg-on {
  &.centered-layout-list article,
  &.classic-layout-list article {
    margin: 0;
    background: var(--wp--preset--color--white);
    -webkit-box-shadow: 1px 1px 3px 1px var(--wp--preset--color--grey-400);
    -moz-box-shadow: 1px 1px 3px 1px var(--wp--preset--color--grey-400);
    box-shadow: 1px 1px 3px 1px var(--wp--preset--color--grey-400);
  }
}

.visible.wf-cell.shown { box-shadow: 0 1px 8px var(--wp--preset--color--grey-400); }

/* =========================================================
   BLOG / ARCHIVE / POST LISTS
   ========================================================= */

.blog {
  &.layout-list .post .blog-media img,
  .mobile-true .post img.iso-lazy-load { max-width: none; }
}

.post {
  .entry-title a {
    font-family: var(--wp--preset--font-family--serif);
    font-weight: 100;
  }
}

.blog-shortcode {
  .entry-meta, .entry-meta * {
    font-family: var(--wp--preset--font-family--sans-serif);
    font-weight: 100;
  }

  .entry-meta {
    border-top: 1px solid var(--wp--preset--color--grey-400);
    padding: 5px 20px;
  }

  /* Shared entry title sizing for multiple modes */
  &.mode-masonry .entry-title,
  &.mode-grid .entry-title,
  &.blog-carousel-shortcode .entry-title,
  &.portfolio-carousel-shortcode .entry-title,
  &.albums-carousel-shortcode .entry-title,
  &.mode-masonry.owl-carousel.blog-carousel-shortcode .entry-title,
  &.mode-grid.owl-carousel.blog-carousel-shortcode .entry-title,
  &.blog-carousel-shortcode.owl-carousel.blog-carousel-shortcode .entry-title,
  &.portfolio-carousel-shortcode.owl-carousel.blog-carousel-shortcode .entry-title,
  &.albums-carousel-shortcode.owl-carousel.blog-carousel-shortcode .entry-title {
    font: normal normal normal 20px var(--wp--preset--font-family--sans-serif);
    line-height: 30px;
  }
}

.archive {
  .blog-shortcode { margin: 70px 0; }

  .pciwgas-medium-3 { width: 25% !important; }

  @media screen and (max-width: 580px) { .pciwgas-medium-3 { width: 50% !important; } }
  @media screen and (max-width: 400px) { .pciwgas-medium-3 { width: 100% !important; } }
}

/* Masonry titles/excerpts */
#blog_masonry_wrapper {
  .entry-title { min-height: 100px; }
  .entry-excerpt { min-height: 160px; }
}

/* Category filter UI */
.filter {
  margin-top: 40px;

  .filter-categories {
    width: 200px; height: 30px; overflow: hidden;
    position: absolute; left: calc(50% - 100px); top: 0; margin-top: 5px;
    padding-bottom: 30px; transform: translateX(-50%);
    background-color: var(--wp--preset--color--white);
    z-index: 3;

    &::before {
      content: "Category Filter";
      display: inline-block;
      color: var(--wp--preset--color--grey-800);
      position: sticky;
    }

    &:hover {
      overflow-y: scroll; height: auto; max-height: 300px;
      box-shadow: 1px 1px 3px 1px var(--wp--preset--color--grey-400);
    }
  }

  .filter-categories a {
    text-align: left; width: 100%;
    text-transform: capitalize;
    font-family: var(--wp--preset--font-family--sans-serif);
    font-weight: 300; padding: 3px 20px;

    &.show-all {
      position: sticky; top: 0; z-index: 10;
      height: 30px; padding: 0 20px; line-height: 30px;
      background-color: var(--wp--preset--color--grey-100);
    }

    &:last-of-type { padding-bottom: 20px; }
  }

  .filter-categories a,
  .filter-extras>div { margin: 0; }
}

.filter-extras { margin-left: 200px; }

/* Post categories inline list */
ul.post-categories {
  margin: 10px 0 0;
  background-color: var(--wp--preset--color--antiflash-white);
  padding: 10px;

  .post-categories & { margin-left: 0; } /* keep original intent */

  li {
    display: inline;

    a { padding: 0 7px; }

    &:first-of-type a { padding-left: 0; }

    &:after { content: '|'; }
    &:last-of-type:after { content: ''; }
  }
}

@media screen and (max-width: 800px) {
  ul.post-categories { float: left; margin-left: 0; }
  .post-categories li:first-of-type a { padding-left: 0; }
}

/* RELATED POSTS */
@media screen and (min-width: 760px) {
  .related-item {
    width: 50% !important;

    .mini-post-img { flex-basis: 50%; }
    .mini-post-img img { width: 100%; }
  }
}
@media screen and (max-width: 760px) {
  .related-item { width: 100% !important; }
}
.related-item .text-secondary { display: none !important; }

/* Post navigation hidden */
.post-navigation { display: none; }
.entry-meta a.comment-link {
  text-transform: uppercase;
  color: var(--wp--preset--color--orange-web);
}

/* =========================================================
   SINGLE POST
   ========================================================= */

.single-post {
  .post-thumbnail { display: none; }

  #content { padding: 20px 0; max-width: 940px; margin-left:auto; margin-right:auto; }

  #page #content>div:first-of-type { padding-top: 10px; }

  .page-title {
    &.solid-bg.bg-img-enabled { background-size: 100% auto !important; }

    h1,
    h1 *,
    h1 a:hover,
    #page .page-title .entry-title {
      color: var(--wp--preset--color--grey-800);
      font-family: var(--wp--preset--font-family--serif);
      text-transform: capitalize;
      font-size: 35px;
    }
  }

  h1.entry-title { font-size: 34px; text-align: left !important; }
  .entry-title.h2-size { font-size: 30px; }
}

.single {
  .entry-content {
    display: block; float: none; margin-bottom: 20px;

    #jig1 { max-width: 100% !important; }

    h1 {
      font-size: 30px; line-height: 36px;
      border-bottom: 1px solid var(--wp--preset--color--grey-200);
      padding-bottom: 10px; margin-bottom: 30px;
    }

    .justified-image-grid { margin: 50px 0 20px !important; }
  }
}

/* =========================================================
   “MILKWOOD” TILES / GRID
   – Image grid sizing & hover states
   ========================================================= */

.milkwood {
  .visible.wf-cell.iso-item.shown { overflow: hidden; }

  img { max-width: 100%; display: block; }

  .wf-cell.iso-item { margin-right: -2px; }

  a.post-thumbnail-rollover { height: 100% !important; padding: 0 !important; }
  .post-thumbnail,
  .post-thumbnail-rollover { position: relative; display: block; height: 100%; }

  .post-thumbnail img {
    max-width: none !important;
    width: auto !important;
    height: 100%;
    position: absolute;
  }

  .post-thumbnail-wrap { height: 100% !important; }

  .wide .post-thumbnail img { width: 100% !important; height: auto !important; }

  .tall .post-thumbnail img { left: -100%; }

  .post-entry-content {
    position: absolute; top: 50%; transform: translateY(-50%); opacity: 0;
  }

  .post:hover {
    .rollover i,
    .post-rollover i,
    .rollover-video i,
    .enable-bg-rollover .post-thumbnail-rollover:after { opacity: 1; }

    .post-entry-content { opacity: 1; }
  }

  .rollover i,
  .post-rollover i,
  .rollover-video i,
  .enable-bg-rollover .post-thumbnail-rollover:after {
    background: var(--wp--preset--color--orange-web);
  }

  .blog-shortcode .entry-title a {
    color: var(--wp--preset--color--white) !important;
    letter-spacing: 0.02em;
    font-weight: 800;
    font-family: var(--wp--preset--font-family--serif);
  }
}

/* Container sizing overrides */
body .cont-id-0 .wf-cell { width: 25%; padding: 0; }
.milkwood .visible.wf-cell.iso-item:nth-of-type(8),
.milkwood .visible.wf-cell.iso-item:nth-of-type(2) { width: 50%; }

.milkwood article.post { position: absolute; width: 100%; height: 100%; }
.milkwood a.post-thumbnail-rollover { padding-bottom: 200% !important; }

/* Responsive grid widths */
@media screen and (max-width: 800px) { .home .iso-container .iso-item { width: 50% !important; } }
@media screen and (max-width: 600px) { .home .iso-container .iso-item { width: 100% !important; } }

/* =========================================================
   WIDGETS / FOOTER
   ========================================================= */

.footer {
  .widget-title {
    font-family: var(--wp--preset--font-family--serif);
    font-weight: 600;
    color: var(--wp--preset--color--black);
    text-transform: capitalize;
    border-bottom: 1px solid var(--wp--preset--color--grey-200);
    padding: 10px 0;
    margin-bottom: 0;
  }
}

.widget_text.widget.widget_custom_html {
  span {
    display: block; width: 100%; padding: 0; font-style: normal;

    strong {
      font-family: var(--wp--preset--font-family--sans-serif);
      text-transform: uppercase;
      margin-right: 10px;
      font-size: 75%;
      color: var(--wp--preset--color--orange-web);
    }
  }
}

/* Slide-out news widget */
#custom_html-3 {
  z-index: 999;
  position: fixed; top: 150px; right: -300px; width: 300px;
  text-align: right;
  background-color: var(--wp--preset--color--orange-web);
  transition: all 0.2s;

  .widget-title { display: none; }

  &.sliding { right: 0; }

  .newsBtn {
    position: absolute; left: -82px; top: 0; width: 70px;
    text-align: center; background-color: var(--wp--preset--color--orange-web);
    padding: 10px 7px 5px; border-radius: 5px 0 0 5px;
    color: var(--wp--preset--color--grey-800);
    display: block !important; z-index: 9999999999999; cursor: pointer;
  }
}

/* Custom HTML links typographic tweak */
.custom-html-widget a { font-family: var(--wp--preset--font-family--san-serif); }

/* =========================================================
   FORMS (Gravity Forms + misc)
   ========================================================= */

/* General */
.gform-body { margin: 15px 0; }

.gfield {
  input{
    text-rendering: optimizeLegibility;
    letter-spacing: normal;
    font-family: system-ui, sans-serif !important;
    color: var(--wp--preset--color--grey-800);
    line-height: 1.3;
    font-size: 0.8em !important;
    text-align: left !important;
    box-sizing: inherit;
    margin: 0;
    padding: 9px !important;
    border-color: var(--wp--preset--color--grey-400);
    border-radius: 6px !important;

    &::placeholder { color: var(--wp--preset--color--grey-800); }
  }
}

.gfield_label { font-size: 12pt !important; }

.gform_wrapper {
  .field_sublabel_above .ginput_complex.ginput_container label { margin: 0 !important; }

  .top_label {
    div.ginput_container { margin-top: 0; }
    div.ginput_container input { margin: 0; }
  }
}

#footer {
  #gform_widget-2.widget { background-color: var(--wp--preset--color--antiflash-white); padding: 15px; border: 1px solid var(--wp--preset--color--grey-500); border-radius: 20px}
  .gfield_label { font-size: 14px !important; }
  .gform_wrapper { margin-top: 10px; }
  .gform_wrapper .gform_footer { margin: 0 !important; padding: 7px 0 0 !important; }
}

li.gfield { padding: 0 !important; }
div.gform_footer { text-align: center; }
.gform_button { border-radius: 2em !important; }

/* Footer form responsiveness */
@media screen and (max-width: 778px) {
  #footer #gform_widget-2.widget { width: 80%; margin: 10%; }
}

/* Testimonials upload block */
.uploadphoto {
  padding: 30px !important;
  background-color: var(--wp--preset--color--antiflash-white);
  text-align: center;

  .gfield_label {
    font-size: 20pt !important;
    font-family: var(--wp--preset--font-family--serif) !important;
    font-style: italic !important;
  }

  .gfield_description {
    font-size: 12pt !important;
    color: var(--wp--preset--color--grey-500);
    width: 70%; margin: 0 auto;
  }

  #input_19_3 {
    background-color: var(--wp--preset--color--platinum);
    padding: 20px;
    border: 1px solid var(--wp--preset--color--grey-400);
  }
}

/* Lead magnet template */
.lm_text {
  h2, h3, p, li {
    font-family: var(--wp--preset--font-family--sans-serif);
    color: var(--wp--preset--color--grey-800);
  }

  h2 { font-size: 19pt; line-height: 26pt; }
  h3 { font-size: 18pt; line-height: 26pt; }
  h4 { font-size: 14pt; line-height: 18pt; }
  h5 { font-size: 12pt; line-height: 16pt; color: var(--wp--preset--color--grey-500); }
  p { font-size: 15pt; line-height: 24pt; margin-bottom: 10px !important; }
  li { font-size: 15pt; line-height: 24pt; }

  form li { margin: 0 !important; padding: 0 !important; }

  .gform_footer { margin: 0; padding: 5px 0; }
}

@media screen and (max-width: 700px) {
  .lm_footer .milkwoodlogo { margin-bottom: -40px !important; }
}

/* =========================================================
   TEACHER CARD
   ========================================================= */

.teacher-image {
  width: 100px; height: 100px;
  background-size: cover; border-radius: 50%;
  margin-left: auto; margin-bottom: -75px !important;
}

#content .wpb_text_column div.teacher div.inner {
  background-color: var(--wp--preset--color--antiflash-white);
  padding: 20px; border-radius: 3px; min-height: 100px;
  margin-top: 100px; border: 0.5px solid var(--wp--preset--color--grey-300);

  >a { margin-top: -80px; display: block; }
}

.teacher {
  .more {
    opacity: 0; position: relative; background-color: var(--wp--preset--color--white);
    height: 0; margin: 0; padding: 0;

    &.showMe,
    &.active { height: auto; opacity: 1; padding: 10px 20px; margin-top: 30px; }

    &::after { position: absolute; top: -30px; left: 0; }
  }
}

.expand {
  border-radius: 50%; border: 0.5px solid var(--wp--preset--color--grey-800);
  width: 25px; height: 25px; line-height: 25px; margin: 10px auto;
  z-index: 10; position: absolute; text-align: center;
  transform: translateX(-50%); left: 50%; bottom: -22px;
  background-color: var(--wp--preset--color--white);
}

/* =========================================================
   PLUGINS & INTEGRATIONS
   – VC/Ultimate Addons/Ads/Hurrytimer/Shopify block
   ========================================================= */

/* Visual Composer / Ultimate Addons */
.vc_general {
  text-transform: uppercase;
  font-family: var(--wp--preset--font-family--sans-serif);
  font-weight: 100;
  font-size: 16px !important;
}

.ult-vc-seperator { z-index: 10 !important; }
.ult-vc-seperator.top_seperator,
.ult-vc-seperator.bottom_seperator { margin: 37px 0; }
.uvc-svg-triangle polygon { display: none; }

body .left-icon .aio-icon-left .aio-icon,
body .left-icon .aio-icon-left .aio-icon-img { margin-right: 40px; }

/* Sliders */
.custom-slider ul,
.milkw-slider ul,
.custom-slider>ul { margin: 0 !important; list-style: none !important; }

/* Parallax tweak */
.homepage-parallax-shift .upb_row_bg { background-position: center 60px !important; }

/* Advanced Ads popups */
#fancybox-outer { border: 4px solid var(--wp--preset--color--orange-web); border-radius: 30px; }
#fancybox-content { text-align: center; border-radius: 30px; }
.milkw-popup-and-layer-ads { padding: 20px; }

/* Advanced Ads list style fix */
ul.unslider-wrap { margin-left: 0; list-style-type: none; }

/* Shopify collection block */
#shopify-collection2 {
  border-top: 1px solid var(--wp--preset--color--antiflash-white);
  border-bottom: 1px solid var(--wp--preset--color--antiflash-white);
  text-align: center;

  h3 { margin: 50px 0 20px; }
  div { padding-left: 10px; display: inline-block; vertical-align: top; }
}

/* Hurrytimer (Nick August 2025) */
.hurrytimer-timer-block, .hurrytimer-timer { margin: 0 !important; }

.hurrytimer-timer {
  display: inline-block;

  &::before { content: "Closing in"; }
  &::after {
    content: '••••';
    width: 4ch;
    font-family: ui-monospace, monospace;
    position: relative;
    font-size: 0.7em;
    top: 0.25em;
    clip-path: inset(0 4ch 0 0);
    animation: hurrytimer_dots 1.4s steps(4, end) infinite;
  }
}

@keyframes hurrytimer_dots {
  from { clip-path: inset(0 4ch 0 0); }
  to   { clip-path: inset(0 0   0 0); }
}

.hurrytimer-button { padding: 0.5em 2em !important; font-size: 0.95em !important; }

/* =========================================================
   MISC PAGES
   ========================================================= */

/* Category pages */
.category #page #content>div:first-of-type { padding-top: 0; }

/* Search / gallery spacing */
.wp-block-gallery { margin: 20px 0; }

/* 404 */
.error404 {
  #hints {
    min-height: 150px; position: relative; box-sizing: border-box; width: 100%;
    margin: 40px auto 0;
  }

  #hints2 { max-width: 800px; margin: 0 auto; padding-top: 20px; }
  #search { max-width: 800px; margin: 0 auto; }
}

/* Topics (post category landing) */
.pciwgas-cat-wrap {
  .pciwgas-img-wrapper img.pciwgas-cat-img { height: 200px; width: 100%; height: auto; }
  .pciwgas-title { margin-bottom: 20px !important; }

  .pciwgas-title a:hover { color: var(--wp--preset--color--grey-600); }

  .pciwgas-cat-count {
    background-color: var(--wp--preset--color--orange-web);
    border-radius: 10px;
  }
}

/* Post-thumbnail decorative afters (hidden on small screens) */
.post-thumbnail::after,
#page .page-title .wf-wrap:after,
#page .fancy-header .wf-wrap:after,
.teacher .more:after {
  display: block; content: ""; height: 30px; width: 100%;
  position: absolute; bottom: 0; background-repeat: no-repeat;
  background-position: center; background-size: contain;
  transform: rotate(180deg); border-bottom: none;
}

@media (max-width: 600px) {
  .ult-vc-seperator.bottom_seperator,
  .post-thumbnail::after,
  #page .page-title .wf-wrap:after,
  #page .fancy-header .wf-wrap:after,
  .teacher .more:after { display: none; }
}

/* =========================================================
   RESPONSIVE – BLOG GRID SHORTCODES
   ========================================================= */

.mode-masonry.portfolio-shortcode .entry-title,
.mode-grid.portfolio-shortcode .entry-title,
.blog-carousel-shortcode.portfolio-shortcode .entry-title,
.portfolio-carousel-shortcode.portfolio-shortcode .entry-title,
.albums-carousel-shortcode.portfolio-shortcode .entry-title,
.mode-masonry.albums-shortcode .entry-title,
.mode-grid.albums-shortcode .entry-title,
.blog-carousel-shortcode.albums-shortcode .entry-title,
.portfolio-carousel-shortcode.albums-shortcode .entry-title,
.albums-carousel-shortcode.albums-shortcode .entry-title { /* inherits font/line-height from .blog-shortcode above */ }

/* =========================================================
   SMALL UTILITIES
   ========================================================= */

.css-grid-filter .filter-categories { z-index: 3; }
.custom-slider>ul { margin: 0 !important; list-style: none !important; }

.masthead:not(.side-header) .mobile-header-bar,
.side-header.masthead-mobile-header .mobile-header-bar { /* consolidated above under @media 778px */ }

/* END */
