/*
Theme Name: Skin by Marry
Theme URI: www.wavenity.com
Author: Wavenity Marketing
Author URI: https://www.wavenity.com
Version: 1.0
Text Domain: www.skinbymarry.md
*/

:root {
    --purple: #5E4273;
    --purple-dark: #4a3359;
    --purple-light: #7d5f94;
    --red-hover: #d4402f;
    --dark: #0A1618;
}

* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

html {
    font-size: 62.5%;
}

a {
    text-decoration: none;
}

body {
    color: black;
    font-family: "Manrope", sans-serif;
    font-size: 1.8rem;
    overflow-x: hidden;
}

h1 {
    font-size: 6rem;
    line-height: 70px;
    font-weight: 600;
    margin: 0;
    padding: 0;
}

h2 {
    font-family: "Libre Baskerville", serif;
    font-size: 4.8rem;
    font-weight: 600;
    margin: 0;
    padding: 0;
}

h2 span{
    color: var(--purple);
}

h3 {
    font-size: 3rem;
    margin: 0;
    padding: 0;
}

h4 {
    font-size: 2.5rem;
    margin: 0;
    padding: 0;
}

h5 {
    font-size: 1.8rem;
    margin: 0;
    padding: 0;
    line-height: 30px;
}

p {
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 30px;
    margin: 0;
    padding: 0;
}

dl, ol, ul {
    margin-bottom: 0;
}

ul {
    font-size: 1.8rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

img {
    width: 100%;
    height: auto;
    display: block;
}

.container {
    max-width: 1470px;
    padding: 0 15px;
}

/* Dividers */

.mt-120 {
    margin-top: 120px;
}

.mb-120 {
    margin-bottom: 120px;
}

.grid-2 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}

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

.grid-4 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
}

.grid-5 {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 30px;
}

.block_title {
    margin-bottom: 50px;
}

.block_title p {
    margin-top: 15px;
}

.main_button {
    display: inline-block;
    background: var(--red);
    color: #fff;
    padding: 15px 30px;
    font-size: 1.8rem;
    font-weight: 500;
    transition: all 0.3s ease;
    border-radius: 10px;
}

.main_button:hover {
    background: red;
    color: #fff;
    transform: translateY(-3px);
}

.outline_button {
    background: #1a1a2e;
    border: 2px solid #1a1a2e;
    color: #fff;
}

.outline_button:hover {
    background: #0f0f0f !important;
    border-color: #0f0f0f;
    color: #fff;
}

.hero_content {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    z-index: 2;
    text-align: center;
    color: #fff;
}

.hero_content h1 {
    text-transform: uppercase;
}

.hero_right .d-flex {
    margin-top: 15px;
    margin-bottom: 10px;
    gap: 10px;
}

/* ===================== Top Bar ===================== */

.top_bar {
    padding: 8px 0;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1001;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.top_bar .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.top_bar__left,
.top_bar__right {
    display: flex;
    align-items: center;
    gap: 20px;
}

.top_bar__item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: rgba(255, 255, 255, 0.85);
    font-size: 1.3rem;
    font-weight: 500;
    text-decoration: none;
    transition: color 0.3s ease;
    white-space: nowrap;
}

.top_bar__item:hover {
    color: #fff;
}

.top_bar__item svg {
    flex-shrink: 0;
    opacity: 0.7;
}

.top_bar.is-hidden {
    transform: translateY(-100%);
    opacity: 0;
    pointer-events: none;
    transition: all 0.3s ease;
}

/* ===================== Navbar ===================== */

.navbar__menu {
    position: absolute;
    top: 37px;
    left: 0;
    width: 100%;
    z-index: 1000;
    transition: all 0.3s ease;
    padding: 12px 0;
    overflow: visible;
}

.navbar__menu.is-sticky {
    position: fixed;
    top: 0;
    background: rgba(93, 65, 114, 0.29);
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.2);
}

.navbar__menu .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: nowrap;
    gap: 30px;
    margin: 0 auto;
}

.mega-menu .container {
    display: block;
}

.main-logo {
    flex-shrink: 0;
}

.main-logo span {
    font-size: 1.8rem;
    font-weight: 600;
    color: var(--blue);
    margin-left: 8px;
}

.main-logo a {
    display: flex;
    align-items: center;
}

.header_logo {
    max-height: 60px;
    width: auto;
    border-radius: 0;
}

.menu_container {
    display: flex;
    align-items: center;
    margin-left: auto;
}

.menu_container ul {
    display: flex;
    align-items: center;
    gap: 5px;
}

.menu_container ul li a {
    display: block;
    padding: 10px 16px;
    color: rgba(255, 255, 255, 0.9);
    font-size: 1.5rem;
    font-weight: 500;
    border-radius: 0;
    background: transparent;
    transition: color 0.3s ease;
    position: relative;
    white-space: nowrap;
}

.menu_container ul li a:hover,
.menu_container ul li.current-menu-item a,
.menu_container ul li.current_page_item a,
.menu_container ul li.active-section a {
    color: #fff;
    background: transparent;
}

.menu_container ul li a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 16px;
    right: 16px;
    height: 2px;
    background: #fff;
    border-radius: 1px;
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 0.3s ease;
}

.menu_container ul li a:hover::after,
.menu_container ul li.current-menu-item a::after,
.menu_container ul li.current_page_item a::after,
.menu_container ul li.active-section a::after {
    transform: scaleX(1);
}

/* Sub-menu */
.menu_container ul li {
    position: relative;
}

.menu_container ul ul.sub-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    flex-direction: column;
    background: #fff;
    min-width: 220px;
    border-radius: 12px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.12);
    padding: 10px 0;
    gap: 0;
    z-index: 100;
}

.menu_container ul li:hover > ul.sub-menu {
    display: flex;
}

.menu_container ul ul.sub-menu li a {
    padding: 10px 20px;
    font-size: 1.5rem;
    border-radius: 0;
    white-space: nowrap;
    color: #2d3436;
}

.menu_container ul ul.sub-menu li a::after {
    display: none;
}

.menu_container ul ul.sub-menu li a:hover {
    background: rgba(0, 0, 0, 0.05);
    color: #E84C3D;
}

/* Hamburger */
.hamburger {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 6px;
    width: 44px;
    height: 44px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    border-radius: 8px;
    transition: background 0.3s ease;
    z-index: 1002;
}

.hamburger:hover {
    background: rgba(255, 255, 255, 0.1);
}

.hamburger__line {
    display: block;
    width: 24px;
    height: 2.5px;
    background: #fff;
    border-radius: 2px;
    transition: all 0.3s ease;
}

.hamburger.active .hamburger__line:nth-child(1) {
    transform: translateY(8.5px) rotate(45deg);
}

.hamburger.active .hamburger__line:nth-child(2) {
    opacity: 0;
}

.hamburger.active .hamburger__line:nth-child(3) {
    transform: translateY(-8.5px) rotate(-45deg);
}

/* ===================== Hero Partners Bar ===================== */

.hero_section {
    position: relative;
}

.hero_partners {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    display: flex;
    align-items: flex-end;
    z-index: 10;
}

.hero_partners__label {
    background: #E53935;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
    padding: 32px 50px 32px max(15px, calc((100vw - 1470px) / 2 + 15px));
    width: 35%;
}

.hero_partners__label span {
    color: #FFF;
    font-size: 4rem;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
}

.hero_partners__logos {
    background: #0A1618;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 50px;
    padding: 45px 50px 45px 100px;
    flex-grow: 1;
    margin-left: -80px;
    position: relative;
    z-index: 2;
    clip-path: polygon(6% 0, 100% 0%, 100% 100%, 0% 100%);
}

.hero_partners__logos img {
    height: 45px;
    width: auto;
    object-fit: contain;
    filter: brightness(0) invert(1);
    opacity: 0.85;
    transition: opacity 0.3s ease;
}

.hero_partners__logos img:hover {
    opacity: 1;
}

/* ===================== Team Section ===================== */

.team_nav {
    display: flex;
    gap: 8px;
}

.team_nav button {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    border: 1px solid #ddd;
    background: #fff;
    color: var(--dark);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
}

.team_nav button:hover {
    background: var(--dark);
    color: #fff;
    border-color: var(--dark);
}

.team_nav button.swiper-button-disabled {
    opacity: 0.4;
    cursor: default;
    pointer-events: none;
}

.team_card {
    position: relative;
    border-radius: 20px;
    overflow: hidden;
    background: #edeef0;
}

.team_card > img {
    width: 100%;
    height: 400px;
    object-fit: cover;
    object-position: top;
    display: block;
    border-radius: 14px 14px 0 0;
}

.team_card::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(to bottom, transparent 50%, rgba(0, 0, 0, 0.15) 100%);
    border-radius: 20px;
    pointer-events: none;
}

.team_card__name {
    position: absolute;
    bottom: 12px;
    left: 12px;
    right: 12px;
    padding: 14px 24px;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.90);
    font-size: 1.6rem;
    font-weight: 600;
    color: var(--dark);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    z-index: 10;
}

/* ===================== Materials Slider ===================== */

.materials_section .wrapper_materials {
    max-width: 100%;
    margin: 0;
    padding-right: 0;
    padding-left: max(15px, calc((100vw - 1470px) / 2 + 15px));
}

.team_wrapper {
    max-width: 100%;
    margin: 0;
    padding-right: 0;
    padding-left: max(15px, calc((100vw - 1470px) / 2 + 15px));
}

.materials_nav {
    display: flex;
    gap: 8px;
}

.materials_nav button {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    border: 1px solid #ddd;
    background: #fff;
    color: var(--dark);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
}

.materials_nav button:hover {
    background: var(--dark);
    color: #fff;
    border-color: var(--dark);
}

.materials_nav button.swiper-button-disabled {
    opacity: 0.4;
    cursor: default;
    pointer-events: none;
}

/* ===================== Section Eyebrow Label ===================== */

.section_eyebrow {
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--purple);
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 12px;
}

/* ===================== Contact Info Section ===================== */

.contact_info_card {
    background: linear-gradient(135deg, #ede8f5 0%, #f7f4fb 100%);
    border-radius: 24px;
    padding: 50px;
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.contact_info_card__title {
    font-family: "Libre Baskerville", serif;
    font-size: 2.8rem;
    font-weight: 700;
    color: #1a1a1a;
    text-align: center;
}

.contact_info_card__items {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.contact_info_item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 14px;
}

.contact_info_item__icon {
    width: 62px;
    height: 62px;
    border-radius: 50%;
    background: var(--purple);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.contact_info_item__body {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.contact_info_item__label {
    display: block;
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--purple);
    text-transform: uppercase;
    letter-spacing: 1.5px;
}

.contact_info_item__value {
    font-size: 1.5rem;
    font-weight: 500;
    color: #1a1a1a;
    line-height: 1.6;
    text-decoration: none;
    display: block;
}

a.contact_info_item__value:hover {
    color: var(--purple);
}

.contact_info_card__social {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 18px;
    border-top: 1px solid rgba(94, 66, 115, 0.15);
    padding-top: 36px;
}

.contact_info_card__social > p {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--purple);
    letter-spacing: 2.5px;
    text-transform: uppercase;
    margin: 0;
}

.contact_social_buttons {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    justify-content: center;
}

.contact_social_btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 13px 30px;
    border-radius: 999px;
    font-size: 1.5rem;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.3s ease;
}

.contact_social_btn--instagram {
    background: var(--purple);
    color: #fff;
}

.contact_social_btn--instagram:hover {
    background: var(--purple-dark);
    color: #fff;
    transform: translateY(-2px);
}

.contact_social_btn--facebook {
    background: #1877F2;
    color: #fff;
}

.contact_social_btn--facebook:hover {
    background: #155dc3;
    color: #fff;
    transform: translateY(-2px);
}

@media (max-width: 991px) {
    .contact_info_card__items {
        grid-template-columns: repeat(2, 1fr);
        gap: 30px;
    }
    .contact_info_card {
        padding: 40px 30px;
    }
}

@media (max-width: 575px) {
    .contact_info_card__items {
        grid-template-columns: 1fr;
    }
    .contact_info_card {
        padding: 30px 20px;
        gap: 28px;
    }
    .contact_social_buttons {
        flex-direction: column;
        width: 100%;
    }
    .contact_social_btn {
        justify-content: center;
    }
}

/* ===================== Message / Contact Form Section ===================== */

.message_section__title {
    margin-bottom: 20px;
}

.message_section__desc {
    color: #555;
    font-size: 1.6rem;
    line-height: 1.75;
    margin-bottom: 28px;
}

.message_section__benefits {
    list-style: none;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.message_section__benefits li {
    font-size: 1.6rem;
    font-weight: 500;
    color: #333;
    padding-left: 26px;
    position: relative;
}

.message_section__benefits li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--purple);
}

.contact_form_card {
    background: #fff;
    border-radius: 20px;
    padding: 44px;
    box-shadow: 0 8px 40px rgba(94, 66, 115, 0.10);
}

/* ===================== Form Controls (shared) ===================== */

.form_group {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.form_label {
    font-size: 1.4rem;
    font-weight: 600;
    color: #333;
}

.form_label span {
    color: var(--purple);
}

.form_control {
    width: 100%;
    padding: 13px 16px;
    border: 1.5px solid #e0d8ec;
    border-radius: 10px;
    font-family: "Manrope", sans-serif;
    font-size: 1.5rem;
    color: #333;
    background: #fafafa;
    outline: none;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
    -webkit-appearance: none;
    appearance: none;
}

.form_control:focus {
    border-color: var(--purple);
    box-shadow: 0 0 0 3px rgba(94, 66, 115, 0.10);
    background: #fff;
}

.form_control::placeholder {
    color: #aaa;
    font-size: 1.4rem;
}

.form_select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235E4273' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    padding-right: 44px;
    cursor: pointer;
}

.form_textarea {
    resize: vertical;
    min-height: 130px;
    line-height: 1.6;
}

/* Chained selector — beats .pill_button's own shorthand padding (which is
   asymmetric 8/8/8/28px because .pill_button is designed to host an icon on
   the right). For a plain <input type="submit"> without icon child we want
   symmetric padding and a height that matches the icon-version pill buttons. */
.pill_button.contact_form__submit,
.pill_button.booking_form__submit {
    width: 100%;
    justify-content: center;
    font-size: 1.6rem;
    padding: 17px 32px;
    line-height: 1.2;
}

@media (max-width: 767px) {
    .contact_form_card {
        padding: 30px 22px;
    }
}

/* ===================== Map Section ===================== */

.map_info_card {
    background: #fff;
    border-radius: 20px;
    padding: 36px;
    box-shadow: 0 8px 40px rgba(94, 66, 115, 0.08);
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.map_info_card__header {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--purple);
    font-weight: 700;
    font-size: 1.8rem;
}

.map_info_card__address {
    font-size: 1.6rem;
    color: #444;
    line-height: 1.6;
    padding-left: 30px;
}

.map_info_card__hours {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding-left: 30px;
}

.map_info_card__hours p {
    font-size: 1.5rem;
    color: #555;
}

.map_info_card__btn {
    align-self: flex-start;
}

.map_info_card__transport {
    padding-left: 30px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: auto;
}

.map_info_card__transport > p {
    font-size: 1.4rem;
    color: #666;
    line-height: 1.5;
}

.map_transport_badges {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.map_transport_badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--purple);
    color: #fff;
    font-size: 1.4rem;
    font-weight: 700;
}

.map_embed {
    border-radius: 20px;
    overflow: hidden;
    height: 100%;
    min-height: 440px;
    box-shadow: 0 8px 40px rgba(94, 66, 115, 0.10);
}

.map_embed iframe {
    display: block;
    border: none;
    width: 100%;
    height: 100%;
    min-height: 440px;
}

@media (max-width: 767px) {
    .map_info_card {
        padding: 28px 20px;
    }
    .map_info_card__address,
    .map_info_card__hours,
    .map_info_card__transport {
        padding-left: 0;
    }
    .map_embed {
        min-height: 320px;
    }
    .map_embed iframe {
        min-height: 320px;
    }
}

/* ===================== Booking Section ===================== */

/* Editorial booking section — warm cream backdrop, asymmetric layout with
   numbered process on the left and a quietly-bordered form on the right.
   No SaaS-style card stacks, no purple gradient saccarin. */
.booking_section {
    background: #faf7f3;
    padding: 90px 0 110px;
}

.booking_section__header {
    max-width: 720px;
    margin: 0 auto 60px;
    text-align: center;
}

.booking_section__title {
    font-family: "Libre Baskerville", serif;
    font-size: clamp(3rem, 4.5vw, 4.4rem);
    font-weight: 600;
    line-height: 1.18;
    color: #1a1a1a;
    margin: 0 0 18px;
}

.booking_section__title span {
    color: var(--purple);
    font-style: italic;
}

.booking_section__lead {
    font-size: 1.55rem;
    line-height: 1.65;
    color: #4a4254;
    margin: 0;
}

/* ----- Left column: editorial intro + process ----- */
.booking_intro {
    padding-right: 20px;
}

.booking_intro__direct {
    display: flex;
    flex-direction: column;
    gap: 4px;
    text-decoration: none;
    padding: 18px 22px;
    border-radius: 8px;
    background: #fff;
    border: 1px solid rgba(94, 66, 115, 0.14);
    transition: border-color 0.25s ease, background 0.25s ease, transform 0.25s ease;
    margin-bottom: 36px;
}

.booking_intro__direct:hover {
    border-color: rgba(94, 66, 115, 0.35);
    background: #fffdfa;
    transform: translateY(-1px);
}

.booking_intro__direct-label {
    font-family: "Manrope", sans-serif;
    font-size: 1.15rem;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--purple);
    opacity: 0.7;
}

.booking_intro__direct-number {
    font-family: "Libre Baskerville", serif;
    font-size: 2.2rem;
    font-weight: 600;
    color: #2d2230;
    line-height: 1.1;
    letter-spacing: -0.5px;
}

.booking_intro__divider {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 24px;
    color: rgba(94, 66, 115, 0.55);
}

.booking_intro__divider::before,
.booking_intro__divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background: rgba(94, 66, 115, 0.18);
}

.booking_intro__divider span {
    font-family: "Libre Baskerville", serif;
    font-style: italic;
    font-size: 1.3rem;
    color: rgba(94, 66, 115, 0.7);
    flex-shrink: 0;
}

/* Numbered process (matches about_reasons editorial) */
.booking_process {
    list-style: none;
    margin: 0;
    padding: 0;
}

.booking_process__step {
    display: grid;
    grid-template-columns: 56px 1fr;
    gap: 22px;
    align-items: start;
    padding: 22px 0;
    border-bottom: 1px solid rgba(94, 66, 115, 0.12);
}

.booking_process__step:last-child {
    border-bottom: none;
}

.booking_process__num {
    font-family: "Libre Baskerville", serif;
    font-style: italic;
    font-size: 2.2rem;
    font-weight: 400;
    color: var(--purple);
    opacity: 0.55;
    line-height: 1;
    letter-spacing: 0.5px;
    padding-top: 4px;
}

.booking_process__body h5 {
    font-family: "Libre Baskerville", serif;
    font-size: 1.7rem;
    font-weight: 600;
    color: #1a1a1a;
    line-height: 1.3;
    margin: 0 0 6px;
}

.booking_process__body p {
    font-size: 1.4rem;
    line-height: 1.6;
    color: #5a4d62;
    margin: 0;
}

/* ----- Right column: quietly-bordered form ----- */
.booking_form_card {
    background: #fff;
    border-radius: 10px;
    padding: 36px 36px 32px;
    border: 1px solid rgba(94, 66, 115, 0.14);
    box-shadow: none;
}

.booking_form_card .form_label {
    font-family: "Manrope", sans-serif;
    font-size: 1.15rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #5a4d62;
    margin-bottom: 4px;
}

.booking_form_card .form_label span {
    color: var(--purple);
    letter-spacing: 0;
}

.booking_form_card .form_control {
    background: #faf7f3;
    border: 1px solid rgba(94, 66, 115, 0.16);
    border-radius: 8px;
    font-size: 1.5rem;
    padding: 13px 16px;
    transition: border-color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
}

.booking_form_card .form_control:focus {
    background: #fff;
    border-color: var(--purple);
    box-shadow: 0 0 0 3px rgba(94, 66, 115, 0.1);
}

.booking_form_card .form_control::placeholder {
    color: rgba(94, 66, 115, 0.45);
}

.booking_form__note {
    font-family: "Libre Baskerville", serif;
    font-style: italic;
    font-size: 1.3rem;
    color: #6b5470;
    margin-top: 14px;
    text-align: center;
}

/* Responsive */
@media (max-width: 991px) {
    .booking_intro {
        padding-right: 0;
    }

    .booking_form_card {
        padding: 30px 28px 26px;
    }
}

@media (max-width: 767px) {
    .booking_section {
        padding: 70px 0 90px;
    }

    .booking_section__header {
        margin-bottom: 40px;
    }

    .booking_intro__direct {
        padding: 16px 18px;
        margin-bottom: 28px;
    }

    .booking_intro__direct-number {
        font-size: 1.95rem;
    }

    .booking_process__step {
        grid-template-columns: 44px 1fr;
        gap: 16px;
        padding: 18px 0;
    }

    .booking_process__num {
        font-size: 1.85rem;
    }

    .booking_process__body h5 {
        font-size: 1.55rem;
    }

    .booking_form_card {
        padding: 26px 22px;
        border-radius: 8px;
    }
}

/* ===================== FAQ CTA Block ===================== */

.faq_cta {
    margin-top: 60px;
    background: linear-gradient(135deg, #ede8f5 0%, #f7f4fb 100%);
    border-radius: 24px;
    padding: 56px 50px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}

.faq_cta h3 {
    font-family: "Libre Baskerville", serif;
    font-size: 3.2rem;
    font-weight: 700;
    color: #1a1a1a;
}

.faq_cta p {
    font-size: 1.6rem;
    color: #666;
}

@media (max-width: 575px) {
    .faq_cta {
        padding: 40px 24px;
    }
    .faq_cta h3 {
        font-size: 2.6rem;
    }
}

.material_card {
    display: block;
    position: relative;
    border-radius: 16px;
    overflow: hidden;
    text-decoration: none;
    color: #fff;
}

.material_card > img {
    width: 100%;
    height: 397px;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.material_card:hover > img {
    transform: scale(1.05);
}

.material_content {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 20px;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.7) 0%, transparent 100%);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
    height: 100%;
}

/* ===================== Footer (Skin By Marry) ===================== */
.site-footer {
    background: #F9F8F9;
    padding: 60px 0 50px;
    color: #1f1f1f;
}

