/* =========================================================
   V12 HEADER + FOOTER
   Only affects the front page.
   ========================================================= */

/* Hide the legacy Astra header/footer on the redesigned homepage. */
body.cp-global-shell #masthead,
body.cp-global-shell .site-header,
body.cp-global-shell #colophon,
body.cp-global-shell .site-footer{
    display:none !important;
}

.cp-site-header{
    position:sticky;
    top:0;
    z-index:999;
    width:100%;
    background:rgba(255,255,255,.97);
    border-bottom:1px solid var(--cp-line);
    box-shadow:0 10px 32px rgba(23,61,45,.04);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
}

body.admin-bar .cp-site-header{
    top:32px;
}

.cp-header-top{
    min-height:78px;
    display:grid;
    grid-template-columns:minmax(190px,1fr) minmax(360px,540px) minmax(250px,1fr);
    gap:34px;
    align-items:center;
}

.cp-header-brand,
.cp-mobile-brand,
.cp-footer-logo{
    display:flex;
    align-items:center;
}

.cp-header-brand .custom-logo-link,
.cp-mobile-brand .custom-logo-link,
.cp-footer-logo .custom-logo-link{
    display:inline-flex;
    align-items:center;
    line-height:0;
}

.cp-header-brand .custom-logo,
.cp-mobile-brand .custom-logo{
    width:auto;
    max-width:190px;
    max-height:48px;
}

.cp-footer-logo .custom-logo{
    width:auto;
    max-width:200px;
    max-height:56px;
    filter:brightness(0) invert(1);
}

.cp-brand-text{
    color:var(--cp-green-deep);
    font-size:22px;
    font-weight:800;
    letter-spacing:.04em;
}

.cp-header-utilities{
    display:flex;
    justify-content:flex-end;
    gap:28px;
}

.cp-header-utilities a,
.cp-header-nav a{
    color:var(--cp-green-deep);
    font-size:13px;
    font-weight:700;
    text-decoration:none;
}

.cp-header-utilities a:hover,
.cp-header-nav a:hover,
.cp-header-nav a.is-current{
    color:var(--cp-green);
}

.cp-product-search{
    position:relative;
    display:flex;
    width:100%;
    height:46px;
    margin:0;
}

.cp-product-search input[type="search"]{
    width:100%;
    height:46px;
    margin:0;
    padding:0 58px 0 16px;
    border:1px solid rgba(23,61,45,.16);
    border-radius:0;
    background:#fbfaf7;
    color:var(--cp-ink);
    font-size:14px;
    box-shadow:none;
}

.cp-product-search input[type="search"]:focus{
    outline:2px solid rgba(45,93,69,.14);
    outline-offset:0;
    border-color:rgba(23,61,45,.32);
}

.cp-product-search button{
    position:absolute;
    top:0;
    right:0;
    width:48px;
    height:46px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    color:var(--cp-green-deep);
    cursor:pointer;
}

.cp-product-search button span:first-child{
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
}

.cp-search-mark{
    position:relative;
    width:16px;
    height:16px;
    border:2px solid currentColor;
    border-radius:50%;
}

.cp-search-mark::after{
    content:"";
    position:absolute;
    width:7px;
    height:2px;
    right:-6px;
    bottom:-3px;
    background:currentColor;
    transform:rotate(45deg);
    transform-origin:center;
}

.cp-header-nav-wrap{
    border-top:1px solid rgba(23,61,45,.08);
}

.cp-header-nav-row{
    min-height:58px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
}

.cp-header-nav{
    display:flex;
    align-items:center;
    gap:34px;
}

.cp-header-actions,
.cp-mobile-actions{
    display:flex;
    align-items:center;
    gap:18px;
}

.cp-header-icon{
    position:relative;
    width:36px;
    height:36px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:var(--cp-green);
    text-decoration:none;
}

.cp-cart-glyph{
    position:relative;
    width:20px;
    height:14px;
    border:2px solid currentColor;
    border-top:0;
    border-radius:0 0 3px 3px;
}

