/**
 * Fixit design system — spacing scale, breakpoint alignment and the measured
 * consistency fixes from the 2026-08-22 full-site audit (54 URLs x 3 viewports).
 *
 * WHY a separate file instead of appending to fixit.css: fixit.css is served from
 * Cloudflare with max-age=31536000, so a rule appended there can sit behind a stale
 * edge copy. A new path is a new cache entry and takes effect on the first request.
 *
 * WHY tokens: fixit.css carries 73 distinct padding/margin values across 55 distinct
 * breakpoints. Every new component invented its own. These custom properties give the
 * next component a value to reach for instead of a fresh one to invent.
 *
 * Each rule below cites the measurement that justifies it. Nothing here is speculative.
 *
 * ⛔EVERY var() BELOW CARRIES A LITERAL FALLBACK, AND MUST KEEP IT. This is not
 * defensive style, it is a measured requirement. LiteSpeed serves production through
 * UCSS (tree-shaken CSS): after the first deploy of this file, www.fixit.gr rendered
 * every one of these fixes as if it had never shipped. The selectors had survived the
 * shake — `minmax(0,1fr)` and `header-search-btn` were both present in the UCSS bundle
 * — but the `:root` block had not: the generated file contained ZERO `--fx-*`
 * declarations, because nothing in the shaken output "uses" a custom property the way
 * the shaker recognises. Every `var(--fx-…)` therefore resolved to nothing, each
 * declaration was invalid, and each rule was silently dropped at parse time.
 *
 * The failure mode is the dangerous kind: the file is deployed and 200s, the rule is
 * visibly in the bundle, and a purge changes the `?ver=` hash so it looks refreshed.
 * Only measuring the live computed style shows the fix is inert. With the fallback the
 * rules hold whether or not the token block survives.
 */

:root {
    /* Spacing scale — 4px base. The audit's real usage clusters on these. */
    --fx-space-1: 4px;
    --fx-space-2: 8px;
    --fx-space-3: 12px;
    --fx-space-4: 16px;
    --fx-space-5: 24px;
    --fx-space-6: 32px;
    --fx-space-7: 40px;
    --fx-space-8: 48px;
    --fx-space-9: 64px;
    --fx-space-10: 80px;
    --fx-space-11: 100px;

    /* Section rhythm — fluid, so one value covers mobile through desktop and no
       component needs its own breakpoint to shrink its padding. */
    --fx-section-y: clamp(40px, 7vw, 100px);
    --fx-section-y-lg: clamp(56px, 9vw, 140px);
    --fx-hero-y: clamp(100px, 14vw, 200px);

    /* Horizontal gutter — audit found the only measured container at 1206px wide
       with the page bleeding past the viewport on 3 pages at 1440px. */
    --fx-gutter: clamp(16px, 3vw, 40px);
    --fx-container: 1206px;
    --fx-container-wide: 1800px;

    /* Control geometry — audit found 7 distinct button heights (45,46,47,49,50,51,58)
       and 7 distinct radii (0, 3.6px, 4.2px, 4.8px, 10px, 999px, 50%). */
    --fx-control-h: 48px;
    --fx-tap-min: 44px;
    --fx-radius: 10px;
    --fx-radius-pill: 999px;

    /* Type scale — audit found 7 distinct desktop H1 sizes (92,74,72,64,60,42,40)
       and 6 on mobile, with one page not scaling down at all. */
    --fx-h1: clamp(30px, 5vw, 64px);
    --fx-h2: clamp(24px, 3.4vw, 42px);
    --fx-h3: clamp(20px, 2.4vw, 30px);
}

/* ---------------------------------------------------------------------------
 * 1. Horizontal overflow at 1440px — home (/, /home) and /it-agency
 *    Measured: scrollWidth 1473 against a 1440 viewport, +33px.
 *    Cause: `grid-template-columns: 1fr 876px` on .section-services. A `1fr` track
 *    has min-width:auto, so the left column's min-content (its .clever-solutions
 *    child carries padding-left:220px) pushes the track past the 564px left over
 *    from 876px, and the row overflows. There is a 1230px media query and an 1800px
 *    max-width, so the gap between them — every laptop at 1280-1799 — is unhandled.
 * ------------------------------------------------------------------------- */
