@import url('../../../../plugins/wpo-google-fonts-manager/fonts/fonts.css');

:root{
  --wpo-bg:#ffffff;
  --wpo-surface:#f6f7f7;
  --wpo-text:#1d2327;
  --wpo-muted:#50575e;
  --wpo-border:rgba(0,0,0,.08);
  --wpo-accent:#2271b1;
  --wpo-accent-contrast:#ffffff;
  --wpo-radius:14px;
  --wpo-shadow:0 12px 30px rgba(0,0,0,.10);
  --wpo-font-base:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  /* Use Montserrat if available (from plugin), otherwise fallback to base */
  /* --wpo-font-headings:var(--wpo-font-montserrat, var(--wpo-font-base)); */
  --wpo-gutter:50px;
  --wpo-gutter-mobile:20px;
  --wpo-gutter-mobile-vw:5;
  --wpo-inline-gutter:clamp(var(--wpo-gutter-mobile), calc(var(--wpo-gutter-mobile-vw) * 1vw), min(var(--wpo-gutter), 5vw));
  --wpo-footer-bg:var(--wpo-bg);
  --wpo-footer-text:var(--wpo-text);
  --wpo-footer-link:var(--wpo-accent);
}

*{box-sizing:border-box}
body{margin:0;background:var(--wpo-bg);color:var(--wpo-text);font-family:var(--wpo-font-base);line-height:1.55}
a{color:var(--wpo-accent);text-decoration:none}
a:hover{text-decoration:none}
img{max-width:100%;height:auto}

/* Remove underline from content links */
.wpo-content a,
.wpb_wrapper a,
.wpb_text_column a,
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
  text-decoration: none;
}
.wpo-content a:hover,
.wpb_wrapper a:hover,
.wpb_text_column a:hover,
h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover {
  text-decoration: none;
}

:where(a,button,summary):focus-visible{outline:3px solid rgba(34,113,177,.35);outline-offset:3px;border-radius:10px}

.wpo-container{max-width:1140px;margin:0 auto;padding:0 var(--wpo-inline-gutter)}
.wpo-main{min-height:60vh}
.wpo-stack>*+*{margin-top:18px}

.wpo-shell{container-type:inline-size;container-name:page}

/* Mobile container-query overrides are generated via wp_add_inline_style so the cutoff is configurable in admin. */

.wpo-header{position:sticky;top:0;z-index:20;background:color-mix(in srgb, var(--wpo-bg) 92%, transparent);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--wpo-border);padding:0 var(--wpo-inline-gutter)}
.wpo-header__inner{display:flex;align-items:center;padding:14px 0;gap:16px;flex-wrap:wrap;container-type:inline-size;container-name:header}