.cp-cart-glyph::before{
    content:"";
    position:absolute;
    left:2px;
    right:2px;
    top:-6px;
    height:6px;
    border:2px solid currentColor;
    border-bottom:0;
    border-radius:6px 6px 0 0;
}

.cp-cart-glyph::after{
    content:"";
    position:absolute;
    width:3px;
    height:3px;
    border-radius:50%;
    background:currentColor;
    left:2px;
    bottom:-6px;
    box-shadow:11px 0 0 currentColor;
}

.cp-account-glyph{
    position:relative;
    width:20px;
    height:20px;
}

.cp-account-glyph::before{
    content:"";
    position:absolute;
    top:0;
    left:6px;
    width:8px;
    height:8px;
    border-radius:50%;
    background:currentColor;
}

.cp-account-glyph::after{
    content:"";
    position:absolute;
    left:2px;
    bottom:0;
    width:16px;
    height:9px;
    border-radius:9px 9px 2px 2px;
    background:currentColor;
}

.cp-cart-count{
    position:absolute;
    top:-3px;
    right:-4px;
    min-width:18px;
    height:18px;
    padding:0 4px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:20px;
    background:var(--cp-green);
    color:#fff;
    font-size:10px;
    font-weight:800;
    line-height:1;
}

.cp-header-mobile{
    display:none;
}

/* Footer */
.cp-site-footer{
    background:var(--cp-green-deep);
    color:rgba(255,255,255,.86);
}

.cp-footer-grid{
    display:grid;
    grid-template-columns:1.35fr .8fr .8fr 1.15fr;
    gap:64px;
    padding-top:68px;
    padding-bottom:62px;
}

.cp-footer-brand{
    max-width:360px;
}

.cp-footer-kicker{
    margin:24px 0 6px;
    color:#fff;
    font-family:var(--cp-serif);
    font-size:24px;
    line-height:1.15;
}

.cp-footer-phone{
    display:inline-block;
    margin:4px 0 3px;
    color:#fff;
    font-size:18px;
    font-weight:800;
    text-decoration:none;
}

.cp-footer-muted,
.cp-footer-address,
.cp-footer-search p{
    margin:0;
    color:rgba(255,255,255,.64);
    font-size:13px;
    line-height:1.55;
}

.cp-footer-address{
    margin-top:18px;
    max-width:310px;
}

.cp-footer-links,
.cp-footer-search{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
}

.cp-footer-links h2,
.cp-footer-search h2{
    margin:0 0 20px;
    color:#d5bc7d;
    font-family:var(--cp-sans);
    font-size:11px;
    font-weight:800;
    letter-spacing:.15em;
    text-transform:uppercase;
}

.cp-footer-links a{
    margin:0 0 11px;
    color:rgba(255,255,255,.84);
    font-size:13px;
    text-decoration:none;
}

.cp-footer-links a:hover,
.cp-footer-phone:hover{
    color:#fff;
}

.cp-footer-search p{
    margin-bottom:18px;
}

.cp-product-search-footer{
    max-width:360px;
    height:48px;
}

.cp-product-search-footer input[type="search"]{
    height:48px;
    border-color:rgba(255,255,255,.22);
    background:rgba(255,255,255,.08);
    color:#fff;
}

.cp-product-search-footer input[type="search"]::placeholder{
    color:rgba(255,255,255,.52);
}

.cp-product-search-footer button{
    height:48px;
    background:#d5bc7d;
    color:var(--cp-green-deep);
}

.cp-footer-bottom{
    border-top:1px solid rgba(255,255,255,.13);
}

.cp-footer-bottom .cp-shell{
    min-height:58px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    color:rgba(255,255,255,.52);
    font-size:11px;
}

/* Floating controls */
body.cp-global-shell #ast-scroll-top{
    right:18px !important;
    bottom:86px !important;
}

body.cp-global-shell .weglot-container,
body.cp-global-shell .wg-default,
body.cp-global-shell .country-selector{
    z-index:1000 !important;
}