body.page-id-152 .wp-block-group.section-services > .wp-block-group__inner-container {
    grid-template-columns: minmax(0, 1fr) minmax(0, 876px);
    padding-inline: var(--fx-gutter, clamp(16px, 3vw, 40px));
}

/* ---------------------------------------------------------------------------
 * 2. H1 that never scales down
 *    Measured: /oroi-kai-proypotheseis renders its H1 at 64px on a 375px viewport —
 *    identical to desktop. It is a bare <h1> with no class and no inline font-size,
 *    so no rule in fixit.css matches it; the 768px media queries all target
 *    component-scoped selectors. 64px on 375px is ~17 characters per line.
 *    Scoped to bare headings so every styled or inline-sized H1 is left alone.
 * ------------------------------------------------------------------------- */
.l-section h1:not([class]):not([style*="font-size"]) {
    font-size: var(--fx-h1, clamp(30px, 5vw, 64px));
    line-height: 1.15;
}

/* ---------------------------------------------------------------------------
 * 3. Talos landing pages do not scale their section spacing at all
 *    Measured: /talos-magento, /talos-woocommerce, /talos-wordpress, /talos-mythos,
 *    /talos-shopify all render the first section at padding-top:110px /
 *    padding-bottom:80px on BOTH 1440px and 375px — the mobile value is the desktop
 *    value. Meanwhile their two siblings, /talos-ai-chatbot and /talos-eu-ai, use
 *    200px/160px. Same page family, two spacing systems, neither responsive.
 *
 *    ROOT CAUSE, and why this one needs !important: the spacing is in no stylesheet.
 *    It is hardcoded in each page's own post_content as an inline <style> block —
 *      section.erp-connection-section{min-height:auto!important;padding:110px 0 80px!important}
 *    — on posts 18995, 18996, 18997, 18998 and 21284. That is why these pages never
 *    respond to a media query and why their siblings disagree: the value lives in the
 *    content, where no breakpoint can reach it. Overriding it needs a specificity
 *    above `section.erp-connection-section` (0,1,1) plus its own !important;
 *    `body section...` gives (0,1,2) and wins.
 *
 *    The real fix is to strip those five inline blocks from post_content, but content
 *    edits live in the database and do not travel to production with this repo. The
 *    SQL is in the audit report; this rule is what ships.
 * ------------------------------------------------------------------------- */
body section.erp-connection-section {
    padding-top: var(--fx-section-y-lg, clamp(56px, 9vw, 140px)) !important;
    padding-bottom: var(--fx-section-y, clamp(40px, 7vw, 100px)) !important;
}

/* ---------------------------------------------------------------------------
 * 4. Tap targets below the WCAG 2.5.8 (AA) 44x44 minimum
 *    Measured on a 375px viewport, present on all 54 audited pages:
 *      button.header-search-btn  41x17
 *      a.w-image-h              135x30   (header/footer logo links)
 *      a.w-text-h               222x17   (footer address line, 52 pages)
 *    Nothing is repositioned; the box grows around the existing glyph via flex
 *    centring, so the header layout is unchanged.
 *
 *    Why !important here: the winning rule for this button is
 *      .l-subheader-cell.at_center .w-html.ush_html_2 form.header-search-form button.header-search-btn
 *    at specificity (0,5,2), generated by the page builder with a widget-instance
 *    class (ush_html_2) in the middle. Matching that chain would hardcode a widget
 *    id that changes when the header is re-saved; !important on a stable selector
 *    is the more durable of the two.
 * ------------------------------------------------------------------------- */
