
:root{--tymo-accent:#ff0a5b}

html,body{
    max-width:100%;
    overflow-x:clip
}

img{
    max-width:100%;
    height:auto
}

/* WooCommerce */
.tymo-product-price{
    margin:8px 0 6px;
    font-size:clamp(1.65rem,2.2vw,2.25rem);
    font-weight:900;
    letter-spacing:-.03em;
    color:#111
}
.tymo-product-price .amount{font-weight:900}

.tymo-product-reassurance{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:7px;
    margin:0 0 18px;
    color:#254f2b;
    font-size:14px
}
.tymo-stock-dot{
    width:9px;
    height:9px;
    border-radius:99px;
    background:#20a447;
    display:inline-block
}
.tymo-sep{color:#999}

.woocommerce div.product form.cart .single_add_to_cart_button{
    background:var(--tymo-accent)!important;
    color:#fff!important;
    border-color:var(--tymo-accent)!important;
    min-height:54px;
    border-radius:999px;
    min-width:220px;
    font-weight:900
}

.tymo-trust-strip{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    margin:12px 0 20px;
    font-size:13px;
    line-height:1.3
}
.tymo-trust-strip span{
    border:1px solid rgba(0,0,0,.10);
    border-radius:12px;
    padding:11px 12px;
    background:#fff
}

/*
 * Replacement for the inconsistent pink benefit banner.
 * The original benefit items are hidden only after JS positively identifies
 * that specific section.
 */
.tymo-v10-benefits-section{
    padding:20px!important;
}

.tymo-v10-benefits-section > *:not(.tymo-v10-benefits){
    display:none!important;
}

.tymo-v10-benefits{
    width:min(1180px,100%);
    margin:0 auto;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    color:#fff
}

.tymo-v10-benefit{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    min-height:84px;
    padding:14px 18px;
    border:1px solid rgba(255,255,255,.28);
    border-radius:14px;
    background:rgba(255,255,255,.06);
    text-align:left
}

.tymo-v10-benefit svg{
    flex:0 0 30px;
    width:30px;
    height:30px
}

.tymo-v10-benefit strong{
    display:block;
    font-size:16px;
    line-height:1.2
}

.tymo-v10-benefit small{
    display:block;
    margin-top:3px;
    opacity:.9;
    font-size:13px;
    line-height:1.25
}

@media(max-width:767px){
    .tymo-trust-strip{
        grid-template-columns:1fr
    }

    .tymo-v10-benefits-section{
        padding:16px!important
    }

    .tymo-v10-benefits{
        grid-template-columns:1fr;
        gap:10px
    }

    .tymo-v10-benefit{
        justify-content:flex-start;
        min-height:0;
        padding:13px 15px
    }

    .tymo-v10-benefit strong{
        font-size:15px
    }

}


/* =========================================================
   v10.2 MOBILE PRODUCT PAGE ONLY
   Homepage/hero intentionally untouched.
   ========================================================= */
@media (max-width: 767px) {

    body.single-product .site-main,
    body.single-product main,
    body.single-product .woocommerce {
        overflow-x: hidden;
    }

    /* Product gallery: large main image, compact swipeable thumbnails */
    body.single-product div.product .woocommerce-product-gallery {
        width: 100% !important;
        margin: 0 0 18px !important;
        padding: 0 14px !important;
    }

    body.single-product .woocommerce-product-gallery__wrapper {
        margin: 0 !important;
    }

    body.single-product .woocommerce-product-gallery__image {
        text-align: center;
    }

    body.single-product .woocommerce-product-gallery__image img {
        display: block;
        width: 100% !important;
        max-height: 70vh;
        object-fit: contain;
        margin: 0 auto;
        border-radius: 12px;
    }

    body.single-product .flex-control-thumbs {
        display: flex !important;
        flex-wrap: nowrap !important;
        gap: 8px !important;
        overflow-x: auto !important;
        overscroll-behavior-inline: contain;
        scroll-snap-type: x proximity;
        margin: 10px 0 0 !important;
        padding: 2px 0 8px !important;
        -webkit-overflow-scrolling: touch;
    }

    body.single-product .flex-control-thumbs::-webkit-scrollbar {
        height: 4px;
    }

    body.single-product .flex-control-thumbs li {
        flex: 0 0 72px !important;
        width: 72px !important;
        max-width: 72px !important;
        float: none !important;
        scroll-snap-align: start;
    }

    body.single-product .flex-control-thumbs img {
        width: 72px !important;
        height: 72px !important;
        object-fit: cover !important;
        border-radius: 9px !important;
        border: 1px solid rgba(0,0,0,.08);
    }

    /* Summary hierarchy */
    body.single-product div.product .summary {
        width: auto !important;
        margin: 0 !important;
        padding: 0 18px 24px !important;
    }

    body.single-product .product_title {
        font-size: 34px !important;
        line-height: 1.08 !important;
        letter-spacing: .01em !important;
        margin: 8px 0 14px !important;
    }

    body.single-product .tymo-product-price,
    body.single-product .summary .price {
        font-size: 31px !important;
        line-height: 1 !important;
        margin: 0 0 12px !important;
    }

    body.single-product .tymo-product-reassurance {
        font-size: 15px !important;
        line-height: 1.35 !important;
        margin-bottom: 14px !important;
    }

    /* CTA sits immediately after price/stock on mobile */
    body.single-product form.cart {
        width: 100% !important;
        display: grid !important;
        grid-template-columns: 82px minmax(0,1fr) !important;
        gap: 10px !important;
        margin: 10px 0 14px !important;
    }

    body.single-product form.cart .quantity,
    body.single-product form.cart .quantity input.qty {
        width: 82px !important;
        min-width: 82px !important;
        height: 58px !important;
    }

    body.single-product form.cart .single_add_to_cart_button {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 58px !important;
        border-radius: 999px !important;
        font-size: 19px !important;
        font-weight: 800 !important;
    }

    body.single-product .tymo-trust-strip {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 8px !important;
        margin: 12px 0 22px !important;
    }

    body.single-product .tymo-trust-strip span {
        font-size: 15px !important;
        padding: 13px 14px !important;
        border-radius: 12px !important;
    }

    /* Marketing copy stays readable, not enormous */
    body.single-product .woocommerce-product-details__short-description {
        margin: 18px 0 12px !important;
    }

    body.single-product .woocommerce-product-details__short-description h1,
    body.single-product .woocommerce-product-details__short-description h2,
    body.single-product .woocommerce-product-details__short-description h3 {
        font-size: 29px !important;
        line-height: 1.14 !important;
        letter-spacing: -.02em !important;
        margin: 0 0 12px !important;
    }

    body.single-product .woocommerce-product-details__short-description p {
        font-size: 17px !important;
        line-height: 1.55 !important;
        margin: 0 0 12px !important;
    }

    /* Description tab */
    body.single-product .woocommerce-tabs {
        padding: 0 18px 24px !important;
    }

    body.single-product .woocommerce-tabs ul.tabs {
        margin-bottom: 18px !important;
    }

    body.single-product .woocommerce-tabs ul.tabs li {
        padding: 0 12px !important;
    }

    body.single-product .woocommerce-tabs .panel h2 {
        font-size: 28px !important;
        line-height: 1.15 !important;
        margin-bottom: 15px !important;
    }

    body.single-product .woocommerce-tabs .panel,
    body.single-product .woocommerce-tabs .panel p,
    body.single-product .woocommerce-tabs .panel li {
        font-size: 16px !important;
        line-height: 1.5 !important;
    }

    /* Sticky purchase bar */
    body.single-product.tymo-v102-sticky-active {
        padding-bottom: 84px !important;
    }

    .tymo-v102-sticky-buy {
        position: fixed;
        z-index: 99990;
        left: 0;
        right: 0;
        bottom: 0;
        display: grid;
        grid-template-columns: minmax(0,1fr) auto;
        align-items: center;
        gap: 10px;
        padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
        background: rgba(255,255,255,.97);
        border-top: 1px solid rgba(0,0,0,.10);
        box-shadow: 0 -8px 24px rgba(0,0,0,.12);
        backdrop-filter: blur(10px);
        -webkit-backdrop-filter: blur(10px);
    }

    .tymo-v102-sticky-buy__meta {
        min-width: 0;
        line-height: 1.15;
    }

    .tymo-v102-sticky-buy__name {
        display: block;
        font-size: 12px;
        font-weight: 700;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .tymo-v102-sticky-buy__price {
        display: block;
        margin-top: 3px;
        font-size: 17px;
        font-weight: 900;
    }

    .tymo-v102-sticky-buy__button {
        border: 0;
        border-radius: 999px;
        min-height: 48px;
        padding: 0 22px;
        background: #ff0a5b;
        color: #fff;
        font-size: 15px;
        font-weight: 900;
    }
}


/* =========================================================
   v10.3 MOBILE PRODUCT CTA FIX
   Stronger specificity to override theme WooCommerce styles.
   ========================================================= */
@media (max-width: 767px) {

    /* Slightly tighter title hierarchy */
    body.single-product div.product .summary .product_title {
        font-size: 31px !important;
        line-height: 1.08 !important;
        margin: 8px 0 12px !important;
    }

    body.single-product div.product .summary .tymo-product-price,
    body.single-product div.product .summary .price {
        font-size: 29px !important;
        margin-bottom: 10px !important;
    }

    body.single-product div.product .summary .tymo-product-reassurance {
        display: flex !important;
        align-items: center !important;
        flex-wrap: wrap !important;
        gap: 6px !important;
        margin: 0 0 14px !important;
        font-size: 14px !important;
    }

    /* Force quantity + Buy Now into one clean row */
    body.single-product div.product .summary form.cart,
    body.single-product div.product .summary form.cart:not(.variations_form) {
        box-sizing: border-box !important;
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        gap: 10px !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 10px 0 14px !important;
        padding: 0 !important;
        float: none !important;
        clear: both !important;
    }

    body.single-product div.product .summary form.cart .quantity {
        box-sizing: border-box !important;
        display: block !important;
        flex: 0 0 76px !important;
        width: 76px !important;
        min-width: 76px !important;
        max-width: 76px !important;
        height: 56px !important;
        margin: 0 !important;
        padding: 0 !important;
        float: none !important;
    }

    body.single-product div.product .summary form.cart .quantity .qty,
    body.single-product div.product .summary form.cart input.qty {
        box-sizing: border-box !important;
        display: block !important;
        width: 76px !important;
        min-width: 76px !important;
        max-width: 76px !important;
        height: 56px !important;
        min-height: 56px !important;
        margin: 0 !important;
        padding: 0 8px !important;
        border: 1px solid rgba(0,0,0,.28) !important;
        border-radius: 12px !important;
        background: #fff !important;
        color: #111 !important;
        text-align: center !important;
        font-size: 18px !important;
        line-height: 56px !important;
        appearance: textfield !important;
        -moz-appearance: textfield !important;
    }

    body.single-product div.product .summary form.cart .single_add_to_cart_button,
    body.single-product div.product .summary form.cart button.single_add_to_cart_button,
    body.single-product div.product .summary form.cart .button.single_add_to_cart_button {
        box-sizing: border-box !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex: 1 1 0 !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        height: 56px !important;
        min-height: 56px !important;
        margin: 0 !important;
        padding: 0 20px !important;
        float: none !important;
        clear: none !important;
        border: 2px solid #ff0a5b !important;
        border-radius: 999px !important;
        background: #ff0a5b !important;
        color: #fff !important;
        box-shadow: 0 8px 20px rgba(255,10,91,.18) !important;
        font-size: 18px !important;
        font-weight: 800 !important;
        line-height: 1 !important;
        text-align: center !important;
        white-space: nowrap !important;
        overflow: visible !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
    }

    body.single-product div.product .summary form.cart .single_add_to_cart_button:hover,
    body.single-product div.product .summary form.cart .single_add_to_cart_button:focus {
        background: #ff0a5b !important;
        color: #fff !important;
        border-color: #ff0a5b !important;
        opacity: .94 !important;
    }

    /* Compact trust cards slightly */
    body.single-product .tymo-trust-strip {
        gap: 7px !important;
        margin: 10px 0 20px !important;
    }

    body.single-product .tymo-trust-strip span {
        padding: 11px 13px !important;
        font-size: 14px !important;
        line-height: 1.35 !important;
    }

    /* Marketing copy after purchase controls */
    body.single-product .woocommerce-product-details__short-description h1,
    body.single-product .woocommerce-product-details__short-description h2,
    body.single-product .woocommerce-product-details__short-description h3 {
        font-size: 25px !important;
        line-height: 1.16 !important;
        margin-bottom: 10px !important;
    }

    body.single-product .woocommerce-product-details__short-description p {
        font-size: 16px !important;
        line-height: 1.5 !important;
    }

    /* Override any theme styling on the sticky CTA */
    body.single-product .tymo-v102-sticky-buy {
        grid-template-columns: minmax(0,1fr) auto !important;
        gap: 10px !important;
        padding: 9px 12px calc(9px + env(safe-area-inset-bottom)) !important;
        background: rgba(255,255,255,.98) !important;
    }

    body.single-product .tymo-v102-sticky-buy .tymo-v102-sticky-buy__button {
        box-sizing: border-box !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: auto !important;
        min-width: 122px !important;
        height: 48px !important;
        min-height: 48px !important;
        margin: 0 !important;
        padding: 0 18px !important;
        border: 2px solid #ff0a5b !important;
        border-radius: 999px !important;
        background: #ff0a5b !important;
        color: #fff !important;
        box-shadow: none !important;
        font-size: 15px !important;
        font-weight: 800 !important;
        line-height: 1 !important;
        white-space: nowrap !important;
        opacity: 1 !important;
    }

    body.single-product .tymo-v102-sticky-buy__name {
        font-size: 11px !important;
    }

    body.single-product .tymo-v102-sticky-buy__price {
        font-size: 16px !important;
    }
}


/* =========================================================
   v13 HAR-BASED HOMEPAGE MEDIA REPAIR
   ========================================================= */

.tymo-v13-fast-logo{
    display:block!important;
    width:auto!important;
    height:auto!important;
    object-fit:contain!important;
}

.tymo-v13-hero{
    position:relative!important;
    overflow:hidden!important;
    isolation:isolate;
    background-size:cover!important;
    background-position:center center!important;
}

.tymo-v13-hero-layer{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    overflow:hidden!important;
    margin:0!important;
    padding:0!important;
    z-index:0!important;
    pointer-events:none!important;
}

.tymo-v13-hero-frame{
    position:absolute!important;
    display:block!important;
    max-width:none!important;
    max-height:none!important;
    min-width:0!important;
    min-height:0!important;
    border:0!important;
    margin:0!important;
    padding:0!important;
    pointer-events:none!important;
    background:transparent!important;
}

.tymo-v13-hero > *:not(.tymo-v13-hero-layer){
    position:relative;
    z-index:2;
}

.tymo-v13-hero .elementor-background-overlay{
    z-index:1!important;
}

.tymo-v13-hero .elementor-background-video-container,
.tymo-v13-hero video.elementor-background-video-hosted{
    display:none!important;
}

/* Recovery-safe UGC cards: tiny poster only until click. */
.tymo-v141-ugc-card{
    position:relative!important;
    display:block!important;
    width:100%!important;
    aspect-ratio:9/16!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    border:0!important;
    border-radius:14px!important;
    background:#f2f2f2!important;
    cursor:pointer!important;
    appearance:none!important;
}

.tymo-v141-ugc-poster{
    position:absolute!important;
    inset:0!important;
    display:block!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    margin:0!important;
    padding:0!important;
}

.tymo-v141-play{
    position:absolute!important;
    left:50%!important;
    top:50%!important;
    width:72px!important;
    height:72px!important;
    transform:translate(-50%,-50%)!important;
    border:4px solid rgba(255,255,255,.96)!important;
    border-radius:50%!important;
    background:rgba(255,255,255,.12)!important;
    box-shadow:0 4px 20px rgba(0,0,0,.2)!important;
}

.tymo-v141-play::after{
    content:""!important;
    position:absolute!important;
    left:29px!important;
    top:21px!important;
    width:0!important;
    height:0!important;
    border-top:13px solid transparent!important;
    border-bottom:13px solid transparent!important;
    border-left:20px solid #fff!important;
}

.tymo-v141-ugc-frame{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    border:0!important;
    margin:0!important;
    padding:0!important;
    background:#000!important;
}

/* The 3 optimized hair-type images must not inherit stale fixed heights. */
img[src*="hair-type-1.webp"],
img[src*="hair-type-2.webp"],
img[src*="hair-type-3.webp"]{
    display:block!important;
    width:100%!important;
    height:auto!important;
    aspect-ratio:1/1!important;
    object-fit:cover!important;
}

/* Proven mobile header / announcement bar repair. */
@media (max-width:767px){
    .tymo-v11-announcement-bar{
        width:100%!important;
        min-height:36px!important;
        height:36px!important;
        padding:5px 6px!important;
        margin:0!important;
        display:flex!important;
        align-items:center!important;
        justify-content:center!important;
        overflow:hidden!important;
        box-sizing:border-box!important;
    }

    .tymo-v11-announcement-text,
    .tymo-v11-announcement-text *{
        width:100%!important;
        max-width:100%!important;
        margin:0!important;
        padding:0!important;
        white-space:nowrap!important;
        overflow:hidden!important;
        text-overflow:clip!important;
        text-align:center!important;
        font-size:clamp(9.5px,2.85vw,12px)!important;
        line-height:1!important;
        letter-spacing:0!important;
    }

    .tymo-v11-mobile-header{
        width:100%!important;
        min-height:76px!important;
        height:auto!important;
        padding:9px 18px!important;
        margin:0!important;
        display:flex!important;
        flex-direction:row!important;
        flex-wrap:nowrap!important;
        align-items:center!important;
        justify-content:space-between!important;
        gap:12px!important;
        box-sizing:border-box!important;
    }

    .tymo-v11-mobile-header > *{
        min-width:0!important;
    }

    .tymo-v11-mobile-header .tymo-v11-logo,
    .tymo-v11-mobile-header img.tymo-v11-logo{
        display:block!important;
        width:auto!important;
        height:auto!important;
        max-width:min(46vw,165px)!important;
        max-height:58px!important;
        object-fit:contain!important;
        margin:0!important;
    }

    .tymo-v11-menu-toggle,
    .tymo-v11-mobile-header .elementor-menu-toggle,
    .tymo-v11-mobile-header .e-n-menu-toggle{
        flex:0 0 auto!important;
        width:auto!important;
        min-width:42px!important;
        min-height:42px!important;
        margin-left:auto!important;
    }

    .tymo-v11-mobile-header .elementor-nav-menu--main{
        display:none!important;
    }

    .tymo-v13-hero{
        min-height:clamp(600px,76svh,740px)!important;
    }

    .tymo-v13-hero .elementor-heading-title{
        font-size:clamp(32px,8.5vw,46px)!important;
        line-height:1.08!important;
    }

    .tymo-v13-hero .elementor-widget-text-editor,
    .tymo-v13-hero .elementor-widget-text-editor p{
        line-height:1.45!important;
    }
}

@media (min-width:768px) and (max-width:1024px){
    .tymo-v11-announcement-text,
    .tymo-v11-announcement-text *{
        white-space:nowrap!important;
    }

    .tymo-v13-hero{
        min-height:clamp(600px,68vw,740px)!important;
    }
}


/* v14.2 deferred custom-gallery thumbs */
img.thumb[data-tymo-src]{
    background:#f4f4f4;
    object-fit:cover;
}


/* =========================================================
   v14.3 MOBILE HERO POLISH — CSS ONLY
   ========================================================= */
@media (max-width: 767px){
    .tymo-v13-hero{
        min-height: 590px !important;
        height: 72svh !important;
        max-height: 660px !important;
    }

    .tymo-v13-hero > *:not(.tymo-v13-hero-layer){
        max-width: 100% !important;
    }

    .tymo-v13-hero .elementor-heading-title{
        font-size: clamp(29px, 7.6vw, 38px) !important;
        line-height: 1.08 !important;
        letter-spacing: -0.02em !important;
        max-width: 620px !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .tymo-v13-hero .elementor-widget-text-editor,
    .tymo-v13-hero .elementor-widget-text-editor p{
        font-size: clamp(16px, 4.1vw, 20px) !important;
        line-height: 1.42 !important;
        max-width: 610px !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .tymo-v13-hero .elementor-button,
    .tymo-v13-hero a.elementor-button{
        min-width: 220px !important;
        padding: 16px 30px !important;
        font-size: 18px !important;
        line-height: 1.1 !important;
    }

    .tymo-v13-hero .e-con-inner,
    .tymo-v13-hero > .e-con-inner,
    .tymo-v13-hero .elementor-container{
        min-height: 0 !important;
    }

    .tymo-v10-benefits-section{
        margin-top: 0 !important;
    }
}

@media (min-width: 768px) and (max-width: 1024px){
    .tymo-v13-hero{
        min-height: 560px !important;
        height: 66svh !important;
        max-height: 700px !important;
    }

    .tymo-v13-hero .elementor-heading-title{
        font-size: clamp(38px, 5.2vw, 52px) !important;
        line-height: 1.08 !important;
    }
}