/* Mobile header/footer */
@media(max-width:767px){
    body.admin-bar .cp-site-header{
        top:46px;
    }

    .cp-header-desktop{
        display:none;
    }

    .cp-header-mobile{
        display:block;
    }

    .cp-mobile-main{
        min-height:72px;
        display:grid;
        grid-template-columns:58px 1fr auto;
        align-items:center;
        gap:8px;
        padding:0 14px;
        background:#fff;
    }

    .cp-mobile-brand{
        justify-content:center;
        min-width:0;
    }

    .cp-mobile-brand .custom-logo{
        max-width:150px;
        max-height:38px;
    }

    .cp-mobile-menu{
        position:relative;
    }

    .cp-mobile-menu summary{
        width:48px;
        height:48px;
        display:flex;
        align-items:center;
        justify-content:center;
        list-style:none;
        cursor:pointer;
        color:var(--cp-green);
    }

    .cp-mobile-menu summary::-webkit-details-marker{
        display:none;
    }

    .cp-hamburger{
        width:28px;
        display:flex;
        flex-direction:column;
        gap:5px;
    }

    .cp-hamburger i{
        display:block;
        height:3px;
        border-radius:2px;
        background:currentColor;
    }

    .cp-mobile-nav{
        position:absolute;
        top:58px;
        left:-14px;
        z-index:1002;
        width:min(86vw,340px);
        padding:12px 20px 18px;
        background:#fff;
        border:1px solid var(--cp-line);
        box-shadow:0 18px 46px rgba(23,61,45,.12);
    }

    .cp-mobile-nav a{
        display:block;
        padding:13px 4px;
        border-bottom:1px solid var(--cp-line);
        color:var(--cp-green-deep);
        font-size:15px;
        font-weight:700;
        text-decoration:none;
    }

    .cp-mobile-nav a:last-child{
        border-bottom:0;
    }

    .cp-mobile-actions{
        gap:8px;
    }

    .cp-mobile-actions .cp-header-icon{
        width:38px;
        height:38px;
    }

    .cp-mobile-search{
        padding:12px 16px 14px;
        border-top:1px solid rgba(23,61,45,.06);
        background:#fff;
    }

    .cp-product-search-mobile{
        height:44px;
    }

    .cp-product-search-mobile input[type="search"]{
        height:44px;
        padding-left:14px;
        background:#fbfaf7;
        font-size:14px;
    }

    .cp-product-search-mobile button{
        height:44px;
    }

    .cp-footer-grid{
        grid-template-columns:1fr 1fr;
        gap:34px 24px;
        padding-top:48px;
        padding-bottom:42px;
    }

    .cp-footer-brand{
        grid-column:1 / -1;
        max-width:none;
        padding-bottom:28px;
        border-bottom:1px solid rgba(255,255,255,.12);
    }

    .cp-footer-logo .custom-logo{
        max-width:170px;
        max-height:48px;
    }

    .cp-footer-kicker{
        margin-top:20px;
        font-size:22px;
    }

    .cp-footer-phone{
        font-size:17px;
    }

    .cp-footer-address{
        max-width:100%;
        margin-top:14px;
    }

    .cp-footer-links h2,
    .cp-footer-search h2{
        margin-bottom:16px;
    }

    .cp-footer-links a{
        margin-bottom:10px;
        font-size:12px;
        line-height:1.35;
    }

    .cp-footer-search{
        grid-column:1 / -1;
        padding-top:10px;
        border-top:1px solid rgba(255,255,255,.12);
    }

    .cp-product-search-footer{
        max-width:none;
        width:100%;
    }

    .cp-footer-bottom .cp-shell{
        min-height:62px;
        flex-direction:column;
        justify-content:center;
        gap:3px;
        text-align:center;
    }

    body.cp-global-shell #ast-scroll-top{
        right:12px !important;
        bottom:88px !important;
    }
}

@media(max-width:390px){
    .cp-mobile-main{
        grid-template-columns:52px 1fr auto;
        padding-right:10px;
        padding-left:10px;
    }

    .cp-mobile-brand .custom-logo{
        max-width:138px;
    }

    .cp-mobile-actions{
        gap:3px;
    }

    .cp-footer-grid{
        gap:30px 18px;
    }
}