form.header-search-form button.header-search-btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    align-self: center;
    min-width: var(--fx-tap-min, 44px) !important;
    min-height: var(--fx-tap-min, 44px) !important;
}

@media (max-width: 767px) {
    .l-footer a.w-text-h,
    .l-footer a.w-image-h {
        display: inline-flex;
        align-items: center;
        min-height: var(--fx-tap-min, 44px);
    }
}

/* ---------------------------------------------------------------------------
 * 5. Button geometry
 *    Measured: submit buttons render at 45px, 47px and 50px tall across the 16
 *    contact forms, and .wc-backward / .w-btn at 51px, against a 48px norm
 *    elsewhere. Radius likewise splits 4.8 / 4.2 / 3.6 / 0 on controls that read
 *    as the same button. One height, one radius for the form controls.
 * ------------------------------------------------------------------------- */
.wpcf7-form-control.wpcf7-submit,
.woocommerce a.button.wc-backward,
.woocommerce button.button.wc-backward {
    min-height: var(--fx-control-h, 48px);
    border-radius: var(--fx-radius, 10px);
}

/* ---------------------------------------------------------------------------
 * NOT fixed here — /case-studies weighs 4.36 MB against the 2 MB budget, and
 * 3.73 MB of that is themes/Fixit-child/videos/cs-hero.mp4. That is a template
 * change (preload="none" on the <video>, or a poster-then-load), not a CSS one;
 * no stylesheet property stops a video from being fetched. Same for the 60 images
 * rendering without width/height and the 108 below-fold images without
 * loading="lazy" — both live in markup. Left for a separate, measured pass.
 * ------------------------------------------------------------------------- */

/* ---------------------------------------------------------------------------
 * 9. The site had no font of its own — it was borrowing Bootstrap's.
 *
 *    Measured 2026-08-25. Theme Options declares exactly one font token,
 *    `:root { --font-body: Georgia, serif }`, and `--font-h1` … `--font-h6` are
 *    referenced by the theme but never declared, so every heading resolved to an
 *    invalid value and inherited the body font. The site should therefore have
 *    rendered as a serif from top to bottom, and it did not: LiteSpeed's inlined
 *    Critical CSS still carried Bootstrap's `:root` variables and its
 *    `body { font-family: var(--bs-body-font-family) }` reboot, generated back when
 *    the CDN sheet of PR #24 was still enqueued. A stale cache was supplying the
 *    typeface for the whole site.
 *
 *    Purging that CCSS removed the Bootstrap ghost and the serif surfaced. Two
 *    faults had been cancelling each other out, which is why neither was visible.
 *
 *    This block makes the sans explicit and ours, at `html:root` so it outranks the
 *    Theme Options `:root` block without `!important`. It reproduces the stack the
 *    site has actually been showing, so nothing about the rendering changes — it is
 *    a restoration, not a redesign. ⏳The brand typeface is a separate decision; when
 *    one is chosen, this is the single place it goes.
 * ------------------------------------------------------------------------- */
html:root {
    --font-body: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif;
    --font-h1: var(--font-body);
    --font-h2: var(--font-body);
    --font-h3: var(--font-body);
    --font-h4: var(--font-body);
    --font-h5: var(--font-body);
    --font-h6: var(--font-body);
}

/* ---------------------------------------------------------------------------
 * 10. «Κλείστε Ραντεβού»: a second blue painted behind the letters only.
 *
 *    Measured 2026-08-25 on the live header button: twelve background declarations
 *    match this one element, in four different colours — #6A7DFF (the brand primary,
 *    declared four times, including by Theme Options), #1b1f3b, #252547 and #404ca1.
 *
 *    The visible defect is the last one. `wp-custom-css` paints #404ca1 on
 *    `.w-btn-label`, and that span computes to `display: inline`, so the fill hugs
 *    the glyphs instead of the control: a 124x17 bar floating inside a 200x51 button.
 *    A label is a label; the fill belongs to the button.
 *
 *    ⚠Only the stray label fill is corrected here. Which colour the button itself
 *    should be is a brand decision, not a defect: `fixit.css:667` forces #1b1f3b with
 *    `!important` over the designed #6A7DFF at `fixit.css:6428`, and repaints that
 *    rule's `::before` sweep #1b1f3b as well — so the hover animation now slides a
 *    dark panel across a dark button and cannot be seen. Left as measured, not
 *    silently changed.
 * ------------------------------------------------------------------------- */