.site-footer__grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1.2fr 1.4fr;
    gap: 40px;
    align-items: start;
}

.site-footer__col--brand {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.site-footer__logo {
    display: inline-block;
    line-height: 0;
}

.site-footer__logo img {
    max-width: 170px;
    width: auto;
    height: auto;
}

.site-footer__logo-text {
    display: inline-flex;
    flex-direction: column;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 2.6rem;
    font-weight: 600;
    color: var(--purple);
    line-height: 1.1;
}

.site-footer__logo-text small {
    font-family: "Manrope", sans-serif;
    font-size: 1.1rem;
    font-weight: 500;
    letter-spacing: 4px;
    color: #9b8fb0;
    margin-top: 4px;
}

.site-footer__copy {
    font-size: 1.4rem;
    font-weight: 400;
    color: #8a8a8a;
    line-height: 1.5;
    margin: 0;
    max-width: 260px;
}

.site-footer__title {
    font-size: 1.6rem;
    font-weight: 600;
    color: #1a1a1a;
    margin: 0 0 18px;
    position: relative;
    padding-left: 16px;
}

.site-footer__title::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #1a1a1a;
}

.site-footer__links,
.site-footer__contact {
    display: flex;
    flex-direction: column;
    gap: 12px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.site-footer__links li a,
.site-footer__contact li a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #5a5a5a;
    font-size: 1.5rem;
    font-weight: 400;
    text-decoration: none;
    transition: color 0.25s ease;
}

.site-footer__links li a:hover,
.site-footer__contact li a:hover {
    color: var(--purple);
}

.site-footer__contact li a svg {
    color: var(--purple);
    flex-shrink: 0;
}

.site-footer__social {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 18px;
}

.site-footer__social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--purple);
    color: #fff;
    transition: all 0.25s ease;
}

.site-footer__social-link:hover {
    background: var(--purple-dark);
    color: #fff;
    transform: translateY(-2px);
}

.site-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    margin-top: 30px;
    padding-top: 20px;
    gap: 16px;
    flex-wrap: wrap;
}

.site-footer__payment {
    max-height: 28px;
    width: auto;
    object-fit: contain;
}

.site-footer__credit {
    font-size: 13px;
    color: var(--purple);
    margin: 0;
}

.site-footer__credit a {
    color: var(--purple);
    text-decoration: none;
    transition: color 0.2s;
}

.site-footer__credit a:hover {
    color: var(--purple-dark);
}

@media (max-width: 991px) {
    .site-footer__grid {
        grid-template-columns: 1fr 1fr;
        gap: 35px;
    }
}

@media (max-width: 575px) {
    .site-footer {
        padding: 40px 0 30px;
    }
    .site-footer__grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }
}

.material_content img {
    width: 40px;
    height: auto;
}

.material_content h3 {
    font-size: 1.6rem;
    font-weight: 600;
    color: #fff;
    margin: 0;
}

/* ===================== Steps Section ===================== */

.steps_section {
    padding: 80px 0;
}

.steps_wrapper {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
    position: relative;
}

.step_item {
    text-align: center;
    position: relative;
}

.step_icon {
    width: 100px;
    height: 100px;
    background: #F5F7FA;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 30px;
}

.step_icon svg {
    width: 48px;
    height: 48px;
}

.step_number {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 25px;
}

.step_number span {
    width: 44px;
    height: 44px;
    background: var(--red);
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    font-weight: 700;
    position: relative;
    z-index: 2;
}

/* Dashed line connecting the steps */
.step_item:not(:last-child) .step_number::after {
    content: '';
    position: absolute;
    top: 50%;
    left: calc(50% + 28px);
    width: calc(100% - 16px);
    border-top: 2px dashed var(--red);
    transform: translateY(-50%);
    z-index: 1;
}

.step_title {
    font-size: 2rem;
    font-weight: 700;
    color: var(--dark);
    margin-bottom: 12px;
}

.step_text {
    font-size: 1.6rem;
    font-weight: 400;
    color: #6B7280;
    line-height: 1.6;
    max-width: 340px;
    margin: 0 auto;
}

.partners_section .grid-4 {
    gap: 20px;
}

.partner_item {
    display: flex;
    padding: 39px 50px;
    justify-content: center;
    align-items: center;
    border-radius: 20px;
    border: 1px solid #E5E5E5;
    background: #FFF;
}

.about_left h1 {
    color: #0A1C20;
    font-size: 4.8rem;
    font-weight: 500;
    font-style: normal;
    line-height: 58px;
    margin-bottom: 25px;
}

.about_left p {
    color: #0A1C20;
    font-size: 1.8rem;
    font-style: normal;
    font-weight: 400;
    line-height: 28px;
}

.about_left h2 {
    margin-top: 30px;
    color: #333;
    font-size: 2.4rem;
    font-style: normal;
    font-weight: 600;
    line-height: 34px;
    margin-bottom: 20px;
}

.about_left ul li {
    position: relative;
    padding-left: 30px;
    color: #0A1C20;
    font-size: 18px;
    font-style: normal;
    font-weight: 400;
    line-height: 28px;
    margin-bottom: 20px;
}

.about_left ul li:last-child {
    margin-bottom: 0;
}

.about_left ul li::before {
    content: '';
    position: absolute;
    top: 3px;
    left: 0;
    width: 24px;
    height: 24px;
    background-image: url('./assets/images/mdi_tick-circle.svg');
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
}

.about_left a {
    display: inline-block;
    margin-top: 20px;
    padding: 12px 28px;
    background: var(--red);
    color: #fff;
    font-size: 1.8rem;
    font-weight: 500;
    border-radius: 8px;
    transition: all 0.3s ease;
}

.about_left a:hover {
    background: #d4402f;
    color: #fff;
    transform: translateY(-2px);
}

.about_right {
    padding-left: 40px;
}

.about_grid {
    margin-top: 21px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 23px;
}

.about_first_image {
    width: 100%;
    height: 355px;
    object-fit: cover;
    object-position: top;
    border-radius: 23px;
}

.about_grid img {
    height: 355px;
    object-fit: cover;
    border-radius: 23px;
}

.blog_section .grid-3 {
    gap: 30px;
}

.blog_item img {
    object-fit: cover;
    height: 250px;
    border-radius: 23px;
}

.blog_item h3 {
    margin-top: 12px;
    margin-bottom: 8px;
    color: #333;
    font-size: 2rem;
    font-style: normal;
    font-weight: 500;
    line-height: 30px;
}

.blog_item p {
    color: #304A5F;
    font-size: 1.6rem;
    font-style: normal;
    font-weight: 400;
    line-height: 26px;
}

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

.error-page {
    padding: 160px 0 120px;
    text-align: center;
    background: #f8f9fa;
    min-height: 100vh;
    display: flex;
    align-items: center;
}

.error-page__inner {
    max-width: 600px;
    margin: 0 auto;
}

.error-page__code {
    display: block;
    font-size: 16rem;
    font-weight: 700;
    line-height: 1;
    color: var(--red);
    margin-bottom: 20px;
}

.error-page__title {
    font-size: 3.6rem;
    font-weight: 600;
    color: var(--dark);
    margin-bottom: 15px;
}

.error-page__text {
    font-size: 1.8rem;
    color: #6c757d;
    margin-bottom: 40px;
}

.error-page__btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 32px;
    background: #E84C3D;
    color: #fff;
    font-size: 1.6rem;
    font-weight: 600;
    border-radius: 8px;
    text-decoration: none;
    transition: all 0.3s ease;
}

.error-page__btn:hover {
    background: #d4402f;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(232, 76, 61, 0.4);
}

.list_buttons{
    margin-top: 40px;
    display: flex;
    justify-content: center;
}

.hero_slider .swiper-slide img{
    object-fit: cover;
    height: 100vh;
}
/* ===================== Hero – Skin By Marry ===================== */

.hero {
    position: relative;
    width: 100%;
    /* dvh adapts to URL-bar visibility on mobile; vh kept as fallback for
       browsers older than Chrome 108 / Safari 15.4 / Firefox 101. */
    min-height: 100vh;
    min-height: 100dvh;
    /* overflow: clip on x only — lets the bottom wave bleed cleanly into the
       body's white background. Vertical clip on .hero would amputate the wave's
       bottom row at sub-pixel boundary and that's exactly what produced the
       "dunga". The image inside .hero__media is clipped by its own box. */
    overflow-x: clip;
    overflow-y: visible;
    isolation: isolate;
    background: #4a3754;
}

.hero__media {
    position: absolute;
    inset: 0;
    z-index: -2;
    overflow: hidden;        /* clip the cover-fit image to the media box */
}

.hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.hero__overlay {
    position: absolute;
    inset: 0;
    z-index: -1;
    /* Figma: #4A4A4A 40%  +  linear-gradient(#000 0% -> #5E4273 100%) 40% */
    background:
        linear-gradient(rgba(74, 74, 74, 0.4), rgba(74, 74, 74, 0.4)),
        linear-gradient(180deg, rgba(0, 0, 0, 0.4) 0%, rgba(94, 66, 115, 0.4) 100%);
}

.hero__inner {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 100vh;
    min-height: 100dvh;
    padding-top: 140px;
    padding-bottom: 160px;
}

/* Compact hero variant for inner pages (Servicii, Despre noi, etc.) */
.hero--page {
    min-height: 0;
}

.hero--page .hero__inner {
    min-height: 60vh;
    min-height: 60dvh;
    padding-top: 180px;
    padding-bottom: 120px;
}

.hero--page .hero__title {
    font-size: clamp(4.4rem, 6vw, 7.2rem);
    margin-bottom: 22px;
}

.hero--page .hero__subtitle {
    margin-bottom: 28px;
}

.hero--page .hero__wave svg {
    height: 80px;     /* slightly taller to compensate for the new viewBox 140 ratio */
}

/* Tablet */
@media (max-width: 991px) {
    .hero--page .hero__inner {
        min-height: 36vh;
        min-height: 36dvh;
        padding-top: 100px;
        padding-bottom: 60px;
    }
    .hero--page .hero__title {
        font-size: clamp(3.6rem, 6.5vw, 5.4rem);
        margin-bottom: 18px;
    }
    .hero--page .hero__subtitle {
        font-size: 1.5rem;
        margin-bottom: 24px;
    }
    .hero--page .hero__wave svg {
        height: 70px;
    }
}

/* Phablet / large phones */
@media (max-width: 767px) {
    .hero--page .hero__inner {
        min-height: 32vh;
        min-height: 32dvh;
        padding-top: 85px;
        padding-bottom: 50px;
    }
    .hero--page .hero__title {
        font-size: clamp(3.2rem, 8vw, 4.4rem);
        line-height: 1.05;
        margin-bottom: 14px;
    }
    .hero--page .hero__subtitle {
        font-size: 1.45rem;
        line-height: 1.5;
        margin-bottom: 20px;
        max-width: 100%;
    }
    .hero--page .hero__title br,
    .hero--page .hero__subtitle br {
        display: none;     /* line breaks chosen for desktop don't help here */
    }
    .hero--page .hero__wave svg {
        height: 60px;
    }
}

/* Phones — top_bar is hidden, navbar moves to top:0, so we can shrink padding-top */
@media (max-width: 575px) {
    .hero--page .hero__inner {
        min-height: 26vh;
        min-height: 26dvh;
        padding-top: 70px;
        padding-bottom: 35px;
    }
    .hero--page .hero__title {
        font-size: clamp(2.8rem, 9vw, 3.6rem);
        letter-spacing: -0.3px;
    }
    .hero--page .hero__subtitle {
        font-size: 1.4rem;
    }
    .hero--page .hero__cta {
        font-size: 1.4rem;
        padding: 6px 6px 6px 22px;
    }
    .hero--page .hero__wave svg {
        height: 40px;
    }
}

.hero__content {
    max-width: 640px;
    color: #fff;
}

.hero__title {
    font-family: "Cormorant Garamond", "Playfair Display", Georgia, serif;
    font-size: clamp(4.8rem, 7vw, 8.4rem);
    font-weight: 500;
    line-height: 1.02;
    letter-spacing: -0.5px;
    color: #fff;
    text-transform: none;
    margin: 0 0 28px;
    text-shadow: 0 2px 24px rgba(0, 0, 0, 0.25);
}

.hero__subtitle {
    font-family: "Manrope", sans-serif;
    font-size: 1.6rem;
    font-weight: 400;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.92);
    margin: 0 0 36px;
    max-width: 520px;
}

/* Pill button (purple with circular arrow) */
.pill_button {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    padding: 8px 8px 8px 28px;
    background: var(--purple);
    color: #fff;
    font-family: "Manrope", sans-serif;
    font-size: 1.5rem;
    font-weight: 500;
    border-radius: 999px;
    text-decoration: none;
    transition: all 0.3s ease;
    border: none;
    cursor: pointer;
    line-height: 1;
}

.pill_button > span:first-child {
    padding: 8px 0;
}

.pill_button__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #fff;
    color: var(--purple);
    transition: transform 0.3s ease;
    flex-shrink: 0;
}

.pill_button:hover {
    background: var(--purple-dark);
    color: #fff;
    transform: translateY(-2px);
}

.pill_button:hover .pill_button__icon {
    transform: translateX(3px);
}

/* Scroll-down indicator */
.hero__scroll {
    position: absolute;
    left: 50%;
    bottom: 70px;
    transform: translateX(-50%);
    width: 54px;
    height: 54px;
    border-radius: 50%;
    border: 1.5px solid rgba(255, 255, 255, 0.85);
    background: rgba(255, 255, 255, 0.05);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    z-index: 5;
    transition: all 0.3s ease;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    animation: heroScrollBounce 2.4s ease-in-out infinite;
}

.hero__scroll:hover {
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
    border-color: #fff;
}

@keyframes heroScrollBounce {
    0%, 100% { transform: translate(-50%, 0); }
    50%      { transform: translate(-50%, 8px); }
}

/* Bottom white wave — bleeds 2px into the body so the SVG's sub-pixel
   anti-aliased bottom edge falls into the white body bg, not on the section
   boundary where it would show as a thin line. */
.hero__wave {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -2px;
    width: 100%;
    line-height: 0;
    z-index: 4;
    pointer-events: none;
}

.hero__wave svg {
    display: block;
    width: 100%;
    height: 90px;
}

/* Header CTA pill (purple pill in navbar) */
.header_cta {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}

/* WooCommerce cart icon */
.header_cart {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    padding: 8px 20px 8px 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.15);
    border: 1.5px solid rgba(255, 255, 255, 0.35);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    color: #fff;
    text-decoration: none;
    font-size: 1.4rem;
    font-weight: 500;
    transition: all 0.25s ease;
    flex-shrink: 0;
}

.header_cart:hover {
    background: rgba(255, 255, 255, 0.25);
    border-color: rgba(255, 255, 255, 0.6);
    color: #fff;
    transform: translateY(-1px);
}

.header_cart__circle {
    position: relative;
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.25s ease;
}

.header_cart__circle svg {
    display: block;
}

.header_cart__label {
    font-size: 1.4rem;
    font-weight: 500;
    color: #fff;
    line-height: 1;
    letter-spacing: 0.02em;
}

.cart-count {
    position: absolute;
    top: -3px;
    right: -3px;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    background: #fff;
    color: var(--purple);
    border-radius: 999px;
    font-size: 1rem;
    font-weight: 700;
    line-height: 18px;
    text-align: center;
    display: none;
    pointer-events: none;
}

.cart-count.has-items {
    display: block;
}

.header_cta__order {
    background: var(--purple);
    color: #fff;
    border-radius: 999px;
    padding: 8px 8px 8px 22px;
    gap: 10px;
    font-size: 1.4rem;
    font-weight: 500;
    box-shadow: 0 8px 22px rgba(60, 30, 100, 0.35);
}

.header_cta__order:hover {
    background: var(--purple-dark);
    box-shadow: 0 10px 26px rgba(60, 30, 100, 0.45);
    transform: translateY(-2px);
}

/* Responsive */
@media (max-width: 991px) {
    .hero,
    .hero__inner {
        min-height: 70vh;
        min-height: 70dvh;
    }
    .hero__inner {
        padding-top: 95px;
        padding-bottom: 85px;
    }
    .hero__title {
        font-size: clamp(4rem, 9vw, 6.4rem);
    }
}

@media (max-width: 575px) {
    .hero,
    .hero__inner {
        min-height: 60vh;
        min-height: 60dvh;
    }
    .hero__inner {
        padding-top: 75px;
        padding-bottom: 75px;
    }
    .hero__title br {
        display: none;
    }
    .hero__subtitle {
        font-size: 1.5rem;
    }
    .hero__subtitle br {
        display: none;
    }
    .hero__scroll {
        bottom: 50px;
        width: 46px;
        height: 46px;
    }
    .hero__wave svg {
        height: 60px;
    }
}

/* Mobile landscape — phones rotated; viewport is short.
   Without this, padding (top+bottom) eats most of the available height. */
@media (max-width: 991px) and (orientation: landscape) and (max-height: 500px) {
    .hero,
    .hero__inner {
        min-height: 100dvh;
    }
    .hero__inner {
        padding-top: 90px;
        padding-bottom: 70px;
    }
    .hero--page .hero__inner {
        min-height: max(280px, 100dvh);
        padding-top: 85px;
        padding-bottom: 50px;
    }
}

/* ===================== Services Section ===================== */

.services_left{
    padding-right: 60px;
}

.services_left img{
    width: 100%;
    height: 800px;
    object-fit: contain;
}

.services_right {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-left: 40px;
    gap: 32px;
}