/* =========================================================
   V12.1 TEXT CLEANUP
   Remove redundant explanatory copy and improve text framing.
   ========================================================= */

.cp-proof > .cp-shell,
.cp-standards > .cp-shell{
    max-width:1180px;
}

.cp-proof h2,
.cp-standards h2{
    max-width:980px;
    text-wrap:balance;
}

.cp-proof .cp-proof-group:first-of-type{
    margin-top:34px;
}

.cp-standards-list{
    margin-top:42px;
}

@media(max-width:767px){
    .cp-proof h2,
    .cp-standards h2{
        max-width:none;
        text-wrap:balance;
    }

    .cp-proof .cp-proof-group:first-of-type{
        margin-top:28px !important;
    }

    .cp-standards-list{
        margin-top:32px !important;
    }
}


/* =========================================================
   V12.2 HEADER + FOOTER POLISH
   Applied to desktop and mobile.
   ========================================================= */

/* Footer wordmark, no image dependency */
.cp-footer-wordmark{
    display:inline-flex;
    flex-direction:column;
    align-items:flex-start;
    gap:4px;
    margin:0;
    line-height:1;
}

.cp-footer-wordmark-main{
    color:#fff;
    font-family:var(--cp-sans);
    font-size:24px;
    font-weight:800;
    letter-spacing:.055em;
}

.cp-footer-wordmark-sub{
    color:#d5bc7d;
    font-family:var(--cp-sans);
    font-size:9px;
    font-weight:800;
    letter-spacing:.22em;
}

/* Slightly stronger desktop footer structure */
@media(min-width:768px){
    .cp-footer-grid{
        align-items:start;
    }

    .cp-footer-brand{
        padding-right:16px;
    }

    .cp-footer-kicker{
        max-width:320px;
    }

    .cp-footer-search{
        min-width:0;
    }

    .cp-product-search-footer{
        width:100%;
    }

    /* Keep floating controls clear of footer copy on desktop too */
    body.cp-global-shell #ast-scroll-top{
        right:22px !important;
        bottom:92px !important;
    }
}

/* Weglot: keep it clear of content and the back-to-top button */
body.cp-global-shell .weglot-container,
body.cp-global-shell .wg-default,
body.cp-global-shell .country-selector{
    right:22px !important;
    bottom:20px !important;
    left:auto !important;
    max-width:260px;
}

/* If Weglot injects a fixed selector wrapper, keep it above content */
body.cp-global-shell .weglot-container.weglot-container--fixed,
body.cp-global-shell .wg-default.weglot-container--fixed,
body.cp-global-shell .country-selector.weglot-container--fixed{
    z-index:1001 !important;
}

@media(max-width:767px){
    .cp-footer-wordmark-main{
        font-size:22px;
    }

    .cp-footer-wordmark-sub{
        font-size:8px;
    }

    .cp-footer-kicker{
        margin-top:18px;
        font-size:21px;
        line-height:1.15;
    }

    .cp-footer-phone{
        margin-top:2px;
    }

    /* More breathing room before link columns */
    .cp-footer-brand{
        padding-bottom:24px;
    }

    /* Keep the language selector below content, not over it */
    body.cp-global-shell .weglot-container,
    body.cp-global-shell .wg-default,
    body.cp-global-shell .country-selector{
        right:16px !important;
        bottom:14px !important;
        left:auto !important;
        max-width:calc(100vw - 92px);
    }

    /* Put the up button safely above the language selector */
    body.cp-global-shell #ast-scroll-top{
        right:14px !important;
        bottom:104px !important;
    }

    /* Footer search must remain fully visible above the floating language selector */
    .cp-footer-search{
        padding-bottom:82px;
    }
}

@media(max-width:390px){
    body.cp-global-shell .weglot-container,
    body.cp-global-shell .wg-default,
    body.cp-global-shell .country-selector{
        max-width:calc(100vw - 78px);
    }

    .cp-footer-search{
        padding-bottom:88px;
    }
}


