/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Image Background */

html,
body {
    background: transparent !important;
}

body::before {
    content: "";
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-image: url("https://bacchuspress.com/wp-content/uploads/2025/11/paper-background.jpg");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    pointer-events: none;
    z-index: -1;
}

body {
    position: relative;
    min-height: 100vh;
}
/* =====================================================
   BUTTON SYSTEM
   ===================================================== */

/* Reset wrapper */
.elementor-element[class*="button"] {
    background: none !important;
    border: none !important;
}

/* Base button */
.elementor-element[class*="button"] a.elementor-button {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    overflow: hidden;
    border-radius: 999px;
    text-decoration: none;
    font-family: "Manrope", sans-serif;
    font-size: 1rem;
    font-weight: 500;
    text-transform: uppercase;
    z-index: 1;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
    border: 2px solid var(--btn-border);
    background: var(--btn-bg);
    color: var(--btn-color);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.06);
    will-change: color, box-shadow;
    transition: color 0.2s ease, background-color 0.2s ease, fill 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

/* Hover state */
.elementor-element[class*="button"] a.elementor-button:hover {
    color: var(--btn-hover-color);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15), 0 2px 6px rgba(0, 0, 0, 0.1);
}

/* Active/press state */
.elementor-element[class*="button"] a.elementor-button:active {
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
}

/* Focus visible - keyboard only */
.elementor-element[class*="button"] a.elementor-button:focus-visible {
    outline: 2px solid var(--btn-border);
    outline-offset: 3px;
}

/* Sliding overlay */
.elementor-element[class*="button"] a.elementor-button::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    background: var(--btn-hover-bg);
    transform: translateX(-100%);
    will-change: transform;
    transition: transform 0.2s ease;
}
.elementor-element[class*="button"] a.elementor-button:hover::before { transform: translateX(0); }

/* Icon */
.elementor-element[class*="button"] a.elementor-button svg {
    width: 1em;
    height: 1em;
    fill: currentColor;
    transition: fill 0.2s ease;
}

/* Spacing between text and icon */
.elementor-button-content-wrapper {
    gap: 10px;
}

/* =====================================================
   PER-VARIANT CUSTOM PROPERTIES
   ===================================================== */