.services_features {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.services_feature_card {
    display: flex;
    align-items: center;
    gap: 20px;
    background: linear-gradient(90deg, #e8dff0 0%, #f5f0f9 50%, #ffffff 100%);
    border-radius: 60px;
    padding: 18px 30px 18px 18px;
}

.services_feature_icon {
    flex-shrink: 0;
    width: 72px;
    height: 72px;
    background: linear-gradient(135deg, #d4c3e2 0%, #ede5f4 100%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.services_feature_body {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.services_feature_body h5 {
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--purple);
    line-height: 1.3;
}

.services_feature_body p {
    font-size: 1.4rem;
    font-weight: 400;
    color: #555;
    margin: 0;
    line-height: 1.5;
}

/* ===================== Voucher Introduction ===================== */

.voucher_introduction {
    padding: 100px 0;
    background: #fff;
}

.voucher__step {
    background: #f7f4fb;
    border-radius: 20px;
    padding: 28px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.voucher__step-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 16px;
    border: 1.5px solid #b89fd4;
    border-radius: 999px;
    font-size: 1.3rem;
    font-weight: 500;
    color: var(--purple);
    width: fit-content;
    line-height: 1.6;
}

.voucher__step-title {
    font-size: 2.8rem;
    font-weight: 700;
    color: #1a1a1a;
    line-height: 1.2;
}

.voucher__step-desc {
    font-size: 1.5rem;
    color: #666;
    line-height: 1.7;
    flex: 1;
}

.voucher__step-icon {
    background: #ede9f6;
    border-radius: 14px;
    padding: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 130px;
    margin-top: auto;
}

.voucher__step-icon svg {
    width: 80px;
    height: 80px;
    color: var(--purple);
}

@media (max-width: 1199px) {
    .voucher_introduction .grid-4 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 575px) {
    .voucher_introduction {
        padding: 70px 0;
    }
    .voucher_introduction .grid-4 {
        grid-template-columns: 1fr;
    }
    .voucher__step-title {
        font-size: 2.4rem;
    }
}

/* ===================== CTA Contact Section ===================== */

.contact_section {
    padding: 80px 0;
}

.cta_card {
    position: relative;
    border-radius: 28px;
    overflow: hidden;
    min-height: 549px;
    background-image: url('/wp-content/uploads/2026/05/c5e374792cec9caf7b27ae1148607fe681b3e72a.jpg');
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    padding: 50px 50px;
    box-shadow: 0 20px 60px rgba(60, 30, 100, 0.18);
}

.cta_card__content {
    position: relative;
    z-index: 2;
    background: #fff;
    border-radius: 20px;
    padding: 50px 48px;
    max-width: 600px;
    display: flex;
    flex-direction: column;
    gap: 24px;
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.10);
}

.cta_card__content h2 {
    font-size: 4.2rem;
    line-height: 1.15;
}

.cta_card__content p {
    font-size: 1.6rem;
    color: #555;
    line-height: 1.7;
}

.cta_card__actions {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

/* CTA pill buttons */
.cta_pill {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px 10px 10px;
    border-radius: 999px;
    font-family: "Manrope", sans-serif;
    font-size: 1.5rem;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.3s ease;
    cursor: pointer;
    line-height: 1;
    white-space: nowrap;
}

.cta_pill__icon {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: transform 0.3s ease;
}

.cta_pill__dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
    margin-left: 2px;
}

/* Filled variant */
.cta_pill--filled {
    background: var(--purple);
    color: #fff;
    box-shadow: 0 8px 24px rgba(60, 30, 100, 0.35);
}

.cta_pill--filled .cta_pill__icon {
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
}

.cta_pill--filled .cta_pill__dot {
    background: rgba(255, 255, 255, 0.5);
}

.cta_pill--filled:hover {
    background: var(--purple-dark);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 12px 32px rgba(60, 30, 100, 0.45);
}

.cta_pill--filled:hover .cta_pill__icon {
    transform: scale(1.1);
}

/* Outline variant */
.cta_pill--outline {
    background: transparent;
    color: var(--purple);
    border: 1.5px solid var(--purple);
}

.cta_pill--outline .cta_pill__icon {
    background: rgba(94, 66, 115, 0.1);
    color: var(--purple);
}

.cta_pill--outline .cta_pill__dot {
    background: var(--purple);
    opacity: 0.4;
}

.cta_pill--outline:hover {
    background: var(--purple);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(60, 30, 100, 0.25);
}

.cta_pill--outline:hover .cta_pill__icon {
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
    transform: scale(1.1);
}

.cta_pill--outline:hover .cta_pill__dot {
    background: rgba(255, 255, 255, 0.5);
    opacity: 1;
}

/* Image panel – now handled by .cta_card background */
.cta_card__image {
    display: none;
}

@media (max-width: 991px) {
    .cta_card {
        padding: 40px 30px;
        min-height: 320px;
    }
    .cta_card__content {
        max-width: 100%;
        padding: 40px 32px;
    }
}

@media (max-width: 575px) {
    .contact_section {
        padding: 60px 0;
    }
    .cta_card__content {
        padding: 36px 24px;
    }
    .cta_card__content h2 {
        font-size: 3.4rem;
    }
    .cta_card__actions {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* ===================== FAQ / Question Section ===================== */

.question_section .block_title h2 strong {
    font-weight: 700;
}

/* Editorial FAQ — magazine-style with hairline dividers, auto-numbered
   questions in serif italic, thin chevron icon. No card backgrounds. */
.faq_list {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin: 0 auto;
    padding: 0;
    counter-reset: faq;
    border-top: 1px solid rgba(94, 66, 115, 0.18);
}

.faq_item {
    background: transparent;
    border-radius: 0;
    border-bottom: 1px solid rgba(94, 66, 115, 0.18);
    overflow: hidden;
    counter-increment: faq;
    position: relative;
    transition: background 0.4s ease;
}

.faq_item--active {
    background: rgba(94, 66, 115, 0.025);
}

.faq_item__question {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 26px 24px 26px 0;
    background: none;
    border: none;
    text-align: left;
    font-family: "Libre Baskerville", serif;
    font-size: 1.85rem;
    font-weight: 600;
    color: #2d2230;
    cursor: pointer;
    outline: none;
    line-height: 1.35;
    transition: color 0.3s ease;
}

/* Auto-numbered prefix (01, 02, 03 ...) in serif italic purple */
.faq_item__question::before {
    content: counter(faq, decimal-leading-zero);
    font-family: "Libre Baskerville", serif;
    font-style: italic;
    font-size: 1.35rem;
    font-weight: 400;
    color: var(--purple);
    opacity: 0.5;
    flex: 0 0 38px;
    line-height: 1.5;
    transition: opacity 0.3s ease, font-weight 0.3s ease;
}

.faq_item__question:hover {
    color: var(--purple);
}

.faq_item__question:hover::before {
    opacity: 0.85;
}

.faq_item--active .faq_item__question {
    color: var(--purple);
    font-style: italic;
}

.faq_item--active .faq_item__question::before {
    opacity: 1;
    font-style: normal;
    font-weight: 700;
}

/* Chevron icon — real inline SVG used as mask, so background-color drives
   the color (lets us animate it on hover/active without re-rendering the SVG).
   The polyline has stroke-linecap/linejoin: round → soft, premium feel. */
.faq_item__icon {
    flex-shrink: 0;
    margin-left: auto;
    width: 22px;
    height: 22px;
    position: relative;
    background-color: rgba(94, 66, 115, 0.5);
    border: none;
    border-radius: 0;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
            mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    -webkit-mask-repeat: no-repeat;
            mask-repeat: no-repeat;
    -webkit-mask-position: center;
            mask-position: center;
    -webkit-mask-size: contain;
            mask-size: contain;
    transition: transform 0.4s cubic-bezier(0.32, 0.72, 0, 1),
                background-color 0.3s ease;
}

.faq_item__question:hover .faq_item__icon {
    background-color: var(--purple);
}

.faq_item--active .faq_item__icon {
    transform: rotate(180deg);
    background-color: var(--purple);
}

.faq_item__body {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.5s cubic-bezier(0.32, 0.72, 0, 1);
}

.faq_item__answer {
    font-family: "Manrope", sans-serif;
    font-size: 1.5rem;
    color: #4a4254;
    line-height: 1.8;
    padding: 0 24px 28px 62px;     /* aligns with the question text past the number column */
    margin: 0;
    max-width: 760px;
}

/* Tablet / phone */
@media (max-width: 767px) {
    .faq_item__question {
        font-size: 1.55rem;
        padding: 22px 14px 22px 0;
        gap: 16px;
    }

    .faq_item__question::before {
        flex-basis: 28px;
        font-size: 1.15rem;
    }

    .faq_item__answer {
        font-size: 1.4rem;
        line-height: 1.7;
        padding: 0 14px 22px 44px;
    }

    .faq_item__icon {
        width: 18px;
        height: 18px;
    }
}

@media (max-width: 575px) {
    .question_section {
        padding: 70px 0;
    }
    .faq_item__question {
        padding: 18px 20px;
        font-size: 1.6rem;
    }
    .faq_item__answer {
        padding: 0 20px 18px;
    }
}

/* ===========================
   Our Services Slider
=========================== */
.our_services {
    overflow: hidden;
}

.our_services_slider {
    --os-offset: max(15px, calc((100vw - 1470px) / 2 + 15px));
    margin-left: var(--os-offset);
    width: calc(100vw - var(--os-offset));
    overflow: hidden;
}

.our_services_slider .swiper-slide{
    height: auto;
}

.our_services__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 40px;
}

.our_services__nav {
    display: flex;
    gap: 10px;
    align-items: center;
    padding-top: 6px;
    flex-shrink: 0;
}

.our_services__nav button {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    border: none;
    background: #ede8f5;
    color: var(--purple);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.3s ease, color 0.3s ease;
}

.our_services__nav button:hover {
    background: var(--purple);
    color: #fff;
}

.our_services__nav button.swiper-button-disabled {
    opacity: 0.35;
    cursor: not-allowed;
    pointer-events: none;
}

/* Service Card */
.service_card {
    background: #F9F8F9;
    border-radius: 20px;
    padding: 32px 24px 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    border: 1px solid rgba(221, 221, 221, 0.52);
    height: 100%;
}

.service_card__title {
    font-family: "Libre Baskerville", serif;
    font-size: 2.4rem;
    font-weight: 700;
    color: #1a1a1a;
    text-align: center;
    margin-bottom: 12px;
}

.service_card__desc {
    font-size: 1.6rem;
    color: var(--purple);
    text-align: center;
    line-height: 1.65;
    margin-bottom: 24px;
    max-width: 80%;
}

.service_card__image {
    width: 361px;
    height: 361px;
    border-radius: 50%;
    overflow: hidden;
    margin-bottom: 28px;
    flex-shrink: 0;
}

.service_card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.service_card__footer {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
}

.service_card__icons {
    display: flex;
    gap: 6px;
    align-items: center;
}

/* Responsive */
@media (max-width: 767px) {
    .our_services__header {
        flex-direction: column;
        gap: 20px;
    }

    .our_services__nav {
        padding-top: 0;
    }
}


/* ===========================
   Our Services Page Slider
=========================== */
.our_services_page {
    overflow: hidden;
}

.our_services_page_slider {
    --os-offset: max(15px, calc((100vw - 1470px) / 2 + 15px));
    margin-left: var(--os-offset);
    width: calc(100vw - var(--os-offset));
    overflow: hidden;
    margin-top: 40px;
}

.our_services_page_slider .swiper-slide {
    height: auto;
}

/* Service Category Card */
.service_cat_card {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.service_cat_card__image {
    width: 100%;
    aspect-ratio: 3 / 4;
    border-radius: 20px;
    overflow: hidden;
    flex-shrink: 0;
    margin-bottom: 20px;
}

.service_cat_card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.service_cat_card:hover .service_cat_card__image img {
    transform: scale(1.04);
}

.service_cat_card__body {
    padding: 0 4px;
}

.service_cat_card__title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    font-family: "Libre Baskerville", serif;
    font-size: 1.8rem;
    font-weight: 700;
    color: #1a1a1a;
    text-decoration: none;
    margin-bottom: 14px;
    line-height: 1.3;
    transition: color 0.2s ease;
}

.service_cat_card__title:hover {
    color: var(--purple);
}

.service_cat_card__arrow {
    flex-shrink: 0;
    color: var(--purple);
    opacity: 0.75;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.service_cat_card__title:hover .service_cat_card__arrow {
    opacity: 1;
    transform: translate(2px, -2px);
}

.service_cat_card__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.service_cat_card__list li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 1.35rem;
    color: #444;
    line-height: 1.5;
}

.service_cat_card__list li::before {
    content: '';
    display: inline-block;
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    margin-top: 1px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Ccircle cx='9' cy='9' r='9' fill='%235E4273'/%3E%3Cpath d='M5 9l3 3 5-5' stroke='white' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: contain;
}

@media (max-width: 767px) {
    .service_cat_card__title {
        font-size: 1.6rem;
    }
}

/* ===================== Blog Template ===================== */

/* --- Hero variant --- */
.hero--blog {
    min-height: 0;
}

.hero--blog .hero__inner {
    min-height: 70vh;
    padding-top: 180px;
    padding-bottom: 130px;
}

.blog_hero__eyebrow {
    display: inline-block;
    font-size: 1.2rem;
    font-weight: 600;
    letter-spacing: 3px;
    color: rgba(255,255,255,0.85);
    text-transform: uppercase;
    margin-bottom: 18px;
    background: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.25);
    padding: 6px 18px;
    border-radius: 999px;
    backdrop-filter: blur(4px);
}

.hero--blog .hero__title {
    font-size: clamp(4.4rem, 6vw, 7.2rem);
    margin-bottom: 22px;
}

.hero--blog .hero__title em {
    font-style: italic;
    font-weight: 400;
}

@media (max-width: 575px) {
    .hero--blog .hero__inner {
        min-height: 55vh;
        padding-top: 140px;
        padding-bottom: 100px;
    }
}

/* --- Services Teaser --- */
.blog_services__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.blog_service_card {
    border-radius: 20px;
    overflow: hidden;
    position: relative;
}

.blog_service_card__img {
    position: relative;
    height: 380px;
    overflow: hidden;
}

.blog_service_card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.blog_service_card:hover .blog_service_card__img img {
    transform: scale(1.06);
}

.blog_service_card__img-placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #d4c3e2 0%, #ede5f4 100%);
}

.blog_service_card__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(74,51,89,0.90) 0%, rgba(74,51,89,0.2) 60%, transparent 100%);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 28px 24px;
    color: #fff;
    gap: 10px;
}

.blog_service_card__cat {
    font-size: 1.2rem;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: rgba(255,255,255,0.7);
}

.blog_service_card__title {
    font-size: 2.2rem;
    font-weight: 600;
    color: #fff;
    line-height: 1.25;
    margin: 0;
}

.blog_service_card__desc {
    font-size: 1.4rem;
    color: rgba(255,255,255,0.8);
    line-height: 1.55;
    margin: 0;
}

.blog_service_card__btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 1.4rem;
    font-weight: 600;
    color: #fff;
    text-decoration: none;
    margin-top: 6px;
    transition: gap 0.2s ease;
}

.blog_service_card__btn:hover {
    gap: 12px;
    color: #fff;
}

.blog_services__cta {
    display: flex;
    justify-content: center;
    margin-top: 40px;
}

.blog_services__all_btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 36px;
    border: 1.5px solid #c9b8de;
    border-radius: 999px;
    font-size: 1.5rem;
    font-weight: 500;
    color: var(--purple);
    text-decoration: none;
    transition: all 0.3s ease;
    background: #fff;
}

.blog_services__all_btn:hover {
    background: var(--purple);
    color: #fff;
    border-color: var(--purple);
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(94,66,115,0.25);
}

@media (max-width: 991px) {
    .blog_services__grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .blog_service_card__img {
        height: 320px;
    }
}

@media (max-width: 575px) {
    .blog_services__grid {
        grid-template-columns: 1fr;
    }
    .blog_service_card__img {
        height: 280px;
    }
}

/* --- Filter Bar --- */
.blog_filter_bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
    padding: 18px 24px;
    background: #f7f4fb;
    border-radius: 60px;
    margin-bottom: 48px;
}

.blog_filter_tabs {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.blog_filter_tab {
    padding: 9px 20px;
    border-radius: 999px;
    border: none;
    background: transparent;
    font-family: "Manrope", sans-serif;
    font-size: 1.4rem;
    font-weight: 500;
    color: #555;
    cursor: pointer;
    transition: all 0.25s ease;
    line-height: 1;
    white-space: nowrap;
}

.blog_filter_tab:hover {
    background: #ede8f5;
    color: var(--purple);
}

.blog_filter_tab.active {
    background: var(--purple);
    color: #fff;
    box-shadow: 0 4px 14px rgba(94,66,115,0.30);
}

.blog_search {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #fff;
    border-radius: 999px;
    padding: 10px 20px;
    border: 1.5px solid #e0d5ef;
    min-width: 220px;
    transition: border-color 0.25s ease;
}

.blog_search:focus-within {
    border-color: var(--purple);
    box-shadow: 0 0 0 3px rgba(94,66,115,0.08);
}

.blog_search svg {
    color: #aaa;
    flex-shrink: 0;
}

.blog_search input {
    border: none;
    outline: none;
    font-family: "Manrope", sans-serif;
    font-size: 1.4rem;
    color: #333;
    background: transparent;
    width: 100%;
}

.blog_search input::placeholder {
    color: #aaa;
}

@media (max-width: 767px) {
    .blog_filter_bar {
        border-radius: 20px;
        padding: 16px 18px;
    }
    .blog_search {
        min-width: 0;
        width: 100%;
    }
}

/* --- Featured Article --- */
.blog_featured {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    border-radius: 24px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 8px 40px rgba(94,66,115,0.10);
    margin-bottom: 48px;
}

.blog_featured__img {
    position: relative;
    overflow: hidden;
    min-height: 420px;
}

.blog_featured__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease;
}

.blog_featured:hover .blog_featured__img img {
    transform: scale(1.04);
}

.blog_featured__img-placeholder {
    width: 100%;
    height: 100%;
    min-height: 420px;
    background: linear-gradient(135deg, #d4c3e2 0%, #ede5f4 100%);
}

.blog_featured__body {
    padding: 48px 44px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    justify-content: center;
}

.blog_featured__meta {
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
}

.blog_featured__cat {
    display: inline-flex;
    align-items: center;
    padding: 5px 16px;
    border-radius: 999px;
    background: var(--purple);
    color: #fff;
    font-size: 1.2rem;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.blog_featured__read {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 1.3rem;
    color: #888;
    font-weight: 500;
}

.blog_featured__readmore {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--purple);
    text-decoration: none;
    margin-left: auto;
    transition: gap 0.2s ease;
}

.blog_featured__readmore:hover {
    gap: 10px;
    color: var(--purple-dark);
}

.blog_featured__title {
    font-family: "Libre Baskerville", serif;
    font-size: 3rem;
    font-weight: 700;
    line-height: 1.25;
    color: #1a1a1a;
    margin: 0;
}

.blog_featured__title a {
    color: inherit;
    text-decoration: none;
    transition: color 0.25s ease;
}

.blog_featured__title a:hover {
    color: var(--purple);
}

.blog_featured__excerpt {
    font-size: 1.5rem;
    color: #666;
    line-height: 1.7;
    margin: 0;
}

.blog_featured__tags {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.blog_tag {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 14px;
    border-radius: 999px;
    background: #f0ebf8;
    color: var(--purple);
    font-size: 1.2rem;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.2s ease;
}

.blog_tag:hover {
    background: var(--purple);
    color: #fff;
}

@media (max-width: 991px) {
    .blog_featured {
        grid-template-columns: 1fr;
    }
    .blog_featured__img {
        min-height: 280px;
    }
    .blog_featured__body {
        padding: 32px 28px;
    }
    .blog_featured__title {
        font-size: 2.4rem;
    }
}

@media (max-width: 575px) {
    .blog_featured__body {
        padding: 24px 20px;
    }
    .blog_featured__title {
        font-size: 2rem;
    }
    .blog_featured__readmore {
        display: none;
    }
}

/* --- Blog Grid --- */
.blog_grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    margin-bottom: 48px;
}

.blog_card {
    background: #fff;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 4px 24px rgba(94,66,115,0.07);
    transition: box-shadow 0.3s ease, transform 0.3s ease;
    display: flex;
    flex-direction: column;
}

.blog_card:hover {
    box-shadow: 0 12px 40px rgba(94,66,115,0.14);
    transform: translateY(-4px);
}

.blog_card__img-wrap {
    display: block;
    overflow: hidden;
    height: 220px;
    flex-shrink: 0;
}

.blog_card__img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.blog_card:hover .blog_card__img-wrap img {
    transform: scale(1.06);
}

.blog_card__img-placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #d4c3e2 0%, #ede5f4 100%);
}

.blog_card__body {
    padding: 24px 22px 22px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
}

.blog_card__cat {
    display: inline-block;
    font-size: 1.1rem;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--purple);
}

.blog_card__title {
    font-size: 1.8rem;
    font-weight: 600;
    line-height: 1.35;
    color: #1a1a1a;
    margin: 0;
    flex: 1;
}

.blog_card__title a {
    color: inherit;
    text-decoration: none;
    transition: color 0.25s ease;
}

.blog_card__title a:hover {
    color: var(--purple);
}

.blog_card__excerpt {
    font-size: 1.4rem;
    color: #777;
    line-height: 1.6;
    margin: 0;
}

.blog_card__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--purple);
    text-decoration: none;
    margin-top: auto;
    transition: gap 0.2s ease;
}

.blog_card__link:hover {
    gap: 10px;
    color: var(--purple-dark);
}

@media (max-width: 991px) {
    .blog_grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 575px) {
    .blog_grid {
        grid-template-columns: 1fr;
    }
    .blog_card__img-wrap {
        height: 200px;
    }
}

/* --- Mid-page CTA --- */
.blog_mid_cta {
    background: linear-gradient(135deg, #f5ede6 0%, #f7f4fb 100%);
    border-radius: 24px;
    padding: 60px 50px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 22px;
    margin-bottom: 56px;
}

.blog_mid_cta__badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 20px;
    border-radius: 999px;
    background: #fff;
    border: 1.5px solid #d4c0e8;
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--purple);
    box-shadow: 0 2px 12px rgba(94,66,115,0.08);
}

.blog_mid_cta__badge svg {
    color: #e07b6e;
}

.blog_mid_cta__title {
    font-family: "Libre Baskerville", serif;
    font-size: 3.4rem;
    font-weight: 700;
    color: #1a1a1a;
    line-height: 1.25;
    max-width: 640px;
    margin: 0;
}

@media (max-width: 767px) {
    .blog_mid_cta {
        padding: 44px 28px;
    }
    .blog_mid_cta__title {
        font-size: 2.6rem;
    }
}

@media (max-width: 575px) {
    .blog_mid_cta {
        padding: 36px 20px;
    }
    .blog_mid_cta__title {
        font-size: 2.2rem;
    }
    .blog_mid_cta__title br {
        display: none;
    }
}

/* --- Bottom CTA Buttons --- */
.blog_bottom_cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
    padding: 60px 0 0;
}

.blog_bottom_cta__btn {
    display: inline-flex;
    align-items: center;
    padding: 14px 36px;
    border-radius: 999px;
    font-family: "Manrope", sans-serif;
    font-size: 1.5rem;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.3s ease;
    cursor: pointer;
    border: none;
}

.blog_bottom_cta__btn--outline {
    background: #fff;
    color: var(--purple);
    border: 1.5px solid #c9b8de;
}

.blog_bottom_cta__btn--outline:hover {
    background: #ede8f5;
    color: var(--purple-dark);
    border-color: var(--purple);
    transform: translateY(-2px);
}

.blog_bottom_cta__btn--filled {
    background: var(--purple);
    color: #fff;
    box-shadow: 0 8px 24px rgba(94,66,115,0.30);
}

.blog_bottom_cta__btn--filled:hover {
    background: var(--purple-dark);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 12px 30px rgba(94,66,115,0.40);
}

@media (max-width: 575px) {
    .blog_bottom_cta {
        flex-direction: column;
        align-items: stretch;
    }
    .blog_bottom_cta__btn {
        text-align: center;
        justify-content: center;
    }
}

/* =====================================================
   SINGLE POST
   ===================================================== */

/* --- Hero variant for single post --- */
.hero--single .hero__inner {
    min-height: 65vh;
    padding-top: 180px;
    padding-bottom: 120px;
    align-items: flex-end;
}

.single_hero_content {
    max-width: 860px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* Back link (white on hero) */
.single_back_link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 1.4rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.85);
    text-decoration: none;
    transition: gap 0.2s ease, color 0.2s ease;
    width: fit-content;
}

.single_back_link:hover {
    gap: 12px;
    color: #fff;
}

/* Back link used below content (purple) */
.single_back_link--bottom {
    color: var(--purple);
    margin-left: auto;
}

.single_back_link--bottom:hover {
    color: var(--purple-dark);
}

/* Meta row */
.single_meta {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.single_meta__cat {
    display: inline-flex;
    align-items: center;
    padding: 5px 16px;
    border-radius: 999px;
    background: var(--purple);
    color: #fff;
    font-size: 1.2rem;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.single_meta__date,
.single_meta__read {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 1.3rem;
    color: rgba(255, 255, 255, 0.75);
    font-weight: 500;
}

/* Title — overrides .hero__title size for articles */
.single_title {
    font-size: clamp(3.2rem, 5vw, 6rem) !important;
    line-height: 1.12 !important;
    margin-bottom: 0 !important;
}

/* Tags row on hero (light ghost style) */
.single_tags {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.blog_tag--light {
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.35);
    backdrop-filter: blur(4px);
}

.blog_tag--light:hover {
    background: #fff;
    color: var(--purple);
    border-color: #fff;
}

/* --- Article Content --- */
.single_content_section {
    padding: 64px 0 80px;
}

.single_content_wrapper {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 48px;
}

.single_content {
    font-family: "Manrope", sans-serif;
    font-size: 1.7rem;
    line-height: 1.85;
    color: #333;
}

/* Typography inside article content */
.single_content h2 {
    font-family: "Libre Baskerville", serif;
    font-size: 3.4rem;
    font-weight: 700;
    color: #1a1a1a;
    margin: 48px 0 20px;
    line-height: 1.2;
}

.single_content h3 {
    font-size: 2.6rem;
    font-weight: 600;
    color: #1a1a1a;
    margin: 40px 0 16px;
    line-height: 1.25;
}

.single_content h4 {
    font-size: 2rem;
    font-weight: 600;
    color: #1a1a1a;
    margin: 32px 0 14px;
}

.single_content p {
    font-size: 1.7rem;
    line-height: 1.85;
    color: #444;
    margin: 0 0 22px;
}

.single_content p:last-child {
    margin-bottom: 0;
}

.single_content ul,
.single_content ol {
    padding-left: 24px;
    margin: 0 0 22px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.single_content ul {
    list-style: none;
    padding-left: 0;
}

.single_content ul li {
    padding-left: 24px;
    position: relative;
    font-size: 1.7rem;
    line-height: 1.75;
    color: #444;
}

.single_content ul li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 11px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--purple);
}

.single_content ol {
    list-style: decimal;
}

.single_content ol li {
    font-size: 1.7rem;
    line-height: 1.75;
    color: #444;
}

.single_content strong {
    font-weight: 700;
    color: #1a1a1a;
}

.single_content em {
    font-style: italic;
    color: var(--purple);
}

.single_content a {
    color: var(--purple);
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.2s ease;
}

.single_content a:hover {
    color: var(--purple-dark);
}

.single_content blockquote {
    border-left: 4px solid var(--purple);
    padding: 20px 28px;
    margin: 32px 0;
    background: #f7f4fb;
    border-radius: 0 16px 16px 0;
    font-family: "Libre Baskerville", serif;
    font-style: italic;
    font-size: 1.9rem;
    color: #555;
    line-height: 1.7;
}

.single_content blockquote p {
    font-size: inherit;
    color: inherit;
    margin: 0;
}

.single_content img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 16px;
    margin: 32px 0;
    box-shadow: 0 6px 30px rgba(94,66,115,0.10);
}

