:root {
    --cm-pink:#edc6e6;
    --cm-pink-2:#d99fcb;
    --cm-pink-soft:#faedf7;
    --cm-cream:#fffaf7;
    --cm-white:#ffffff;
    --cm-black:#171317;
    --cm-grey:#776e75;
    --cm-border:rgba(67,43,60,.12);
    --cm-shadow:0 24px 70px rgba(63,32,54,.10);
}

/* ===============================
   GENERAL
================================ */

body {
    overflow-x:hidden;
}

::selection {
    background:var(--cm-pink);
    color:var(--cm-black);
}

.btn {
    position:relative;
    overflow:hidden;
}

.btn:before {
    content:"";
    position:absolute;
    inset:0;
    background:rgba(255,255,255,.11);
    transform:translateX(-110%);
    transition:.35s ease;
}

.btn:hover:before {
    transform:translateX(0);
}

/* ===============================
   TOP BAR
================================ */

.chant-topbar {
    justify-content:space-between;
    padding-left:max(22px,calc((100vw - 1260px)/2));
    padding-right:max(22px,calc((100vw - 1260px)/2));
}

.cm-top-left,
.cm-top-right {
    display:flex;
    align-items:center;
    gap:18px;
}

.chant-topbar a {
    color:white;
    opacity:.8;
}

.chant-topbar a:hover {
    opacity:1;
}

/* ===============================
   HEADER
================================ */

.site-header {
    box-shadow:0 10px 40px rgba(40,25,35,.035);
}

.header-actions {
    gap:8px;
}

.header-action {
    background:rgba(255,255,255,.8);
    transition:.2s ease;
}

.header-action:hover {
    background:var(--cm-pink-soft);
}

.header-action svg {
    width:18px;
    height:18px;
    display:block;
}

.cart-count {
    box-shadow:0 0 0 3px var(--cm-cream);
}

.search-toggle {
    border:1px solid var(--cm-border);
    min-width:42px;
    height:42px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:white;
    cursor:pointer;
}

/* ===============================
   SEARCH OVERLAY
================================ */

.cm-search-overlay {
    position:fixed;
    inset:0;
    z-index:5000;
    padding:120px 20px 30px;
    background:rgba(20,15,19,.84);
    backdrop-filter:blur(16px);
    opacity:0;
    visibility:hidden;
    transition:.25s ease;
}

.cm-search-overlay.open {
    opacity:1;
    visibility:visible;
}

.cm-search-box {
    width:min(760px,100%);
    margin:auto;
    padding:34px;
    border-radius:30px;
    background:var(--cm-cream);
    box-shadow:0 40px 100px rgba(0,0,0,.25);
    transform:translateY(-12px);
    transition:.3s;
}

.cm-search-overlay.open .cm-search-box {
    transform:translateY(0);
}

.cm-search-head {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-bottom:22px;
}

.cm-search-head h2 {
    margin:0;
    font-size:36px;
}

.cm-search-close {
    width:42px;
    height:42px;
    border:1px solid var(--cm-border);
    background:white;
    border-radius:50%;
    cursor:pointer;
    font-size:25px;
}

.cm-search-form {
    position:relative;
}

.cm-search-form input {
    width:100%;
    min-height:62px;
    border:1px solid var(--cm-border);
    border-radius:999px;
    background:white;
    padding:0 150px 0 24px;
    font:inherit;
    outline:none;
}

.cm-search-form input:focus {
    border-color:var(--cm-pink-2);
    box-shadow:0 0 0 4px rgba(237,198,230,.32);
}

.cm-search-form button {
    position:absolute;
    right:6px;
    top:6px;
    bottom:6px;
    width:128px;
    border:0;
    border-radius:999px;
    color:white;
    background:var(--cm-black);
    font-weight:700;
    cursor:pointer;
}

.cm-search-links {
    margin-top:20px;
    color:var(--cm-grey);
    font-size:13px;
}

.cm-search-links a {
    display:inline-flex;
    padding:7px 12px;
    margin:8px 5px 0 0;
    border-radius:999px;
    border:1px solid var(--cm-border);
    background:white;
}

/* ===============================
   HERO
================================ */

.home-hero {
    min-height:min(780px,calc(100vh - 115px));
}

.hero-copy h1 {
    letter-spacing:-.04em;
}

.hero-copy h1 span {
    color:#a96e9b;
    font-style:italic;
}

.hero-art:before {
    content:"";
    position:absolute;
    right:15px;
    top:35px;
    width:420px;
    height:420px;
    border-radius:50%;
    background:
        radial-gradient(
            circle at 34% 28%,
            rgba(255,255,255,.98),
            rgba(249,222,242,.95) 27%,
            rgba(231,181,219,.92) 67%,
            rgba(212,151,197,.94)
        );
    box-shadow:
        inset 0 0 80px rgba(255,255,255,.55),
        0 35px 100px rgba(122,64,108,.17);
}

.hero-card {
    z-index:2;
}

.hero-art:hover .hero-card.one {
    transform:rotate(-3deg) translateY(-7px);
}