/* =========================================================
   V12.3 LEGACY FOOTER LOGO CLEANUP
   Covers both desktop and mobile.
   Some installs can still output the previous clickable
   custom-logo block from cached/legacy footer markup.
   ========================================================= */

/* Never allow the old clickable/broken logo image inside our homepage footer. */
body.cp-global-shell .cp-site-footer .custom-logo-link,
body.cp-global-shell .cp-site-footer img.custom-logo,
body.cp-global-shell .cp-site-footer .site-logo-img,
body.cp-global-shell .cp-site-footer .ast-site-identity{
    display:none !important;
}

/* Compatibility for the previous V12/V12.1 footer markup. */
body.cp-global-shell .cp-site-footer .cp-footer-logo{
    display:inline-flex !important;
    flex-direction:column;
    align-items:flex-start;
    gap:4px;
    width:auto !important;
    height:auto !important;
    min-height:0 !important;
    padding:0 !important;
    margin:0 !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    pointer-events:none;
}

body.cp-global-shell .cp-site-footer .cp-footer-logo::before{
    content:"COSMO PHARM";
    display:block;
    color:#fff;
    font-family:var(--cp-sans);
    font-size:24px;
    font-weight:800;
    line-height:1;
    letter-spacing:.055em;
}

body.cp-global-shell .cp-site-footer .cp-footer-logo::after{
    content:"SINCE 1994";
    display:block;
    color:#d5bc7d;
    font-family:var(--cp-sans);
    font-size:9px;
    font-weight:800;
    line-height:1;
    letter-spacing:.22em;
}

/* Current V12.2+ wordmark stays visible and non-clickable. */
body.cp-global-shell .cp-site-footer .cp-footer-wordmark{
    pointer-events:none;
}

/* Strong desktop cleanup too, not only mobile. */
@media(min-width:768px){
    body.cp-global-shell .cp-site-footer .custom-logo-link,
    body.cp-global-shell .cp-site-footer img.custom-logo{
        display:none !important;
    }

    body.cp-global-shell .cp-site-footer .cp-footer-logo{
        background:none !important;
    }
}

@media(max-width:767px){
    body.cp-global-shell .cp-site-footer .cp-footer-logo::before{
        font-size:22px;
    }

    body.cp-global-shell .cp-site-footer .cp-footer-logo::after{
        font-size:8px;
    }
}




/* =========================================================
   V13 GLOBAL SHELL SAFETY
   ========================================================= */

body.cp-global-shell #masthead,
body.cp-global-shell .site-header,
body.cp-global-shell #colophon,
body.cp-global-shell .site-footer{
    display:none !important;
}

/* Do not hide our replacement footer/header. */
body.cp-global-shell .cp-site-header,
body.cp-global-shell .cp-site-footer{
    display:block !important;
}

/* Keep normal Astra content flow on internal pages. */
body.cp-global-shell #page,
body.cp-global-shell #content,
body.cp-global-shell #primary,
body.cp-global-shell #secondary{
    min-width:0;
}

/* Header is outside Astra #page, so it always spans the viewport. */
body.cp-global-shell .cp-site-header,
body.cp-global-shell .cp-site-footer{
    width:100%;
    max-width:none;
}

/* Internal pages retain their own content width, while shell remains full-width. */
body.cp-global-shell .cp-site-header .cp-shell,
body.cp-global-shell .cp-site-footer .cp-shell{
    margin-left:auto !important;
    margin-right:auto !important;
}

/* Avoid old logo remnants in the global footer. */
body.cp-global-shell .cp-site-footer .custom-logo-link,
body.cp-global-shell .cp-site-footer img.custom-logo,
body.cp-global-shell .cp-site-footer .site-logo-img,
body.cp-global-shell .cp-site-footer .ast-site-identity{
    display:none !important;
}

/* Sticky header offsets when the WordPress admin bar is visible. */
body.admin-bar.cp-global-shell .cp-site-header{
    top:32px;
}

@media(max-width:782px){
    body.admin-bar.cp-global-shell .cp-site-header{
        top:46px;
    }
}