.single_content iframe,
.single_content .wp-block-embed__wrapper iframe {
    width: 100%;
    aspect-ratio: 16 / 9;
    border-radius: 16px;
    border: none;
    margin: 32px 0;
    display: block;
}

.single_content hr {
    border: none;
    border-top: 1px solid #ede5f4;
    margin: 44px 0;
}

/* --- Content footer (tags + back link) --- */
.single_content_footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    padding-top: 32px;
    border-top: 1px solid #ede5f4;
}

/* --- Related section --- */
.single_related .block_title {
    margin-bottom: 44px;
}

/* --- Responsive: single post --- */
@media (max-width: 991px) {
    .hero--single .hero__inner {
        min-height: 55vh;
        padding-top: 160px;
        padding-bottom: 100px;
    }

    .single_content h2 {
        font-size: 2.8rem;
    }

    .single_content h3 {
        font-size: 2.2rem;
    }
}

@media (max-width: 767px) {
    .hero--single .hero__inner {
        min-height: 50vh;
        padding-top: 140px;
        padding-bottom: 80px;
    }

    .single_hero_content {
        gap: 14px;
    }

    .single_content_section {
        padding: 44px 0 60px;
    }

    .single_content {
        font-size: 1.6rem;
    }

    .single_content h2 {
        font-size: 2.4rem;
        margin-top: 36px;
    }

    .single_content h3 {
        font-size: 2rem;
    }

    .single_content blockquote {
        padding: 16px 20px;
        font-size: 1.7rem;
    }

    .single_content_footer {
        flex-direction: column;
        align-items: flex-start;
    }

    .single_back_link--bottom {
        margin-left: 0;
    }
}

@media (max-width: 575px) {
    .hero--single .hero__inner {
        padding-top: 120px;
        padding-bottom: 60px;
    }

    .single_meta {
        gap: 10px;
    }
}


/* =============================================
   Reviews Section
   ============================================= */

.reviews_section {
    padding: 60px 0;
    overflow: hidden;
    background: #faf8fc;
}

.reviews__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 40px;
}

.reviews__header .block_title {
    margin-bottom: 0;
}

.reviews__nav {
    display: flex;
    gap: 10px;
    align-items: center;
    padding-top: 6px;
    flex-shrink: 0;
}

.reviews__nav button {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    border: none;
    background: #ede8f5;
    color: var(--purple);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.3s ease, color 0.3s ease;
}

.reviews__nav button:hover {
    background: var(--purple);
    color: #fff;
}

.reviews__nav button.swiper-button-disabled {
    opacity: 0.35;
    cursor: not-allowed;
    pointer-events: none;
}

.reviews_slider {
    --rv-offset: max(15px, calc((100vw - 1470px) / 2 + 15px));
    margin-left: var(--rv-offset);
    width: calc(100vw - var(--rv-offset));
    overflow: hidden;
}

.reviews_slider .swiper-slide {
    height: auto;
}

.review_card {
    background: #fff;
    border-radius: 20px;
    padding: 36px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    height: 100%;
    border: 1px solid rgba(221, 221, 221, 0.52);
    box-shadow: 0 4px 24px rgba(94, 66, 115, 0.06);
}

.review_card__stars {
    display: flex;
    gap: 3px;
    align-items: center;
}

.review_card__text {
    font-size: 1.6rem;
    line-height: 28px;
    color: #444;
    flex: 1;
}

.review_card__author {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: auto;
    padding-top: 20px;
    border-top: 1px solid #f0eaf7;
}

.review_card__avatar {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: var(--purple);
    color: #fff;
    font-size: 1.8rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.review_card__info {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.review_card__info strong {
    font-size: 1.6rem;
    color: #0A1618;
    font-weight: 600;
}

.review_card__info span {
    font-size: 1.4rem;
    color: #999;
    font-weight: 400;
}

.review_card__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
    display: block;
}

.reviews__header .block_title .btn.btn-outline {
    display: inline-flex;
    align-items: center;
    margin-top: 16px;
    padding: 10px 24px;
    border-radius: 999px;
    font-family: "Manrope", sans-serif;
    font-size: 1.4rem;
    font-weight: 500;
    text-decoration: none;
    background: transparent;
    color: var(--purple);
    border: 1.5px solid #c9b8de;
    transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease, transform 0.3s ease;
    cursor: pointer;
}

.reviews__header .block_title .btn.btn-outline:hover {
    background: #ede8f5;
    color: var(--purple-dark);
    border-color: var(--purple);
    transform: translateY(-2px);
}

@media (max-width: 767px) {
    .reviews__header {
        flex-direction: column;
        gap: 20px;
    }

    .reviews__nav {
        padding-top: 0;
    }

    .review_card {
        padding: 24px;
    }
}

@media (max-width: 575px) {
    .review_card {
        padding: 20px;
    }
}

/* ===================== WooCommerce – Skin by Marry custom ===================== */
/*
 * WC default stylesheets (woocommerce-layout / smallscreen / general) are
 * disabled via woocommerce_enqueue_styles in functions.php. All component
 * styling is owned here.
 */

/* ---------- Currency ---------- */
.woocommerce-Price-amount,
.amount {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.woocommerce-Price-currencySymbol {
    margin-right: 2px;
}

/* ---------- Generic button (WC sprinkles .button on links/buttons everywhere) ---------- */
.woocommerce .button,
a.button,
button.button,
input.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 22px;
    border: 1.5px solid var(--purple);
    border-radius: 999px;
    background: var(--purple);
    color: #fff;
    font-family: "Manrope", sans-serif;
    font-size: 1.4rem;
    font-weight: 500;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.25s ease, color 0.25s ease, transform 0.15s ease, border-color 0.25s ease;
}

.woocommerce .button:hover,
a.button:hover,
button.button:hover,
input.button:hover {
    background: var(--purple-dark);
    border-color: var(--purple-dark);
    color: #fff;
}

.woocommerce .button:active,
a.button:active,
button.button:active,
input.button:active {
    transform: scale(0.98);
}

.woocommerce .button[disabled],
a.button[disabled],
button.button[disabled] {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}

/* Outline variant (used for some secondary actions) */
.woocommerce .button.alt {
    background: var(--purple);
    color: #fff;
}

/* ---------- Form fields baseline (used on checkout & my-account) ---------- */
.woocommerce form .form-row {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0 0 18px;
    float: none;
}

.woocommerce form .form-row label {
    color: #4a4654;
    font-size: 1.3rem;
    font-weight: 500;
    line-height: 1.4;
}

.woocommerce form .form-row .required {
    color: var(--purple);
    text-decoration: none;
    margin-left: 2px;
}

.woocommerce form .form-row .optional {
    color: #8a8294;
    font-weight: 400;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-form input.input-text,
.woocommerce-form textarea,
.woocommerce-form select {
    width: 100%;
    height: 46px;
    padding: 0 16px;
    border: 1px solid #e0d2ea;
    border-radius: 12px;
    background: #fff;
    color: var(--dark);
    font-family: "Manrope", sans-serif;
    font-size: 1.4rem;
    line-height: 1.4;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.woocommerce form .form-row textarea {
    height: auto;
    min-height: 110px;
    padding: 12px 16px;
    resize: vertical;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
    outline: none;
    border-color: var(--purple);
    box-shadow: 0 0 0 3px rgba(94, 66, 115, 0.12);
}

.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select,
.woocommerce form .form-row.woocommerce-invalid textarea {
    border-color: #b3261e;
}

.woocommerce form .form-row.woocommerce-validated input.input-text,
.woocommerce form .form-row.woocommerce-validated select,
.woocommerce form .form-row.woocommerce-validated textarea {
    border-color: #1a8a3a;
}

.woocommerce-form-row__label,
.woocommerce-input-wrapper {
    width: 100%;
}

.woocommerce-form__label-for-checkbox {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}

.woocommerce-form__input-checkbox,
.woocommerce-form__input-radio {
    width: 18px;
    height: 18px;
    accent-color: var(--purple);
    cursor: pointer;
}

/* Required asterisk in labels */
.woocommerce abbr.required,
.woocommerce em.required {
    color: var(--purple);
    border: none;
    text-decoration: none;
    font-style: normal;
}

/* ===================== Cart layout & components ===================== */

/* Accessibility: visually-hidden helper (WordPress convention) */
.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    -webkit-clip-path: inset(50%);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    word-wrap: normal !important;
}


/* ---------- Step indicator (inside hero) ---------- */
.cart_steps {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    padding: 10px 18px;
    background: rgba(255, 255, 255, 0.12);
    border: 1.5px solid rgba(255, 255, 255, 0.25);
    border-radius: 999px;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.cart_steps__item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: rgba(255, 255, 255, 0.55);
    font-size: 1.4rem;
    font-weight: 500;
    transition: color 0.25s ease;
}

.cart_steps__item--active,
.cart_steps__item--done {
    color: #fff;
}

.cart_steps__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.2);
    color: rgba(255, 255, 255, 0.7);
    font-size: 1.2rem;
    font-weight: 600;
    line-height: 1;
}

.cart_steps__item--active .cart_steps__num,
.cart_steps__item--done .cart_steps__num {
    background: #fff;
    color: var(--purple);
}

.cart_steps__sep {
    width: 28px;
    height: 1px;
    background: rgba(255, 255, 255, 0.35);
}

@media (max-width: 575px) {
    .cart_steps {
        gap: 8px;
        padding: 8px 12px;
    }
    .cart_steps__label {
        display: none;
    }
    .cart_steps__sep {
        width: 14px;
    }
}

/* ---------- Section shell ---------- */
.cart_section {
    padding: 80px 0 120px;
    background: #fff;
}

.cart_section .woocommerce {
    display: grid;
    grid-template-columns: minmax(0, 1fr) clamp(360px, 30vw, 440px);
    grid-column-gap: 30px;
    align-items: start;
}

.cart_section .woocommerce > .woocommerce-notices-wrapper {
    grid-column: 1 / -1;
    margin-bottom: 24px;
}

.cart_section .woocommerce > .woocommerce-notices-wrapper:empty {
    display: none;
}

@media (max-width: 991px) {
    .cart_section .woocommerce {
        grid-template-columns: minmax(0, 1fr);
        grid-row-gap: 30px;
    }
}


/* WC notices restyle */
.cart_section .woocommerce-message,
.cart_section .woocommerce-info,
.cart_section .woocommerce-error {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin: 0 0 16px;
    padding: 14px 18px;
    background: #f6f1fa;
    color: var(--purple);
    border: none;
    border-left: 3px solid var(--purple);
    border-radius: 10px;
    list-style: none;
    font-size: 1.4rem;
    font-weight: 500;
    line-height: 1.5;
}

.cart_section .woocommerce-error {
    background: #fdecea;
    color: #b3261e;
    border-left-color: #b3261e;
    flex-direction: column;
    align-items: flex-start;
}

.cart_section .woocommerce-error li {
    list-style: none;
}

.cart_section .woocommerce-message::before,
.cart_section .woocommerce-info::before,
.cart_section .woocommerce-error::before {
    content: none;
}

.cart_section .woocommerce-message .button,
.cart_section .woocommerce-info .button {
    margin-left: auto;
    padding: 8px 16px;
    background: var(--purple);
    color: #fff;
    border-radius: 999px;
    font-size: 1.3rem;
    font-weight: 500;
    text-decoration: none;
    transition: background 0.2s ease;
}

.cart_section .woocommerce-message .button:hover,
.cart_section .woocommerce-info .button:hover {
    background: var(--purple-dark);
}

/* ---------- Cart form (left column) ---------- */
.cart_form {
    display: flex;
    flex-direction: column;
    gap: 20px;
    min-width: 0;
}

/* Whole-cart AJAX loading state — spinner overlay on the .woocommerce wrapper */
.cart_section .woocommerce {
    position: relative;
    transition: opacity 0.2s ease;
}

.cart_section .woocommerce.is-loading {
    pointer-events: none;
}

.cart_section .woocommerce.is-loading > * {
    opacity: 0.55;
    transition: opacity 0.2s ease;
}

.cart_section .woocommerce.is-loading::after {
    content: "";
    position: absolute;
    top: 80px;
    left: 50%;
    width: 38px;
    height: 38px;
    margin-left: -19px;
    border: 3px solid rgba(94, 66, 115, 0.2);
    border-top-color: var(--purple);
    border-radius: 50%;
    animation: cart-spin 0.7s linear infinite;
    z-index: 5;
}

@keyframes cart-spin {
    to { transform: rotate(360deg); }
}

/* Per-card loading (between request fired and DOM swap) */
.cart_card--loading {
    opacity: 0.55;
    pointer-events: none;
}

/* Empty state: collapse the 2-col grid so the empty card spans full width */
.cart_section .woocommerce.is-empty {
    display: block;
}

.cart_items {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* ---------- Cart card (single product row) ---------- */
.cart_card {
    position: relative;
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr) 90px 140px 110px 36px;
    column-gap: 22px;
    align-items: center;
    padding: 18px;
    background: #fff;
    border: 1px solid #efe7f3;
    border-radius: 18px;
    box-shadow: 0 4px 18px rgba(94, 66, 115, 0.05);
    transition: box-shadow 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}

.cart_card:hover {
    border-color: #e0d2ea;
    box-shadow: 0 10px 28px rgba(94, 66, 115, 0.10);
}

.cart_card__thumb {
    width: 110px;
    height: 110px;
    border-radius: 14px;
    overflow: hidden;
    background: #f6f1fa;
}

.cart_card__thumb a,
.cart_card__thumb img {
    display: block;
    width: 100%;
    height: 100%;
}

.cart_card__thumb img {
    object-fit: cover;
}

.cart_card__info {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.cart_card__title {
    margin: 0;
    font-family: "Libre Baskerville", serif;
    font-size: 1.7rem;
    font-weight: 600;
    line-height: 1.3;
    color: var(--dark);
    word-break: break-word;
}

.cart_card__title a {
    color: inherit;
    text-decoration: none;
    transition: color 0.2s ease;
}

.cart_card__title a:hover {
    color: var(--purple);
}

.cart_card__meta {
    color: #6b6477;
    font-family: "Manrope", sans-serif;
    font-size: 1.3rem;
    font-weight: 400;
    line-height: 1.5;
}

.cart_card__meta dl,
.cart_card__meta p {
    margin: 0;
    font-size: 1.3rem;
    line-height: 1.5;
}

.cart_card__meta dt {
    display: inline;
    font-weight: 500;
    margin-right: 4px;
}

.cart_card__meta dd {
    display: inline;
    margin: 0 12px 0 0;
}

.cart_card__notice {
    margin-top: 4px;
    color: #b78900;
    font-size: 1.2rem;
}

.cart_card__price-mobile {
    display: none;
    color: var(--purple);
    font-weight: 600;
    font-size: 1.4rem;
}

.cart_card__cell-label {
    display: none;
    font-size: 1.1rem;
    font-weight: 500;
    color: #8a8294;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 6px;
}

.cart_card__price {
    text-align: center;
    font-family: "Manrope", sans-serif;
    font-size: 1.5rem;
    font-weight: 500;
    color: #4a4654;
    white-space: nowrap;
}

.cart_card__subtotal {
    text-align: right;
    font-family: "Manrope", sans-serif;
    font-size: 1.6rem;
    white-space: nowrap;
}

.cart_card__subtotal-value {
    color: var(--purple);
    font-weight: 700;
}

.cart_card__remove {
    display: flex;
    align-items: center;
    justify-content: center;
}

.cart_card__remove-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #f6f1fa;
    color: var(--purple);
    text-decoration: none;
    transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
    flex-shrink: 0;
}

.cart_card__remove-link:hover {
    background: #b3261e;
    color: #fff;
    transform: rotate(90deg);
}

.cart_card__remove-link:focus-visible {
    outline: 2px solid var(--purple);
    outline-offset: 2px;
}

/* ---------- Quantity picker (+ / value / −) ---------- */
.qty_picker {
    display: inline-flex;
    align-items: center;
    background: #f6f1fa;
    border: 1px solid #ebdef4;
    border-radius: 999px;
    padding: 4px;
    user-select: none;
}

.qty_btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: #fff;
    color: var(--purple);
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease, transform 0.1s ease;
    box-shadow: 0 1px 2px rgba(94, 66, 115, 0.08);
}

.qty_btn:hover:not([disabled]) {
    background: var(--purple);
    color: #fff;
}

.qty_btn:active:not([disabled]) {
    transform: scale(0.92);
}

.qty_btn[disabled] {
    opacity: 0.35;
    cursor: not-allowed;
}

.qty_btn:focus-visible {
    outline: 2px solid var(--purple);
    outline-offset: 2px;
}

.qty_picker .qty,
.qty_picker input[type="number"] {
    width: 44px;
    height: 32px;
    margin: 0 2px;
    border: none;
    background: transparent;
    color: var(--dark);
    font-family: "Manrope", sans-serif;
    font-size: 1.5rem;
    font-weight: 600;
    text-align: center;
    -moz-appearance: textfield;
    appearance: textfield;
}

.qty_picker input[type="number"]:focus {
    outline: none;
}

.qty_picker input[type="number"]::-webkit-outer-spin-button,
.qty_picker input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.qty_picker--locked {
    padding: 6px 16px;
    background: #f6f1fa;
    color: var(--purple);
}

.qty_picker__locked {
    font-family: "Manrope", sans-serif;
    font-size: 1.5rem;
    font-weight: 600;
}

.cart_card__qty {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ---------- Cart actions row (coupon + update) ---------- */
.cart_actions {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px 24px;
    padding: 20px;
    background: #fcfaff;
    border: 1px dashed #e0d2ea;
    border-radius: 18px;
}

.cart_coupon {
    flex: 1 1 320px;
    min-width: 0;
}

.cart_coupon__toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 4px 0;
    color: var(--purple);
    font-family: "Manrope", sans-serif;
    font-size: 1.4rem;
    font-weight: 500;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.cart_coupon__toggle::-webkit-details-marker { display: none; }

.cart_coupon__toggle::after {
    content: "";
    width: 7px;
    height: 7px;
    border-right: 2px solid var(--purple);
    border-bottom: 2px solid var(--purple);
    transform: rotate(45deg);
    margin-left: 6px;
    margin-top: -3px;
    transition: transform 0.25s ease;
}

.cart_coupon[open] .cart_coupon__toggle::after {
    transform: rotate(-135deg);
    margin-top: 2px;
}

.cart_coupon__body {
    display: flex;
    align-items: stretch;
    gap: 8px;
    margin-top: 12px;
    max-width: 380px;
}

.cart_coupon__input {
    flex: 1;
    min-width: 0;
    height: 44px;
    padding: 0 16px;
    border: 1px solid #e0d2ea;
    border-radius: 999px;
    background: #fff;
    color: var(--dark);
    font-family: "Manrope", sans-serif;
    font-size: 1.4rem;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.cart_coupon__input:focus {
    outline: none;
    border-color: var(--purple);
    box-shadow: 0 0 0 3px rgba(94, 66, 115, 0.12);
}

.cart_coupon__apply {
    padding: 0 22px;
    height: 44px;
    border: none;
    border-radius: 999px;
    background: var(--purple);
    color: #fff;
    font-family: "Manrope", sans-serif;
    font-size: 1.4rem;
    font-weight: 500;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.25s ease, transform 0.15s ease;
}

.cart_coupon__apply:hover {
    background: var(--purple-dark);
}

.cart_coupon__apply:active {
    transform: scale(0.97);
}

.cart_update {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 44px;
    padding: 0 22px;
    border: 1.5px solid #e0d2ea;
    border-radius: 999px;
    background: #fff;
    color: var(--purple);
    font-family: "Manrope", sans-serif;
    font-size: 1.4rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.25s ease;
    white-space: nowrap;
}

.cart_update:not([disabled]):hover {
    border-color: var(--purple);
    background: var(--purple);
    color: #fff;
}

.cart_update[disabled] {
    opacity: 0.45;
    cursor: not-allowed;
}

.cart_update.is-active {
    border-color: var(--purple);
    background: var(--purple);
    color: #fff;
    animation: cartUpdatePulse 1.4s ease-in-out infinite;
}

@keyframes cartUpdatePulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(94, 66, 115, 0.30); }
    50%      { box-shadow: 0 0 0 8px rgba(94, 66, 115, 0); }
}

/* ---------- Summary sidebar (right column) ---------- */
.cart_collaterals {
    position: sticky;
    top: 24px;
    align-self: start;
    min-width: 0;
}

.cart_summary {
    background: #fff;
    border: 1px solid #efe7f3;
    border-radius: 22px;
    padding: 28px;
    box-shadow: 0 10px 32px rgba(94, 66, 115, 0.08);
}

.cart_summary__title {
    margin: 0 0 22px;
    padding-bottom: 18px;
    font-family: "Libre Baskerville", serif;
    font-size: 2.2rem;
    font-weight: 600;
    color: var(--dark);
    border-bottom: 1px solid #efe7f3;
}

.cart_summary__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.cart_summary__row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    font-family: "Manrope", sans-serif;
    font-size: 1.5rem;
    color: #4a4654;
}

.cart_summary__label {
    font-weight: 400;
    flex-shrink: 0;
}

.cart_summary__value {
    font-weight: 600;
    color: var(--dark);
    text-align: right;
    word-break: break-word;
}

.cart_summary__value .amount,
.cart_summary__value .woocommerce-Price-amount {
    white-space: nowrap;
}

.cart_summary__row.cart-discount .cart_summary__value {
    color: #1a8a3a;
}

.cart_summary__row.cart-discount .woocommerce-remove-coupon {
    display: inline-flex;
    align-items: center;
    margin-left: 8px;
    color: #b3261e;
    font-size: 1.1rem;
    font-weight: 500;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color 0.2s ease;
}

.cart_summary__row.cart-discount .woocommerce-remove-coupon:hover {
    border-bottom-color: currentColor;
}