.hero-art:hover .hero-card.two {
    transform:rotate(5deg) translateY(-8px);
}

.hero-art:hover .hero-card.three {
    transform:rotate(0deg) translateY(-7px);
}

/* ===============================
   OCCASIONS
================================ */

.occasion-card {
    isolation:isolate;
}

.occasion-card:after {
    content:"↗";
    position:absolute;
    top:24px;
    right:24px;
    z-index:3;
    width:44px;
    height:44px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.5);
    background:rgba(255,255,255,.10);
    backdrop-filter:blur(8px);
    display:flex;
    align-items:center;
    justify-content:center;
    transition:.25s;
}

.occasion-card:hover:after {
    color:var(--cm-black);
    background:white;
}

/* ===============================
   DELICACIES
================================ */

.delicacy-art {
    position:relative;
    overflow:hidden;
}

.delicacy-art:after {
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(
            120deg,
            transparent 15%,
            rgba(255,255,255,.55) 46%,
            transparent 75%
        );
    transform:translateX(-130%);
    transition:.7s;
}

.delicacy-card:hover .delicacy-art:after {
    transform:translateX(130%);
}

/* ===============================
   SHOP HERO
================================ */

.cm-shop-hero {
    position:relative;
    overflow:hidden;
    padding:100px 0 80px;
    background:
        radial-gradient(
            circle at 82% 25%,
            rgba(237,198,230,.95),
            transparent 31%
        ),
        linear-gradient(135deg,#fffaf7,#fff2fb);
}

.cm-shop-hero:after {
    content:"Chant M";
    position:absolute;
    right:-20px;
    bottom:-95px;
    font-family:"Allura",cursive;
    font-size:300px;
    color:rgba(125,67,109,.055);
    pointer-events:none;
}

.cm-shop-copy {
    position:relative;
    z-index:2;
    max-width:720px;
}

.cm-shop-copy p {
    color:var(--cm-grey);
    font-size:18px;
    max-width:620px;
}

/* ===============================
   SHOP CATEGORIES
================================ */

.cm-shop-categories {
    padding:70px 0 10px;
}

.cm-category-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px;
}

.cm-category {
    position:relative;
    overflow:hidden;
    min-height:270px;
    padding:27px;
    display:flex;
    align-items:flex-end;
    border:1px solid var(--cm-border);
    border-radius:26px;
    transition:.3s ease;
}