/* Header: remove all vertical gaps from WPBakery rows/columns/wrappers inside header */
.wpo-header .vc_row,
.wpo-header .vc_row-fluid,
.wpo-header .wpb_row,
.wpo-header .wpb_column,
.wpo-header .vc_column-inner,
.wpo-header .vc_column_container,
.wpo-header .wpb_content_element,
.wpo-header .wpb_wrapper {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* Header: kill auto-generated <p> wrapper margins (wpautop) */
.wpo-header > p,
.wpo-header p:has(> .vc_row),
.wpo-header p:has(> .wpb_row) {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0;
}

/* Collapse header when empty */
.wpo-header:empty,
.wpo-header:has(> :only-child:empty) {
  padding: 0 !important;
  border-bottom: none !important;
}
.wpo-site-title{font-weight:700;text-decoration:none;color:var(--wpo-text)}
.wpo-menu{list-style:none;margin:0;padding:0;display:flex;gap:16px;row-gap:10px;align-items:center;flex-wrap:wrap}
.wpo-menu a{position:relative;display:inline-block;text-decoration:none;color:var(--wpo-text);font-weight:600;padding-bottom:2px}
.wpo-menu a::before{content:"";position:absolute;left:0;bottom:-2px;width:0;height:1px;background:currentColor;transition:width .24s ease;opacity:.9}
.wpo-menu a:hover,.wpo-menu a:focus-visible{opacity:.92;text-decoration:none}
.wpo-menu a:hover::before{width:100%}

/* Sub-menus (WordPress) */
.wpo-menu li{position:relative}
.wpo-menu .sub-menu{list-style:none;margin:0;padding:10px 14px;display:none;position:absolute;left:0;top:calc(100% + 6px);z-index:40;background:color-mix(in srgb, var(--wpo-bg) 84%, #0d2f4a 16%);border:1px solid color-mix(in srgb, var(--wpo-text) 16%, transparent);border-radius:0;box-shadow:0 10px 22px rgba(0,0,0,.16);min-width:210px}
.wpo-menu .sub-menu li+li{margin-top:2px}
.wpo-menu .sub-menu a{display:inline-block;padding:7px 0;font-weight:600;background:transparent;border-radius:0;line-height:1.35}
.wpo-menu .sub-menu a:hover{background:transparent}
.wpo-menu li:hover>.sub-menu,.wpo-menu li:focus-within>.sub-menu{display:block}
.wpo-menu li.menu-item-has-children>a{display:inline-flex;align-items:center;gap:8px}
.wpo-menu li.menu-item-has-children>a::after{content:"▾";font-size:11px;line-height:1;color:var(--wpo-muted);transition:transform .2s ease,opacity .2s ease;opacity:.8}
.wpo-menu li:hover.menu-item-has-children>a::after,.wpo-menu li:focus-within.menu-item-has-children>a::after{transform:translateY(1px);opacity:1}

.wpo-nav-details{position:relative;margin-left:auto}
.wpo-nav-summary{display:none;list-style:none;cursor:pointer;user-select:none;border:1px solid var(--wpo-border);background:var(--wpo-bg);border-radius:10px;padding:10px 12px;font-weight:800;color:var(--wpo-text)}
.wpo-nav-summary::-webkit-details-marker{display:none}

/* Desktop/default: always show full navbar, no hamburger */
.wpo-nav-details:not([open]) > .wpo-nav{display:block;position:static;padding:0;border:0;box-shadow:none;background:transparent;min-width:auto}

/* Hamburger icon */
.wpo-nav-summary__label{display:inline-flex;align-items:center;gap:10px}
.wpo-nav-summary__label::before{content:"";width:18px;height:2px;background:var(--wpo-text);border-radius:999px;box-shadow:0 -6px 0 var(--wpo-text), 0 6px 0 var(--wpo-text)}

/* Header mobile dropdown rules are generated via wp_add_inline_style so the cutoff is configurable in admin. */

.wpo-hero{position:relative;overflow:hidden;background:linear-gradient(135deg, var(--wpo-text), #0b1d2a)}
.wpo-hero__slides{position:relative}
.wpo-hero__slide{display:none;color:#fff;padding:clamp(48px, 7vw, 78px) 0}
.wpo-hero__slide.is-active{display:block}
.wpo-hero__title{margin:0 0 10px;font-size:clamp(28px, 3.6vw + 10px, 46px);letter-spacing:-.02em;line-height:1.1}
.wpo-hero__lead{margin:0 0 22px;font-size:clamp(16px, 0.8vw + 14px, 18px);color:rgba(255,255,255,.85);max-width:56ch}
.wpo-hero__actions{display:flex;gap:12px;flex-wrap:wrap}

.wpo-hero__controls{position:absolute;left:0;right:0;bottom:16px;display:flex;justify-content:center;gap:10px}
.wpo-dot{width:10px;height:10px;border-radius:999px;border:0;background:rgba(255,255,255,.35);cursor:pointer}
.wpo-dot.is-active{background:rgba(255,255,255,.9)}

.wpo-btn{display:inline-block;text-decoration:none;border-radius:999px;padding:11px 16px;font-weight:800;border:1px solid transparent}
.wpo-btn--primary{background:var(--wpo-accent);color:var(--wpo-accent-contrast)}
.wpo-btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}
.wpo-btn--block{display:block;text-align:center}

.wpo-jumbotron{background:var(--wpo-surface);border-bottom:1px solid var(--wpo-border)}
.wpo-jumbotron__inner{padding:44px 0;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.wpo-jumbotron__title{margin:0;font-size:28px}
.wpo-jumbotron__text{margin:0;color:var(--wpo-muted);max-width:70ch}
.wpo-jumbotron__actions{display:flex;gap:12px;flex-wrap:wrap}

.wpo-section{padding:54px 0}
.wpo-section--alt{background:var(--wpo-surface);border-top:1px solid var(--wpo-border);border-bottom:1px solid var(--wpo-border)}
.wpo-section__title{margin:0 0 22px;font-size:28px;letter-spacing:-.01em}
.wpo-lead{font-size:18px;margin:0 0 8px}
.wpo-muted{color:var(--wpo-muted)}

.wpo-grid{display:grid;gap:18px}
.wpo-grid--2{grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr))}
.wpo-grid--3{grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr))}

.wpo-card{background:var(--wpo-bg);border:1px solid var(--wpo-border);border-radius:var(--wpo-radius);padding:18px;box-shadow:0 1px 0 rgba(0,0,0,.03)}
.wpo-card--soft{background:linear-gradient(180deg,#ffffff, var(--wpo-surface))}
.wpo-card__title{margin:0 0 8px;font-size:18px}
.wpo-card__text{margin:0;color:var(--wpo-muted)}

.wpo-price{background:var(--wpo-bg);border:1px solid var(--wpo-border);border-radius:var(--wpo-radius);padding:20px;box-shadow:var(--wpo-shadow)}
.wpo-price--featured{border-color:rgba(34,113,177,.45)}
.wpo-price__name{margin:0 0 4px;font-size:18px}
.wpo-price__tag{margin:0 0 10px;color:var(--wpo-muted)}
.wpo-price__amount{font-size:34px;font-weight:900;margin:10px 0 14px}
.wpo-price__period{font-size:14px;font-weight:700;color:var(--wpo-muted)}

.wpo-list{margin:0 0 16px;padding-left:18px;color:var(--wpo-muted)}
.wpo-list li{margin:6px 0}

.wpo-content{padding:30px 0}
.wpo-content:not(.wpo-container){padding-left:var(--wpo-inline-gutter);padding-right:var(--wpo-inline-gutter)}

/* Front page: remove top/bottom padding so slider sits flush against header and footer */
.home .wpo-content,
.front-page .wpo-content { padding-top: 0 !important; padding-bottom: 0 !important; }
.wpo-page-title{margin:0 0 16px;font-size:clamp(24px, 2vw + 16px, 32px);letter-spacing:-.01em}
.wpo-meta{margin-bottom:14px}

.wpo-footer{background:var(--wpo-footer-bg);color:var(--wpo-footer-text);margin-top:40px;border-top:0}
.wpo-footer__content{width:100%;max-width:none;margin:0;padding-left:var(--wpo-inline-gutter);padding-right:var(--wpo-inline-gutter)}
.wpo-footer a{color:var(--wpo-footer-link)}
.wpo-footer--stripe{padding:14px 0}
.wpo-footer__stripe{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.wpo-footer .vc_row,
.wpo-footer .vc_row-fluid,
.wpo-footer .wpb_row,
.wpo-footer [class*="vc_custom_"]{background-color:var(--wpo-footer-bg)!important}
.wpo-footer .wpb_content_element:last-child{margin-bottom:0}
.wpo-footer .vc_custom_heading{margin-top:0;margin-bottom:12px}
.wpo-footer .vc_column_text p:last-child{margin-bottom:0}

.wpo-social{display:flex;gap:10px;align-items:center}
.wpo-social__link{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:999px;border:1px solid rgba(255,255,255,.22);text-decoration:none}
.wpo-social__link:hover{border-color:rgba(255,255,255,.45)}
.wpo-social__icon{font-weight:900;font-size:12px;line-height:1;color:#fff}

.wpo-footer__copy{font-weight:500;font-size:13px;color:color-mix(in srgb, var(--wpo-footer-text) 82%, transparent)}

/* ============================================
   FLUID TYPOGRAPHY - No media queries needed
   Uses CSS clamp() to scale fonts smoothly
   between min and max viewport sizes
   ============================================ */

/* Fluid text sizing utility classes */
.fluid-text { font-size: clamp(1rem, 2.5vw, 1.25rem); }
.fluid-text-lg { font-size: clamp(1.125rem, 3vw, 1.5rem); }
.fluid-text-xl { font-size: clamp(1.25rem, 4vw, 2rem); }

/* Fluid headings - automatically scale with container using modern CSS */
h1, .h1, .wpo-heading h1,
.wpb_wrapper h1,
.wpb_text_column h1,
.wpo-cms-heading h1 {
  font-size: min(clamp(1.5rem, 5cqi, 2.25rem), 8vh);
  line-height: 1.1;
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
  text-wrap: balance;
  margin-bottom: 0.25em;
  max-width: 100%;
}

.wpo-cms-heading h1 {
  font-size: min(clamp(1.2rem, 3.6cqi, 1.85rem), 6vh);
}

.wpo-heading-keep-words h1 {
  font-size: min(clamp(0.9rem, 2.4cqi, 1.35rem), 5vh);
}

.wpo-cms-heading h1,
.wpb_wrapper h1,
.wpb_text_column h1 {
  overflow-wrap: anywhere;
  word-break: break-word;
  hyphens: auto;
}

.wpo-no-break {
  white-space: nowrap;
  font-size: 0.92em;
}


h2, .h2, .wpo-heading h2,
.wpb_wrapper h2,
.wpb_text_column h2 {
  font-size: min(clamp(1.25rem, 4cqi, 1.85rem), 6vh);
  line-height: 1.15;
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
  text-wrap: balance;
  max-width: 100%;
}

@container page (max-width: 768px) {
  h1, .h1, .wpo-heading h1,
  .wpb_wrapper h1,
  .wpb_text_column h1,
  .wpo-cms-heading h1,
  h1[style*="font-size"],
  span[style*="font-size"] {
    font-size: min(clamp(1.2rem, 4.5cqi, 1.9rem), 7vh) !important;
  }

  h2, .h2, .wpo-heading h2,
  .wpb_wrapper h2,
  .wpb_text_column h2,
  h2[style*="font-size"] {
    font-size: min(clamp(1.05rem, 3.8cqi, 1.5rem), 6vh) !important;
  }
}

@container page (max-width: 1024px) {
  .wpo-heading-keep-words h1 {
    font-size: min(clamp(0.78rem, 1.7cqi, 1rem), 3.8vh);
  }
}

@container page (max-width: 768px) {
  .wpo-heading-keep-words h1 {
    font-size: min(clamp(0.74rem, 2.2cqi, 1rem), 3.6vh);
  }
}

/* Reduce gap between heading and following image/divider */
h1 + p img,
h1 + img,
.wpo-cms-heading + *,
.wpb_text_column h1,
.wpb_content_element h1 {
  margin-bottom: 0;
}

/* Remove top margin from paragraphs with images following headings */
.wpb_wrapper h1 + p,
.wpb_wrapper h1 + p:has(img),
.wpb_text_column + .wpb_single_image,
.wpb_content_element + .wpb_single_image,
.wpb_text_column + p,
.wpb_content_element + p {
  margin-top: 0;
}

h3, .h3, .wpo-heading h3,
.wpb_wrapper h3,
.wpb_text_column h3 {
  font-size: clamp(1rem, 3vw + 0.25rem, 2rem);
  line-height: 1.2;
  overflow-wrap: break-word;
  hyphens: auto;
  text-wrap: balance;
}

h4, .h4, .wpo-heading h4,
.wpb_wrapper h4,
.wpb_text_column h4 {
  font-size: clamp(0.9rem, 2.5vw + 0.125rem, 1.5rem);
  line-height: 1.25;
  overflow-wrap: break-word;
}

h5, .h5, h6, .h6,
.wpb_wrapper h5,
.wpb_wrapper h6 {
  font-size: clamp(0.85rem, 2vw + 0.125rem, 1.25rem);
  line-height: 1.3;
  overflow-wrap: break-word;
}

/* Override WPBakery inline font-size for fluid scaling on mobile */
/* Removed aggressive font-size override */

/* Column padding defaults to 0 — set per element via WPBakery Design Options */
.vc_column-inner,
.wpb_column,
.vc_column_container {
  padding: 0 !important;
}

@media (max-width: 767px) {
  /* The PractiPix contact page carries desktop WPBakery spacing into the stacked
     mobile layout. Reset the row and restore balanced column gutters so the page
     no longer overflows horizontally and the form keeps equal side margins. */
  body.page-id-26 .wpb-content-wrapper > .vc_row {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  body.page-id-26 .wpb-content-wrapper > .vc_row > .wpb_column {
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box;
  }

  body.page-id-26 .wpb-content-wrapper > .vc_row > .wpb_column > .vc_column-inner {
    margin-left: 0 !important;
    margin-right: 0 !important;
    border-right-width: 0 !important;
  }
}

/* WPO heading elements */
.wpo-heading,
.wpo-text,
.wpb_text_column,
.wpb_wrapper {
  max-width: 100%;
  word-break: normal;
  hyphens: none;
}

/* Ensure text doesn't overflow container */
.wpo-content,
.wpo-element {
  max-width: 100%;
  overflow-wrap: break-word;
}

/* Fluid container text - scales with container width */
@supports (font-size: 1cqi) {
  .wpo-shell .wpo-heading h1,
  .wpo-shell .wpo-heading h2 {