.cart_summary__row--shipping {
    flex-direction: column;
    align-items: stretch;
    padding: 12px 14px;
    background: #fcfaff;
    border-radius: 12px;
    gap: 8px;
}

.cart_summary__row--shipping ul,
.cart_summary__row--shipping .woocommerce-shipping-methods {
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 1.4rem;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.cart_summary__row--shipping li {
    display: flex;
    align-items: center;
    gap: 8px;
}

.cart_summary__row--shipping label {
    color: #4a4654;
    font-weight: 400;
}

.cart_summary__row--total {
    margin-top: 10px;
    padding-top: 18px;
    border-top: 1px solid #efe7f3;
}

.cart_summary__row--total .cart_summary__label {
    font-size: 1.7rem;
    font-weight: 600;
    color: var(--dark);
}

.cart_summary__row--total .cart_summary__value {
    color: var(--purple);
    font-size: 2rem;
    font-weight: 700;
}

.cart_summary__note {
    margin-top: 10px;
    font-size: 1.2rem;
    color: #8a8294;
    text-align: right;
}

.cart_summary__cta {
    margin-top: 24px;
}

.cart_summary__checkout {
    width: 100%;
    justify-content: center;
    gap: 8px;
    padding: 11px 22px;
    font-size: 1.4rem;
    font-weight: 500;
    line-height: 1.2;
}

.cart_summary__checkout > span:first-child {
    flex: 0 0 auto;
    padding: 0;
    font-size: 1.4rem;
    line-height: 1.2;
}

/* Drop the white-circle icon — it's a hero-CTA pattern, too heavy for sidebar.
   Replace with a flat inline arrow next to the text. */
.cart_summary__checkout .pill_button__icon {
    width: auto;
    height: auto;
    background: transparent;
    color: #fff;
    box-shadow: none;
    transition: transform 0.25s ease;
}

.cart_summary__checkout .pill_button__icon svg {
    width: 14px;
    height: 14px;
    display: block;
}

.cart_summary__checkout:hover .pill_button__icon {
    transform: translateX(3px);
}

.cart_summary__trust {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px 14px;
    margin-top: 22px;
    padding-top: 22px;
    border-top: 1px solid #efe7f3;
}

.cart_summary__trust-item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 1.2rem;
    line-height: 1.3;
    color: #6b6477;
}

.cart_summary__trust-item svg {
    color: var(--purple);
    flex-shrink: 0;
}

@media (max-width: 1199px) {
    .cart_summary__trust {
        grid-template-columns: 1fr;
    }
}

/* ---------- Empty cart ---------- */
.cart_empty {
    max-width: 620px;
    margin: 0 auto;
    padding: 60px 32px;
    background: #fff;
    border: 1px solid #efe7f3;
    border-radius: 22px;
    box-shadow: 0 10px 32px rgba(94, 66, 115, 0.06);
    text-align: center;
}

.cart_empty__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 110px;
    height: 110px;
    border-radius: 50%;
    background: linear-gradient(135deg, #f6f1fa 0%, #ede0f5 100%);
    color: var(--purple);
    margin-bottom: 24px;
}

.cart_empty__title {
    margin: 0 0 16px;
    font-family: "Libre Baskerville", serif;
    font-size: 3.6rem;
    font-weight: 600;
    color: var(--dark);
}

.cart_empty__title span {
    color: var(--purple);
}

.cart_empty__text {
    max-width: 480px;
    margin: 0 auto 32px;
    font-size: 1.5rem;
    color: #6b6477;
    line-height: 1.6;
}

.cart_empty__actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}

.cart_empty__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--purple);
    font-family: "Manrope", sans-serif;
    font-size: 1.4rem;
    font-weight: 500;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color 0.2s ease, color 0.2s ease;
}

.cart_empty__link:hover {
    color: var(--purple-dark);
    border-bottom-color: currentColor;
}

/* WC default empty-cart paragraph + return-to-shop hidden (we render our own) */
.cart_section .cart-empty,
.cart_section p.return-to-shop {
    display: none;
}

/* ---------- Responsive: tablet (collapse non-essential columns) ---------- */
@media (max-width: 1199px) {
    .cart_card {
        grid-template-columns: 100px minmax(0, 1fr) 130px 100px 36px;
        column-gap: 18px;
    }
    .cart_card__thumb {
        width: 100px;
        height: 100px;
    }
    .cart_card__price {
        display: none;
    }
}

/* ---------- Responsive: small tablet ---------- */
@media (max-width: 991px) {
    .cart_card {
        grid-template-columns: 96px minmax(0, 1fr) 120px 100px 36px;
        column-gap: 16px;
    }
}

/* ---------- Responsive: mobile (stack) ---------- */
@media (max-width: 767px) {
    .cart_section {
        padding: 60px 0 80px;
    }

    .cart_card {
        grid-template-columns: 88px minmax(0, 1fr) minmax(0, 1fr);
        grid-template-areas:
            "thumb info info"
            "thumb qty  sub";
        column-gap: 14px;
        row-gap: 12px;
        padding: 16px;
        padding-right: 52px;   /* space for the absolute remove btn */
    }

    .cart_card__thumb {
        grid-area: thumb;
        width: 88px;
        height: 88px;
        align-self: start;
    }

    .cart_card__info {
        grid-area: info;
        align-self: start;
    }

    .cart_card__title {
        font-size: 1.5rem;
    }

    .cart_card__price-mobile {
        display: block;
        margin-top: 4px;
    }

    .cart_card__price {
        display: none;
    }

    .cart_card__qty {
        grid-area: qty;
        justify-content: flex-start;
        align-self: center;
    }

    .cart_card__subtotal {
        grid-area: sub;
        text-align: right;
        align-self: center;
        font-size: 1.5rem;
    }

    .cart_card__remove {
        position: absolute;
        top: 12px;
        right: 12px;
    }

    .cart_actions {
        flex-direction: column;
        padding: 14px;
        gap: 10px;
    }

    .cart_coupon {
        flex: 1 1 auto;
    }

    .cart_coupon__toggle {
        padding: 2px 0;
        font-size: 1.35rem;
    }

    .cart_coupon__body {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        margin-top: 10px;
        max-width: 100%;
        gap: 10px;
    }

    .cart_coupon__input,
    .cart_coupon__body .cart_coupon__input {
        width: 100%;
        flex: 0 0 auto;          /* override desktop flex: 1 0% */
        height: 52px;
        font-size: 1.6rem;
        padding: 0 20px;
    }

    .cart_coupon__apply,
    .cart_coupon__body .cart_coupon__apply {
        width: 100%;
        height: 52px;
        padding: 0 22px;
        font-size: 1.6rem;
        font-weight: 600;
    }

    .cart_update {
        align-self: stretch;
        justify-content: center;
    }

    .cart_summary {
        padding: 24px;
    }

    .cart_summary__title {
        font-size: 1.9rem;
    }

    .cart_summary__row--total .cart_summary__label {
        font-size: 1.6rem;
    }

    .cart_summary__row--total .cart_summary__value {
        font-size: 1.8rem;
    }

    .cart_empty {
        padding: 44px 22px;
    }

    .cart_empty__title {
        font-size: 2.6rem;
    }

    .cart_empty__icon {
        width: 92px;
        height: 92px;
    }
}

@media (max-width: 480px) {
    .cart_card {
        grid-template-columns: 76px minmax(0, 1fr);
        padding-right: 44px;
    }

    .cart_card__thumb {
        width: 76px;
        height: 76px;
    }

}

/* ===================== Checkout ===================== */

.checkout_section_outer {
    padding: 80px 0 120px;
    background: #fff;
}

.checkout_section_outer .woocommerce {
    /* WC wraps the shortcode in <div class="woocommerce">, we don't grid here —
       form-checkout.php controls the layout. */
}

/* ---------- 2-col layout ---------- */
.checkout_layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) clamp(380px, 32vw, 460px);
    gap: 32px;
    align-items: start;
}

.checkout_layout__main {
    display: flex;
    flex-direction: column;
    gap: 22px;
    min-width: 0;
}

.checkout_layout__sidebar {
    position: sticky;
    top: 24px;
    align-self: start;
    display: flex;
    flex-direction: column;
    gap: 18px;
    min-width: 0;
}

@media (max-width: 991px) {
    .checkout_layout {
        grid-template-columns: minmax(0, 1fr);
        gap: 26px;
    }
    .checkout_layout__sidebar {
        position: static;
    }
}

/* ---------- Section card (billing, shipping, payment, etc.) ---------- */
.checkout_section {
    background: #fff;
    border: 1px solid #efe7f3;
    border-radius: 22px;
    padding: 28px;
    box-shadow: 0 8px 28px rgba(94, 66, 115, 0.06);
}

.checkout_section__header {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 22px;
    padding-bottom: 18px;
    border-bottom: 1px solid #efe7f3;
}

.checkout_section__header--inline {
    align-items: center;
    margin-bottom: 18px;
    padding-bottom: 0;
    border-bottom: none;
}

.checkout_section__step {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--purple);
    color: #fff;
    font-family: "Manrope", sans-serif;
    font-size: 1.4rem;
    font-weight: 600;
    line-height: 1;
}

.checkout_section__title {
    margin: 0;
    font-family: "Libre Baskerville", serif;
    font-size: 2rem;
    font-weight: 600;
    color: var(--dark);
    line-height: 1.3;
}

.checkout_section__title--standalone {
    margin-bottom: 0;
}

.checkout_section__hint {
    margin: 4px 0 0;
    font-size: 1.3rem;
    line-height: 1.5;
    color: #6b6477;
    font-weight: 400;
}

/* ---------- Billing fields layout ----------
   CSS Grid 2-col → fields with class form-row-first/last sit on the same row;
   form-row-wide takes a full row. Mobile collapses to 1 col. */
.checkout_section .woocommerce-billing-fields__field-wrapper {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 16px;
}

.checkout_section .woocommerce-billing-fields__field-wrapper > .form-row {
    grid-column: span 2;
    width: 100%;
    margin: 0 0 18px;
    float: none;
}

.checkout_section .woocommerce-billing-fields__field-wrapper > .form-row.form-row-first,
.checkout_section .woocommerce-billing-fields__field-wrapper > .form-row.form-row-last {
    grid-column: span 1;
}

@media (max-width: 575px) {
    .checkout_section .woocommerce-billing-fields__field-wrapper {
        grid-template-columns: 1fr;
    }
    .checkout_section .woocommerce-billing-fields__field-wrapper > .form-row.form-row-first,
    .checkout_section .woocommerce-billing-fields__field-wrapper > .form-row.form-row-last {
        grid-column: span 1;
    }
}

/* ---------- Order review (sidebar) ---------- */
/* The container that holds .checkout_review + .checkout_payment side-by-side
   in the sticky sidebar. WC keeps id="order_review" — we just turn it into
   a flex column with gap so the two cards don't collide. */
#order_review,
.woocommerce-checkout-review-order {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.checkout_review {
    background: #fff;
    border: 1px solid #efe7f3;
    border-radius: 22px;
    padding: 24px;
    box-shadow: 0 10px 30px rgba(94, 66, 115, 0.08);
}

.checkout_review__items {
    list-style: none;
    margin: 0 0 18px;
    padding: 0 0 18px;
    border-bottom: 1px solid #efe7f3;
    display: flex;
    flex-direction: column;
    gap: 14px;
    max-height: 320px;
    overflow-y: auto;
}

.checkout_review__items::-webkit-scrollbar { width: 6px; }
.checkout_review__items::-webkit-scrollbar-track { background: transparent; }
.checkout_review__items::-webkit-scrollbar-thumb { background: #e0d2ea; border-radius: 999px; }

.checkout_review__item {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
}

.checkout_review__thumb {
    position: relative;
    width: 56px;
    height: 56px;
    flex-shrink: 0;
    /* no overflow:hidden — would clip the qty badge that overhangs by -6px */
}

.checkout_review__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 12px;
    background: #f6f1fa;
}

.checkout_review__product-qty {
    display: inline;
    margin-left: 4px;
    color: var(--purple);
    font-family: "Manrope", sans-serif;
    font-size: 1.3rem;
    font-weight: 600;
    white-space: nowrap;
}

.checkout_review__name {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.checkout_review__product-name {
    font-family: "Libre Baskerville", serif;
    font-size: 1.4rem;
    font-weight: 600;
    color: var(--dark);
    line-height: 1.3;
    word-break: break-word;
}

.checkout_review__meta {
    font-size: 1.2rem;
    color: #8a8294;
    font-weight: 400;
    line-height: 1.4;
}

.checkout_review__meta dl,
.checkout_review__meta p {
    margin: 0;
    font-size: 1.2rem;
    line-height: 1.4;
}

.checkout_review__price {
    color: var(--purple);
    font-family: "Manrope", sans-serif;
    font-size: 1.4rem;
    font-weight: 600;
    white-space: nowrap;
    text-align: right;
}

.checkout_review__totals {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.checkout_review__row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    font-family: "Manrope", sans-serif;
    font-size: 1.4rem;
    color: #4a4654;
}

.checkout_review__label {
    font-weight: 400;
}

.checkout_review__value {
    font-weight: 600;
    color: var(--dark);
    text-align: right;
}

.checkout_review__row.cart-discount .checkout_review__value {
    color: #1a8a3a;
}

.checkout_review__row.cart-discount .woocommerce-remove-coupon {
    margin-left: 6px;
    color: #b3261e;
    font-size: 1.1rem;
    font-weight: 500;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color 0.2s ease;
}

.checkout_review__row.cart-discount .woocommerce-remove-coupon:hover {
    border-bottom-color: currentColor;
}

.checkout_review__row--total {
    margin-top: 6px;
    padding-top: 14px;
    border-top: 1px solid #efe7f3;
}

.checkout_review__row--total .checkout_review__label {
    font-size: 1.6rem;
    font-weight: 600;
    color: var(--dark);
}

.checkout_review__row--total .checkout_review__value {
    font-size: 1.9rem;
    font-weight: 700;
    color: var(--purple);
}

/* ---------- Payment methods ---------- */
.checkout_payment {
    background: #fff;
    border: 1px solid #efe7f3;
    border-radius: 22px;
    padding: 24px;
    box-shadow: 0 8px 28px rgba(94, 66, 115, 0.06);
}

.checkout_payment__list {
    list-style: none;
    margin: 0 0 16px;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.checkout_payment__item {
    background: #fcfaff;
    border: 1.5px solid #ebdef4;
    border-radius: 14px;
    transition: border-color 0.2s ease, background 0.2s ease;
    overflow: hidden;
}

.checkout_payment__item:has(.checkout_payment__radio:checked) {
    border-color: var(--purple);
    background: #fff;
    box-shadow: 0 4px 14px rgba(94, 66, 115, 0.10);
}

.checkout_payment__radio {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
}

.checkout_payment__label {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    cursor: pointer;
    font-family: "Manrope", sans-serif;
    font-size: 1.4rem;
    font-weight: 500;
    color: var(--dark);
}

.checkout_payment__check {
    flex-shrink: 0;
    position: relative;
    width: 22px;
    height: 22px;
    border: 2px solid #c9b8d6;
    border-radius: 50%;
    background: #fff;
    transition: border-color 0.2s ease;
}

.checkout_payment__check::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 10px;
    height: 10px;
    margin: -5px 0 0 -5px;
    border-radius: 50%;
    background: var(--purple);
    transform: scale(0);
    transition: transform 0.2s ease;
}

.checkout_payment__radio:checked + .checkout_payment__label .checkout_payment__check {
    border-color: var(--purple);
}

.checkout_payment__radio:checked + .checkout_payment__label .checkout_payment__check::after {
    transform: scale(1);
}

.checkout_payment__radio:focus-visible + .checkout_payment__label .checkout_payment__check {
    box-shadow: 0 0 0 3px rgba(94, 66, 115, 0.18);
}

.checkout_payment__title {
    flex: 1;
    min-width: 0;
}

.checkout_payment__icon {
    margin-left: auto;
    flex-shrink: 0;
}

.checkout_payment__icon img {
    max-height: 28px;
    width: auto;
    display: inline-block;
}

.checkout_payment__box {
    padding: 0 18px 18px;
    font-size: 1.3rem;
    color: #6b6477;
    line-height: 1.55;
}

.checkout_payment__box p:last-child {
    margin-bottom: 0;
}

.checkout_payment__empty {
    list-style: none;
    padding: 14px 18px;
    border-radius: 12px;
    background: #fdecea;
    color: #b3261e;
    font-size: 1.3rem;
}

/* ---------- Terms & conditions ---------- */
.checkout_terms {
    margin-top: 8px;
    margin-bottom: 18px;
    padding: 14px 0;
    border-top: 1px solid #efe7f3;
}

.checkout_terms__row {
    margin: 0;
    padding: 0;
}

.checkout_terms__label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
    font-family: "Manrope", sans-serif;
    font-size: 1.3rem;
    line-height: 1.5;
    color: #4a4654;
    user-select: none;
}

.checkout_terms__input {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
}

.checkout_terms__box {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    margin-top: 1px;
    border: 1.5px solid #c9b8d6;
    border-radius: 6px;
    background: #fff;
    color: transparent;
    transition: all 0.2s ease;
}

.checkout_terms__input:checked + .checkout_terms__box {
    background: var(--purple);
    border-color: var(--purple);
    color: #fff;
}

.checkout_terms__input:focus-visible + .checkout_terms__box {
    box-shadow: 0 0 0 3px rgba(94, 66, 115, 0.18);
}

.checkout_terms__text {
    flex: 1;
    min-width: 0;
}

.checkout_terms__text a {
    color: var(--purple);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.checkout_terms__text a:hover {
    color: var(--purple-dark);
}

.checkout_terms__text .required {
    color: var(--purple);
    text-decoration: none;
}

/* ---------- Place order button ---------- */
.checkout_place_order {
    margin: 0;
    padding: 0;
}

.checkout_place_order__btn {
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 14px 22px;
    border: none;
    border-radius: 999px;
    background: var(--purple);
    color: #fff;
    font-family: "Manrope", sans-serif;
    font-size: 1.55rem;
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
    box-shadow: 0 10px 24px rgba(94, 66, 115, 0.25);
    transition: background 0.25s ease, transform 0.15s ease, box-shadow 0.25s ease;
}

.checkout_place_order__btn:hover:not([disabled]) {
    background: var(--purple-dark);
    transform: translateY(-1px);
    box-shadow: 0 14px 30px rgba(94, 66, 115, 0.32);
}

.checkout_place_order__btn:active:not([disabled]) {
    transform: scale(0.99);
}

.checkout_place_order__btn[disabled] {
    opacity: 0.6;
    cursor: not-allowed;
    box-shadow: none;
}

.checkout_place_order__icon {
    transition: transform 0.25s ease;
}

.checkout_place_order__btn:hover .checkout_place_order__icon {
    transform: translateX(3px);
}

.checkout_place_order__trust {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px 18px;
    margin-top: 14px;
    padding-top: 12px;
}

.checkout_place_order__trust-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 1.15rem;
    color: #6b6477;
    line-height: 1.3;
}

.checkout_place_order__trust-item svg {
    color: var(--purple);
    flex-shrink: 0;
}

/* ---------- WC AJAX loading state on checkout (.processing) ---------- */
.woocommerce-checkout.processing,
.woocommerce-checkout-review-order.processing {
    position: relative;
    pointer-events: none;
}

.woocommerce-checkout.processing > *,
.woocommerce-checkout-review-order.processing > * {
    opacity: 0.55;
    transition: opacity 0.2s ease;
}

.woocommerce-checkout.processing::after,
.woocommerce-checkout-review-order.processing::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 36px;
    height: 36px;
    margin: -18px 0 0 -18px;
    border: 3px solid rgba(94, 66, 115, 0.2);
    border-top-color: var(--purple);
    border-radius: 50%;
    animation: cart-spin 0.7s linear infinite;
}

/* WC's blockUI overlay restyle */
.blockUI.blockOverlay {
    background: rgba(255, 255, 255, 0.6) !important;
    opacity: 1 !important;
}

/* ===================== Thank-you (order received) ===================== */
.thankyou_section {
    padding: 80px 0 120px;
    background: #fff;
}

.thankyou {
    max-width: 720px;
    margin: 0 auto;
}

.thankyou__card {
    padding: 48px 40px;
    background: #fff;
    border: 1px solid #efe7f3;
    border-radius: 22px;
    box-shadow: 0 12px 40px rgba(94, 66, 115, 0.08);
    text-align: center;
}

.thankyou__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 96px;
    height: 96px;
    margin-bottom: 22px;
    border-radius: 50%;
    background: linear-gradient(135deg, #e3f5e8 0%, #c2e8cb 100%);
    color: #1a8a3a;
}

.thankyou__icon--failed {
    background: linear-gradient(135deg, #fdecea 0%, #f9c9c2 100%);
    color: #b3261e;
}

.thankyou__title {
    margin: 0 0 14px;
    font-family: "Libre Baskerville", serif;
    font-size: 3.4rem;
    font-weight: 600;
    color: var(--dark);
    line-height: 1.2;
}

.thankyou__title span {
    color: var(--purple);
}

.thankyou__text {
    max-width: 520px;
    margin: 0 auto 30px;
    font-size: 1.5rem;
    color: #6b6477;
    line-height: 1.6;
}

.thankyou__overview {
    list-style: none;
    margin: 0 0 30px;
    padding: 24px 28px;
    background: #fcfaff;
    border: 1px solid #efe7f3;
    border-radius: 16px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 16px 24px;
    text-align: left;
}

.thankyou__overview-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.thankyou__overview-label {
    font-size: 1.15rem;
    color: #8a8294;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.thankyou__overview-value {
    font-family: "Manrope", sans-serif;
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--dark);
    word-break: break-word;
}

.thankyou__overview-value--accent {
    color: var(--purple);
    font-size: 1.7rem;
}

.thankyou__actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
}

.thankyou__link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--purple);
    font-family: "Manrope", sans-serif;
    font-size: 1.4rem;
    font-weight: 500;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color 0.2s ease;
}

.thankyou__link:hover {
    border-bottom-color: currentColor;
}

@media (max-width: 767px) {
    .checkout_section_outer { padding: 60px 0 80px; }
    .thankyou_section { padding: 60px 0 80px; }
    .checkout_section { padding: 22px; border-radius: 18px; }
    .checkout_review { padding: 20px; border-radius: 18px; }
    .checkout_payment { padding: 20px; border-radius: 18px; }
    .checkout_section__title { font-size: 1.7rem; }
    .checkout_section__step { width: 28px; height: 28px; font-size: 1.3rem; }
    .checkout_payment__label { padding: 12px 14px; font-size: 1.35rem; }
    .checkout_place_order__btn { padding: 13px 20px; font-size: 1.45rem; }

    .thankyou__card { padding: 36px 24px; }
    .thankyou__title { font-size: 2.4rem; }
    .thankyou__icon { width: 76px; height: 76px; margin-bottom: 18px; }
    .thankyou__overview { padding: 18px 20px; grid-template-columns: 1fr; }
}