/* =========================================================
   V13.1 GLOBAL SHELL ALIGNMENT + DESKTOP SCALE
   The homepage already received the base .cp-shell rules from
   cp-home.css. Internal pages did not. This makes the shell
   truly global and keeps every page aligned the same way.
   ========================================================= */

:root{
    --cp-green:#2d5d45;
    --cp-green-deep:#173d2d;
    --cp-gold:#b79a58;
    --cp-text:#2d342f;
    --cp-muted:#6f7872;
    --cp-line:#e4e8e5;
    --cp-soft:#f7f8f7;
    --cp-white:#fff;
    --cp-shell:1240px;
}

body.cp-global-shell .cp-site-header *,
body.cp-global-shell .cp-site-footer *{
    box-sizing:border-box;
}

/* This was previously supplied only by the homepage stylesheet. */
body.cp-global-shell .cp-shell{
    width:min(calc(100% - 40px), var(--cp-shell));
    margin-left:auto !important;
    margin-right:auto !important;
}

/* Desktop polish: slightly larger and easier to read on wide screens. */
@media(min-width:768px){
    body.cp-global-shell .cp-header-top{
        min-height:84px;
        grid-template-columns:minmax(210px,1fr) minmax(400px,560px) minmax(280px,1fr);
        gap:38px;
    }

    body.cp-global-shell .cp-header-brand .custom-logo{
        max-width:205px;
        max-height:52px;
    }

    body.cp-global-shell .cp-header-nav-row{
        min-height:62px;
        gap:34px;
    }

    body.cp-global-shell .cp-header-nav{
        gap:38px;
    }

    body.cp-global-shell .cp-header-nav a{
        font-size:15px;
        line-height:1.2;
    }

    body.cp-global-shell .cp-header-utilities{
        gap:32px;
    }

    body.cp-global-shell .cp-header-utilities a{
        font-size:14px;
        line-height:1.2;
    }

    body.cp-global-shell .cp-product-search input[type="search"]{
        font-size:15px;
    }

    body.cp-global-shell .cp-header-actions{
        gap:20px;
    }

    body.cp-global-shell .cp-header-icon{
        width:40px;
        height:40px;
    }
}

/* Keep mobile sizing exactly as before. */
@media(max-width:767px){
    body.cp-global-shell .cp-shell{
        width:100%;
    }
}


/* =========================================================
   V13.2 DESKTOP SHELL, HARD ALIGNMENT FIX
   New filename is intentional to bypass cache/combine layers.
   Desktop only. Mobile is left untouched.
   ========================================================= */

@media (min-width:1024px){

    .cp-site-header .cp-header-top.cp-shell,
    .cp-site-header .cp-header-nav-row.cp-shell,
    .cp-site-footer > .cp-shell,
    .cp-site-footer .cp-footer-bottom > .cp-shell{
        width:calc(100vw - 64px) !important;
        max-width:1240px !important;
        margin-left:auto !important;
        margin-right:auto !important;
        padding-left:0 !important;
        padding-right:0 !important;
    }

    .cp-site-header .cp-header-top{
        min-height:88px !important;
        grid-template-columns:220px minmax(420px,520px) 1fr !important;
        gap:40px !important;
        align-items:center !important;
    }

    .cp-site-header .cp-header-brand{
        justify-content:flex-start !important;
        min-width:0 !important;
    }

    .cp-site-header .cp-header-brand .custom-logo{
        width:auto !important;
        max-width:210px !important;
        max-height:54px !important;
    }

    .cp-site-header .cp-header-search{
        width:100% !important;
        max-width:520px !important;
        justify-self:center !important;
    }

    .cp-site-header .cp-header-utilities{
        justify-self:end !important;
        justify-content:flex-end !important;
        gap:34px !important;
        white-space:nowrap !important;
    }

    .cp-site-header .cp-header-utilities a{
        font-size:15px !important;
        line-height:1.2 !important;
    }

    .cp-site-header .cp-header-nav-row{
        min-height:64px !important;
        display:flex !important;
        align-items:center !important;
        justify-content:space-between !important;
        gap:36px !important;
    }

    .cp-site-header .cp-header-nav{
        display:flex !important;
        align-items:center !important;
        gap:42px !important;
        margin:0 !important;
        padding:0 !important;
    }

    .cp-site-header .cp-header-nav a{
        font-size:16px !important;
        line-height:1.2 !important;
    }

    .cp-site-header .cp-header-actions{
        margin-left:auto !important;
        gap:20px !important;
    }

    .cp-site-header .cp-product-search input[type="search"]{
        font-size:15px !important;
    }

    .cp-site-header .cp-header-icon{
        width:40px !important;
        height:40px !important;
    }

    .cp-site-footer .cp-footer-grid{
        width:calc(100vw - 64px) !important;
        max-width:1240px !important;
        margin-left:auto !important;
        margin-right:auto !important;
    }
}