body .w-popup-trigger.type_btn.w-btn.fx-btn-style_1 .w-btn-label {
    background: transparent;
}

/* ---------------------------------------------------------------------------
 * 11. Manrope — the brand typeface, self-hosted.
 *
 *    Chosen by Giorgos on 2026-08-25, replacing the system stack that section 9
 *    declared as a holding value. Section 9's block sets the tokens; this block
 *    provides the faces and points those tokens at them.
 *
 *    WHY self-hosted and not a font CDN: an external stylesheet is the one sheet
 *    LiteSpeed cannot fold into the combined bundle, so it lands after it and
 *    outranks the theme at equal specificity. That is exactly how the Bootstrap CDN
 *    took over this site's typography (PR #24) and how its ghost survived in the
 *    Critical CSS until PR #28. A font served from our own origin cannot do that,
 *    and it costs one fewer DNS + TLS handshake on first paint.
 *
 *    Three subsets, 49 KB total: greek (9.4 KB) because the site is Greek-first,
 *    latin (24.8 KB), latin-ext (15.1 KB) for the DE pages. Cyrillic and Vietnamese
 *    are not downloaded — nothing on this site needs them. One variable file per
 *    subset covers weights 400-800, so the whole weight range costs one request.
 *
 *    `font-display: swap` on purpose: text is readable in the fallback from the
 *    first paint, which matters more here than avoiding the swap.
 *
 *    The `src` paths are relative, and that is safe here because LiteSpeed rewrites
 *    them when it combines. Verified on this site rather than assumed: fixit.css:2591
 *    carries `url(images/cs-hero-bg.jpg?v=3)`, and the served bundle at
 *    /wp-content/litespeed/css/ carries
 *    `url(/wp-content/themes/Fixit-child/images/cs-hero-bg.jpg?v=3)` — rewritten to
 *    the theme directory, not left to resolve against the bundle's own location
 *    (which 404s: checked, 200 against the theme path, 404 against the litespeed
 *    path). The same holds for the UCSS output. Relative therefore survives all three
 *    delivery modes and keeps the theme directory renameable.
 * ------------------------------------------------------------------------- */
@font-face {
    font-family: "Manrope";
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url("fonts/manrope-greek.woff2") format("woff2");
    unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}