.payment_box p{
    font-size: 1.4rem;
}

.woocommerce-privacy-policy-text p{
    font-size: 1.4rem;
}

/* ===================== Single Product ===================== */

.hero--product { background: #4a3754; }

.hero--product .hero__title {
    font-size: clamp(3.6rem, 5vw, 5.6rem);
    margin-bottom: 14px;
}

.hero--product .hero__subtitle {
    margin: 0;
    max-width: 640px;
}

.product_breadcrumb {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 22px;
    padding: 8px 16px;
    background: rgba(255, 255, 255, 0.12);
    border: 1.5px solid rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    font-family: "Manrope", sans-serif;
    font-size: 1.25rem;
    font-weight: 500;
}

.product_breadcrumb a {
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    transition: color 0.2s ease;
}

.product_breadcrumb a:hover { color: #fff; }
.product_breadcrumb__sep { color: rgba(255, 255, 255, 0.35); font-weight: 300; }
.product_breadcrumb__current { color: #fff; font-weight: 500; }

.single_product_section {
    padding: 70px 0 100px;
    background: #fff;
}

.single_product__split {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: 50px;
    align-items: start;
    margin-bottom: 80px;
}

.single_product__gallery { position: relative; min-width: 0; }

.single_product__info {
    position: sticky;
    top: 24px;
    align-self: start;
    display: flex;
    flex-direction: column;
    gap: 20px;
    min-width: 0;
}

@media (max-width: 991px) {
    .single_product__split {
        grid-template-columns: minmax(0, 1fr);
        gap: 36px;
        margin-bottom: 60px;
    }
    .single_product__info { position: static; }
}

/* WC default gallery (flexslider) restyle */
.woocommerce-product-gallery {
    position: relative;
    background: #f6f1fa;
    border-radius: 22px;
    overflow: hidden;
}

.woocommerce-product-gallery__wrapper { position: relative; margin: 0; list-style: none; }
.woocommerce-product-gallery .flex-viewport { border-radius: 22px; overflow: hidden; }
.woocommerce-product-gallery__image { position: relative; overflow: hidden; }
.woocommerce-product-gallery__image a { display: block; overflow: hidden; border-radius: 22px; }

.woocommerce-product-gallery__image img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.4s ease;
}

.woocommerce-product-gallery__image:hover img { transform: scale(1.03); }

/* Defensive — should not render since lightbox theme support is disabled. */
.woocommerce-product-gallery__trigger { display: none !important; }

.woocommerce-product-gallery .flex-control-thumbs,
.woocommerce-product-gallery ol.flex-control-nav {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    margin: 14px 0 0;
    padding: 0;
    list-style: none;
}

.woocommerce-product-gallery .flex-control-thumbs li,
.woocommerce-product-gallery ol.flex-control-nav li { margin: 0; cursor: pointer; }

.woocommerce-product-gallery .flex-control-thumbs img,
.woocommerce-product-gallery ol.flex-control-nav img {
    width: 100%;
    height: auto;
    border-radius: 12px;
    opacity: 0.55;
    border: 2px solid transparent;
    transition: opacity 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.woocommerce-product-gallery .flex-control-thumbs img:hover,
.woocommerce-product-gallery .flex-control-thumbs img.flex-active,
.woocommerce-product-gallery ol.flex-control-nav img:hover,
.woocommerce-product-gallery ol.flex-control-nav img.flex-active {
    opacity: 1;
    border-color: var(--purple);
    transform: translateY(-2px);
}

.onsale {
    position: absolute;
    top: 16px; left: 16px;
    z-index: 5;
    padding: 6px 14px;
    background: var(--purple);
    color: #fff;
    border-radius: 999px;
    font-family: "Manrope", sans-serif;
    font-size: 1.2rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    box-shadow: 0 4px 14px rgba(94, 66, 115, 0.25);
}

.single_product__info .stock {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 6px 12px;
    border-radius: 999px;
    font-family: "Manrope", sans-serif;
    font-size: 1.25rem;
    font-weight: 500;
    width: fit-content;
}

.single_product__info .stock.in-stock { background: #e3f5e8; color: #1a8a3a; }
.single_product__info .stock.out-of-stock { background: #fdecea; color: #b3261e; }

.single_product__info .product_price,
.single_product__info p.price {
    margin: 0;
    color: var(--purple);
    font-family: "Manrope", sans-serif;
    font-size: 3.4rem;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.5px;
}

.single_product__info .product_price del,
.single_product__info p.price del {
    color: #8a8294;
    font-size: 2rem;
    font-weight: 500;
    margin-right: 12px;
}

.single_product__info .product_price ins,
.single_product__info p.price ins { background: transparent; text-decoration: none; }

.single_product__info .woocommerce-product-rating {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    font-size: 1.3rem;
    color: #6b6477;
}

.single_product__info .woocommerce-product-rating .star-rating {
    position: relative;
    width: 90px;
    height: 16px;
    overflow: hidden;
    line-height: 16px;
    font-size: 16px;
    letter-spacing: 2px;
    color: #f5a623;
}

.single_product__info .woocommerce-product-details__short-description {
    color: #4a4654;
    font-size: 1.5rem;
    line-height: 1.7;
}

.single_product__info .woocommerce-product-details__short-description p {
    margin: 0 0 10px;
    font-size: 1.5rem;
    line-height: 1.7;
}

.single_product__info .woocommerce-product-details__short-description p:last-child { margin-bottom: 0; }

.single_product__info .product_meta {
    margin: 0;
    padding: 16px 0 0;
    border-top: 1px solid #efe7f3;
    font-size: 1.3rem;
    color: #6b6477;
    line-height: 1.7;
}

.single_product__info .product_meta > span { display: block; margin-bottom: 4px; }

.single_product__info .product_meta a {
    color: var(--purple);
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color 0.2s ease;
}

.single_product__info .product_meta a:hover { border-bottom-color: currentColor; }

.product_cart {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    margin: 6px 0 0;
    padding: 18px;
    background: #fcfaff;
    border: 1px solid #efe7f3;
    border-radius: 18px;
}

.product_cart__qty { display: flex; flex-direction: column; gap: 6px; }

.product_cart__qty-label {
    font-size: 1.15rem;
    font-weight: 500;
    color: #8a8294;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.product_cart__btn {
    flex: 1;
    min-width: 200px;
    justify-content: center;
    padding: 11px 22px;
    font-size: 1.4rem;
    font-weight: 500;
    line-height: 1.2;
    box-shadow: 0 8px 22px rgba(94, 66, 115, 0.25);
}

.product_cart__btn .pill_button__icon { width: 30px; height: 30px; }

.product_cart__btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 28px rgba(94, 66, 115, 0.32);
}

@media (max-width: 480px) {
    .product_cart { flex-direction: column; align-items: stretch; }
    .product_cart__btn { width: 100%; }
}

.product_includes {
    list-style: none;
    margin: 0;
    padding: 18px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    background: linear-gradient(135deg, #f6f1fa 0%, #ede0f5 100%);
    border-radius: 18px;
}

.product_includes__item {
    display: flex;
    align-items: center;
    gap: 12px;
    font-family: "Manrope", sans-serif;
    font-size: 1.35rem;
    color: var(--dark);
    line-height: 1.4;
}

.product_includes__icon {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #fff;
    color: var(--purple);
    box-shadow: 0 2px 6px rgba(94, 66, 115, 0.10);
}

.product_includes__text { flex: 1; font-weight: 500; }

.product_description {
    max-width: 880px;
    margin: 0 auto;
    padding: 40px 0;
}

.product_description__header { text-align: center; margin-bottom: 32px; }

.product_description__title {
    margin: 0;
    font-family: "Libre Baskerville", serif;
    font-size: clamp(2.6rem, 4vw, 3.6rem);
    font-weight: 600;
    color: var(--dark);
    line-height: 1.2;
}

.product_description__title span { color: var(--purple); }

.product_description__body { color: #4a4654; font-size: 1.6rem; line-height: 1.75; }
.product_description__body p { margin: 0 0 16px; font-size: 1.6rem; line-height: 1.75; }
.product_description__body p:last-child { margin-bottom: 0; }
.product_description__body h2,
.product_description__body h3 {
    margin: 28px 0 14px;
    color: var(--dark);
    font-family: "Libre Baskerville", serif;
}
.product_description__body h2 { font-size: 2.4rem; }
.product_description__body h3 { font-size: 2rem; }
.product_description__body ul,
.product_description__body ol {
    margin: 0 0 16px 22px;
    font-size: 1.6rem;
    line-height: 1.75;
}
.product_description__body ul { list-style: disc; }
.product_description__body ol { list-style: decimal; }
.product_description__body a {
    color: var(--purple);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.related_products { padding: 60px 0 20px; }

.related_products__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 20px;
    margin-bottom: 40px;
}

.related_products__header .block_title { margin-bottom: 0; }
.related_products__nav { display: flex; gap: 10px; }

.related-prev,
.related-next {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1.5px solid #e0d2ea;
    border-radius: 50%;
    background: #fff;
    color: var(--purple);
    cursor: pointer;
    transition: all 0.25s ease;
}

.related-prev:hover,
.related-next:hover {
    background: var(--purple);
    border-color: var(--purple);
    color: #fff;
    transform: translateY(-1px);
}

.related-prev:disabled,
.related-next:disabled {
    opacity: 0.4;
    cursor: not-allowed;
    transform: none;
}

.product_card {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: #fff;
    border: 1px solid #efe7f3;
    border-radius: 18px;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.product_card:hover {
    transform: translateY(-4px);
    border-color: #e0d2ea;
    box-shadow: 0 16px 36px rgba(94, 66, 115, 0.12);
}

.product_card__img {
    display: block;
    aspect-ratio: 4/3;
    overflow: hidden;
    background: #f6f1fa;
}

.product_card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.product_card:hover .product_card__img img { transform: scale(1.06); }

.product_card__body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 20px;
}

.product_card__title {
    margin: 0;
    font-family: "Libre Baskerville", serif;
    font-size: 1.7rem;
    font-weight: 600;
    line-height: 1.3;
    color: var(--dark);
}

.product_card__title a { color: inherit; text-decoration: none; transition: color 0.2s ease; }
.product_card__title a:hover { color: var(--purple); }

.product_card__price {
    color: var(--purple);
    font-family: "Manrope", sans-serif;
    font-size: 1.7rem;
    font-weight: 700;
}

.product_card__price del {
    color: #8a8294;
    font-size: 1.4rem;
    font-weight: 500;
    margin-right: 8px;
}

.product_card__price ins { background: transparent; text-decoration: none; }

.product_card__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: auto;
    color: var(--purple);
    font-family: "Manrope", sans-serif;
    font-size: 1.3rem;
    font-weight: 500;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    align-self: flex-start;
    transition: border-color 0.2s ease, gap 0.2s ease;
}

.product_card__link:hover {
    border-bottom-color: currentColor;
    gap: 10px;
}

@media (max-width: 767px) {
    .single_product_section { padding: 50px 0 70px; }
    .related_products { padding: 40px 0 10px; }
    .related_products__header { flex-direction: column; align-items: flex-start; }
    .product_description { padding: 30px 0; }
    .single_product__info .product_price,
    .single_product__info p.price { font-size: 2.8rem; }
}

/* ===================== Voucher Product Cards ===================== */

.voucher_cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
    margin-top: 60px;
}

.voucher_card {
    display: flex;
    flex-direction: column;
    gap: 0;
    border-radius: 24px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 8px 32px rgba(94, 66, 115, 0.10);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.voucher_card:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 48px rgba(94, 66, 115, 0.18);
}

.voucher_card__visual {
    position: relative;
    min-height: 320px;
    background-color: #3a2554;
    background-size: cover;
    background-position: center;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 28px 24px 20px;
    border-radius: 24px 24px 0 0;
    overflow: hidden;
}

.voucher_card__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(20, 10, 35, 0.55) 0%,
        rgba(20, 10, 35, 0.30) 40%,
        rgba(20, 10, 35, 0.70) 100%
    );
    z-index: 0;
}

.voucher_card__title {
    position: relative;
    z-index: 1;
    font-family: "Libre Baskerville", serif;
    font-size: clamp(2rem, 2.4vw, 2.6rem);
    font-weight: 700;
    color: #fff;
    line-height: 1.25;
    margin: 0;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
}

.voucher_card__price {
    position: relative;
    z-index: 1;
    font-family: "Libre Baskerville", serif;
    font-size: clamp(4rem, 5.5vw, 6rem);
    font-weight: 700;
    color: #fff;
    line-height: 1.1;
    margin: auto 0 16px;
    text-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
}

.voucher_card__price span {
    font-size: 0.45em;
    font-weight: 600;
    vertical-align: baseline;
    margin-left: 4px;
}

.voucher_card__cta {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 12px 24px;
    background: var(--purple);
    color: #fff;
    border-radius: 999px;
    font-size: 1.4rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-decoration: none;
    transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
    box-shadow: 0 4px 14px rgba(94, 66, 115, 0.45);
    align-self: stretch;
    text-align: center;
}

.voucher_card__cta:hover {
    background: var(--purple-dark);
    transform: translateY(-1px);
    box-shadow: 0 8px 20px rgba(94, 66, 115, 0.55);
}

.voucher_card__dot {
    font-size: 1.8rem;
    line-height: 1;
    opacity: 0.7;
}

.voucher_card__features {
    list-style: none;
    margin: 0;
    padding: 22px 24px 12px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.voucher_card__feature {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 1.4rem;
    color: var(--dark);
    font-weight: 500;
    line-height: 1.4;
}

.voucher_card__feature-icon {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--purple);
    color: #fff;
}

.voucher_card__duration {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 12px 24px 22px;
    font-size: 1.4rem;
    font-weight: 500;
    color: #7a7484;
}

.voucher_card__duration-icon {
    display: inline-flex;
    align-items: center;
    color: #a08bbf;
}

@media (max-width: 1199px) {
    .voucher_cards {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }
}

@media (max-width: 767px) {
    .voucher_cards {
        grid-template-columns: 1fr;
        gap: 20px;
        margin-top: 40px;
    }
    .voucher_card__visual {
        min-height: 280px;
    }
}

/* ===================== Price List Section ===================== */

.price_list {
    background: #f0eaf8;
    padding: 80px 0 120px;
    position: relative;
    overflow: hidden;
}

.price_list .block_title {
    margin-bottom: 60px;
}

/* Decorative side images (dandelions — scattered) */
.price_list__deco {
    position: absolute;
    top: 0;
    width: 340px;
    height: 100%;
    pointer-events: none;
    z-index: 0;
    overflow: hidden;
}

.price_list__deco--left {
    left: 0;
}

.price_list__deco--right {
    right: 0;
    transform: scaleX(-1);
}

/* Individual scattered dandelions */
.pl-d {
    position: absolute;
    display: block;
    opacity: 0.9;
}

.pl-d--1 { width: 230px; top:  1%;  left: -60px; transform: rotate(-15deg); }
.pl-d--2 { width: 160px; top: 10%;  left:  90px; transform: rotate(22deg); }
.pl-d--3 { width: 260px; top: 22%;  left: -70px; transform: rotate(5deg); }
.pl-d--4 { width: 190px; top: 36%;  left:  60px; transform: rotate(-28deg); }
.pl-d--5 { width: 240px; top: 49%;  left: -50px; transform: rotate(14deg); }
.pl-d--6 { width: 170px; top: 61%;  left:  80px; transform: rotate(-10deg); }
.pl-d--7 { width: 250px; top: 72%;  left: -65px; transform: rotate(18deg); }
.pl-d--8 { width: 145px; top: 83%;  left:  70px; transform: rotate(-20deg); }
.pl-d--9 { width: 210px; top: 92%;  left: -40px; transform: rotate(8deg); }

.price_list__blocks {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 50px;
}

.price_list__block {
    display: grid;
    grid-template-columns: 600px 1fr;
    gap: 40px;
    align-items: stretch;
    min-height: 480px;
}

/* Even blocks: image on the right */
.price_list__block:nth-child(even) {
    grid-template-columns: 1fr 600px;
}

.price_list__block:nth-child(even) .price_list__image {
    order: 2;
}

.price_list__block:nth-child(even) .price_list__card {
    order: 1;
}

.price_list__image {
    border-radius: 20px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.price_list__image img {
    flex: 1;
    width: 100%;
    min-height: 0;
    object-fit: cover;
    display: block;
}

.price_list__card {
    background: #fff;
    border-radius: 24px;
    padding: 40px 50px;
    box-shadow: 0 8px 40px rgba(94, 66, 115, 0.08);
    display: flex;
    flex-direction: column;
}

.price_list__card-title {
    font-family: "Libre Baskerville", serif;
    font-size: 3rem;
    font-weight: 700;
    color: var(--purple);
    margin-bottom: 10px;
    line-height: 1.25;
}

.price_list__card-desc {
    font-size: 1.55rem;
    color: #7a7484;
    margin-bottom: 28px;
    line-height: 1.65;
}

.price_list__prices {
    flex: 1;
    display: flex;
    flex-direction: column;
    margin-bottom: 36px;
}

.price_list__prices-head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-bottom: 10px;
    border-bottom: 1px solid #e8e2f3;
    margin-bottom: 2px;
}

.price_list__prices-head span {
    font-size: 1.1rem;
    font-weight: 600;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: #b5aec4;
    white-space: nowrap;
}

.price_list__prices-head span:first-child {
    flex: 1;
}

.price_list__row {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 11px 0;
    border-bottom: 1px solid #ede7f8;
}

.price_list__row:last-child {
    border-bottom: none;
}

.price_list__row-name {
    font-size: 1.5rem;
    color: #2a2038;
    white-space: nowrap;
    font-weight: 500;
}

.price_list__row-dots {
    flex: 1;
    min-width: 20px;
    height: 3px;
    background-image: radial-gradient(circle, #c8bcd8 1.5px, transparent 1.5px);
    background-size: 8px 3px;
    background-repeat: repeat-x;
    background-position: center;
}

.price_list__row-price {
    font-size: 1.5rem;
    font-weight: 700;
    color: #2a2038;
    white-space: nowrap;
}

.price_list__row-duration {
    font-size: 1.4rem;
    color: #9e98ac;
    font-weight: 500;
    white-space: nowrap;
    min-width: 52px;
    text-align: right;
}

/* Responsive */

@media (max-width: 1199px) {
    .price_list__block {
        grid-template-columns: 300px 1fr;
        gap: 30px;
    }

    .price_list__block:nth-child(even) {
        grid-template-columns: 1fr 300px;
    }

    .price_list__card {
        padding: 32px 36px;
    }
}

@media (max-width: 991px) {
    .price_list__block,
    .price_list__block:nth-child(even) {
        grid-template-columns: 1fr;
        gap: 0;
        min-height: unset;
    }

    .price_list__block:nth-child(even) .price_list__image,
    .price_list__block:nth-child(even) .price_list__card {
        order: unset;
    }

    .price_list__image {
        max-height: 380px;
        min-height: unset;
        border-radius: 20px 20px 0 0;
    }

    .price_list__card {
        padding: 28px 28px;
        border-radius: 0 0 24px 24px;
        box-shadow: 0 8px 40px rgba(94, 66, 115, 0.10);
    }

    .price_list__deco {
        display: none;
    }
}

@media (max-width: 767px) {
    .price_list {
        padding: 60px 0 80px;
    }

    .price_list__card-title {
        font-size: 2.4rem;
    }

    .price_list__card {
        padding: 24px 20px;
    }

    .price_list__row-name,
    .price_list__row-price {
        font-size: 1.4rem;
    }
}

/* ===================== Results Gallery (services template) ===================== */
/* Editorial / photo-print aesthetic: warm paper background, minimal chrome,
   lowercase italics for "before/after", serif fraction counter. */
.results_section {
    padding: 80px 0 100px;
    background: #faf7f3;
}

/* Header — title left, nav arrows right (mirrors .our_services__header pattern) */
.results_gallery__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 40px;
}

.results_gallery__header .block_title {
    margin-bottom: 0;
}

.results_gallery__nav {
    display: flex;
    gap: 10px;
    align-items: center;
    padding-top: 6px;
    flex-shrink: 0;
}

.results_gallery__nav button {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    border: none;
    background: #ede8f5;
    color: var(--purple);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.3s ease, color 0.3s ease;
}

.results_gallery__nav button:hover {
    background: var(--purple);
    color: #fff;
}

.results_gallery__nav button.swiper-button-disabled {
    opacity: 0.35;
    cursor: not-allowed;
    pointer-events: none;
}

/* Edge-bleed slider: starts at container's left edge, runs to viewport right edge.
   Mirrors the .our_services_slider / .our_services_page_slider pattern in this theme.
   Slides peek off-screen on the right; the left edge clips cleanly so cards don't
   spill over the container gutter when advancing. */
.results_main_slider {
    --rs-offset: max(15px, calc((100vw - 1470px) / 2 + 15px));
    margin-left: var(--rs-offset);
    width: calc(100vw - var(--rs-offset));
    overflow: hidden;
}

.results_main_slider .swiper-slide {
    height: auto;
    display: flex;
}

/* Photo-print card — minimal frame, warm paper shadow, no hover lift */
.results_card {
    position: relative;
    width: 100%;
    background: #fff;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(60, 40, 30, 0.06), 0 12px 28px -16px rgba(60, 40, 30, 0.18);
    display: flex;
    flex-direction: column;
}

.results_card__body {
    padding: 18px 20px 22px;
    text-align: left;
}

/* Caption styled like a handwritten note pinned under the photo:
   serif italic, em-dash prefix, warm dark color. Asks the editor for
   real testimonial copy ("Maria, 32 — hydrafacial · 4 ședințe"). */
.results_card__caption {
    display: block;
    font-family: "Libre Baskerville", serif;
    font-style: italic;
    font-size: 1.55rem;
    font-weight: 400;
    color: #3a2f3d;
    line-height: 1.5;
}

.results_card__caption::before {
    content: "— ";
    color: var(--purple);
    font-style: normal;
    margin-right: 2px;
}

/* Before/After comparison figure */
.results_bna {
    --bna-pos: 50%;
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 5;
    margin: 0;
    overflow: hidden;
    cursor: ew-resize;
    touch-action: none;
    user-select: none;
    -webkit-user-select: none;
    background: #f5f1f8;
}

.results_bna__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    -webkit-user-drag: none;
    pointer-events: none;
}

.results_bna__after {
    position: absolute;
    inset: 0;
    overflow: hidden;
    /* Clip "after" from the LEFT by --bna-pos so the right side shows after,
       left side reveals the underlying before. */
    clip-path: inset(0 0 0 var(--bna-pos));
    -webkit-clip-path: inset(0 0 0 var(--bna-pos));
    will-change: clip-path;
    transition: clip-path 0.18s ease-out;
    -webkit-transition: -webkit-clip-path 0.18s ease-out;
}

.results_bna.is-dragging .results_bna__after {
    transition: none;
    -webkit-transition: none;
}

/* Labels — lowercase italic serif, no pill, just a subtle text shadow against the photo */
.results_bna__label {
    position: absolute;
    bottom: 16px;
    z-index: 4;
    font-family: "Libre Baskerville", serif;
    font-style: italic;
    font-size: 1.25rem;
    font-weight: 400;
    line-height: 1;
    color: #fff;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.55);
    pointer-events: none;
    letter-spacing: 0.01em;
}

.results_bna__label--before { left: 16px; }
.results_bna__label--after  { right: 16px; }

/* Divider handle */
.results_bna__handle {
    position: absolute;
    top: 0;
    bottom: 0;
    left: var(--bna-pos);
    z-index: 5;
    width: 50px;
    margin-left: -25px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: ew-resize;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    will-change: left;
    transition: left 0.18s ease-out;
}

.results_bna.is-dragging .results_bna__handle {
    transition: none;
}

.results_bna__handle-line {
    flex: 1 1 auto;
    width: 1px;
    background: rgba(255, 255, 255, 0.85);
}

.results_bna__handle-grip {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    margin: 8px 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.94);
    color: var(--purple);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 1px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
    pointer-events: auto;
    transition: transform 0.25s ease, background 0.25s ease;
}