/* =========================================================
   V15 MOBILE SHELL + INTEGRATED LANGUAGE SELECTOR
   ========================================================= */

body.cp-global-shell,
body.cp-global-shell #page{
    overflow-x:clip;
}

body.cp-global-shell .cp-site-footer{
    overflow:hidden;
}

body.cp-global-shell .cp-footer-grid > *,
body.cp-global-shell .cp-footer-bottom .cp-shell > *{
    min-width:0;
}

body.cp-global-shell .cp-footer-address,
body.cp-global-shell .cp-footer-kicker,
body.cp-global-shell .cp-footer-phone,
body.cp-global-shell .cp-footer-links a,
body.cp-global-shell .cp-footer-search p{
    overflow-wrap:anywhere;
    word-break:normal;
}

body.cp-global-shell .cp-footer-language{
    min-width:0;
    display:flex;
    align-items:center;
    justify-content:center;
}

/* Weglot becomes part of the footer instead of covering page content. */
body.cp-global-shell .cp-footer-language .weglot-container,
body.cp-global-shell .cp-footer-language .wg-default,
body.cp-global-shell .cp-footer-language .country-selector,
body.cp-global-shell .cp-footer-language .cp-language-integrated{
    position:relative !important;
    inset:auto !important;
    top:auto !important;
    right:auto !important;
    bottom:auto !important;
    left:auto !important;
    transform:none !important;
    z-index:5 !important;
    width:auto !important;
    max-width:100% !important;
    margin:0 !important;
}

body.cp-global-shell .cp-footer-language a{
    color:inherit;
}