.cm-category:nth-child(1) {
    background:linear-gradient(145deg,#f4d2e9,#fff9f4);
}

.cm-category:nth-child(2) {
    background:linear-gradient(145deg,#f6dfc7,#f4d5eb);
}

.cm-category:nth-child(3) {
    background:linear-gradient(145deg,#faedf6,#e9c3de);
}

.cm-category:nth-child(4) {
    background:linear-gradient(145deg,#efd1e5,#fff7ed);
}

.cm-category:nth-child(5) {
    background:linear-gradient(145deg,#f7eadf,#ecc7e1);
}

.cm-category:nth-child(6) {
    background:linear-gradient(145deg,#e8c5dd,#f9e9d8);
}

.cm-category:before {
    content:"";
    position:absolute;
    right:-35px;
    top:-35px;
    width:165px;
    height:165px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.85);
}

.cm-category:after {
    content:"↗";
    position:absolute;
    right:22px;
    top:22px;
    width:42px;
    height:42px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:rgba(255,255,255,.55);
    border:1px solid rgba(255,255,255,.85);
}

.cm-category:hover {
    transform:translateY(-6px);
    box-shadow:var(--cm-shadow);
}

.cm-category-content {
    position:relative;
    z-index:2;
}

.cm-category h3 {
    margin-bottom:5px;
    font-size:31px;
}

.cm-category span {
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.08em;
    font-weight:700;
}

/* ===============================
   EMPTY SHOP
================================ */

.cm-empty-shop {
    text-align:center;
    padding:75px 30px;
    border:1px solid var(--cm-border);
    border-radius:30px;
    background:
        radial-gradient(
            circle at 50% 0,
            rgba(237,198,230,.30),
            transparent 45%
        ),
        white;
}

.cm-empty-icon {
    width:80px;
    height:80px;
    margin:0 auto 20px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--cm-pink-soft);
    font-size:34px;
}

.cm-empty-shop h2 {
    font-size:40px;
    margin-bottom:10px;
}

.cm-empty-shop p {
    max-width:620px;
    margin:0 auto 26px;
    color:var(--cm-grey);
}

/* ===============================
   PRODUCTS
================================ */

.woocommerce ul.products li.product {
    overflow:hidden;
}

.woocommerce ul.products li.product img {
    transition:.45s ease;
}

.woocommerce ul.products li.product:hover img {
    transform:scale(1.025);
}

.woocommerce ul.products li.product .button {
    width:calc(100% - 20px);
    justify-content:center;
    text-align:center;
}

.woocommerce div.product div.images img {
    border-radius:24px;
}

.woocommerce div.product .summary {
    padding-top:15px;
}

.woocommerce div.product form.cart {
    margin-top:28px;
}

.woocommerce div.product form.cart .button {
    min-height:50px;
    padding:0 28px;
}

.woocommerce-tabs {
    margin-top:60px;
}

/* ===============================
   CART
================================ */

.woocommerce-cart-form,
.cart_totals {
    box-shadow:0 18px 55px rgba(44,28,40,.05);
}

.woocommerce table.shop_table {
    border-color:var(--cm-border);
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
    padding:16px;
}

/* ===============================
   CHECKOUT
================================ */

.woocommerce-checkout .col2-set {
    display:grid;
    grid-template-columns:1fr 1fr;
    width:100%;
    gap:25px;
}

.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
    width:100%;
    float:none;
}

.woocommerce-billing-fields,
.woocommerce-additional-fields,
.woocommerce-checkout-review-order {
    box-shadow:0 18px 55px rgba(44,28,40,.05);
}

#order_review_heading {
    margin-top:45px;
}

/* ===============================
   ACCOUNT
================================ */

.woocommerce-account .woocommerce {
    display:grid;
    grid-template-columns:250px 1fr;
    gap:25px;
}

.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
    width:auto;
    float:none;
}

.woocommerce-MyAccount-navigation ul {
    list-style:none;
    padding:0;
    margin:0;
}

.woocommerce-MyAccount-navigation li a {
    display:block;
    padding:11px 7px;
    border-bottom:1px solid var(--cm-border);
}

/* ===============================
   FLOATING WHATSAPP
================================ */

.cm-whatsapp {
    position:fixed;
    z-index:1400;
    right:22px;
    bottom:22px;
    min-height:55px;
    padding:0 19px 0 13px;
    border-radius:999px;
    background:var(--cm-black);
    color:white !important;
    box-shadow:0 20px 55px rgba(0,0,0,.20);
    display:flex;
    align-items:center;
    gap:10px;
    font-size:13px;
    font-weight:700;
    transition:.25s;
}

.cm-whatsapp:hover {
    transform:translateY(-4px);
}

.cm-whatsapp-circle {
    width:32px;
    height:32px;
    border-radius:50%;
    background:var(--cm-pink);
    color:var(--cm-black);
    display:flex;
    justify-content:center;
    align-items:center;
}

.cm-whatsapp svg {
    width:18px;
    height:18px;
}

/* ===============================
   404
================================ */

.cm-404 {
    min-height:68vh;
    display:flex;
    align-items:center;
    text-align:center;
}

.cm-404-inner {
    max-width:720px;
    margin:auto;
}

.cm-404-number {
    font-family:"Cormorant Garamond",serif;
    font-size:clamp(120px,22vw,230px);
    color:var(--cm-pink);
    line-height:.7;
}

/* ===============================
   MOBILE
================================ */

@media (max-width:1050px) {

    .cm-top-left {
        display:none;
    }

    .chant-topbar {
        justify-content:center;
    }

    .cm-category-grid {
        grid-template-columns:repeat(2,1fr);
    }

    .woocommerce-account .woocommerce {
        grid-template-columns:1fr;
    }
}

@media (max-width:760px) {

    .chant-topbar {
        font-size:9px;
        min-height:34px;
    }

    .cm-top-right {
        gap:8px;
    }

    .search-toggle,
    .header-action {
        min-width:38px;
        width:38px;
        height:38px;
    }

    .account-action {
        display:none;
    }

    .cm-search-overlay {
        padding-top:80px;
    }

    .cm-search-box {
        padding:24px 18px;
        border-radius:22px;
    }

    .cm-search-form input {
        padding-right:20px;
    }

    .cm-search-form button {
        position:static;
        width:100%;
        min-height:50px;
        margin-top:10px;
    }

    .hero-art:before {
        width:300px;
        height:300px;
        right:0;
    }

    .cm-shop-hero {
        padding:70px 0 55px;
    }

    .cm-category-grid {
        grid-template-columns:1fr;
    }

    .cm-category {
        min-height:220px;
    }

    .woocommerce-checkout .col2-set {
        grid-template-columns:1fr;
    }

    .cm-whatsapp {
        width:52px;
        height:52px;
        min-height:52px;
        padding:0;
        justify-content:center;
        right:14px;
        bottom:14px;
    }

    .cm-whatsapp-text {
        display:none;
    }

    .cm-whatsapp-circle {
        background:transparent;
        color:white;
    }
}

/* CHANTM_BRAND_LOGO_BEGIN */

.chant-logo:has(.custom-logo) {
    display:flex;
    align-items:center;
}

.chant-logo .custom-logo {
    display:block;
    width:auto;
    height:auto;
    max-width:165px;
    max-height:66px;
    object-fit:contain;
}

.mobile-nav .chant-logo .custom-logo {
    max-width:145px;
    max-height:58px;
}

@media (max-width:760px) {

    .chant-logo .custom-logo {
        max-width:132px;
        max-height:54px;
    }

}

/* CHANTM_BRAND_LOGO_END */