.results_bna__handle:focus-visible {
    outline: none;
}

.results_bna__handle:focus-visible .results_bna__handle-grip {
    box-shadow: 0 0 0 2px rgba(94, 66, 115, 0.55), 0 2px 8px rgba(0, 0, 0, 0.18);
}

.results_bna.is-dragging .results_bna__handle-grip {
    transform: scale(1.06);
}

/* Editorial fraction counter — "01 — 14" serif italic, replaces dot bullets */
.results_gallery__pagination {
    position: relative;
    margin-top: 36px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    font-family: "Libre Baskerville", serif;
    font-style: italic;
    font-size: 1.5rem;
    color: #6b5470;
    letter-spacing: 0.05em;
    line-height: 1;
}

.results_gallery__pagination .swiper-pagination-current {
    color: var(--purple);
    font-style: normal;
    font-weight: 700;
}

.results_gallery__pagination-sep {
    color: rgba(94, 66, 115, 0.35);
    font-style: normal;
}

/* Tablet */
@media (max-width: 991px) {
    .results_card {
        border-radius: 20px;
    }

    .results_card__body {
        padding: 14px 18px 18px;
    }

    .results_card__caption {
        font-size: 1.5rem;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .results_section {
        padding: 30px 0 60px;
    }

    .results_gallery__header {
        flex-direction: column;
        gap: 20px;
        margin-bottom: 28px;
    }

    .results_gallery__nav {
        padding-top: 0;
    }

    .results_card {
        border-radius: 18px;
    }

    .results_bna {
        aspect-ratio: 3 / 4;
    }

    .results_bna__label {
        font-size: 0.95rem;
        padding: 4px 9px;
        top: 10px;
    }

    .results_bna__label--before { left: 10px; }
    .results_bna__label--after  { right: 10px; }

    .results_bna__handle-grip {
        width: 36px;
        height: 36px;
    }

    .results_gallery__pagination {
        margin-top: 24px;
    }
}

/* ===================== Mobile drawer (≤991px) ===================== */
/* Hamburger + drawer + overlay. Desktop nav remains untouched above 991px. */

/* Drawer chrome (header / footer / submenu toggle) is hidden on desktop. */
.menu_container__header,
.menu_container__footer,
.menu_container__toggle {
    display: none;
}

/* Invisible click-catcher. No visual scrim — drawer's shadow provides edge
   separation, and a dark scrim over a beauty brand looks heavy/tech.
   z-index 999 sits BELOW .navbar__menu (z 1000). The drawer lives inside the
   navbar's stacking context, so the navbar (and the drawer it contains) ends
   up rendered above this overlay — drawer stays fully clickable. */
.menu-overlay {
    position: fixed;
    inset: 0;
    background: transparent;
    z-index: 999;
    pointer-events: none;
}

.menu-overlay.active {
    pointer-events: auto;
}

@media (max-width: 991px) {
    /* Show hamburger + collapse desktop CTA so navbar fits. */
    .hamburger {
        display: flex;
    }

    .header_cta__order {
        display: none;          /* full CTA lives inside the drawer footer */
    }

    /* Keep "Coș" visible on mobile too */
    .header_cart__label {
        font-size: 1.25rem;
    }

    /* Group cart + hamburger tight on the right; logo pinned left. */
    .navbar__menu .container {
        gap: 8px;
    }

    .main-logo {
        margin-right: auto;     /* eat all free space → siblings cluster right */
    }

    .header_cta {
        gap: 0;                 /* only cart is visible on mobile */
        margin: 0;
    }

    /* Compact pill — icon circle + "Coș" label + count badge. The icon stays
       in its small purple-tinted circle (matches desktop); the surrounding
       pill background drops to keep the look airy on small screens. */
    .header_cart {
        position: relative;
        gap: 8px;
        padding: 4px 14px 4px 4px;
        border-radius: 999px;
        background: rgba(255, 255, 255, 0.14);
        border: 1px solid rgba(255, 255, 255, 0.32);
        align-items: center;
        overflow: visible;          /* let count badge poke out */
        transition: background 0.25s ease, border-color 0.25s ease;
    }

    .header_cart:hover {
        background: rgba(255, 255, 255, 0.24);
        border-color: rgba(255, 255, 255, 0.55);
        transform: none;
    }

    .header_cart__circle {
        position: relative;
        width: 32px;
        height: 32px;
    }

    .header_cart__circle svg {
        width: 18px;
        height: 18px;
    }

    /* Count badge — sits on the icon circle's top-right corner */
    .cart-count {
        position: absolute;
        top: -4px;
        right: -4px;
        min-width: 18px;
        height: 18px;
        padding: 0 4px;
        background: var(--purple);
        color: #fff;
        border: 2px solid #fff;
        border-radius: 999px;
        font-size: 0.95rem;
        font-weight: 700;
        line-height: 14px;
        text-align: center;
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18);
    }

    .hamburger {
        margin-left: 0;
    }

    /* ------- Drawer ------- */
    .menu_container {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        height: 100vh;
        height: 100dvh;
        width: min(380px, 92vw);
        margin: 0;
        padding: 0;
        background: #faf7f3;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        transform: translateX(100%);
        transition: transform 0.32s cubic-bezier(0.32, 0.72, 0, 1);
        z-index: 1003;
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        box-shadow: -20px 0 50px -20px rgba(40, 20, 50, 0.4);
        gap: 0;
        /* Promote to its own compositor layer for smooth slide-in */
        will-change: transform;
        /* iPhone landscape notch on the right */
        padding-right: env(safe-area-inset-right);
    }

    .menu_container.active {
        transform: translateX(0);
    }

    /* Drawer header */
    .menu_container__header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 22px 24px;
        border-bottom: 1px solid rgba(94, 66, 115, 0.10);
        flex-shrink: 0;
        background: #fff;
    }

    .menu_container__brand img {
        max-height: 40px;
        width: auto;
        display: block;
    }

    .menu_container__brand span {
        font-family: "Libre Baskerville", serif;
        font-size: 1.8rem;
        font-weight: 700;
        color: var(--purple);
    }

    .menu_container__close {
        width: 44px;
        height: 44px;
        border-radius: 50%;
        border: none;
        background: rgba(94, 66, 115, 0.08);
        color: var(--purple);
        display: inline-flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        transition: background 0.25s ease, transform 0.25s ease;
    }

    .menu_container__close:hover,
    .menu_container__close:focus-visible {
        background: rgba(94, 66, 115, 0.16);
        outline: none;
    }

    .menu_container__close:focus-visible {
        box-shadow: 0 0 0 3px rgba(94, 66, 115, 0.35);
    }

    .menu_container__close:active {
        transform: scale(0.94);
    }

    .menu_container__brand {
        display: inline-flex;
        align-items: center;
        text-decoration: none;
    }

    /* ------- Menu list ------- */
    .menu_container > ul {
        flex: 1 1 auto;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 8px 0;
    }

    .menu_container > ul > li {
        position: relative;
        border-bottom: 1px solid rgba(94, 66, 115, 0.06);
    }

    .menu_container > ul > li > a {
        padding: 18px 56px 18px 24px;
        color: #2d2230;
        font-size: 1.7rem;
        font-weight: 500;
        line-height: 1.3;
        white-space: normal;
    }

    .menu_container > ul > li > a::after {
        display: none;          /* drop the desktop hover underline */
    }

    .menu_container > ul > li > a:hover,
    .menu_container > ul > li.current-menu-item > a,
    .menu_container > ul > li.current_page_item > a,
    .menu_container > ul > li.current-menu-parent > a,
    .menu_container > ul > li.current-menu-ancestor > a {
        color: var(--purple);
        background: rgba(94, 66, 115, 0.04);
    }

    /* Submenu toggle chevron */
    .menu_container__toggle {
        position: absolute;
        top: 0;
        right: 0;
        width: 56px;
        height: 56px;
        padding: 0;
        border: none;
        background: transparent;
        color: rgba(94, 66, 115, 0.55);
        cursor: pointer;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        z-index: 2;
        transition: color 0.25s ease;
    }

    .menu_container__toggle svg {
        transition: transform 0.3s ease;
    }

    .menu_container > ul > li.is-open > .menu_container__toggle {
        color: var(--purple);
    }

    .menu_container > ul > li.is-open > .menu_container__toggle svg {
        transform: rotate(180deg);
    }

    /* Submenu accordion — convert desktop dropdown to inline accordion */
    .menu_container > ul ul.sub-menu {
        position: static;
        display: none;
        flex-direction: column;
        background: rgba(94, 66, 115, 0.03);
        box-shadow: none;
        border-radius: 0;
        padding: 4px 0 8px;
        gap: 0;
        min-width: 0;
    }

    .menu_container > ul li.is-open > ul.sub-menu {
        display: flex;
    }

    .menu_container > ul li:hover > ul.sub-menu {
        display: none;          /* override the desktop hover-open rule */
    }

    .menu_container > ul li.is-open:hover > ul.sub-menu {
        display: flex;
    }

    .menu_container > ul ul.sub-menu li a {
        padding: 14px 24px 14px 40px;
        font-size: 1.45rem;
        color: #4a3854;
        white-space: normal;
    }

    .menu_container > ul ul.sub-menu li a:hover {
        background: rgba(94, 66, 115, 0.06);
        color: var(--purple);
    }

    /* ------- Footer (contact + CTA + social) ------- */
    .menu_container__footer {
        display: flex;
        flex-direction: column;
        gap: 18px;
        padding: 22px 24px 28px;
        border-top: 1px solid rgba(94, 66, 115, 0.10);
        background: rgba(94, 66, 115, 0.025);
        flex-shrink: 0;
    }

    .menu_container__contact {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }

    .menu_container__contact-item {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        color: #3a2f3d;
        font-size: 1.4rem;
        font-weight: 500;
        line-height: 1.3;
        text-decoration: none;
        transition: color 0.2s ease;
    }

    .menu_container__contact-item:hover {
        color: var(--purple);
    }

    .menu_container__contact-item svg {
        flex-shrink: 0;
        color: var(--purple);
        opacity: 0.85;
    }

    .menu_container__cta {
        width: 100%;
        justify-content: center;
        padding-top: 14px;
        padding-bottom: 14px;
        font-size: 1.5rem;
    }

    .menu_container__social {
        display: flex;
        gap: 10px;
        align-items: center;
    }

    .menu_container__social a {
        width: 38px;
        height: 38px;
        border-radius: 50%;
        background: rgba(94, 66, 115, 0.08);
        color: var(--purple);
        display: inline-flex;
        align-items: center;
        justify-content: center;
        transition: background 0.25s ease, color 0.25s ease;
    }

    .menu_container__social a:hover {
        background: var(--purple);
        color: #fff;
    }

    /* ------- Top bar — keep just location, hide social/email on tablet ------- */
    .top_bar__left {
        gap: 14px;
    }

    .top_bar__left .top_bar__item:nth-child(n+3) {
        display: none;          /* hide email; keep address + phone */
    }

    .top_bar__right {
        display: none;
    }
}

@media (max-width: 575px) {
    /* Phones: drop the top bar entirely — too noisy at small widths */
    .top_bar {
        display: none;
    }

    .navbar__menu {
        top: 0;
    }

    .navbar__menu .container {
        gap: 6px;
    }

    .header_logo {
        max-height: 44px;
    }

    .header_cart {
        gap: 6px;
        padding: 3px 11px 3px 3px;
    }

    .header_cart__circle {
        width: 30px;
        height: 30px;
    }

    .header_cart__circle svg {
        width: 16px;
        height: 16px;
    }

    .header_cart__label {
        font-size: 1.2rem;
    }

    .cart-count {
        min-width: 16px;
        height: 16px;
        font-size: 0.85rem;
        line-height: 12px;
        top: -3px;
        right: -3px;
    }

    .hamburger {
        width: 40px;
        height: 40px;
        padding: 6px;
    }

    .menu_container__header {
        padding: 18px 20px;
    }

    .menu_container > ul > li > a {
        padding: 16px 52px 16px 20px;
        font-size: 1.6rem;
    }

    .menu_container__toggle {
        width: 52px;
        height: 52px;
    }

    .menu_container > ul ul.sub-menu li a {
        padding-left: 36px;
    }

    .menu_container__footer {
        padding: 18px 20px 24px;
    }
}

/* Honour reduced-motion preference */
@media (prefers-reduced-motion: reduce) {
    .menu_container,
    .menu-overlay,
    .menu_container__toggle svg {
        transition-duration: 0.01ms !important;
    }
}

/* ============================================================
   About page (templates/about-template.php)
   Editorial / magazine-style — typography-driven, warm cream
   palette, no generic icon-cards. Reuses block_title where it
   makes sense; introduces block_kicker as a small label above h2.
   ============================================================ */

/* Shared kicker label — small caps, letter-spaced, purple */
.block_kicker {
    display: inline-block;
    font-family: "Manrope", sans-serif;
    font-size: 1.2rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--purple);
    margin-bottom: 18px;
}

.block_kicker::before {
    content: "— ";
    color: rgba(94, 66, 115, 0.4);
}

/* ---------- 1. Story / founder split ---------- */
.about_story {
    position: relative;
}

.about_story__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    gap: 60px;
    align-items: center;
}

.about_story__media {
    position: relative;
}

.about_story__portrait {
    position: relative;
    margin: 0;
    border-radius: 8px;
    overflow: hidden;
    background: #f5f1f8;
    aspect-ratio: 4 / 5;
    box-shadow: 0 30px 50px -25px rgba(60, 40, 50, 0.32);
}

.about_story__portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.about_story__caption {
    position: absolute;
    left: 24px;
    bottom: 24px;
    padding: 12px 18px;
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-radius: 6px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    box-shadow: 0 8px 22px rgba(60, 40, 50, 0.18);
}

.about_story__caption-name {
    font-family: "Libre Baskerville", serif;
    font-weight: 700;
    font-size: 1.6rem;
    color: #1a1a1a;
    line-height: 1.2;
}

.about_story__caption-role {
    font-family: "Libre Baskerville", serif;
    font-style: italic;
    font-size: 1.25rem;
    color: var(--purple);
    line-height: 1.2;
}

/* Years badge — floating top-right of portrait, balances bottom-left caption */
.about_story__years {
    position: absolute;
    top: 24px;
    right: 24px;
    width: 124px;
    height: 124px;
    border-radius: 50%;
    background: #faf7f3;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 14px 12px;
    box-shadow: 0 14px 32px -10px rgba(60, 40, 50, 0.32),
                0 0 0 1px rgba(94, 66, 115, 0.08);
}

.about_story__years-num {
    font-family: "Libre Baskerville", serif;
    font-size: 4rem;
    font-weight: 700;
    line-height: 1;
    color: var(--purple);
    letter-spacing: -0.5px;
}

.about_story__years-label {
    font-family: "Libre Baskerville", serif;
    font-style: italic;
    font-size: 1.1rem;
    line-height: 1.25;
    color: #4a4254;
    margin-top: 6px;
}

/* Specialty pills — outline style with purple dot prefix */
.about_story__specialties {
    list-style: none;
    margin: 28px 0 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.about_story__specialty {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 9px 18px;
    border-radius: 999px;
    border: 1px solid rgba(94, 66, 115, 0.22);
    background: rgba(94, 66, 115, 0.04);
    font-family: "Manrope", sans-serif;
    font-size: 1.3rem;
    font-weight: 500;
    color: var(--purple);
    line-height: 1.2;
    transition: background 0.25s ease, border-color 0.25s ease;
}

.about_story__specialty::before {
    content: "";
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--purple);
    opacity: 0.55;
    flex-shrink: 0;
}

.about_story__specialty:hover {
    background: rgba(94, 66, 115, 0.08);
    border-color: rgba(94, 66, 115, 0.35);
}

/* Scattered variant — pills positioned chaotically over the portrait,
   each at a different rotation, like stickers on a polaroid. */
.about_story__specialties--scattered {
    position: absolute;
    inset: 0;
    margin: 0;
    padding: 0;
    list-style: none;
    pointer-events: none;
    z-index: 3;
    display: block;          /* override default flex from base class */
}

.about_story__specialties--scattered .about_story__specialty {
    --rot: 0deg;
    --scl: 1;
    position: absolute;
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: none;
    box-shadow: 0 10px 26px -8px rgba(60, 40, 50, 0.4),
                0 0 0 1px rgba(94, 66, 115, 0.08);
    transform: rotate(var(--rot)) scale(var(--scl));
    transform-origin: center;
    transition: transform 0.4s cubic-bezier(0.32, 0.72, 0, 1),
                background 0.25s ease, z-index 0s 0.05s;
    pointer-events: auto;
    white-space: nowrap;
}

/* Asymmetric scatter — three pills at distinct corners with random tilts */
.about_story__specialties--scattered .about_story__specialty:nth-child(1) {
    --rot: -4deg;
    top: 16%;
    left: 6%;
}

.about_story__specialties--scattered .about_story__specialty:nth-child(2) {
    --rot: 5deg;
    top: 48%;
    right: 8%;
}

.about_story__specialties--scattered .about_story__specialty:nth-child(3) {
    --rot: -2.5deg;
    bottom: 22%;
    left: 28%;
}

/* Fallback positions for 4th+ pills */
.about_story__specialties--scattered .about_story__specialty:nth-child(4) {
    --rot: 3deg;
    top: 30%;
    left: 34%;
}

.about_story__specialties--scattered .about_story__specialty:nth-child(5) {
    --rot: -3deg;
    bottom: 38%;
    right: 18%;
}

/* Hover/focus — straighten and lift, override any nth-child rotation */
.about_story__specialties--scattered .about_story__specialty:hover,
.about_story__specialties--scattered .about_story__specialty:focus-visible {
    --rot: 0deg;
    --scl: 1.06;
    background: #fff;
    z-index: 4;
    box-shadow: 0 14px 34px -8px rgba(60, 40, 50, 0.45),
                0 0 0 1px rgba(94, 66, 115, 0.15);
}

.about_story__content {
    max-width: 580px;
}

.about_story__title {
    font-family: "Libre Baskerville", serif;
    font-size: clamp(3.2rem, 4vw, 4.6rem);
    font-weight: 600;
    line-height: 1.15;
    color: #1a1a1a;
    margin: 0 0 26px;
}

.about_story__title span {
    color: var(--purple);
    font-style: italic;
}

.about_story__body {
    font-size: 1.55rem;
    line-height: 1.75;
    color: #4a4254;
}

.about_story__body p {
    margin: 0 0 16px;
    font-size: inherit;
    line-height: inherit;
}

.about_story__body p:last-child {
    margin-bottom: 0;
}

.about_story__quote {
    position: relative;
    margin: 36px 0 0;
    padding: 24px 0 0;
    border-top: 1px solid rgba(94, 66, 115, 0.18);
}

.about_story__quote-mark {
    position: absolute;
    top: -2px;
    left: 0;
    font-family: "Libre Baskerville", serif;
    font-style: italic;
    font-size: 5.6rem;
    line-height: 1;
    color: var(--purple);
    opacity: 0.25;
}

.about_story__quote p {
    font-family: "Libre Baskerville", serif;
    font-style: italic;
    font-size: 2rem;
    line-height: 1.45;
    color: #2d2230;
    margin: 0;
    padding-left: 36px;
}

/* ---------- 2. Mission (centered cream block) ---------- */
.about_mission {
    margin-top: 120px;       /* override .mt-120 collapse */
}

.about_mission .container {
    display: flex;
    justify-content: center;
}

.about_mission__inner {
    max-width: 760px;
    text-align: center;
}

.about_mission__title {
    font-family: "Libre Baskerville", serif;
    font-size: clamp(3rem, 4.5vw, 4.4rem);
    font-weight: 600;
    line-height: 1.2;
    color: #1a1a1a;
    margin: 0 0 28px;
}

.about_mission__title span {
    color: var(--purple);
    font-style: italic;
}

.about_mission__body {
    font-size: 1.6rem;
    line-height: 1.75;
    color: #4a4254;
}

.about_mission__body p {
    margin: 0 0 14px;
    font-size: inherit;
    line-height: inherit;
}

.about_mission__body p:last-child {
    margin-bottom: 0;
}

/* ---------- 3. Stats — clean horizontal, no boxes ---------- */
.about_stats {
    padding: 60px 0;
}

.about_stats__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 40px;
    align-items: end;
}

.about_stats__item {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding-right: 24px;
    border-right: 1px solid rgba(94, 66, 115, 0.15);
}

.about_stats__item:last-child {
    border-right: none;
}

.about_stats__number {
    font-family: "Libre Baskerville", serif;
    font-size: clamp(4.4rem, 6vw, 6.8rem);
    font-weight: 700;
    line-height: 1;
    color: var(--purple);
    letter-spacing: -0.5px;
}