@media(max-width:767px){
    body.cp-global-shell .cp-site-footer .cp-shell{
        width:100% !important;
        max-width:100% !important;
        padding-left:22px !important;
        padding-right:22px !important;
    }

    body.cp-global-shell .cp-footer-grid{
        grid-template-columns:minmax(0,1fr) minmax(0,1fr);
        gap:28px 22px;
        padding-top:38px;
        padding-bottom:34px;
    }

    body.cp-global-shell .cp-footer-brand{
        width:100%;
        max-width:100%;
        padding-bottom:22px;
    }

    body.cp-global-shell .cp-footer-wordmark-main{
        font-size:19px;
        line-height:1.05;
        letter-spacing:.045em;
    }

    body.cp-global-shell .cp-footer-wordmark-sub{
        font-size:7px;
    }

    body.cp-global-shell .cp-footer-kicker{
        max-width:100%;
        margin-top:18px;
        font-size:20px;
        line-height:1.18;
    }

    body.cp-global-shell .cp-footer-phone{
        max-width:100%;
        font-size:16px;
        line-height:1.3;
    }

    body.cp-global-shell .cp-footer-muted,
    body.cp-global-shell .cp-footer-address,
    body.cp-global-shell .cp-footer-search p{
        font-size:13px;
        line-height:1.5;
    }

    body.cp-global-shell .cp-footer-address{
        max-width:520px;
        margin-top:14px;
    }

    body.cp-global-shell .cp-footer-links{
        width:100%;
    }

    body.cp-global-shell .cp-footer-links h2,
    body.cp-global-shell .cp-footer-search h2{
        font-size:10px;
        letter-spacing:.14em;
    }

    body.cp-global-shell .cp-footer-links a{
        font-size:12px;
        line-height:1.4;
    }

    body.cp-global-shell .cp-footer-search{
        width:100%;
        padding-top:22px;
        padding-bottom:0;
    }

    body.cp-global-shell .cp-product-search-footer{
        width:100%;
        max-width:100%;
    }

    body.cp-global-shell .cp-product-search-footer input[type="search"]{
        min-width:0;
        padding-right:62px;
        font-size:13px;
    }

    body.cp-global-shell .cp-product-search-footer button{
        width:56px;
    }

    body.cp-global-shell .cp-footer-bottom .cp-shell{
        min-height:0;
        padding-top:18px !important;
        padding-bottom:22px !important;
        gap:12px;
    }

    body.cp-global-shell .cp-footer-language{
        order:2;
        width:100%;
        margin:2px 0;
    }

    body.cp-global-shell .cp-footer-bottom .cp-shell > span:first-child{
        order:1;
    }

    body.cp-global-shell .cp-footer-bottom .cp-shell > span:last-child{
        order:3;
    }

    /* Weglot is no longer a floating obstacle. */
    body.cp-global-shell .cp-footer-language .weglot-container,
    body.cp-global-shell .cp-footer-language .wg-default,
    body.cp-global-shell .cp-footer-language .country-selector,
    body.cp-global-shell .cp-footer-language .cp-language-integrated{
        display:inline-block !important;
        width:auto !important;
        max-width:240px !important;
    }

    /* Back to top no longer needs to dodge a floating language box. */
    body.cp-global-shell #ast-scroll-top{
        right:14px !important;
        bottom:18px !important;
    }
}

@media(max-width:430px){
    body.cp-global-shell .cp-site-footer .cp-shell{
        padding-left:18px !important;
        padding-right:18px !important;
    }

    body.cp-global-shell .cp-footer-grid{
        gap:26px 16px;
    }

    body.cp-global-shell .cp-footer-kicker{
        font-size:19px;
    }

    body.cp-global-shell .cp-footer-phone{
        font-size:15px;
    }
}

@media(max-width:350px){
    body.cp-global-shell .cp-footer-grid{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   V15.1 SHELL POLISH
   ========================================================= */

body.cp-global-shell #ast-scroll-top{
    background:#b79a58 !important;
    color:#173d2d !important;
    border:1px solid rgba(23,61,45,.14) !important;
    box-shadow:0 6px 18px rgba(23,61,45,.10) !important;
}

body.cp-global-shell #ast-scroll-top *,
body.cp-global-shell #ast-scroll-top svg,
body.cp-global-shell #ast-scroll-top path{
    color:#173d2d !important;
    fill:#173d2d !important;
    stroke:#173d2d !important;
}

body.cp-global-shell .cp-footer-language{
    color:#173d2d !important;
}

body.cp-global-shell .cp-footer-language a,
body.cp-global-shell .cp-footer-language .wgcurrent a,
body.cp-global-shell .cp-footer-language .weglot_choice,
body.cp-global-shell .cp-footer-language .country-selector a{
    color:#173d2d !important;
    opacity:1 !important;
}

body.cp-global-shell .cp-footer-language .wgcurrent a span,
body.cp-global-shell .cp-footer-language .weglot_choice span,
body.cp-global-shell .cp-footer-language .country-selector a span{
    color:#173d2d !important;
    opacity:1 !important;
    visibility:visible !important;
}


/* V15.2: explicit language label inside the integrated Weglot control. */
body.cp-global-shell .cp-footer-language{
    position:relative !important;
}

body.cp-global-shell .cp-language-current-label{
    position:absolute;
    z-index:8;
    left:58px;
    top:50%;
    transform:translateY(-50%);
    color:#173d2d !important;
    font-size:14px;
    font-weight:500;
    line-height:1;
    pointer-events:none;
    white-space:nowrap;
}

@media(max-width:767px){
    body.cp-global-shell .cp-language-current-label{
        left:62px;
        font-size:15px;
    }
}