/* Solid background buttons */
.elementor-element.black-button { --btn-border: #000000; --btn-bg: #000000; --btn-color: #ffffff; --btn-hover-bg: #ffffff; --btn-hover-color: #000000; }
.elementor-element.white-button { --btn-border: #084059; --btn-bg: #ffffff; --btn-color: #084059; --btn-hover-bg: #084059; --btn-hover-color: #ffffff; }
.elementor-element.white-black-button { --btn-border: #ffffff; --btn-bg: #ffffff; --btn-color: #000000; --btn-hover-bg: #000000; --btn-hover-color: #ffffff; }
.elementor-element.dark-blue-button { --btn-border: #084059; --btn-bg: #084059; --btn-color: #ffffff; --btn-hover-bg: #ffffff; --btn-hover-color: #084059; }
.elementor-element.dark-blue-button-services { --btn-border: #084059; --btn-bg: #084059; --btn-color: #ffffff; --btn-hover-bg: #ffffff; --btn-hover-color: #084059; }
.elementor-element.blue-light-blue-button { --btn-bg: #084059; --btn-color: #ffffff; --btn-hover-bg: #447E9C; --btn-hover-color: #ffffff; }
.elementor-element.light-blue-button { --btn-border: #447E9C; --btn-bg: #447E9C; --btn-color: #ffffff; --btn-hover-bg: #ffffff; --btn-hover-color: #447E9C; }
.elementor-element.light-blue-button-contact { --btn-border: #447E9C; --btn-bg: #447E9C; --btn-color: #ffffff; --btn-hover-bg: #ffffff; --btn-hover-color: #447E9C; }
.elementor-element.teal-button { --btn-border: #00B4A7; --btn-bg: #00B4A7; --btn-color: #ffffff; --btn-hover-bg: #ffffff; --btn-hover-color: #00B4A7; }
.elementor-element.teal-letter-button { --btn-border: #ffffff; --btn-bg: #ffffff; --btn-color: #00B4A7; --btn-hover-bg: #00B4A7; --btn-hover-color: #ffffff; }
.elementor-element.dark-blue-letter-button { --btn-border: #ffffff; --btn-bg: #ffffff; --btn-color: #084059; --btn-hover-bg: #084059; --btn-hover-color: #ffffff; }
.elementor-element.blue-green-button { --btn-border: #426E7F; --btn-bg: #426E7F; --btn-color: #ffffff; --btn-hover-bg: #ffffff; --btn-hover-color: #426E7F; }
.elementor-element.cyan-button { --btn-border: #22CAE9; --btn-bg: #22CAE9; --btn-color: #ffffff; --btn-hover-bg: #ffffff; --btn-hover-color: #22CAE9; }
.elementor-element.cyan-black-button { --btn-border: #22CAE9; --btn-bg: #22CAE9; --btn-color: #000000; --btn-hover-bg: #000000; --btn-hover-color: #22CAE9; }

/* Transparent background buttons */
.elementor-element.clear-black-button { --btn-border: #000000; --btn-bg: transparent; --btn-color: #000000; --btn-hover-bg: #000000; --btn-hover-color: #ffffff; }
.elementor-element.clear-white-button { --btn-border: #ffffff; --btn-bg: transparent; --btn-color: #ffffff; --btn-hover-bg: #ffffff; --btn-hover-color: #000000; }
.elementor-element.clear-cyan-button { --btn-border: #22CAE9; --btn-bg: transparent; --btn-color: #22CAE9; --btn-hover-bg: #22CAE9; --btn-hover-color: #ffffff; }

/* =====================================================
   FULL-WIDTH OVERRIDES
   ===================================================== */

.elementor-element.full-width-button .elementor-button-wrapper,
.elementor-element.dark-blue-button-services .elementor-button-wrapper,
.elementor-element.light-blue-button-contact .elementor-button-wrapper {
    width: 100% !important;
    display: block !important;
}

.elementor-element.full-width-button .elementor-button,
.elementor-element.dark-blue-button-services .elementor-button,
.elementor-element.light-blue-button-contact .elementor-button {
    width: 100% !important;
    display: block !important;
    text-align: center !important;
    justify-content: center !important;
}

.elementor-element.full-width-button .elementor-button-content-wrapper,
.elementor-element.dark-blue-button-services .elementor-button-content-wrapper,
.elementor-element.light-blue-button-contact .elementor-button-content-wrapper {
    justify-content: center !important;
}

/* =====================================================
   RESPONSIVE
   ===================================================== */

/* Desktop padding */
@media (min-width: 768px) {
    .elementor-element[class*="button"] a.elementor-button {
        padding: 0.6rem 6rem !important;
    }
    .elementor-element.dark-blue-button-services a.elementor-button,
    .elementor-element.light-blue-button-contact a.elementor-button {
        padding: 0.6rem 1rem !important;
    }
}

/* Tablet font size */
@media (max-width: 1024px) {
    .elementor-element[class*="button"] .elementor-button {
        font-size: 0.9rem !important;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .elementor-element[class*="button"] .elementor-button-wrapper {
        width: 100% !important;
        display: block !important;
    }
    .elementor-element[class*="button"] .elementor-button {
        width: 100% !important;
        display: block !important;
        text-align: center !important;
        justify-content: center !important;
        font-size: 0.8rem !important;
        padding: 0.6rem 2rem !important;
    }
    .elementor-element[class*="button"] .elementor-button-content-wrapper {
        justify-content: center !important;
    }
    .elementor-element[class*="button"] a.elementor-button,
    .elementor-element[class*="button"] a.elementor-button::before,
    .elementor-element[class*="button"] a.elementor-button svg {
        transition: none !important;
        will-change: auto !important;
    }
}

/* Respect reduced motion preference */
@media (prefers-reduced-motion: reduce) {
    .elementor-element[class*="button"] a.elementor-button,
    .elementor-element[class*="button"] a.elementor-button::before,
    .elementor-element[class*="button"] a.elementor-button svg {
        transition: none !important;
        will-change: auto !important;
    }
}
/* Font Declarations */
@font-face {
    font-family: 'Instrument Sans';
    src: url('https://bacchuspress.com/wp-content/uploads/2026/02/Instrument-Sans-600.woff2') format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Manrope';
    src: url('https://bacchuspress.com/wp-content/uploads/2026/02/Manrope-300.woff2') format('woff2');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Manrope';
    src: url('https://bacchuspress.com/wp-content/uploads/2026/02/Manrope-500.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Poppins';
    src: url('https://bacchuspress.com/wp-content/uploads/2026/02/Poppins-400.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}


.bg-video-section {
    position: relative;
    overflow: hidden;
    height: 450px;
}

.bg-video-section .bg-video-wrap {
    display: block !important;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 450px;
    z-index: 0;
    pointer-events: none;
}

.bg-video-section .bg-video-overlay {
  position: absolute;
  inset: 0;
  background: #0F172A;
  opacity: 0.7;
  z-index: 1;
  pointer-events: none;
}

.bg-video-section .bg-lazy-video {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    transform: translate(-50%, -50%);
    object-fit: cover;
}

.bg-video-section::before {
    z-index: 1;
}

.bg-video-section > .e-con-inner {
    position: relative;
    z-index: 2;
}

@media (max-width: 1024px) {
    .bg-video-section {
        height: 400px;
    }
    .bg-video-section .bg-video-wrap {
        height: 400px;
    }
}

@media (max-width: 767px) {
    .bg-video-section {
        height: 300px;
    }
    .bg-video-section .bg-video-wrap {
        height: 300px;
    }
}

.our-process-title {
    font-family: 'Poppins';
    color: #000000;
    font-size: 2rem;
    letter-spacing: -1.3px;
}

.our-process-body {
    font-family: 'Manrope';
    font-weight: 300;
    color: #696969;
    font-size: 1.3rem;
    line-height: 1.25rem;
}

@media (max-width: 1024px) {
.our-process-title {
    font-size: 1.7rem;
    letter-spacing: -1.3px;
}
}
@media (max-width: 1024px) {
.our-process-body {
    color: #696969;
    font-size: 1.1rem;
    line-height: 1.25rem;
}
}

.our-process-title-mobile {
    font-family: 'Poppins';
    color: #000000;
    font-size: 1.6rem;
    letter-spacing: -1.3px;
}

.our-process-body-mobile {
    font-family: 'Manrope';
    font-weight: 300;
    color: #696969;
    font-size: 1rem;
    line-height: 1.05rem;
}

/* Phone numbers in footer icon box */
.phone-number a[href^="tel"] {
    color: #084059 !important;
    text-decoration: none;
}


.header-title h2 {
        font-family: "Instrument Sans", Sans-serif!important;
    font-size: 3.3rem!important;
    line-height: 3.3rem!important;
}
@media (max-width: 1024px) {
    .header-title h2 {
        font-size: 2.3rem!important;
        line-height: 2.1rem!important;
    }
}
@media (max-width: 767px) {
    .header-title h2 {
        font-size: 2.2rem!important;
        line-height: 2.2rem!important;
        letter-spacing: -1px!important;
    }
}
.phone-number-page a {
    color: white!important;
}

.phone-number-page a:hover {
    color: white!important;
}


  .bp-client-tools {font-family:inherit;color:#101010;margin:0 auto;padding:20px 0}
  .bp-client-tools h1 {margin:0 0 .3em;line-height:1.2;color:#084059}
  .bp-client-tools .bp-lede {font-size:1.3rem;color:#426E7F;margin:0 0 0em;}
  .bp-client-tools h2 {margin:1.5em 0 .5em;padding-bottom:.3em;border-bottom:2px solid #00B4A7;color:#084059}
  .bp-client-tools h3 {color:#084059}
  .bp-client-tools h4 {margin:1em 0 .3em;color:#101010}
  .bp-client-tools p {margin:0 0 1em}
  .bp-client-tools a {color:#084059}
  .bp-client-tools a:hover {color:#00B4A7}
  .bp-client-tools .bp-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;margin:1em 0}
  .bp-client-tools .bp-card {background:#ffffff;border-left:4px solid #00B4A7;padding:16px 18px;border-radius:4px}
  .bp-client-tools .bp-card h4 {margin-top:0;color:#084059}
  .bp-client-tools .bp-card a {display:inline-block;margin:4px 8px 4px 0;padding:6px 12px;background:#084059;border:1px solid #084059;border-radius:3px;color:#fff;text-decoration:none;font-weight:600;transition:all .2s ease}
  .bp-client-tools .bp-card a:hover {background:#426E7F;color:#fff;border-color:#426E7F}
  .bp-client-tools .bp-resource-list {list-style:none;padding:0;margin:1em 0}
  .bp-client-tools .bp-resource-list li {padding:16px 20px;background:#ffffff;margin-bottom:10px;border-radius:4px;border-left:4px solid #00B4A7}
  .bp-client-tools .bp-resource-list strong {display:block;margin-bottom:4px;color:#084059}
  .bp-client-tools .bp-resource-list .bp-desc {display:block;color:#426E7F;margin-bottom:10px;line-height:1.5}
  .bp-client-tools .bp-resource-list a {display:inline-block;padding:8px 16px;background:#084059;color:#fff;text-decoration:none;border-radius:3px;font-weight:600;transition:background .2s ease}
  .bp-client-tools .bp-resource-list a:hover {background:#426E7F;color:#fff}
  .bp-client-tools .bp-instructions {background:#fff;border:1px solid #F6F4F2;border-left:4px solid #084059;padding:18px 22px;border-radius:4px;margin:1em 0}
  .bp-client-tools .bp-instructions ol {margin:0;padding-left:20px}
  .bp-client-tools .bp-instructions li {margin-bottom:6px;line-height:1.5;color:#101010}
  .bp-client-tools .bp-instructions a {color:#084059;font-weight:600;text-decoration:underline}
  .bp-client-tools .bp-instructions a:hover {color:#00B4A7}

  .block-directory-downloadable-blocks-panel {
    display:none!important;
  }

  .blog-article-heading {
  margin: 30px 0 !important;
  border-bottom:2px solid #00B4A7;
  color:#084059;
      padding-bottom: 8px;
}

.blog-post-content a {
    color: #084059;
    text-decoration: none;
    font-weight: 500;
    border-bottom: 1px solid rgba(0,180,167,.65);
    transition: all .2s ease;
}

.blog-post-content a:hover {
    color: #00B4A7;
    border-color: #084059;
}

.wp-block-details summary {
    cursor: pointer;
    font-size: 1.2rem;
    font-weight: bold;
    color: #084059;
    padding-bottom: 0px;
    margin:0;
}

.bp-desc {
    display: block;
    font-size:1.15rem;
    padding-left:20px;
}

/* FAQs */

.wpseopress-faqs {
    margin: 20px 0;
}

.wpseopress-faq {
    background: #FFFFFF;
    border: 1px solid #E6EEF2;
    border-left: 5px solid #00B4A7;
    border-radius: 12px;
    padding: 30px 34px;
    margin-bottom: 24px;
    box-shadow: 0 2px 12px rgba(0,0,0,.04);
    transition: all .25s ease;
}

/* subtle interaction */

.wpseopress-faq:hover {
    box-shadow: 0 10px 30px rgba(8,64,89,.08);
    border-color: #D7E7ED;
}

/* QUESTION */

.wpseopress-faq-question {
    margin: 0 0 10px !important;
    color: #084059;
    font-size: 1.55rem !important;
    line-height: 1.75;
    letter-spacing: -.03em;
}

/* ANSWER WRAPPER */

.wpseopress-faq-answer {
    margin: 0;
    padding: 0;
}

/* ANSWER TEXT */

.wpseopress-faq-answer-desc {
    margin: 0 !important;
    padding: 0 !important;
    color: #4B6875;
    font-size: 1.08rem !important;
    line-height: 1.5;
    /* max-width: 72ch; */
}

/* LINKS */

.wpseopress-faq-answer-desc a {
    color: #084059;
    text-decoration: none;
    border-bottom: 1px solid rgba(0,180,167,.35);
    transition: all .2s ease;
}

.wpseopress-faq-answer-desc a:hover {
    color: #00B4A7;
    border-color: #00B4A7;
}


.wpseopress-faq:last-child {
    margin-bottom: 0;
}

/* MOBILE */

@media (max-width: 768px) {

    .wpseopress-faq {
        padding: 22px 20px;
        border-radius: 10px;
    }

    .wpseopress-faq-question {
        font-size: 1.25rem !important;
        line-height: 1.3;
        margin-bottom: 14px !important;
    }

    .wpseopress-faq-answer-desc {
        font-size: 1rem !important;
        line-height: 1.75;
    }

}

/* GRID */

.services-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(320px,1fr));
    gap: 20px;
    margin: 20px 0;
}

/* CARD */

.blog-service-card {
    background: #FFFFFF;
    border: 1px solid #E6EEF2;
    border-left: 5px solid #00B4A7;
    border-radius: 12px;
    padding: 20px 20px;
    box-shadow: 0 2px 12px rgba(0,0,0,.04);
    transition: all .25s ease;
}

/* HOVER */

.blog-service-card:hover {
    box-shadow: 0 10px 30px rgba(8,64,89,.08);
    border-color: #D7E7ED;
}

/* HEADING */

.blog-service-card h3 {
    margin: 0 0 12px;
    color: #084059;
    font-size: 1.35rem;
    line-height: 1.3;
}

/* BODY */

.blog-service-card p {
    margin: 0;
    color: #4B6875;
    font-size: 1.05rem;
    line-height: 1.25;
    margin-top: 10px;
}

/* LINKS */

.blog-service-card a {
    color: #084059;
    text-decoration: none;
    border-bottom: 1px solid rgba(0,180,167,.35);
    transition: all .2s ease;
}

.blog-service-card a:hover {
    color: #00B4A7;
    border-color: #00B4A7;
}




@media (max-width: 768px) {

    .services-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
    }

}

.bp-toc {
  background: #FFFFFF;
  border: 1px solid #E6EEF2;
  border-left: 5px solid #00B4A7;
  border-radius: 12px;
  padding: 24px 30px;
  margin: 30px 0;
  box-shadow: 0 2px 12px rgba(0,0,0,.04);
  transition: all .25s ease;
}

.bp-toc-title {
  margin: 0 0 14px !important;
  color: #084059;
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -.02em;
  text-transform: uppercase;
}

.bp-toc ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.bp-toc li {
  margin: 0 0 8px;
  padding: 0;
  color: #4B6875;
  font-size: 1.08rem;
  line-height: 1.5;
}

.bp-toc li:last-child {
  margin-bottom: 0;
}

.bp-toc a {
    color: #084059;
    text-decoration: none;
    border-bottom: 1px solid rgba(0,180,167,.35);
    transition: all .2s ease;
}

.bp-toc a:hover {
    color: #00B4A7;
    border-color: #00B4A7;
}

@media (max-width: 768px) {
  .bp-toc {
    padding: 20px 20px;
    border-radius: 10px;
  }
  .bp-toc-title {
    font-size: 1.1rem;
    margin-bottom: 12px !important;
  }
  .bp-toc li {
    font-size: 1rem;
    line-height: 1.75;
  }
}
.link-highlight a {
    color: #084059;
    text-decoration: none;
    border-bottom: 1px solid rgba(0,180,167,.35);
    transition: all .2s ease;
    font-weight:500;
}

.link-highlight a:hover {
        color: #00B4A7;
    border-color: #00B4A7;
}


.faq-answer {
    font-size:1.15rem;
}
.elementor-widget-n-accordion .e-n-accordion-item-title-text {
    font-size: 1.3rem;
}

.why-choose-us a {
    text-decoration: underline;
}

.scrolling-banner-top {
    position: relative;
    overflow: hidden;
    width: 100%;
    top: 0;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 12%, #000 88%, transparent 100%);
    mask-image: linear-gradient(to right, transparent 0%, #000 12%, #000 88%, transparent 100%);
}
.scrolling-track-top {
    display: block;
    width: max-content;
    will-change: transform;
    animation: marq-leftward 30s linear infinite;
}

.scrolling-inner-top {
    display: flex;
    align-items: center;
}

.scrolling-inner-top .elementor-heading-title {
    padding: 0 10px;
    white-space: nowrap;
    animation: none !important; /* Override Elementor */
    background: transparent !important;
}

.scrolling-inner-top {
    display: flex;
    align-items: center;
}

@keyframes marq-leftward {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

.trust-banner .elementor-heading-title {
    font-size:.93rem;
    padding: 0 2rem 0 2rem;
    font-weight:bold;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-family: "Manrope",Sans-Serif;
    color: #7A7A7A!important;
}

.trust-banner img {
    padding: 0 2rem 0 2rem;
    max-height: 60px;
    height:100px;
}

@media (max-width: 1024px) {
.trust-banner .elementor-heading-title {
    font-size:.9rem;
    padding: 0 1.3rem 0 1.3rem;
    letter-spacing: 2px;
}
}
@media (max-width: 1024px) {
.trust-banner img {
    padding: 0 1.3rem 0 1.3rem;
    max-height: 55px;
}
}

@media (max-width: 767px) {
.trust-banner .elementor-heading-title {
    font-size:.8rem;
    padding: 0 1rem 0 1rem;
    letter-spacing: 2px;
}
}
@media (max-width: 767px) {
.trust-banner img {
    padding: 0 1rem 0 1rem;
    max-height: 50px;
}
}