.about_stats__label {
    font-family: "Libre Baskerville", serif;
    font-style: italic;
    font-size: 1.45rem;
    color: #4a4254;
    line-height: 1.3;
}

/* ---------- 4. Team grid ---------- */
.about_team__header {
    max-width: 720px;
    margin: 0 auto 56px;
    text-align: center;
}

.about_team__title {
    font-family: "Libre Baskerville", serif;
    font-size: clamp(3rem, 4.5vw, 4.4rem);
    font-weight: 600;
    line-height: 1.2;
    color: #1a1a1a;
    margin: 0 0 18px;
}

.about_team__title span {
    color: var(--purple);
    font-style: italic;
}

.about_team__lead {
    font-size: 1.55rem;
    line-height: 1.6;
    color: #4a4254;
    margin: 0;
}

.about_team__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: 50px 28px;
}

.team_member {
    display: flex;
    flex-direction: column;
}

.team_member__photo {
    aspect-ratio: 3 / 4;
    border-radius: 6px;
    overflow: hidden;
    background: #f5f1f8;
    margin-bottom: 18px;
    box-shadow: 0 12px 28px -16px rgba(60, 40, 50, 0.22);
}

.team_member__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s cubic-bezier(0.32, 0.72, 0, 1);
}

.team_member:hover .team_member__photo img {
    transform: scale(1.04);
}

.team_member__body {
    text-align: left;
}

.team_member__name {
    font-family: "Libre Baskerville", serif;
    font-size: 2rem;
    font-weight: 700;
    color: #1a1a1a;
    margin: 0 0 4px;
    line-height: 1.2;
}

.team_member__role {
    font-family: "Libre Baskerville", serif;
    font-style: italic;
    font-size: 1.4rem;
    color: var(--purple);
    margin: 0 0 12px;
    line-height: 1.3;
}

.team_member__bio {
    font-size: 1.4rem;
    line-height: 1.65;
    color: #555;
    margin: 0;
}

/* ---------- 5. Reasons — numbered list editorial ---------- */
.about_reasons__layout {
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1fr);
    gap: 80px;
    align-items: start;
}

.about_reasons__intro {
    position: sticky;
    top: 100px;
    max-width: 460px;
}

.about_reasons__title {
    font-family: "Libre Baskerville", serif;
    font-size: clamp(2.8rem, 4vw, 4rem);
    font-weight: 600;
    line-height: 1.18;
    color: #1a1a1a;
    margin: 0 0 22px;
}

.about_reasons__title span {
    color: var(--purple);
    font-style: italic;
}

.about_reasons__lead {
    font-size: 1.55rem;
    line-height: 1.65;
    color: #4a4254;
    margin: 0;
}

.about_reasons__list {
    list-style: none;
    margin: 0;
    padding: 0;
    counter-reset: reasons;
}

.about_reasons__item {
    display: grid;
    grid-template-columns: 60px 1fr;
    gap: 28px;
    align-items: center;
    padding: 28px 0;
    border-bottom: 1px solid rgba(94, 66, 115, 0.14);
}

.about_reasons__item:first-child {
    border-top: 1px solid rgba(94, 66, 115, 0.14);
}

.about_reasons__num {
    font-family: "Libre Baskerville", serif;
    font-style: italic;
    font-size: 2.4rem;
    color: var(--purple);
    opacity: 0.55;
    line-height: 1;
    letter-spacing: 0.5px;
}

.about_reasons__title-row {
    font-family: "Libre Baskerville", serif;
    font-size: 1.95rem;
    font-weight: 600;
    color: #1a1a1a;
    line-height: 1.3;
}

/* ---------- 6. Future — gallery mosaic + closing copy ---------- */
.about_future__header {
    max-width: 720px;
    margin: 0 auto 30px;
    text-align: center;
}

.about_future__title {
    font-family: "Libre Baskerville", serif;
    font-size: clamp(3rem, 4.5vw, 4.4rem);
    font-weight: 600;
    line-height: 1.2;
    color: #1a1a1a;
    margin: 0;
}

.about_future__title span {
    color: var(--purple);
    font-style: italic;
}

.about_future__body {
    max-width: 720px;
    margin: 0 auto;
    text-align: center;
}

.about_future__body p {
    font-size: 1.55rem;
    line-height: 1.75;
    color: #4a4254;
    margin: 0 0 26px;
}

.about_future__body .pill_button {
    margin-top: 4px;
}

.about_future__gallery {
    margin-top: 70px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    padding: 0 max(15px, calc((100vw - 1470px) / 2 + 15px));
}

.about_future__shot {
    margin: 0;
    overflow: hidden;
    border-radius: 6px;
    background: #f5f1f8;
    box-shadow: 0 12px 28px -18px rgba(60, 40, 50, 0.22);
    aspect-ratio: 9 / 10;        /* portrait, matches uploaded images */
}

.about_future__shot img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s cubic-bezier(0.32, 0.72, 0, 1);
}

.about_future__shot:hover img {
    transform: scale(1.03);
}

/* ============================================================
   About page — Responsive
   ============================================================ */

/* Tablet */
@media (max-width: 991px) {
    .about_story__layout {
        grid-template-columns: 1fr;
        gap: 36px;
        max-width: 640px;
        margin: 0 auto;
    }

    .about_story__title {
        font-size: clamp(2.8rem, 5vw, 3.6rem);
    }

    .about_story__years {
        width: 102px;
        height: 102px;
        top: 18px;
        right: 18px;
        padding: 12px 10px;
    }

    .about_story__years-num {
        font-size: 3.2rem;
    }

    .about_story__years-label {
        font-size: 1rem;
    }

    .about_story__specialty {
        font-size: 1.25rem;
        padding: 8px 14px;
    }

    .about_story__specialties--scattered .about_story__specialty {
        font-size: 1.15rem;
        padding: 7px 13px;
    }
    .about_story__specialties--scattered .about_story__specialty:nth-child(1) {
        top: 13%;
        left: 4%;
    }
    .about_story__specialties--scattered .about_story__specialty:nth-child(2) {
        top: 46%;
        right: 4%;
    }
    .about_story__specialties--scattered .about_story__specialty:nth-child(3) {
        bottom: 19%;
        left: 24%;
    }

    .about_story__quote p {
        font-size: 1.7rem;
    }

    .about_mission {
        padding: 70px 0;
        margin-top: 90px;
    }

    .about_stats__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 36px 30px;
        align-items: start;
    }

    .about_stats__item {
        padding-right: 16px;
    }

    .about_stats__item:nth-child(2) {
        border-right: none;
    }

    .about_team__header {
        margin-bottom: 40px;
    }

    .about_team__grid {
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
        gap: 40px 20px;
    }

    .about_reasons__layout {
        grid-template-columns: 1fr;
        gap: 36px;
    }

    .about_reasons__intro {
        position: static;
        max-width: 100%;
    }

    .about_future__gallery {
        margin-top: 50px;
        gap: 16px;
    }
}

/* Phablet */
@media (max-width: 767px) {
    .about_story__caption {
        left: 16px;
        bottom: 16px;
        padding: 10px 14px;
    }

    .about_story__years {
        width: 88px;
        height: 88px;
        top: 14px;
        right: 14px;
        padding: 10px 8px;
        box-shadow: 0 8px 20px -8px rgba(60, 40, 50, 0.3),
                    0 0 0 1px rgba(94, 66, 115, 0.08);
    }

    .about_story__years-num {
        font-size: 2.6rem;
    }

    .about_story__years-label {
        font-size: 0.9rem;
        margin-top: 4px;
    }

    .about_story__specialties {
        margin-top: 22px;
        gap: 8px;
    }

    .about_story__specialty {
        padding: 7px 13px;
        font-size: 1.2rem;
    }

    .about_story__specialties--scattered .about_story__specialty {
        font-size: 1.05rem;
        padding: 6px 11px;
        box-shadow: 0 6px 16px -6px rgba(60, 40, 50, 0.4),
                    0 0 0 1px rgba(94, 66, 115, 0.08);
    }
    .about_story__specialties--scattered .about_story__specialty:nth-child(1) {
        top: 11%;
        left: 4%;
    }
    .about_story__specialties--scattered .about_story__specialty:nth-child(2) {
        top: 44%;
        right: 4%;
    }
    .about_story__specialties--scattered .about_story__specialty:nth-child(3) {
        bottom: 22%;
        left: 22%;
    }

    .about_story__quote {
        margin-top: 28px;
        padding-top: 20px;
    }

    .about_story__quote-mark {
        font-size: 4.4rem;
    }

    .about_story__quote p {
        padding-left: 24px;
        font-size: 1.55rem;
    }

    .about_mission {
        padding: 60px 0;
        margin-top: 70px;
    }

    .about_mission__title {
        font-size: clamp(2.4rem, 7vw, 3.2rem);
    }

    .about_stats {
        padding: 40px 0;
    }

    .about_stats__number {
        font-size: clamp(3.6rem, 11vw, 5.2rem);
    }

    .about_reasons__item {
        grid-template-columns: 44px 1fr;
        gap: 18px;
        padding: 22px 0;
    }

    .about_reasons__num {
        font-size: 1.9rem;
    }

    .about_reasons__title-row {
        font-size: 1.6rem;
    }

    /* Mosaic collapses to single-column stack on small phones */
    .about_future__gallery {
        grid-template-columns: 1fr;
        gap: 14px;
        padding: 0 15px;
    }
}

/* Phone */
@media (max-width: 575px) {
    .about_stats__grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .about_stats__item {
        flex-direction: row;
        align-items: baseline;
        gap: 16px;
        padding-right: 0;
        padding-bottom: 18px;
        border-right: none;
        border-bottom: 1px solid rgba(94, 66, 115, 0.14);
    }

    .about_stats__item:last-child {
        border-bottom: none;
        padding-bottom: 0;
    }

    .about_stats__number {
        flex: 0 0 auto;
        min-width: 100px;
        font-size: 4rem;
    }

    .about_team__grid {
        grid-template-columns: 1fr;
        gap: 36px;
    }

    .team_member {
        max-width: 360px;
        margin: 0 auto;
    }

    .about_future__body p {
        font-size: 1.45rem;
    }
}

/* ============================================================
   Variable product — pill attribute picker + styled summary
   Restyles WC's default <table class="variations"> as a vertical
   editorial stack and progressively enhances each <select> with
   pill buttons (built by JS at runtime). Native select stays in
   DOM as JS-disabled fallback.
   ============================================================ */

/* Reset the default <table> layout — render rows as a vertical stack */
.variations_form table.variations {
    width: 100%;
    border: none;
    border-collapse: collapse;
    margin: 28px 0 24px;
    background: transparent;
}

.variations_form table.variations tbody {
    display: flex;
    flex-direction: column;
    gap: 26px;
    width: 100%;
}

.variations_form table.variations tr {
    display: flex;
    flex-direction: column;
    gap: 12px;
    border: none;
    background: transparent;
}

.variations_form table.variations th.label,
.variations_form table.variations td.value {
    display: block;
    padding: 0;
    border: none;
    background: transparent;
    text-align: left;
    width: 100%;
}

.variations_form table.variations th.label label {
    font-family: "Manrope", sans-serif;
    font-size: 1.15rem;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(94, 66, 115, 0.78);
    margin: 0;
    cursor: default;
}

/* Hide the native select once JS has built the pills (graceful fallback if JS off) */
.variations_form select.is-enhanced {
    display: none !important;
}

/* Style the native select for the no-JS / pre-enhancement fallback */
.variations_form table.variations select {
    width: 100%;
    max-width: 380px;
    padding: 13px 44px 13px 18px;
    border: 1.5px solid rgba(94, 66, 115, 0.22);
    border-radius: 10px;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235E4273' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 18px center;
    font-family: "Libre Baskerville", serif;
    font-size: 1.45rem;
    color: #2d2230;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
}

/* Pill picker (built by JS) */
.product_variation__pills {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.product_variation__pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 22px;
    min-height: 44px;
    border-radius: 999px;
    border: 1.5px solid rgba(94, 66, 115, 0.22);
    background: #fff;
    color: #2d2230;
    font-family: "Libre Baskerville", serif;
    font-size: 1.45rem;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease,
                transform 0.2s ease, box-shadow 0.25s ease;
}

.product_variation__pill:hover:not(.is-disabled):not(.is-active) {
    border-color: rgba(94, 66, 115, 0.5);
    transform: translateY(-1px);
    box-shadow: 0 6px 14px -8px rgba(94, 66, 115, 0.3);
}

.product_variation__pill.is-active {
    background: var(--purple);
    border-color: var(--purple);
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 8px 20px -8px rgba(94, 66, 115, 0.5);
}

.product_variation__pill.is-disabled,
.product_variation__pill[disabled] {
    opacity: 0.4;
    cursor: not-allowed;
    text-decoration: line-through;
    text-decoration-color: rgba(94, 66, 115, 0.4);
}

.product_variation__pill:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(94, 66, 115, 0.35);
}

/* Reset link — sits inside <td class="value"> after the pills */
.variations_form .reset_variations {
    display: inline-block;
    margin-top: 10px;
    font-family: "Libre Baskerville", serif;
    font-style: italic;
    font-size: 1.3rem;
    color: rgba(94, 66, 115, 0.7);
    text-decoration: none;
    transition: color 0.25s ease;
}

.variations_form .reset_variations:hover {
    color: var(--purple);
    text-decoration: underline;
}

.product_variations__unavailable,
.variations_form .stock.out-of-stock {
    padding: 16px 20px;
    border-radius: 8px;
    background: rgba(198, 40, 40, 0.06);
    border: 1px solid rgba(198, 40, 40, 0.18);
    color: #c62828;
    font-family: "Libre Baskerville", serif;
    font-style: italic;
    font-size: 1.45rem;
}

/* Variation summary (price + availability + description) */
.single_variation_wrap {
    margin-top: 20px;
}

.woocommerce-variation {
    margin-bottom: 22px;
}

.woocommerce-variation-price {
    font-family: "Libre Baskerville", serif;
    font-size: 2.6rem;
    font-weight: 700;
    color: var(--purple);
    line-height: 1.15;
    letter-spacing: -0.5px;
}

.woocommerce-variation-price .price {
    color: inherit;
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
}

.woocommerce-variation-price .woocommerce-Price-currencySymbol {
    font-size: 0.7em;
    margin-left: 4px;
    opacity: 0.85;
    font-weight: 600;
    letter-spacing: 0;
}

.woocommerce-variation-price del {
    color: rgba(94, 66, 115, 0.45);
    margin-right: 10px;
    font-size: 0.7em;
    font-weight: 500;
}

.woocommerce-variation-price ins {
    text-decoration: none;
    background: transparent;
}

.woocommerce-variation-availability {
    margin-top: 10px;
    font-family: "Manrope", sans-serif;
    font-size: 1.4rem;
    line-height: 1.5;
    color: #5a4d62;
}

.woocommerce-variation-availability .stock {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.woocommerce-variation-availability .stock::before {
    content: "";
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: currentColor;
    flex-shrink: 0;
}

.woocommerce-variation-availability .stock.in-stock {
    color: #2e7d32;
}

.woocommerce-variation-availability .stock.out-of-stock,
.woocommerce-variation-availability .stock.available-on-backorder {
    color: #c62828;
}

.woocommerce-variation-description {
    margin-top: 12px;
    font-family: "Libre Baskerville", serif;
    font-style: italic;
    font-size: 1.5rem;
    line-height: 1.6;
    color: #4a4254;
}

.woocommerce-variation-description p:last-child {
    margin-bottom: 0;
}

.woocommerce-variation-add-to-cart-disabled .single_add_to_cart_button {
    opacity: 0.4;
    pointer-events: none;
}

/* Variable products inherit `.product_cart` (padded flex box) on the FORM,
   which is wrong because the form now wraps the variations table + summary
   too. Reset the form to block flow and move the padded box down to the
   add-to-cart row where it actually belongs. */
.variations_form.product_cart {
    display: block;
    margin: 0;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    flex-wrap: nowrap;
    gap: 0;
}

.variations_form .woocommerce-variation-add-to-cart {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    margin: 18px 0 0;
    padding: 18px;
    background: #fcfaff;
    border: 1px solid #efe7f3;
    border-radius: 18px;
}

.variations_form .woocommerce-variation-add-to-cart .product_cart__qty {
    flex: 0 0 auto;
}

.variations_form .woocommerce-variation-add-to-cart .product_cart__btn {
    flex: 1 1 auto;
    min-width: 200px;
}

@media (max-width: 575px) {
    .product_variations {
        gap: 22px;
    }

    .product_variation__pill {
        padding: 10px 18px;
        font-size: 1.3rem;
        min-height: 40px;
    }

    .woocommerce-variation-price {
        font-size: 2.1rem;
    }
}

@media (max-width: 480px) {
    .variations_form .woocommerce-variation-add-to-cart {
        flex-direction: column;
        align-items: stretch;
    }

    .variations_form .woocommerce-variation-add-to-cart .product_cart__btn {
        width: 100%;
    }
}

/* ============================================================
   Shop archive (archive-product.php)
   Editorial product grid — cream backdrop, serif italic prices,
   small-caps category labels, no SaaS shadow stacks.
   ============================================================ */

.shop_section {
    background: #fff;
    padding: 70px 0 100px;
}

/* Filter pills row */
.shop_filters {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-bottom: 56px;
}

.shop_filter {
    display: inline-flex;
    align-items: center;
    padding: 9px 20px;
    border-radius: 999px;
    border: 1px solid rgba(94, 66, 115, 0.22);
    background: rgba(255, 255, 255, 0.6);
    color: var(--purple);
    font-family: "Manrope", sans-serif;
    font-size: 1.3rem;
    font-weight: 500;
    text-decoration: none;
    transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}

.shop_filter:hover {
    background: #fff;
    border-color: rgba(94, 66, 115, 0.4);
}

.shop_filter.is-active {
    background: var(--purple);
    border-color: var(--purple);
    color: #fff;
}

/* Product grid */
.shop_grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 50px 32px;
}

.shop_card {
    display: flex;
    flex-direction: column;
}

.shop_card__media {
    position: relative;
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: 8px;
    background: #f5f1f8;
    margin-bottom: 20px;
    box-shadow: 0 14px 30px -18px rgba(60, 40, 50, 0.22);
}

.shop_card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s cubic-bezier(0.32, 0.72, 0, 1);
}

.shop_card:hover .shop_card__media img {
    transform: scale(1.04);
}

.shop_card__badge {
    position: absolute;
    top: 14px;
    left: 14px;
    padding: 6px 12px;
    border-radius: 999px;
    background: var(--purple);
    color: #fff;
    font-family: "Manrope", sans-serif;
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    line-height: 1;
}

.shop_card__body {
    text-align: left;
}

/* Small-caps category meta */
.shop_card__cats {
    font-family: "Manrope", sans-serif;
    font-size: 1.1rem;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(94, 66, 115, 0.75);
    margin-bottom: 8px;
    line-height: 1.2;
}

.shop_card__cats a {
    color: inherit;
    text-decoration: none;
    transition: color 0.25s ease;
}

.shop_card__cats a:hover {
    color: var(--purple);
}

.shop_card__title {
    font-family: "Libre Baskerville", serif;
    font-size: 1.85rem;
    font-weight: 600;
    color: #1a1a1a;
    line-height: 1.3;
    margin: 0 0 10px;
}

.shop_card__title a {
    color: inherit;
    text-decoration: none;
    transition: color 0.25s ease;
}

.shop_card__title a:hover {
    color: var(--purple);
}

/* Editorial italic price */
.shop_card__price {
    font-family: "Libre Baskerville", serif;
    font-style: italic;
    font-size: 1.65rem;
    color: var(--purple);
    margin-bottom: 16px;
    line-height: 1.3;
}

.shop_card__price del {
    color: rgba(94, 66, 115, 0.45);
    margin-right: 8px;
    font-size: 0.85em;
    text-decoration: line-through;
}

.shop_card__price ins {
    text-decoration: none;
    background: transparent;
}

.shop_card__price .woocommerce-Price-currencySymbol {
    margin-left: 2px;
    font-size: 0.85em;
    opacity: 0.85;
}

/* CTA link with arrow that grows on hover */
.shop_card__cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--purple);
    font-family: "Manrope", sans-serif;
    font-size: 1.35rem;
    font-weight: 500;
    text-decoration: none;
    line-height: 1;
    transition: gap 0.25s ease;
}

.shop_card__cta svg {
    transition: transform 0.3s ease;
}

.shop_card__cta:hover {
    gap: 12px;
}

.shop_card__cta:hover svg {
    transform: translateX(2px);
}

/* Pagination */
.shop_pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin-top: 70px;
    flex-wrap: wrap;
}

.shop_pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    height: 42px;
    padding: 0 14px;
    border-radius: 999px;
    background: transparent;
    color: var(--purple);
    font-family: "Libre Baskerville", serif;
    font-size: 1.5rem;
    text-decoration: none;
    transition: background 0.25s ease, color 0.25s ease;
}

.shop_pagination .page-numbers:hover {
    background: rgba(94, 66, 115, 0.08);
}

.shop_pagination .page-numbers.current {
    background: var(--purple);
    color: #fff;
    font-weight: 700;
}

.shop_pagination .page-numbers.dots {
    background: transparent;
    color: rgba(94, 66, 115, 0.5);
}

.shop_pagination .page-numbers.dots:hover {
    background: transparent;
}

/* Empty state */
.shop_empty {
    text-align: center;
    padding: 80px 20px;
}

.shop_empty p {
    font-family: "Libre Baskerville", serif;
    font-style: italic;
    font-size: 1.7rem;
    color: #6b5470;
    margin: 0 0 24px;
}

/* Responsive */
@media (max-width: 991px) {
    .shop_grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 40px 24px;
    }

    .shop_filters {
        margin-bottom: 40px;
    }
}

@media (max-width: 767px) {
    .shop_section {
        padding: 50px 0 80px;
    }

    .shop_card__title {
        font-size: 1.65rem;
    }

    .shop_card__price {
        font-size: 1.5rem;
    }

    .shop_pagination {
        margin-top: 50px;
    }
}

@media (max-width: 575px) {
    .shop_grid {
        grid-template-columns: 1fr;
        gap: 36px;
    }

    .shop_card {
        max-width: 380px;
        margin: 0 auto;
        width: 100%;
    }

    .shop_filters {
        gap: 8px;
        margin-bottom: 32px;
    }

    .shop_filter {
        padding: 8px 16px;
        font-size: 1.2rem;
    }

    .shop_pagination .page-numbers {
        min-width: 36px;
        height: 36px;
        font-size: 1.3rem;
    }
}