@font-face {
    font-family: "Manrope";
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url("fonts/manrope-latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Manrope";
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url("fonts/manrope-latin-ext.woff2") format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

html:root {
    --font-body: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}


/* ==========================================================================
   Migrated out of the Customizer's "Additional CSS", 2026-08-25 (FIXITGR-034)
   ==========================================================================

   These rules lived in a `custom_css` post in the database: they overrode the
   theme from an inline <style> in every page, never passed a code review, never
   branched and never rolled back, and no grep of this repository could find
   them. They are reproduced here byte for byte, at the end of the file so the
   cascade they relied on is unchanged: they still win over fixit.css and over
   everything earlier in this file, and they still lose to the four inline
   blocks the theme's builders emit after them.

   Two of them depend on classes that only exist after JavaScript runs
   (`.w-tabs-item.active`, `.owl-nav`), which is why `.active*` and `.owl-*`
   join the UCSS whitelist in the same commit -- as a file this CSS is
   tree-shaken for the first time, and an inline block never was. The whitelist
   is `fixit_ucss_keep_runtime_selectors()` in this theme's functions.php.

   ⛔The Customizer box must be emptied once this is live, or the same rules
   are served twice.
   ========================================================================== */

.single-post-content ol, .single-post-content li, .single-post-content ol span, .single-post-content ul span {
    color: #000000;
}


.post-type-archive-product .g-breadcrumbs {
    color: #000000 !important;
}

.woocommerce-shop .w-text-value {
    color: #000000;
}

.woocommerce-product-gallery ol {
    margin: 2px -2px 0;
	  padding: 15px;
	  
}

.single-post-content p
{
	color: #000000;
}
.single-product-data .woocommerce-message a
{
	background-color: transparent;
}
/*espa fixes wave*/
.screen-reader-text{
    background-color: #000;
    color: #fff;
}
.w-popup-trigger.type_btn.w-btn.fx-btn-style_1{
    background-color: #404ca1;
}
.w-popup-trigger.type_btn.w-btn.fx-btn-style_1 .w-btn-label{
    background-color: #404ca1;
}
.section-magento span{
    background-color: #11111e;
    color: #fff;
}
.section-magento .w-btn.w-btn.fx-btn-style_1.buttons .w-btn-label{
    background-color: #11111e;
    color: #fff;
}
.blog-section .w-btn.fx-btn-style_1.buttons{
    background-color: #404ca1;
}
.section-footer .footer-menu-1 span .w-text-value{
    color: #fff;
}
.section-footer .footer-menu-2 span .w-text-value{
    color: #fff;
}
.post-type-archive-product .add_to_cart_button span.w-btn-label{
    background-color: #2a2a45;
    color: #fff;
}
.woocommerce-shop .l-footer .w-text-value{
    color: #fff;
    background-color: #000;
}
.header-right-icons .woo-header-icons .header-icon .count-badge{
    color: #000;
    background-color: #fff;
}
.pdp-breadcrumb-row .g-breadcrumbs-item a{
    background-color: #fff;
    color: #404ca1;
}
button[type="submit"]:not(.w-btn), input[type="submit"]:not(.w-btn), .woocommerce .button.alt, .woocommerce .button.checkout, .woocommerce .button.add_to_cart_button, .fx-nav-style_1>*, .navstyle_1>.owl-nav div, .fx-btn-style_1{
    background: #404ca1 !important;
}
.pdp-description-section .w-tabs.style_default > .w-tabs-list .w-tabs-item.active{
    color: #404ca1;
    background-color: #fff;
}
.single-product-relative .woocommerce-Price-amount bdi{
    color: #404ca1;
    background-color: #fff;
}
.tabs-section .w-tabs.style_default > .w-tabs-list .w-tabs-item.active{
    background: #404ca1;
    color: #fff;
}
.tabs-section .w-tabs.style_default > .w-tabs-list .w-tabs-item.active span{
    background: #404ca1;
    color: #fff;
}
.projects-tab .w-tabs-sections .w-grid .w-grid-item-h h2.w-post-elm a{
    color: #fff;
    background-color: #000;
}
.woocommerce-account .woocommerce-LostPassword a{
	color: #404ca1;
	background-color: #fff;
}
.woocommerce-privacy-policy-text a{
	color: #404ca1;
	background-color: #fff;
}
.fxmc-body .fxmc-empty p{
    color: #000;
    background: #fff;
}
.page-id-14356 .l-main .g-cols>.wpb_column>.vc_column-inner{
    max-width: 900px;
    text-align: center;
    margin: 0 auto;
}
.about-us-contact-us-popup-btn .w-btn-label{
	background: #404ca1;
    color: #fff;
}
.ai-mini-title .w-text-h .w-text-value{
	background: #404ca1;
  color: #fff;
}
.idea-text{
	background: #404ca1;
  color: #fff;
}
/*espa fixes wave*/




/*  WAVE CSS    */
.marquee-container .marquee .marquee-content span
{
	color: white;
}







.header-search-form {
  background-color: #1c2126 !important; 
  border: 1px solid #2a5a55;
  border-radius: 50px !important; 
  padding: 5px 60px ;
  box-shadow: 0 0 20px rgba(42, 186, 171, 0.15) ; 
  transition: box-shadow 0.3s ease, border-color 0.3s ease ;
}


.header-search-form:focus-within {
  box-shadow: 0 0 25px rgba(42, 186, 171, 0.35) !important;
  border-color: #38dec8 !important;
}


.search-field {
  color: #ffffff ;
  font-weight: 300;
}


.search-field::placeholder {
  color: #a0aab2 ;
  opacity: 1 ; 
}


.header-search-btn {
  color: #a0aab2 ; 
  padding: 0 0 0 10px ;
  transition: color 0.3s ease;
}


.header-search-btn:hover,
.header-search-form:focus-within .header-search-btn {
  color: #ffffff ;
}


.search-field::-webkit-search-decoration,
.search-field::-webkit-search-cancel-button,
.search-field::-webkit-search-results-button,
.search-field::-webkit-search-results-decoration {
  display: none ;
}


@media (max-width: 768px) {
  

  .l-subheader-cell.at_center .w-html.ush_html_2 form.header-search-form {
    min-width: 100%; 
    max-width: 100%;
    padding: 6px 15px; 
  }

 
  .l-subheader-cell.at_center .w-html.ush_html_2 form.header-search-form input.search-field {
    font-size: 14px;
  }
  

  .l-subheader-cell.at_center .w-html.ush_html_2 form.header-search-form button.header-search-btn[type="submit"] {
    padding: 0 0 0 10px;
  }
	.button-down {
    position: relative;
    width: 100%;
    height: 120px;
    display: block;
    margin-top: 30px;
}
}
.l-subheader-cell.at_center .w-html.ush_html_2 form.header-search-form {
    position: relative;
}

.l-subheader-cell.at_center .w-html.ush_html_2 form.header-search-form{
    max-width: 420px;
    margin: 0 auto;
}
.l-subheader-cell.at_center>.w-html{
    width: 100%;
}
@media(min-width: 769px){ 
body .amazingsearch-autocomplete-container {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    margin: 0;
    width: 420px;
    max-width: 92vw;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
    max-height: calc(100vh - 130px);
    overflow-y: auto;
    overflow-x: hidden;
}
}
body .amazingsearch-autocomplete-container{
    transform: translateX(0);
    width: 100%;
    background-color: transparent;
    right: 0;
    max-width: 100%;
    border: none;
	left: 0;
}
body .amazingsearch-autocomplete-container>div{
    max-width: 420px;
    background-color: #fff;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
    border: 1px solid #fff;
    border-radius: 8px;
    margin: 0 auto;
}
.pdp-description-section code{
    background-color: #fff;
    color: #000;
}
.fixit-blog-products .fixit-product .product-btn a.btn{
    background-color: #fff;
    color: #000;
}
.fx-erp-cloudhead.fx-reveal.fx-in{
    color: #fff;
    display: block;
    background: none !important;
    background-color: #000 !important;
}
body.fx-erp-on .fx-erp-cloud .cloud{
    background: none !important;
    display: block;
    background-color: #000 !important;
    color: #fff;
}
body.fx-erp-on .fx-erp-cloud .fx-erp-cloudhide{
    background: none !important;
    display: block;
    background-color: #000 !important;
    color: #fff;
}
@media (max-width: 768px) {
    .amazingsearch-autocomplete-container {
        width: 94vw;
    }
	body .amazingsearch-autocomplete-container{
		top: 150px !important;
	}
	
	.fx_custom_04606053 p
	{
		font-size: 25px;
	}
	
}

@media (max-width: 768px) {
  div.erp-connection-hero {
    padding-left: 20px;
    padding-right: 20px;
  }

  .w-hwrapper.page-construction-offer {
    flex-direction: column;
    align-items: center;
  }

  .w-hwrapper.page-construction-offer > .w-iconbox {
    margin-right: 0;
  }
}
