﻿/* =========================================================
   TABLE OF CONTENTS
   01. Global Reset
   02. Announcement Bar
   03. Logo Bar
   04. Navbar
   05. Search
   06. Nav Links (Desktop)
   07. Dropdown (Desktop Hover)
   08. Button
   09. Hamburger
   10. Bottom Sheet Menu
   11. Hero Section
   12. Impact Section
   13. About Section
   14. VMV Section (Vision · Mission · Values)
   15. Courses Section
   16. Featured Products Section
   17. Gallery Section
   18. Voices / Reviews Section
   19. NGO Collaborations Section
   20. Learn By Doing Section
   21. Footer
   22. Responsive — Navbar & Hero
   23. Responsive — Impact
   24. Responsive — About
   25. Responsive — VMV
   26. Responsive — Courses
   27. Responsive — Products
   28. Responsive — Gallery
   29. Responsive — Voices
   30. Responsive — NGO
   31. Responsive — Learn By Doing
   32. Responsive — Footer
========================================================= */


/* =========================================================
   01. GLOBAL RESET
========================================================= */
html,
body {
    background-color: #FDF5ED;
    margin: 0;
    padding: 0;
    width: 100%;
    max-width: 100%;
    min-height: 100%;
    overflow-x: hidden !important;
    scroll-behavior: smooth;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

    html::-webkit-scrollbar,
    body::-webkit-scrollbar {
        display: none;
    }

*,
*::before,
*::after {
    box-sizing: border-box;
}

section,
div,
nav,
header,
footer,
main {
    max-width: 100%;
}

img,
video,
iframe {
    max-width: 100%;
    height: auto;
    display: block;
}


/* =========================================================
   02. ANNOUNCEMENT BAR
========================================================= */
.announcement-bar {
    background-color: #411C05;
    color: #FDF5ED;
    width: 100%;
    overflow: hidden;
    white-space: nowrap;
    position: relative;
    padding: 9px 0;
    border-bottom: 1px solid #6B3A1F;
}

.marquee-track {
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
    width: max-content;
    animation: marquee-move 40s linear infinite;
    will-change: transform;
}

.announcement-bar:hover .marquee-track {
    animation-play-state: paused;
}


.marquee-content {
    font-family: 'Roboto', sans-serif;
    font-size: 0.875rem;
    font-weight: 500;
    color: #FDF5ED;
    letter-spacing: 0.03em;
    padding-right: 80px; /* bigger gap between repeat */
    white-space: nowrap;
    display: inline-block; /* forces each label to own block */
}


@keyframes marquee-move {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-50%);
    }
}

/* =========================================================
   03. LOGO BAR
========================================================= */
.logo-bar {
    background-color: #FDF5ED;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 16px 20px 12px;
    width: 100%;
    overflow: hidden;
}

.logo-link {
    display: flex;
    align-items: center;
    text-decoration: none;
}

.logo-img {
    height: 60px;
    width: auto;
    object-fit: contain;
}


/* =========================================================
   04. NAVBAR
========================================================= */
.main-navbar {
    background-color: #FDF5ED;
    position: sticky;
    top: 0;
    z-index: 999;
    width: 100%;
    overflow: visible;
}

.navbar-container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    height: 58px;
    overflow: visible;
}


/* =========================================================
   05. SEARCH
========================================================= */
.nav-search {
    width: 150px;
    min-width: 0;
    flex-shrink: 1;
}

.search-input {
    width: 100%;
    background: transparent;
    border: none;
    border-bottom: 1.5px solid #936C53;
    padding: 5px 4px;
    outline: none;
    text-align: center;
    font-family: 'Roboto', sans-serif;
    font-size: 0.875rem;
    font-weight: 600;
    color: #765038;
}

    .search-input::placeholder {
        color: #765038;
        font-style: italic;
    }

    .search-input:focus {
        border-bottom-color: #C9A646;
    }

.mobile-search-row {
    display: none;
}


/* =========================================================
   06. NAV LINKS — Desktop
========================================================= */
.nav-links {
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1;
    margin: 0;
    padding: 0;
    gap: 0;
    overflow: visible;
}

    .nav-links li {
        position: relative;
    }

.nav-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 11px;
    font-family: 'Roboto', sans-serif;
    font-size: 0.875rem;
    font-weight: 600;
    color: #936C53;
    text-decoration: none;
    white-space: nowrap;
    transition: color 0.25s ease;
}

    .nav-link:hover,
    .nav-link.active {
        color: #552709;
        text-decoration: none;
    }

    .nav-link::after {
        content: "";
        position: absolute;
        left: 50%;
        right: 50%;
        bottom: -2px;
        height: 2px;
        background: #C9A646;
        border-radius: 5px;
        transition: left 0.25s ease, right 0.25s ease;
    }

    .nav-link:hover::after,
    .nav-link.active::after {
        left: 8px;
        right: 8px;
    }


/* =========================================================
   07. DROPDOWN — Desktop Hover
========================================================= */
.arrow {
    font-size: 0.6rem;
    transition: transform 0.25s ease;
}

.has-dropdown:hover .arrow {
    transform: rotate(180deg);
}

.dropdown-menu {
    position: absolute;
    top: calc(100% + 2px);
    left: 0;
    min-width: 160px;
    background: #FDF5ED;
    border: 1px solid #E8D0B0;
    border-radius: 10px;
    box-shadow: 0 6px 20px rgba(118, 80, 56, 0.15);
    padding: 6px 0;
    margin: 0;
    list-style: none;
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity 0.25s ease, visibility 0.25s ease, transform 0.25s ease;
    z-index: 999;
}

.has-dropdown:hover .dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.dropdown-link {
    display: block;
    padding: 10px 18px;
    font-family: 'Roboto', sans-serif;
    font-size: 0.85rem;
    font-weight: 600;
    color: #936C53;
    text-decoration: none;
    transition: background 0.2s ease, color 0.2s ease;
}

    .dropdown-link:hover {
        background: #F0E0CC;
        color: #552709;
    }

.dropdown-menu li + li {
    border-top: 1px solid #EFE0CC;
}


/* =========================================================
   08. BUTTON
========================================================= */
.nav-cta {
    flex-shrink: 0;
}

.btn-create-account {
    display: inline-block;
    padding: 10px 22px;
    border-radius: 50px;
    border: none;
    background: linear-gradient(135deg, #C9A646 0%, #765038 100%);
    color: #fff;
    text-decoration: none;
    font-family: 'Roboto', sans-serif;
    font-size: 0.875rem;
    font-weight: 600;
    white-space: nowrap;
    box-shadow: 0 3px 10px rgba(201, 166, 70, 0.35);
    transition: transform 0.25s ease, background 0.25s ease;
}

    .btn-create-account:hover {
        transform: translateY(-2px);
        color: #fff;
        text-decoration: none;
        background: linear-gradient(135deg, #765038 0%, #552709 100%);
    }


/* =========================================================
   09. HAMBURGER
========================================================= */
.hamburger {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    background: none;
    border: 2px solid #765038;
    border-radius: 6px;
    padding: 5px 7px;
    cursor: pointer;
    position: relative;
    z-index: 1100;
}

    .hamburger span {
        width: 20px;
        height: 2px;
        background: #765038;
        border-radius: 5px;
        transition: transform 0.3s ease, opacity 0.3s ease;
    }

    .hamburger.active span:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }

    .hamburger.active span:nth-child(2) {
        opacity: 0;
    }

    .hamburger.active span:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }


/* =========================================================
   10. BOTTOM SHEET MENU
========================================================= */
.sheet-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(44, 20, 8, 0.55);
    z-index: 1000;
    opacity: 0;
    transition: opacity 0.3s ease;
}

    .sheet-backdrop.is-opening {
        display: block;
    }

    .sheet-backdrop.open {
        opacity: 1;
    }

.bottom-sheet {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1050;
    background: #FDF5ED;
    border-radius: 20px 20px 0 0;
    border-top: 1px solid #E8D0B0;
    padding: 0 0 env(safe-area-inset-bottom, 16px);
    transform: translateY(100%);
    transition: transform 0.38s cubic-bezier(0.32, 0.72, 0, 1);
    max-height: 80vh;
    overflow-y: auto;
    display: none;
}

    .bottom-sheet.is-opening {
        display: block;
    }

    .bottom-sheet.open {
        transform: translateY(0);
    }

.sheet-handle {
    display: flex;
    justify-content: center;
    padding: 12px 0 4px;
    cursor: grab;
}

    .sheet-handle::before {
        content: '';
        display: block;
        width: 36px;
        height: 4px;
        background: #C9A8A8;
        border-radius: 2px;
        opacity: 0.5;
    }

.sheet-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 4px 20px 12px;
    border-bottom: 1px solid #EFE0CC;
}

.sheet-brand {
    font-family: 'Cormorant Infant', serif;
    font-size: 1.1rem;
    font-weight: 700;
    color: #411C05;
    letter-spacing: 0.02em;
}

.sheet-close {
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px;
    color: #936C53;
    font-size: 1.4rem;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    width: 32px;
    height: 32px;
    transition: background 0.2s ease;
}

    .sheet-close:hover {
        background: #F0E0CC;
        color: #552709;
    }

.sheet-nav {
    list-style: none;
    margin: 0;
    padding: 8px 0;
}

    .sheet-nav li {
        border-bottom: 1px solid #F5E8D8;
    }

        .sheet-nav li:last-child {
            border-bottom: none;
        }

.sheet-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 15px 24px;
    font-family: 'Roboto', sans-serif;
    font-size: 1rem;
    font-weight: 600;
    color: #765038;
    text-decoration: none;
    transition: background 0.2s ease, color 0.2s ease;
}

    .sheet-link:hover {
        background: #FDF0E4;
        color: #411C05;
    }

    .sheet-link.active {
        color: #411C05;
    }

.sheet-arrow {
    font-size: 0.6rem;
    color: #936C53;
    transition: transform 0.25s ease;
}

.sheet-has-dropdown.open .sheet-arrow {
    transform: rotate(180deg);
}

.sheet-submenu {
    display: none;
    list-style: none;
    margin: 0;
    padding: 0;
    background: #FFF8F2;
    border-top: 1px solid #F0E0CC;
}

.sheet-has-dropdown.open .sheet-submenu {
    display: block;
}

.sheet-submenu li {
    border-bottom: 1px solid #F5EBE0;
}

    .sheet-submenu li:last-child {
        border-bottom: none;
    }

.sheet-sublink {
    display: block;
    padding: 12px 36px;
    font-family: 'Roboto', sans-serif;
    font-size: 0.9rem;
    font-weight: 600;
    color: #936C53;
    text-decoration: none;
    transition: background 0.2s ease, color 0.2s ease;
}

    .sheet-sublink:hover {
        background: #F0E0CC;
        color: #552709;
    }

.sheet-footer {
    padding: 16px 24px 20px;
    border-top: 1px solid #EFE0CC;
}

    .sheet-footer .btn-create-account {
        display: block;
        text-align: center;
        width: 100%;
        font-size: 0.95rem;
        padding: 13px 22px;
    }


/* =========================================================
   11. HERO SECTION
========================================================= */
.hero-section {
    background: #FDF5ED;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: unset;
    padding: 20px 0 0 80px;
    overflow: hidden;
    position: relative;
    gap: 0;
}

.hero-content {
    flex: 0 0 auto;
    width: 45%;
    max-width: 520px;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: 16px 0;
    opacity: 0;
    animation: hero-fade-up 0.75s ease forwards 0.1s;
}

.hero-heading-row {
    display: flex;
    align-items: baseline;
    flex-wrap: nowrap;
    gap: 6px;
    margin: 0 0 18px;
}

.eyebrow-italic {
    font-family: 'Cormorant Infant', serif;
    font-style: italic;
    font-weight: 700;
    font-size: 1.5rem;
    color: #B8911F;
    margin: 0;
    letter-spacing: 0.01em;
    display: inline;
    line-height: 1.2;
    white-space: nowrap;
}

.hero-title-wrap {
    display: inline-flex;
    align-items: baseline;
    flex-wrap: nowrap;
    justify-content: center;
}

.hero-title {
    font-family: 'Merriweather', serif;
    font-size: clamp(1.8rem, 3vw, 2.8rem);
    font-weight: 700;
    line-height: 1.05;
    color: #552709;
    margin: 0;
    letter-spacing: -0.01em;
    display: inline;
    white-space: nowrap;
}

.typed-cursor {
    display: inline-block;
    width: 3px;
    height: 1em;
    background: #C9A646;
    margin-left: 3px;
    vertical-align: text-bottom;
    border-radius: 2px;
    flex-shrink: 0;
    animation: blink 0.75s step-end infinite;
}

@keyframes blink {
    0%, 100% {
        opacity: 1;
    }

    50% {
        opacity: 0;
    }
}

.hero-tagline {
    font-family: 'Cormorant Infant', serif;
    font-size: 1.1rem;
    font-weight: 500;
    line-height: 1.7;
    color: #765038;
    margin: 0 0 14px;
}

.hero-desc {
    font-family: 'Roboto', serif;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.95;
    color: #936C53;
    margin: 0 0 26px;
    max-width: 520px;
}

.btn-hero-primary {
    display: inline-block;
    padding: 14px 48px;
    border-radius: 50px;
    background: linear-gradient(135deg, #C9A646 0%, #7B4A1C 100%);
    color: #fff;
    text-decoration: none;
    font-family: 'Roboto', sans-serif;
    font-size: 0.92rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    box-shadow: 0 6px 24px rgba(201, 166, 70, 0.40), 0 2px 8px rgba(123, 74, 28, 0.22);
    transition: transform 0.22s ease, box-shadow 0.22s ease;
    align-self: flex-start;
    white-space: nowrap;
}

    .btn-hero-primary:hover {
        transform: translateY(-3px) scale(1.025);
        color: #fff;
        box-shadow: 0 12px 34px rgba(201, 166, 70, 0.48);
    }

.hero-visual {
    flex: 1 1 auto;
    display: grid;
    place-items: center;
    align-self: center;
    overflow: visible;
    min-width: 0;
    padding: 10px 0;
}

.frame-wrap {
    grid-area: 1 / 1;
    z-index: 1;
    pointer-events: none;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.frame-img {
    width: 80%;
    height: auto;
    object-fit: contain;
    display: block;
    animation: rotateDoodle 35s linear infinite;
    transform-origin: center center;
}

@keyframes rotateDoodle {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

.ladies-wrap {
    grid-area: 1 / 1;
    z-index: 2;
    width: 81%;
    max-width: 430px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: visible;
    background: transparent;
    box-shadow: none;
}

    .ladies-wrap::before {
        display: none;
    }

.ladies-img {
    width: 80%;
    height: auto;
    object-fit: contain;
    display: block;
}

@keyframes hero-fade-up {
    from {
        opacity: 0;
        transform: translateY(28px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* =========================================================
   12. IMPACT SECTION
========================================================= */
.impact-section {
    padding: 20px 60px 72px;
    text-align: center;
    width: 100%;
    position: relative;
    overflow: hidden;
}

.impact-heading {
    font-family: 'Merriweather', serif;
    font-size: clamp(1.7rem, 3vw, 2.4rem);
    font-weight: 800;
    color: #552709;
    margin-bottom: 72px;
    letter-spacing: -0.01em;
    line-height: 1.2;
}

.impact-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
    width: 100%;
    max-width: 1300px;
    margin: 0 auto;
    align-items: start;
    padding-bottom: 60px;
}

.impact-card {
    position: relative;
    width: 100%;
    height: 300px;
    border-radius: 18px;
    overflow: visible;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 0 18px;
    cursor: default;
    will-change: transform, opacity;
    opacity: 1;
}

    .impact-card:nth-child(odd) {
        transform: translateY(0);
        transition: transform 0.28s ease, box-shadow 0.28s ease;
    }

    .impact-card:nth-child(even) {
        transform: translateY(55px);
        transition: transform 0.28s ease, box-shadow 0.28s ease;
    }

    .impact-card:nth-child(odd):hover {
        transform: translateY(-8px);
        box-shadow: 0 20px 48px rgba(20, 10, 2, 0.30);
    }

    .impact-card:nth-child(even):hover {
        transform: translateY(47px);
        box-shadow: 0 20px 48px rgba(20, 10, 2, 0.30);
    }

.card-bg {
    position: absolute;
    inset: 0;
    border-radius: 18px;
    background-size: cover;
    background-position: center;
    z-index: 0;
}

.bg1 {
    background-image: url('../img/impactbg1.png');
}

.bg2 {
    background-image: url('../img/impactbg2.png');
}

.bg3 {
    background-image: url('../img/impactbg3.png');
}

.bg4 {
    background-image: url('../img/impactbg4.png');
}

.card-pin {
    position: absolute;
    top: -40px;
    left: 50%;
    transform: translateX(-50%);
    width: 70px;
    height: 70px;
    object-fit: contain;
    z-index: 5;
    filter: drop-shadow(0 2px 5px rgba(0, 0, 0, 0.35));
}

.card-number {
    position: relative;
    z-index: 2;
    width: 100%;
    text-align: center;
    font-family: 'Roboto', sans-serif;
    font-size: clamp(2rem, 3vw, 2.8rem);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.01em;
    color: #FFFFFF;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.50);
}

.card-label-wrap {
    position: relative;
    z-index: 2;
    width: 100%;
}

.card-label {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 60px;
    background-image: url('../img/impactnote.png');
    background-size: 100% 100%;
    background-repeat: no-repeat;
    padding: 10px 30px 15px 36px;
    font-family: 'Roboto', sans-serif;
    font-size: clamp(0.72rem, 1.1vw, 1rem);
    font-weight: 800;
    color: #411C05;
    line-height: 1.2;
    text-align: center;
    white-space: nowrap;
}

/* Impact entry animations */
.impact-card.visible:nth-child(1) {
    animation: impactRevealUp 0.65s cubic-bezier(0.22,1,0.36,1) 0.04s forwards;
}

.impact-card.visible:nth-child(2) {
    animation: impactRevealDown55 0.65s cubic-bezier(0.22,1,0.36,1) 0.16s forwards;
}

.impact-card.visible:nth-child(3) {
    animation: impactRevealUp 0.65s cubic-bezier(0.22,1,0.36,1) 0.28s forwards;
}

.impact-card.visible:nth-child(4) {
    animation: impactRevealDown55 0.65s cubic-bezier(0.22,1,0.36,1) 0.40s forwards;
}

@keyframes impactRevealUp {
    from {
        transform: translate3d(0, 28px, 0);
    }

    to {
        transform: translate3d(0, 0, 0);
    }
}

@keyframes impactRevealDown55 {
    from {
        transform: translate3d(0, 83px, 0);
    }

    to {
        transform: translate3d(0, 55px, 0);
    }
}


/* =========================================================
   13. ABOUT SECTION
========================================================= */
.about-section {
    background: #FDF5ED;
    width: 100%;
    padding: 60px 60px 20px;
    overflow: hidden;
    position: relative;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
}

.about-section-title {
    font-family: 'Merriweather', serif;
    font-size: clamp(1.7rem, 3vw, 2.4rem);
    font-weight: 800;
    color: #552709;
    text-align: center;
    width: 100%;
    margin: 0 0 5px;
    letter-spacing: -0.01em;
    line-height: 1.2;
}

.about-inner-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    width: 100%;
}

.about-content {
    flex: 0 0 auto;
    width: 52%;
    max-width: 620px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    z-index: 2;
}

.about-eyebrow {
    font-family: 'Cormorant Infant', serif;
    font-style: italic;
    font-weight: 500;
    font-size: clamp(1.8rem, 2.8vw, 2.5rem);
    color: #C9A646;
    margin: 0 0 4px;
    line-height: 1.3;
}

.about-heading {
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(1.8rem, 2.8vw, 2.5rem);
    font-weight: 500;
    color: #552709;
    margin: 0 0 22px;
    line-height: 1.1;
    letter-spacing: -0.01em;
}

.about-desc {
    font-family: 'Roboto', sans-serif;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.95;
    color: #936C53;
    margin: 0 0 32px;
    max-width: 640px;
    text-align: justify;
}

.btn-about {
    display: inline-block;
    padding: 14px 36px;
    border-radius: 50px;
    background: linear-gradient(135deg, #C9A646 0%, #7B4A1C 100%);
    color: #fff;
    text-decoration: none;
    font-family: 'Roboto', sans-serif;
    font-size: 0.92rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    box-shadow: 0 6px 24px rgba(201,166,70,0.40), 0 2px 8px rgba(123,74,28,0.22);
    transition: transform 0.22s ease, box-shadow 0.22s ease;
    align-self: flex-start;
    white-space: nowrap;
}

    .btn-about:hover {
        transform: translateY(-3px) scale(1.025);
        color: #fff;
        box-shadow: 0 12px 34px rgba(201,166,70,0.48);
    }

/* Visual Column */
.about-visual {
    flex: 1 1 auto;
    position: relative;
    min-width: 0;
    height: 580px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    overflow: visible;
}

.about-circle {
    position: absolute;
    top: 60%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 86%;
    max-width: 540px;
    height: auto;
    object-fit: contain;
    z-index: 0;
    pointer-events: none;
}

.about-ladies {
    position: relative;
    z-index: 2;
    width: 85%;
    max-width: 470px;
    height: auto;
    object-fit: contain;
    display: block;
    margin: 0 auto -20px;
}

/* Notebook — shared base */
.notebook {
    position: absolute;
    z-index: 3;
    display: block;
    height: 190px;
}

.notebook-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
    display: block;
    z-index: 1;
    filter: drop-shadow(0 4px 16px rgba(65, 28, 5, 0.25));
}

.notebook-photo {
    position: absolute;
    z-index: 1;
    top: 12%;
    left: 27%;
    width: 60%;
    height: 76%;
    object-fit: cover;
    border-radius: 2px;
    display: block;
}

.notebook-top {
    top: 27%;
    right: 4%;
    width: 350px;
}

.notebook-bottom {
    bottom: 8%;
    left: 3%;
    width: 400px;
}

/* About entry animations */
.about-content,
.about-visual {
    opacity: 0;
    animation: aboutFadeUp 0.72s ease forwards;
    animation-play-state: paused;
}

.about-content {
    animation-delay: 0.08s;
}

.about-visual {
    animation-delay: 0.22s;
}

    .about-content.ab-visible,
    .about-visual.ab-visible {
        animation-play-state: running;
    }

@keyframes aboutFadeUp {
    from {
        opacity: 0;
        transform: translateY(28px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.no-js .about-content,
.no-js .about-visual {
    opacity: 1;
    animation: none;
}


/* =========================================================
   14. VMV SECTION — Vision · Mission · Values
========================================================= */
.vmv-section {
    background: #FDF5ED;
    width: 100%;
    padding: 48px 80px 56px;
    box-sizing: border-box;
}

.vmv-container {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0;
    width: 100%;
    margin: 0 auto;
}

.vmv-card {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 0 40px;
}

    .vmv-card:first-child {
        padding-left: 0;
    }

    .vmv-card:last-child {
        padding-right: 0;
    }

/* Heading row */
.vmv-heading-row {
    display: flex;
    align-items: center;
    width: 100%;
    margin-bottom: 20px;
    gap: 0;
}

.vmv-line-left {
    display: block;
    width: 32px;
    height: 1px;
    background: #3a2a1a;
    flex-shrink: 0;
}

.vmv-icon {
    width: 36px;
    height: 48px;
    background: #C9A97A;
    border: 1.5px solid #7A5C38;
    flex-shrink: 0;
    display: block;
    clip-path: polygon(0% 0%, 100% 0%, 100% 85%, 50% 100%, 0% 85%);
    margin-right: 6px;
    position: relative;
    z-index: 1;
}

.vmv-title {
    font-family: 'Merriweather', serif;
    font-size: clamp(1.7rem, 3vw, 2rem);
    font-weight: 800;
    color: #552709;
    margin: 0;
    letter-spacing: -0.01em;
    line-height: 1.2;
    white-space: nowrap;
}

.vmv-line-wrap {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    margin-left: 10px;
    min-width: 0;
}

.vmv-line {
    flex: 1 1 auto;
    display: block;
    height: 1px;
    background: #3a2a1a;
    min-width: 10px;
}

.vmv-circle {
    display: block;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 1.5px solid #3a2a1a;
    background: transparent;
    flex-shrink: 0;
}

.vmv-desc {
    font-family: 'Roboto', sans-serif;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.95;
    color: #936C53;
    margin: 0;
    text-align: justify;
}


/* =========================================================
   15. COURSES SECTION
========================================================= */
.courses-section {
    background: #FDF5ED;
    width: 100%;
    padding: 50px 0;
    box-sizing: border-box;
    overflow: hidden;
}

.courses-heading {
    font-family: 'Merriweather', serif;
    font-size: clamp(2rem, 3.5vw, 2.8rem);
    font-weight: 800;
    color: #552709;
    text-align: center;
    margin: 0 0 60px;
    letter-spacing: -0.01em;
    line-height: 1.2;
}

.courses-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 70px;
    box-sizing: border-box;
    position: relative;
}

.courses-arrow {
    position: absolute;
    top: 42%;
    transform: translateY(-50%);
    width: 52px;
    height: 52px;
    border-radius: 50%;
    border: 2px solid #7B5B3A;
    background: #FDF5ED;
    color: #7B5B3A;
    font-size: 1.2rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
    box-shadow: 0 2px 14px rgba(65,28,5,0.18);
    transition: background 0.22s, color 0.22s, transform 0.22s, box-shadow 0.22s;
}

.courses-arrow-prev {
    left: 8px;
}

.courses-arrow-next {
    right: 8px;
}

.courses-arrow:hover {
    background: #7B5B3A;
    color: #FDF5ED;
    transform: translateY(-50%) scale(1.1);
    box-shadow: 0 4px 20px rgba(65,28,5,0.28);
}

.courses-arrow:disabled {
    opacity: 0.3;
    cursor: default;
    transform: translateY(-50%);
    box-shadow: none;
}

.courses-track-outer {
    overflow: hidden;
    padding-top: 40px;
    margin-top: -40px;
    padding-bottom: 8px;
    margin-bottom: -8px;
}

.courses-track {
    display: flex;
    gap: 36px;
    transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform;
}

.course-col {
    flex: 0 0 calc(50% - 18px);
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.course-card {
    position: relative;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    background: #936C53;
    border-radius: 18px;
    padding: 12px 12px 0;
    box-shadow: 0 4px 20px rgba(65,28,5,0.22);
    transition: transform 0.28s ease, box-shadow 0.28s ease;
    overflow: visible;
}

    .course-card:hover {
        transform: translateY(-8px);
        box-shadow: 0 14px 36px rgba(65,28,5,0.28);
    }

.course-banner {
    width: 100%;
    border-radius: 8px 8px 0 0;
    overflow: hidden;
    aspect-ratio: 16 / 9;
}

    .course-banner img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        border-radius: 8px 8px 0 0;
        transition: transform 0.45s ease;
    }

.course-card:hover .course-banner img {
    transform: scale(1.04);
}

.course-card-sticker {
    position: absolute;
    top: -32px;
    width: 82px;
    height: 82px;
    object-fit: contain;
    z-index: 6;
    pointer-events: none;
    filter: drop-shadow(0 2px 6px rgba(0,0,0,0.22));
}

.course-col:nth-child(odd) .course-card-sticker {
    left: -12px;
    right: auto;
    animation: spoolWiggle 6s ease-in-out infinite;
}

.course-col:nth-child(even) .course-card-sticker {
    right: -12px;
    left: auto;
    animation: spoolWiggleRight 6s ease-in-out 1.5s infinite;
}

@keyframes spoolWiggle {
    0%, 100% {
        transform: rotate(-5deg) scale(1);
    }

    50% {
        transform: rotate(5deg) scale(1.06);
    }
}

@keyframes spoolWiggleRight {
    0%, 100% {
        transform: scaleX(-1) rotate(-5deg) scale(1);
    }

    50% {
        transform: scaleX(-1) rotate(5deg) scale(1.06);
    }
}

.course-label {
    width: 100%;
    background: #936C53;
    border: none;
    border-radius: 0 0 12px 12px;
    padding: 20px 24px;
    font-family: 'Roboto', sans-serif;
    font-size: 1.25rem;
    font-weight: 700;
    color: #FDF5ED;
    text-align: center;
    letter-spacing: 0.02em;
}

.courses-btn-row {
    display: flex;
    justify-content: center;
    margin-top: 24px;
    width: 100%;
}

.btn-course-view {
    display: inline-block;
    padding: 15px 56px;
    border-radius: 50px;
    background: linear-gradient(135deg, #C9A646 0%, #7B4A1C 100%);
    border: none;
    color: #fff;
    text-decoration: none;
    font-family: 'Roboto', sans-serif;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    box-shadow: 0 6px 24px rgba(201,166,70,0.40), 0 2px 8px rgba(123,74,28,0.22);
    transition: transform 0.22s ease, box-shadow 0.22s ease;
    white-space: nowrap;
}

    .btn-course-view:hover {
        transform: translateY(-3px) scale(1.025);
        color: #fff;
        text-decoration: none;
        box-shadow: 0 12px 34px rgba(201,166,70,0.48);
    }


/* =========================================================
   16. FEATURED PRODUCTS SECTION
========================================================= */
.products-section {
    background: #FDF5ED;
    width: 100%;
    padding: 50px 0;
    box-sizing: border-box;
    overflow: hidden;
}

.products-heading {
    font-family: 'Merriweather', serif;
    font-size: clamp(2rem, 3.5vw, 2.8rem);
    font-weight: 800;
    color: #552709;
    text-align: center;
    margin: 0 0 60px;
    letter-spacing: -0.01em;
    line-height: 1.2;
}

.products-inner {
    max-width: 1200px;
    width: 100%;
    margin: 0 auto;
    padding: 0 72px;
    box-sizing: border-box;
    position: relative;
}

.products-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 52px;
    height: 52px;
    border-radius: 50%;
    border: 2px solid #7B5B3A;
    background: #FDF5ED;
    color: #7B5B3A;
    font-size: 1.2rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
    box-shadow: 0 2px 14px rgba(65,28,5,0.18);
    transition: background 0.22s, color 0.22s, transform 0.22s, box-shadow 0.22s;
}

.products-arrow-prev {
    left: 10px;
}

.products-arrow-next {
    right: 10px;
}

.products-arrow:hover {
    background: #7B5B3A;
    color: #FDF5ED;
    transform: translateY(-50%) scale(1.1);
    box-shadow: 0 4px 20px rgba(65,28,5,0.28);
}

.products-arrow:disabled {
    opacity: 0.3;
    cursor: default;
    transform: translateY(-50%);
    box-shadow: none;
}

.products-track-outer {
    overflow: hidden;
    width: 100%;
    padding: 60px 20px 24px;
    margin: -60px -20px -24px;
    box-sizing: content-box;
}

.products-track {
    display: flex;
    gap: 36px;
    transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform;
}

.product-col {
    flex: 0 0 calc(50% - 18px);
    width: calc(50% - 18px);
    min-width: 0;
    padding: 20px 20px 36px;
    box-sizing: border-box;
}

/* L-border decoration */
.product-card-wrap {
    position: relative;
}

    .product-card-wrap::before {
        content: '';
        position: absolute;
        top: 20px;
        left: -14px;
        right: 30px;
        bottom: -14px;
        border-left: 4px solid #552709;
        border-bottom: 4px solid #552709;
        border-top: none;
        border-right: none;
        pointer-events: none;
        z-index: 3;
        transition: transform 0.28s ease;
    }

    .product-card-wrap::after {
        content: '';
        position: absolute;
        top: 20px;
        left: -14px;
        width: 14px;
        height: 0;
        border-top: 4px solid #552709;
        pointer-events: none;
        z-index: 4;
        transition: transform 0.28s ease;
    }

.tick-br {
    position: absolute;
    bottom: -14px;
    right: 30px;
    width: 0;
    height: 14px;
    border-right: 4px solid #552709;
    pointer-events: none;
    z-index: 4;
    transition: transform 0.28s ease;
}

.product-card {
    position: relative;
    width: 100%;
    border-radius: 16px;
    background: #FDF5ED;
    overflow: visible;
    box-shadow: 0 4px 20px rgba(65,28,5,0.15);
    transition: transform 0.28s ease, box-shadow 0.28s ease;
    z-index: 1;
}

.product-card-wrap:hover .product-card {
    transform: translateY(-6px);
    box-shadow: 0 14px 36px rgba(65,28,5,0.24);
}

.product-card-wrap:hover::before {
    transform: translateY(-6px);
}

.product-card-wrap:hover::after {
    transform: translateY(-6px);
}

.product-card-wrap:hover .tick-br {
    transform: translateY(-6px);
}

.product-card-sticker {
    position: absolute;
    top: -42px;
    left: -16px;
    width: 92px;
    height: 92px;
    object-fit: contain;
    z-index: 6;
    pointer-events: none;
    filter: drop-shadow(0 2px 6px rgba(0,0,0,0.20));
    animation: productWiggle 6s ease-in-out infinite;
}

@keyframes productWiggle {
    0%, 100% {
        transform: rotate(-5deg) scale(1);
    }

    50% {
        transform: rotate(5deg) scale(1.06);
    }
}

.product-banner {
    width: 100%;
    overflow: hidden;
    position: relative;
    z-index: 1;
    background: #936C53;
    aspect-ratio: 16 / 9;
    padding: 14px 14px 0;
    box-sizing: border-box;
}

    .product-banner img {
        width: 95%;
        height: 100%;
        object-fit: cover;
        display: block;
        margin: 0 auto;
        transition: transform 0.45s ease;
    }

.product-card-wrap:hover .product-banner img {
    transform: scale(1.04);
}

.product-info {
    background: #936C53;
    padding: 18px 22px 22px;
    position: relative;
    z-index: 1;
}

.product-title {
    font-family: 'Roboto', sans-serif;
    font-size: 1.2rem;
    font-weight: 700;
    color: #FDF5ED;
    margin: 0 0 12px;
}

.product-price-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: nowrap;
}

.product-price-group {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.product-price-old {
    font-family: 'Roboto', sans-serif;
    font-size: 1rem;
    color: #D2B9A0;
    text-decoration: line-through;
    font-weight: 500;
}

.product-price-new {
    font-family: 'Roboto', sans-serif;
    font-size: 1.9rem;
    font-weight: 800;
    color: #411C05;
    line-height: 1;
}

.product-btn-row {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: nowrap;
    flex-shrink: 0;
}

.btn-buy-now,
.btn-add-cart {
    display: inline-block;
    text-align: center;
    padding: 10px 18px;
    border-radius: 50px;
    font-family: 'Roboto', sans-serif;
    font-size: 0.88rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-decoration: none;
    white-space: nowrap;
    border: none;
    cursor: pointer;
    background: linear-gradient(135deg, #C9A646 0%, #9B7120 100%);
    color: #fff;
    box-shadow: 0 4px 16px rgba(201,166,70,0.40);
    transition: transform 0.22s ease, box-shadow 0.22s ease;
}

    .btn-buy-now:hover,
    .btn-add-cart:hover {
        transform: translateY(-2px) scale(1.04);
        color: #fff;
        text-decoration: none;
        box-shadow: 0 8px 24px rgba(201,166,70,0.55);
    }


/* =========================================================
   17. GALLERY SECTION
========================================================= */
.gallery-section {
    background: #FDF5ED;
    width: 100%;
    padding: 50px 0 60px;
    box-sizing: border-box;
    overflow: visible;
}

.gallery-heading {
    font-family: 'Merriweather', serif;
    font-size: clamp(1.8rem, 3.5vw, 2.8rem);
    font-weight: 800;
    color: #552709;
    text-align: center;
    margin: 0 0 48px;
    letter-spacing: -0.01em;
    line-height: 1.2;
}

.gallery-stage {
    position: relative;
    width: 100%;
    height: 680px;
    display: flex;
    align-items: center;
    justify-content: center;
    perspective: 1400px;
    overflow: visible;
}

.gallery-card-wrap {
    position: absolute;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

    .gallery-card-wrap.active {
        transform: translateX(0) scale(1) rotateY(0deg);
        z-index: 10;
    }

    .gallery-card-wrap.prev {
        transform: translateX(-220px) scale(0.88) rotateY(38deg);
        z-index: 5;
    }

    .gallery-card-wrap.next {
        transform: translateX(220px) scale(0.88) rotateY(-38deg);
        z-index: 5;
    }

    .gallery-card-wrap.prev2 {
        transform: translateX(-380px) scale(0.72) rotateY(52deg);
        z-index: 3;
    }

    .gallery-card-wrap.next2 {
        transform: translateX(380px) scale(0.72) rotateY(-52deg);
        z-index: 3;
    }

    .gallery-card-wrap.hidden {
        transform: translateX(600px) scale(0.50) rotateY(-60deg);
        z-index: 1;
        opacity: 0;
        pointer-events: none;
    }

    .gallery-card-wrap.hiddenleft {
        transform: translateX(-600px) scale(0.50) rotateY(60deg);
        z-index: 1;
        opacity: 0;
        pointer-events: none;
    }

.gallery-card {
    width: 340px;
    height: 460px;
    border-radius: 16px;
    overflow: hidden;
    cursor: pointer;
    background: #936C53;
    border: none;
    transition: box-shadow 0.5s ease, filter 0.5s ease, width 0.5s ease, height 0.5s ease, border-radius 0.5s ease;
}

.gallery-card-wrap.active .gallery-card {
    width: 460px;
    height: 620px;
    border-radius: 20px;
    filter: brightness(1);
    background: #552709;
    box-shadow: 0 0 6px 4px rgba(147,108,83,0.90), 0 0 18px 10px rgba(147,108,83,0.60), 0 0 36px 18px rgba(85,39,9,0.45), 0 0 60px 28px rgba(85,39,9,0.25);
}

.gallery-card-wrap.prev .gallery-card,
.gallery-card-wrap.next .gallery-card {
    filter: brightness(0.78);
    background: #936C53;
    box-shadow: 0 0 4px 3px rgba(201,166,70,0.35), 0 0 14px 8px rgba(139,84,32,0.20), 0 0 28px 12px rgba(85,39,9,0.10);
}

.gallery-card-wrap.prev2 .gallery-card,
.gallery-card-wrap.next2 .gallery-card {
    filter: brightness(0.55);
    background: #936C53;
    box-shadow: 0 0 3px 2px rgba(201,166,70,0.15), 0 0 10px 5px rgba(85,39,9,0.08);
}

.gallery-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    pointer-events: none;
    user-select: none;
    transition: transform 0.45s ease;
}

.gallery-card-wrap.active .gallery-card img {
    transform: scale(1.03);
}

.gallery-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    margin-top: 40px;
}

.gallery-arrow {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    border: 2px solid #7B5B3A;
    background: #FDF5ED;
    color: #7B5B3A;
    font-size: 1.3rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.22s, color 0.22s, transform 0.22s, box-shadow 0.22s;
    box-shadow: 0 2px 14px rgba(65,28,5,0.18);
}

    .gallery-arrow:hover {
        background: #7B5B3A;
        color: #FDF5ED;
        transform: scale(1.1);
        box-shadow: 0 4px 20px rgba(65,28,5,0.28);
    }


/* =========================================================
   18. VOICES / REVIEWS SECTION
========================================================= */
.voices-section {
    background: #FDF5ED;
    width: 100%;
    padding: 50px 0 60px;
    box-sizing: border-box;
    overflow: hidden;
}

.voices-heading {
    font-family: 'Merriweather', serif;
    font-size: clamp(1.8rem, 3.5vw, 2.8rem);
    font-weight: 800;
    color: #552709;
    text-align: center;
    margin: 0 0 48px;
    letter-spacing: -0.01em;
    line-height: 1.2;
}

.voices-stage {
    position: relative;
    width: 100%;
    height: 460px;
    display: flex;
    align-items: center;
    justify-content: center;
    perspective: 1400px;
    overflow: hidden;
}

.voices-card-wrap {
    position: absolute;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

    .voices-card-wrap.active {
        transform: translateY(0) scale(1) rotateX(0deg);
        z-index: 10;
    }

    .voices-card-wrap.prev {
        transform: translateY(-105px) scale(0.92) rotateX(-12deg);
        z-index: 7;
    }

    .voices-card-wrap.next {
        transform: translateY(105px) scale(0.92) rotateX(12deg);
        z-index: 7;
    }

    .voices-card-wrap.prev2 {
        transform: translateY(-165px) scale(0.82) rotateX(-20deg);
        z-index: 4;
    }

    .voices-card-wrap.next2 {
        transform: translateY(165px) scale(0.82) rotateX(20deg);
        z-index: 4;
    }

    .voices-card-wrap.hidden {
        transform: translateY(220px) scale(0.70) rotateX(28deg);
        z-index: 1;
        opacity: 0;
        pointer-events: none;
    }

    .voices-card-wrap.hiddenleft {
        transform: translateY(-220px) scale(0.70) rotateX(-28deg);
        z-index: 1;
        opacity: 0;
        pointer-events: none;
    }

.voices-card {
    width: 760px;
    background: #1a1008;
    border-radius: 14px;
    padding: 28px 32px 24px;
    box-sizing: border-box;
    border: 1px solid rgba(147,108,83,0.20);
    cursor: pointer;
    transition: box-shadow 0.5s ease, filter 0.5s ease, border-radius 0.5s ease;
}

.voices-card-wrap.active .voices-card {
    border-radius: 16px;
    filter: brightness(1);
    box-shadow: 0 0 6px 4px rgba(147,108,83,0.90), 0 0 18px 10px rgba(147,108,83,0.60), 0 0 36px 18px rgba(85,39,9,0.45), 0 0 60px 28px rgba(85,39,9,0.25);
}

.voices-card-wrap.prev .voices-card,
.voices-card-wrap.next .voices-card {
    filter: brightness(0.55);
    box-shadow: 0 0 4px 3px rgba(147,108,83,0.25), 0 0 14px 8px rgba(85,39,9,0.15);
}

.voices-card-wrap.prev2 .voices-card,
.voices-card-wrap.next2 .voices-card {
    filter: brightness(0.35);
    box-shadow: 0 0 3px 2px rgba(147,108,83,0.10), 0 0 10px 5px rgba(85,39,9,0.08);
}

.voices-card-header {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 10px;
}

.voices-avatar {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    background: #552709;
}

    .voices-avatar img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

.voices-meta {
    flex: 1;
}

.voices-name {
    font-family: 'Merriweather', serif;
    font-size: 1rem;
    font-weight: 700;
    color: #f0e6d3;
    margin: 0 0 3px;
}

.voices-sub {
    font-size: 0.78rem;
    color: #8a7060;
    margin: 0;
}

.voices-dots {
    font-size: 1.4rem;
    color: #8a7060;
    cursor: pointer;
    line-height: 1;
}

.voices-stars {
    color: #c9a646;
    font-size: 1.1rem;
    margin-bottom: 14px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.voices-time {
    font-size: 0.8rem;
    color: #8a7060;
    font-family: sans-serif;
}

.voices-text {
    font-size: 0.92rem;
    color: #d4c4b0;
    line-height: 1.7;
    margin: 0 0 18px;
}

.voices-card-footer {
    display: flex;
    align-items: center;
    gap: 20px;
    border-top: 1px solid rgba(147,108,83,0.15);
    padding-top: 14px;
}

.voices-footer-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.82rem;
    color: #8a7060;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    font-family: sans-serif;
    transition: color 0.2s ease;
}

    .voices-footer-btn:hover {
        color: #c9a646;
    }

    .voices-footer-btn svg {
        width: 18px;
        height: 18px;
        stroke: currentColor;
        fill: none;
        stroke-width: 1.5;
    }

.voices-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    margin-top: 40px;
}

.voices-arrow {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    border: 2px solid #7B5B3A;
    background: #FDF5ED;
    color: #7B5B3A;
    font-size: 1.3rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.22s, color 0.22s, transform 0.22s, box-shadow 0.22s;
    box-shadow: 0 2px 14px rgba(65,28,5,0.18);
}

    .voices-arrow:hover {
        background: #7B5B3A;
        color: #FDF5ED;
        transform: scale(1.1);
        box-shadow: 0 4px 20px rgba(65,28,5,0.28);
    }


/* =========================================================
   19. NGO COLLABORATIONS SECTION
========================================================= */
.ngo-section {
    background: #FDF5ED;
    width: 100%;
    padding: 50px 0 60px;
    box-sizing: border-box;
    overflow: hidden;
}

.ngo-heading {
    font-family: 'Merriweather', serif;
    font-size: clamp(1.8rem, 3.5vw, 2.8rem);
    font-weight: 800;
    color: #552709;
    text-align: center;
    margin: 0 0 48px;
    letter-spacing: -0.01em;
    line-height: 1.2;
}

.ngo-track-wrapper {
    width: 100%;
    overflow: hidden;
    position: relative;
}

    .ngo-track-wrapper::before,
    .ngo-track-wrapper::after {
        content: '';
        position: absolute;
        top: 0;
        width: 120px;
        height: 100%;
        z-index: 2;
        pointer-events: none;
    }

    .ngo-track-wrapper::before {
        left: 0;
        background: linear-gradient(to right, #FDF5ED 0%, transparent 100%);
    }

    .ngo-track-wrapper::after {
        right: 0;
        background: linear-gradient(to left, #FDF5ED 0%, transparent 100%);
    }

.ngo-track {
    display: flex;
    align-items: center;
    gap: 60px;
    width: max-content;
    animation: ngoScroll 14s linear infinite;
}

    .ngo-track:hover {
        animation-play-state: paused;
    }

@keyframes ngoScroll {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-50%);
    }
}

.ngo-logo-item {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100px;
    padding: 10px 20px;
    box-sizing: border-box;
    transition: transform 0.3s ease, opacity 0.3s ease;
    opacity: 0.85;
}

    .ngo-logo-item:hover {
        transform: scale(1.08);
        opacity: 1;
    }

    .ngo-logo-item img {
        max-height: 80px;
        max-width: 180px;
        width: auto;
        height: auto;
        object-fit: contain;
        display: block;
        pointer-events: none;
        user-select: none;
    }


/* =========================================================
   20. LEARN BY DOING SECTION
========================================================= */
.lbd-section {
    background: #FDF5ED;
    width: 100%;
    padding: 50px 0 0; /* bottom: 0 — footer sits flush */
    box-sizing: border-box;
    overflow: hidden;
}

.lbd-heading {
    font-family: 'Merriweather', serif;
    font-size: clamp(1.8rem, 3.5vw, 2.8rem);
    font-weight: 700;
    color: #552709;
    text-align: center;
    margin: 0 0 36px;
    letter-spacing: -0.01em;
    line-height: 1.2;
}

.lbd-body {
    display: flex;
    align-items: stretch;
    width: 100%;
    min-height: 580px;
}

/* Left panel */
.lbd-left {
    flex: 0 0 48%;
    position: relative;
    overflow: hidden;
    min-height: 580px;
}

.lbd-bg-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    z-index: 0;
}

.lbd-overlay {
    position: absolute;
    inset: 0;
    background: rgba(210,185,160,0.56);
    z-index: 1;
}

.lbd-lady-img {
    position: absolute;
    top: 40px;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    height: calc(100% - 40px);
    width: auto;
    max-width: 100%;
    object-fit: contain;
    object-position: bottom center;
    z-index: 2;
    display: block;
}

.lbd-join-btn {
    position: absolute;
    top: 20px;
    right: 20px;
    z-index: 3;
    background: linear-gradient(135deg, #936C53 0%, #411C05 100%);
    color: #FDF5ED;
    font-family: 'Roboto', sans-serif;
    font-size: 0.78rem;
    font-weight: 700;
    padding: 10px 22px;
    border-radius: 50px;
    text-align: center;
    line-height: 1.45;
    letter-spacing: 0.03em;
    white-space: nowrap;
    border: none;
    text-decoration: none;
    display: inline-block;
    transition: background 0.22s ease, transform 0.22s ease;
}

    .lbd-join-btn:hover {
        background: linear-gradient(135deg, #411C05 0%, #2a1003 100%);
        transform: translateY(-2px);
        color: #FDF5ED;
        text-decoration: none;
    }

/* Right panel */
.lbd-right {
    flex: 1;
    background: rgba(210,185,160,0.56);
    padding: 48px 48px 48px 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 22px;
    box-sizing: border-box;
}

.lbd-eyebrow {
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(1.8rem, 2.8vw, 2.5rem);
    margin: 0 0 12px;
    line-height: 1.3;
}

    .lbd-eyebrow em {
        font-style: italic;
        font-weight: 500;
        color: #C9A646;
    }

    .lbd-eyebrow strong {
        font-style: italic;
        font-weight: 500;
        color: #552709;
    }

.lbd-desc {
    font-family: 'Roboto', sans-serif;
    font-size: 1rem;
    color: #936C53;
    line-height: 1.95;
    margin: 0 0 6px;
    font-weight: 600;
}

.lbd-badges {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.lbd-badge {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    background-image: url('../img/sticker3.png');
    background-size: 100% 100%;
    background-repeat: no-repeat;
    background-position: center;
    padding: 16px 70px 16px 52px;
    min-height: 62px;
    width: 85%;
    font-family: 'Roboto', sans-serif;
    font-size: 1.05rem;
    font-weight: 700;
    color: #552709;
    letter-spacing: 0.02em;
    text-align: left;
    box-sizing: border-box;
}

    .lbd-badge:nth-child(odd) {
        align-self: flex-start;
    }

    .lbd-badge:nth-child(even) {
        align-self: flex-end;
    }


/* =========================================================
   21. FOOTER
========================================================= */
.nst-footer *,
.nst-footer *::before,
.nst-footer *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

.nst-footer {
    background: linear-gradient(135deg, #D2B9A0 0%, #936C53 100%);
    color: #411C05;
    font-family: 'Roboto', sans-serif;
    width: 100%;
}

.nst-footer__top {
    padding: 60px 5% 50px;
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
    gap: 40px;
}

.nst-footer__col-title {
    font-family: 'Roboto', serif;
    font-size: 1.50rem;
    font-weight: 700;
    color: #411C05;
    letter-spacing: 0.02em;
    margin-bottom: 22px;
    position: relative;
    padding-bottom: 14px;
}

.nst-footer__about-text {
    font-size: 0.875rem;
    line-height: 1.85;
    color: #552709;
    font-family: 'Roboto', sans-serif;
    font-weight: 500;
    text-align: justify;
}

/* Quick Links / Info Lists */
.nst-footer__list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

    .nst-footer__list li a {
        text-decoration: none;
        color: #552709;
        font-size: 0.875rem;
        font-weight: 500;
        display: flex;
        align-items: center;
        gap: 7px;
        transition: gap 0.25s;
    }

        .nst-footer__list li a::before {
            content: '›';
            font-size: 0.875rem;
            font-weight: 700;
            color: #552709;
            line-height: 1;
            flex-shrink: 0;
        }

        .nst-footer__list li a:hover {
            gap: 11px;
        }

/* Contact Info */
.nst-footer__contact-list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

    .nst-footer__contact-list li {
        display: flex;
        align-items: flex-start;
        gap: 10px;
        font-size: 0.875rem;
        font-weight: 500;
        line-height: 1.6;
        color: #552709;
    }

.nst-footer__contact-icon {
    flex-shrink: 0;
    font-size: 0.875rem;
    width: 16px;
    text-align: center;
    color: #552709;
    margin-top: 5px;
}

/* Social Icons */
.nst-footer__social {
    display: flex;
    gap: 10px;
    margin-top: 18px;
    flex-wrap: wrap;
}

.nst-footer__social-btn {
    width: 36px;
    height: 36px;
    border: 1.5px solid #411C05;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #411C05;
    text-decoration: none;
    transition: background 0.25s, color 0.25s, border-color 0.25s;
    opacity: 0.85;
}

    .nst-footer__social-btn:hover {
        background: #411C05;
        color: #D2B9A0;
        border-color: #411C05;
        opacity: 1;
    }

    .nst-footer__social-btn svg {
        width: 17px;
        height: 17px;
        fill: currentColor;
    }

/* Divider */
.nst-footer__divider {
    border: none;
    border-top: 1px solid rgba(65,28,5,0.22);
    margin: 0 5%;
}

/* Bottom Bar */
.nst-footer__bottom {
    background: #411C05;
    padding: 15px 5%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.nst-footer__bottom-text {
    font-family: 'Roboto', sans-serif;
    font-size: 0.78rem;
    font-weight: 400;
    color: #D2B9A0;
    letter-spacing: 0.01em;
    opacity: 0.9;
}

.nst-footer__bottom a {
    color: #D2B9A0;
    text-decoration: none;
    font-weight: 500;
    opacity: 0.9;
    transition: opacity 0.25s;
}

    .nst-footer__bottom a:hover {
        opacity: 1;
        text-decoration: underline;
    }


/* =========================================================
   22. RESPONSIVE — NAVBAR & HERO
========================================================= */

/* ── Tablet  601px – 1024px ─────────────────────────── */
@media (max-width: 1024px) {

    .hamburger {
        display: flex;
    }

    .navbar-container {
        flex-wrap: nowrap;
        height: 58px;
        padding: 0 16px;
        overflow: visible;
        gap: 0;
    }

    .nav-search {
        display: flex;
        order: 1;
        flex: 1;
        max-width: 260px;
        min-width: 0;
    }

        .nav-search .search-input {
            width: 100%;
            text-align: left;
            font-size: 0.875rem;
        }

    .nav-links {
        display: none;
    }

    .nav-cta {
        order: 2;
        margin-left: auto;
    }

    .hamburger {
        order: 3;
        margin-left: 12px;
    }

    .hero-section {
        flex-direction: column;
        text-align: center;
        padding: 48px 40px 0;
        min-height: auto;
        gap: 0;
    }

    .hero-content {
        width: 100%;
        max-width: 600px;
        margin: 0 auto;
        align-items: center;
        padding: 0 0 32px;
    }

    .hero-heading-row {
        flex-wrap: wrap;
        justify-content: center;
        gap: 4px 8px;
        margin-bottom: 14px;
    }

    .hero-title-wrap {
        display: inline-flex;
        justify-content: center;
    }

    .eyebrow-italic {
        white-space: normal;
        font-size: 1.3rem;
    }

    .hero-title {
        font-size: clamp(1.8rem, 4vw, 2.6rem);
    }

    .hero-tagline {
        font-size: 1rem;
    }

    .hero-desc {
        max-width: 100%;
        font-size: 0.8rem;
    }

    .btn-hero-primary {
        align-self: center;
    }

    .hero-visual {
        width: 100%;
        max-width: 600px;
        margin: 0 auto;
        min-height: unset;
        overflow: visible;
        padding: 40px 10px 50px;
    }

    .frame-img {
        width: 115%;
    }

    .ladies-wrap {
        width: 72%;
        max-width: 340px;
    }
}

/* ── Mobile  ≤ 600px ─────────────────────────────────── */
@media (max-width: 600px) {

    .navbar-container {
        flex-wrap: nowrap;
        height: 54px;
        padding: 0 14px;
        gap: 0;
    }

    .nav-search {
        display: flex;
        order: 1;
        flex: 1;
        width: auto;
        max-width: 180px;
        min-width: 0;
    }

        .nav-search .search-input {
            width: 100%;
            text-align: left;
            font-size: 0.875rem;
        }

    .nav-cta {
        order: 2;
        margin-left: auto;
    }

    .hamburger {
        order: 3;
        margin-left: 10px;
    }

    .announcement-bar {
        padding: 6px 0;
    }

    .marquee-content {
        font-size: 0.72rem;
        padding-right: 25px;
    }

    .logo-img {
        height: 45px;
    }

    .btn-create-account {
        font-size: 0.76rem;
        padding: 8px 14px;
    }

    .hero-section {
        flex-direction: column;
        text-align: center;
        padding: 36px 20px 0;
        min-height: auto;
        gap: 0;
    }

    .hero-content {
        width: 100%;
        max-width: 100%;
        align-items: center;
        padding: 0 0 20px;
    }

    .hero-heading-row {
        flex-direction: column;
        align-items: center;
        gap: 2px;
        margin-bottom: 12px;
    }

    .eyebrow-italic {
        white-space: normal;
        font-size: 1rem;
        text-align: center;
        display: block;
    }

    .hero-title-wrap {
        display: inline-flex;
        align-items: baseline;
        justify-content: center;
        width: auto;
        max-width: 100%;
    }

    .hero-title {
        display: inline;
        font-size: clamp(1.4rem, 6.5vw, 2rem);
        text-align: center;
        line-height: 1.1;
        white-space: nowrap;
    }

    .hero-tagline {
        font-size: 0.88rem;
        margin-bottom: 10px;
    }

    .hero-desc {
        max-width: 100%;
        font-size: 0.76rem;
        line-height: 1.8;
        margin-bottom: 20px;
    }

    .btn-hero-primary {
        align-self: center;
        padding: 13px 38px;
        font-size: 0.86rem;
    }

    .hero-visual {
        width: 100%;
        max-width: 420px;
        margin: 0 auto;
        min-height: unset;
        overflow: visible;
        padding: 36px 10px 44px;
    }

    .frame-img {
        width: 120%;
    }

    .ladies-wrap {
        width: 57%;
        max-width: 240px;
    }
}

/* ── Extra Small  ≤ 360px ───────────────────────────── */
@media (max-width: 360px) {

    .btn-create-account {
        font-size: 0.72rem;
        padding: 7px 10px;
    }

    .logo-img {
        height: 40px;
    }

    .nav-search {
        max-width: 100px;
    }

    .hero-section {
        padding: 28px 14px 0;
    }

    .hero-visual {
        max-width: 340px;
        padding: 32px 8px 40px;
    }

    .frame-img {
        width: 125%;
    }

    .ladies-wrap {
        width: 68%;
        max-width: 200px;
    }

    .hero-title {
        display: inline;
        font-size: clamp(1.1rem, 5.5vw, 1.4rem);
    }

    .eyebrow-italic {
        font-size: 0.9rem;
    }

    .hero-tagline {
        font-size: 0.8rem;
    }

    .hero-desc {
        font-size: 0.72rem;
    }
}


/* =========================================================
   23. RESPONSIVE — IMPACT
========================================================= */

@media (max-width: 1024px) {

    .impact-section {
        padding: 48px 32px 64px;
    }

    .impact-grid {
        gap: 18px;
        padding-bottom: 50px;
    }

    .impact-card {
        height: 280px;
    }

        .impact-card:nth-child(even) {
            transform: translateY(45px);
        }

            .impact-card:nth-child(even):hover {
                transform: translateY(37px);
            }

        .impact-card.visible:nth-child(2),
        .impact-card.visible:nth-child(4) {
            animation: impactRevealDown45 0.65s cubic-bezier(0.22,1,0.36,1) 0.16s forwards;
        }

    @keyframes impactRevealDown45 {
        from {
            transform: translate3d(0, 73px, 0);
        }

        to {
            transform: translate3d(0, 45px, 0);
        }
    }
}

@media (max-width: 768px) {

    .impact-section {
        padding: 40px 20px 56px;
    }

    .impact-grid {
        gap: 12px;
        padding-bottom: 40px;
    }

    .impact-card {
        height: 220px;
        padding: 0 12px;
    }

        .impact-card:nth-child(even) {
            transform: translateY(35px);
        }

            .impact-card:nth-child(even):hover {
                transform: translateY(27px);
            }

        .impact-card.visible:nth-child(2),
        .impact-card.visible:nth-child(4) {
            animation: impactRevealDown35 0.65s cubic-bezier(0.22,1,0.36,1) 0.16s forwards;
        }

    .card-number {
        font-size: 1.9rem;
    }

    .card-label {
        font-size: 0.68rem;
        min-height: 36px;
        padding: 6px 18px 6px 24px;
    }

    .card-pin {
        width: 46px;
        height: 46px;
        top: -23px;
    }

    @keyframes impactRevealDown35 {
        from {
            transform: translate3d(0, 63px, 0);
        }

        to {
            transform: translate3d(0, 35px, 0);
        }
    }
}

@media (max-width: 560px) {

    .impact-section {
        padding: 36px 14px 48px;
    }

    .impact-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
        padding-bottom: 0;
    }

    .impact-card,
    .impact-card:nth-child(1),
    .impact-card:nth-child(2),
    .impact-card:nth-child(3),
    .impact-card:nth-child(4) {
        height: 200px;
        transform: translateY(0);
        transition: transform 0.28s ease, box-shadow 0.28s ease;
    }

        .impact-card.visible:nth-child(1),
        .impact-card.visible:nth-child(2),
        .impact-card.visible:nth-child(3),
        .impact-card.visible:nth-child(4) {
            animation: impactRevealUp 0.60s cubic-bezier(0.22,1,0.36,1) forwards;
        }

        .impact-card:nth-child(1):hover,
        .impact-card:nth-child(2):hover,
        .impact-card:nth-child(3):hover,
        .impact-card:nth-child(4):hover {
            transform: translateY(-6px);
            box-shadow: 0 20px 48px rgba(20,10,2,0.30);
        }

    .card-number {
        font-size: 1.7rem;
    }

    .card-label {
        font-size: 0.65rem;
    }

    .card-pin {
        width: 38px;
        height: 38px;
        top: -19px;
    }
}

@media (max-width: 380px) {

    .impact-card {
        height: 175px;
        padding: 0 10px;
    }

    .card-number {
        font-size: 1.3rem;
    }

    .card-label {
        font-size: 0.6rem;
        min-height: 30px;
    }
}


/* =========================================================
   24. RESPONSIVE — ABOUT
========================================================= */

@media (max-width: 1024px) {

    .about-section {
        padding: 56px 40px 64px;
    }

    .about-inner-row {
        gap: 24px;
    }

    .about-content {
        width: 46%;
    }

    .about-desc {
        max-width: 100%;
    }

    .about-visual {
        height: 520px;
    }

    .about-circle {
        width: 84%;
        max-width: 480px;
    }

    .about-ladies {
        width: 80%;
        max-width: 420px;
    }

    .notebook {
        height: 170px;
    }

    .notebook-top {
        top: 30%;
        right: 5%;
        width: 285px;
    }

    .notebook-bottom {
        bottom: 8%;
        left: 3%;
        width: 325px;
    }
}

@media (max-width: 768px) {

    .about-section {
        padding: 48px 28px 60px;
        text-align: center;
    }

    .about-section-title {
        margin-bottom: 24px;
    }

    .about-inner-row {
        flex-direction: column-reverse;
        gap: 36px;
        align-items: center;
    }

    .about-content {
        width: 100%;
        max-width: 600px;
        align-items: center;
    }

    .about-desc {
        max-width: 100%;
        text-align: center;
    }

    .btn-about {
        display: block;
        text-align: center;
        margin: 0 auto;
    }

    .about-visual {
        width: 100%;
        max-width: 500px;
        height: 460px;
    }

    .about-circle {
        width: 78%;
        max-width: 380px;
    }

    .about-ladies {
        width: 76%;
        max-width: 360px;
        margin-bottom: -10px;
    }

    .notebook {
        height: 141px;
    }

    .notebook-top {
        top: 30%;
        right: 4%;
        width: 235px;
    }

    .notebook-bottom {
        bottom: 8%;
        left: 3%;
        width: 268px;
    }
}

@media (max-width: 560px) {

    .about-section {
        padding: 40px 20px 52px;
    }

    .about-section-title {
        margin-bottom: 20px;
    }

    .about-inner-row {
        gap: 28px;
    }

    .about-eyebrow {
        font-size: 1.2rem;
    }

    .about-heading {
        font-size: clamp(1.6rem, 6vw, 2rem);
        margin-bottom: 16px;
    }

    .about-desc {
        font-size: 0.82rem;
        margin-bottom: 24px;
        max-width: 100%;
    }

    .btn-about {
        padding: 13px 30px;
        font-size: 0.86rem;
    }

    .about-visual {
        height: 380px;
        max-width: 400px;
    }

    .about-circle {
        width: 80%;
        max-width: 300px;
    }

    .about-ladies {
        width: 78%;
        max-width: 280px;
        margin-bottom: -6px;
    }

    .notebook {
        height: 115px;
    }

    .notebook-top {
        top: 30%;
        right: 4%;
        width: 192px;
    }

    .notebook-bottom {
        bottom: 8%;
        left: 2%;
        width: 220px;
    }
}

@media (max-width: 380px) {

    .about-section-title {
        margin-bottom: 18px;
    }

    .about-visual {
        height: 310px;
        max-width: 340px;
    }

    .about-circle {
        width: 84%;
    }

    .about-ladies {
        width: 80%;
        max-width: 220px;
        margin-bottom: -4px;
    }

    .notebook {
        height: 92px;
    }

    .notebook-top {
        top: 30%;
        right: 3%;
        width: 158px;
    }

    .notebook-bottom {
        bottom: 8%;
        left: 2%;
        width: 180px;
    }

    .about-eyebrow {
        font-size: 1rem;
    }

    .about-heading {
        font-size: clamp(1.4rem, 5.5vw, 1.8rem);
    }
}


/* =========================================================
   25. RESPONSIVE — VMV
========================================================= */

@media (max-width: 1024px) {

    .vmv-section {
        padding: 40px 40px 48px;
    }

    .vmv-card {
        padding: 0 24px;
    }

        .vmv-card:first-child {
            padding-left: 0;
        }

        .vmv-card:last-child {
            padding-right: 0;
        }

    .vmv-icon {
        width: 30px;
        height: 40px;
    }

    .vmv-line-left {
        width: 24px;
    }
}

@media (max-width: 768px) {

    .vmv-section {
        padding: 36px 28px 44px;
    }

    .vmv-container {
        flex-direction: column;
        gap: 0;
    }

    .vmv-card {
        width: 100%;
        padding: 28px 0;
    }

        .vmv-card:first-child {
            padding-top: 0;
        }

    .vmv-desc {
        text-align: left;
    }
}

@media (max-width: 560px) {

    .vmv-section {
        padding: 28px 20px 36px;
    }

    .vmv-icon {
        width: 24px;
        height: 32px;
    }

    .vmv-line-left {
        width: 18px;
    }

    .vmv-desc {
        font-size: 0.9rem;
    }
}

@media (max-width: 380px) {

    .vmv-section {
        padding: 24px 16px 32px;
    }

    .vmv-icon {
        width: 20px;
        height: 27px;
    }

    .vmv-line-left {
        width: 14px;
    }

    .vmv-desc {
        font-size: 0.82rem;
    }
}


/* =========================================================
   26. RESPONSIVE — COURSES
========================================================= */

@media (max-width: 1024px) {

    .courses-inner {
        max-width: 900px;
        padding: 0 60px;
    }

    .courses-arrow {
        width: 46px;
        height: 46px;
        font-size: 1.1rem;
    }

    .courses-arrow-prev {
        left: 6px;
    }

    .courses-arrow-next {
        right: 6px;
    }

    .course-card-sticker {
        width: 68px;
        height: 68px;
        top: -26px;
    }

    .course-label {
        font-size: 1.1rem;
        padding: 18px 20px;
    }
}

@media (max-width: 768px) {

    .courses-section {
        padding: 52px 0 68px;
    }

    .courses-inner {
        padding: 0 50px;
    }

    .course-col {
        flex: 0 0 100%;
    }

    .courses-track {
        gap: 20px;
    }

    .courses-arrow {
        width: 42px;
        height: 42px;
        font-size: 1rem;
    }

    .courses-arrow-prev {
        left: 4px;
    }

    .courses-arrow-next {
        right: 4px;
    }

    .course-card-sticker {
        width: 60px;
        height: 60px;
        top: -24px;
    }
}

@media (max-width: 480px) {

    .courses-section {
        padding: 44px 0 56px;
    }

    .courses-inner {
        padding: 0 40px;
    }

    .courses-heading {
        margin-bottom: 40px;
    }

    .courses-arrow {
        width: 36px;
        height: 36px;
        font-size: 0.9rem;
    }

    .courses-arrow-prev {
        left: 2px;
    }

    .courses-arrow-next {
        right: 2px;
    }

    .course-card-sticker {
        width: 52px;
        height: 52px;
        top: -20px;
    }

    .course-label {
        font-size: 1rem;
        padding: 14px 16px;
    }

    .btn-course-view {
        padding: 13px 40px;
        font-size: 0.9rem;
    }
}

@media (max-width: 360px) {

    .courses-inner {
        padding: 0 32px;
    }

    .courses-arrow {
        width: 32px;
        height: 32px;
        font-size: 0.8rem;
    }

    .course-card-sticker {
        width: 44px;
        height: 44px;
        top: -16px;
    }

    .course-label {
        font-size: 0.92rem;
    }

    .btn-course-view {
        padding: 11px 32px;
        font-size: 0.84rem;
    }
}


/* =========================================================
   27. RESPONSIVE — PRODUCTS
========================================================= */

@media (max-width: 1024px) {

    .products-inner {
        max-width: 900px;
        padding: 0 64px;
    }

    .products-arrow {
        width: 46px;
        height: 46px;
        font-size: 1.1rem;
    }

    .products-arrow-prev {
        left: 9px;
    }

    .products-arrow-next {
        right: 9px;
    }

    .product-col {
        flex: 0 0 calc(50% - 18px);
        width: calc(50% - 18px);
    }

    .product-info {
        padding: 14px 16px 18px;
    }

    .product-price-row {
        flex-wrap: wrap;
        gap: 10px;
    }

    .product-price-group {
        width: 100%;
    }

    .product-btn-row {
        width: 100%;
        justify-content: center;
        gap: 10px;
    }

    .btn-buy-now,
    .btn-add-cart {
        flex: 1 1 0;
        text-align: center;
        padding: 10px;
        font-size: 0.85rem;
    }

    .product-card-sticker {
        width: 76px;
        height: 76px;
        top: -30px;
        left: -12px;
    }

    .product-card-wrap::before {
        top: 24px;
        left: -12px;
        right: 30px;
        bottom: -12px;
        border-width: 3.5px;
    }

    .product-card-wrap::after {
        top: 24px;
        left: -12px;
        width: 12px;
        border-top-width: 3.5px;
    }

    .tick-br {
        bottom: -12px;
        right: 30px;
        height: 12px;
        border-right-width: 3.5px;
    }
}

@media (max-width: 768px) {

    .products-section {
        padding: 52px 0 68px;
    }

    .products-inner {
        padding: 0 54px;
    }

    .product-col {
        flex: 0 0 100%;
        width: 100%;
        min-width: 0;
        padding: 16px 16px 30px;
    }

    .products-track {
        gap: 20px;
    }

    .products-arrow {
        width: 40px;
        height: 40px;
        font-size: 1rem;
    }

    .products-arrow-prev {
        left: 7px;
    }

    .products-arrow-next {
        right: 7px;
    }

    .product-price-row {
        flex-wrap: wrap;
        gap: 10px;
    }

    .product-price-group {
        width: 100%;
    }

    .product-btn-row {
        width: 100%;
        justify-content: center;
        gap: 10px;
    }

    .btn-buy-now,
    .btn-add-cart {
        flex: 1 1 0;
        text-align: center;
        padding: 10px;
        font-size: 0.88rem;
    }

    .product-info {
        padding: 14px 16px 18px;
    }

    .product-card-sticker {
        width: 68px;
        height: 68px;
        top: -26px;
        left: -10px;
    }

    .product-card-wrap::before {
        top: 22px;
        left: -10px;
        right: 30px;
        bottom: -10px;
        border-width: 3px;
    }

    .product-card-wrap::after {
        top: 22px;
        left: -10px;
        width: 10px;
        border-top-width: 3px;
    }

    .tick-br {
        bottom: -10px;
        right: 30px;
        height: 10px;
        border-right-width: 3px;
    }
}

@media (max-width: 480px) {

    .products-section {
        padding: 44px 0 56px;
    }

    .products-inner {
        padding: 0 46px;
    }

    .products-heading {
        margin-bottom: 40px;
    }

    .products-arrow {
        width: 34px;
        height: 34px;
        font-size: 0.88rem;
    }

    .products-arrow-prev {
        left: 6px;
    }

    .products-arrow-next {
        right: 6px;
    }

    .product-col {
        padding: 14px 10px 28px;
    }

    .product-info {
        padding: 12px 14px 16px;
    }

    .product-title {
        font-size: 0.92rem;
        margin-bottom: 8px;
    }

    .product-price-new {
        font-size: 1.4rem;
    }

    .product-price-old {
        font-size: 0.80rem;
    }

    .product-btn-row {
        gap: 8px;
    }

    .btn-buy-now,
    .btn-add-cart {
        padding: 9px 8px;
        font-size: 0.78rem;
    }
}

@media (max-width: 360px) {

    .products-inner {
        padding: 0 40px;
    }

    .products-arrow {
        width: 30px;
        height: 30px;
        font-size: 0.8rem;
    }

    .products-arrow-prev {
        left: 5px;
    }

    .products-arrow-next {
        right: 5px;
    }

    .product-col {
        padding: 10px 8px 24px;
    }

    .product-info {
        padding: 10px 12px 14px;
    }

    .product-price-new {
        font-size: 1.25rem;
    }

    .btn-buy-now,
    .btn-add-cart {
        padding: 8px 6px;
        font-size: 0.72rem;
    }
}


/* =========================================================
   28. RESPONSIVE — GALLERY
========================================================= */

@media (max-width: 1024px) {

    .gallery-stage {
        height: 580px;
    }

    .gallery-card-wrap.active .gallery-card {
        width: 380px;
        height: 520px;
    }

    .gallery-card {
        width: 290px;
        height: 400px;
    }

    .gallery-card-wrap.prev {
        transform: translateX(-190px) scale(0.88) rotateY(38deg);
    }

    .gallery-card-wrap.next {
        transform: translateX(190px) scale(0.88) rotateY(-38deg);
    }

    .gallery-card-wrap.prev2 {
        transform: translateX(-325px) scale(0.72) rotateY(52deg);
    }

    .gallery-card-wrap.next2 {
        transform: translateX(325px) scale(0.72) rotateY(-52deg);
    }
}

@media (max-width: 768px) {

    .gallery-section {
        padding: 40px 0 50px;
    }

    .gallery-stage {
        height: 460px;
    }

    .gallery-card-wrap.active .gallery-card {
        width: 290px;
        height: 400px;
        border-radius: 16px;
    }

    .gallery-card {
        width: 220px;
        height: 305px;
        border-radius: 12px;
    }

    .gallery-card-wrap.prev {
        transform: translateX(-150px) scale(0.88) rotateY(38deg);
    }

    .gallery-card-wrap.next {
        transform: translateX(150px) scale(0.88) rotateY(-38deg);
    }

    .gallery-card-wrap.prev2 {
        transform: translateX(-255px) scale(0.72) rotateY(52deg);
    }

    .gallery-card-wrap.next2 {
        transform: translateX(255px) scale(0.72) rotateY(-52deg);
    }

    .gallery-arrow {
        width: 42px;
        height: 42px;
        font-size: 1.1rem;
    }
}

@media (max-width: 480px) {

    .gallery-stage {
        height: 370px;
    }

    .gallery-card-wrap.active .gallery-card {
        width: 230px;
        height: 320px;
        border-radius: 14px;
    }

    .gallery-card {
        width: 175px;
        height: 245px;
        border-radius: 10px;
    }

    .gallery-card-wrap.prev {
        transform: translateX(-120px) scale(0.88) rotateY(38deg);
    }

    .gallery-card-wrap.next {
        transform: translateX(120px) scale(0.88) rotateY(-38deg);
    }

    .gallery-card-wrap.prev2 {
        transform: translateX(-203px) scale(0.72) rotateY(52deg);
    }

    .gallery-card-wrap.next2 {
        transform: translateX(203px) scale(0.72) rotateY(-52deg);
    }

    .gallery-arrow {
        width: 36px;
        height: 36px;
        font-size: 1rem;
    }

    .gallery-nav {
        gap: 16px;
        margin-top: 28px;
    }
}


/* =========================================================
   29. RESPONSIVE — VOICES
========================================================= */

@media (max-width: 1024px) {

    .voices-stage {
        height: 400px;
    }

    .voices-card {
        width: calc(100vw - 60px);
        max-width: 620px;
        padding: 24px 26px 20px;
    }

    .voices-card-wrap.prev {
        transform: translateY(-100px) scale(0.92) rotateX(-12deg);
    }

    .voices-card-wrap.next {
        transform: translateY(100px) scale(0.92) rotateX(12deg);
    }

    .voices-card-wrap.prev2 {
        transform: translateY(-158px) scale(0.82) rotateX(-20deg);
    }

    .voices-card-wrap.next2 {
        transform: translateY(158px) scale(0.82) rotateX(20deg);
    }
}

@media (max-width: 768px) {

    .voices-section {
        padding: 40px 0 50px;
    }

    .voices-stage {
        height: 360px;
    }

    .voices-card {
        width: calc(100vw - 40px);
        max-width: 480px;
        padding: 20px 18px 16px;
    }

    .voices-name {
        font-size: 0.92rem;
    }

    .voices-sub {
        font-size: 0.72rem;
    }

    .voices-text {
        font-size: 0.86rem;
    }

    .voices-card-wrap.prev {
        transform: translateY(-95px) scale(0.92) rotateX(-12deg);
    }

    .voices-card-wrap.next {
        transform: translateY(95px) scale(0.92) rotateX(12deg);
    }

    .voices-card-wrap.prev2 {
        transform: translateY(-150px) scale(0.82) rotateX(-20deg);
    }

    .voices-card-wrap.next2 {
        transform: translateY(150px) scale(0.82) rotateX(20deg);
    }

    .voices-arrow {
        width: 42px;
        height: 42px;
        font-size: 1.1rem;
    }
}

@media (max-width: 480px) {

    .voices-stage {
        height: 340px;
    }

    .voices-card {
        width: calc(100vw - 28px);
        max-width: 340px;
        padding: 16px 14px 12px;
    }

    .voices-avatar {
        width: 38px;
        height: 38px;
    }

    .voices-name {
        font-size: 0.86rem;
    }

    .voices-sub {
        font-size: 0.68rem;
    }

    .voices-stars {
        font-size: 0.95rem;
    }

    .voices-text {
        font-size: 0.80rem;
        line-height: 1.6;
        margin-bottom: 12px;
    }

    .voices-card-wrap.prev {
        transform: translateY(-88px) scale(0.92) rotateX(-12deg);
    }

    .voices-card-wrap.next {
        transform: translateY(88px) scale(0.92) rotateX(12deg);
    }

    .voices-card-wrap.prev2 {
        transform: translateY(-140px) scale(0.82) rotateX(-20deg);
    }

    .voices-card-wrap.next2 {
        transform: translateY(140px) scale(0.82) rotateX(20deg);
    }

    .voices-arrow {
        width: 36px;
        height: 36px;
        font-size: 1rem;
    }

    .voices-nav {
        gap: 16px;
        margin-top: 28px;
    }
}

@media (max-width: 360px) {

    .voices-stage {
        height: 320px;
    }

    .voices-card {
        width: calc(100vw - 20px);
        max-width: 300px;
        padding: 14px 12px 10px;
    }

    .voices-card-wrap.prev {
        transform: translateY(-82px) scale(0.92) rotateX(-12deg);
    }

    .voices-card-wrap.next {
        transform: translateY(82px) scale(0.92) rotateX(12deg);
    }

    .voices-card-wrap.prev2 {
        transform: translateY(-130px) scale(0.82) rotateX(-20deg);
    }

    .voices-card-wrap.next2 {
        transform: translateY(130px) scale(0.82) rotateX(20deg);
    }
}


/* =========================================================
   30. RESPONSIVE — NGO
========================================================= */

@media (max-width: 1024px) {

    .ngo-track {
        gap: 48px;
        animation-duration: 12s;
    }

    .ngo-logo-item {
        height: 90px;
        padding: 8px 16px;
    }

        .ngo-logo-item img {
            max-height: 70px;
            max-width: 150px;
        }

    .ngo-track-wrapper::before,
    .ngo-track-wrapper::after {
        width: 80px;
    }
}

@media (max-width: 768px) {

    .ngo-section {
        padding: 40px 0 50px;
    }

    .ngo-track {
        gap: 36px;
        animation-duration: 10s;
    }

    .ngo-logo-item {
        height: 80px;
        padding: 8px 12px;
    }

        .ngo-logo-item img {
            max-height: 58px;
            max-width: 130px;
        }

    .ngo-track-wrapper::before,
    .ngo-track-wrapper::after {
        width: 50px;
    }
}

@media (max-width: 480px) {

    .ngo-track {
        gap: 28px;
        animation-duration: 9s;
    }

    .ngo-logo-item {
        height: 70px;
        padding: 6px 10px;
    }

        .ngo-logo-item img {
            max-height: 48px;
            max-width: 110px;
        }

    .ngo-track-wrapper::before,
    .ngo-track-wrapper::after {
        width: 30px;
    }
}


/* =========================================================
   31. RESPONSIVE — LEARN BY DOING
========================================================= */

@media (max-width: 1024px) {

    .lbd-left {
        flex: 0 0 46%;
        min-height: 500px;
    }

    .lbd-lady-img {
        top: 36px;
        height: calc(100% - 36px);
    }

    .lbd-right {
        padding: 36px 36px 36px 40px;
        gap: 18px;
    }

    .lbd-badge {
        font-size: 0.86rem;
        padding: 14px 56px 14px 40px;
        min-height: 54px;
    }
}

@media (max-width: 768px) {

    .lbd-body {
        flex-direction: column;
    }

    .lbd-left {
        flex: 0 0 auto;
        width: 100%;
        min-height: 420px;
    }

    .lbd-lady-img {
        top: 30px;
        height: calc(100% - 30px);
    }

    .lbd-right {
        width: 100%;
        padding: 36px 28px 40px;
        gap: 16px;
    }

    .lbd-join-btn {
        font-size: 0.72rem;
        padding: 8px 16px;
    }
}

@media (max-width: 480px) {

    .lbd-section {
        padding: 36px 0 0;
    }
    /* keep bottom: 0 — no gap before footer */
    .lbd-left {
        min-height: 300px;
    }

    .lbd-lady-img {
        top: 24px;
        height: calc(100% - 24px);
    }

    .lbd-right {
        padding: 28px 20px 32px;
        gap: 14px;
    }

    .lbd-badge {
        font-size: 0.8rem;
        padding: 12px 44px 12px 32px;
        min-height: 50px;
    }
}


/* =========================================================
   32. RESPONSIVE — FOOTER
========================================================= */

@media (max-width: 960px) {

    .nst-footer__top {
        grid-template-columns: 1fr 1fr;
        gap: 36px;
    }
}

@media (max-width: 580px) {

    .nst-footer__top {
        grid-template-columns: 1fr;
        padding: 40px 6% 36px;
    }

    .nst-footer__bottom {
        flex-direction: column;
        text-align: center;
        gap: 8px;
    }
}
/* =========================================================
   ## FAQ SECTION
========================================================= */
.faq-section {
    background: #FDF5ED;
    width: 100%;
    padding: 50px 80px 70px;
    box-sizing: border-box;
    overflow: hidden;
}

/* Title row */
.faq-title-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 28px;
    width: 100%;
}

/* Short left line before icon */
.faq-title-line-left {
    width: 40px;
    height: 1px;
    background: #3a2a1a;
    flex-shrink: 0;
}

.faq-title-icon {
    width: 26px;
    height: 36px;
    background: #C9A97A;
    border: 1.5px solid #7A5C38;
    clip-path: polygon(0% 0%, 100% 0%, 100% 85%, 50% 100%, 0% 85%);
    flex-shrink: 0;
}

.faq-title-text {
    font-family: 'Merriweather', serif;
    font-size: 2rem;
    font-weight: 800;
    color: #552709;
    margin: 0;
    letter-spacing: -0.01em;
    white-space: nowrap;
}

/* Right line — fixed width */
.faq-title-line {
    width: 150px;
    height: 1px;
    background: #3a2a1a;
    flex-shrink: 0;
}

.faq-title-circle {
    width: 11px;
    height: 11px;
    border-radius: 50%;
    border: 1.5px solid #3a2a1a;
    background: transparent;
    flex-shrink: 0;
}

/* Frame wrapper — top-right offset border (full 4-side) */
.faq-frame-outer {
    position: relative;
    margin-top: 12px;
    margin-right: 12px;
    margin-bottom: 0;
    margin-left: 0;
}

    .faq-frame-outer::after {
        content: '';
        position: absolute;
        top: -12px;
        left: 12px;
        right: -12px;
        bottom: 12px;
        border: 2px solid #552709;
        z-index: 0;
        pointer-events: none;
    }

/* Inner card */
.faq-border-box {
    position: relative;
    z-index: 1;
    padding: 8px 28px 4px;
    background-color: #D2B9A0;
}

/* FAQ items */
.faq-item {
    border-bottom: 1px solid rgba(123, 91, 58, 0.28);
}

    .faq-item:last-child {
        border-bottom: none;
    }

/* ── KEY FIX: dot + text same line ── */
.faq-question {
    display: flex;
    align-items: center; /* vertically centers dot row with chevron */
    justify-content: space-between;
    gap: 15px;
    padding: 22px 4px; /* increased from 13px → 22px for more height */
    cursor: pointer;
    user-select: none;
    min-height: 64px; /* ensures consistent row height */
}

.faq-q-left {
    display: flex;
    align-items: center; /* dot and text on exact same baseline */
    gap: 15px;
}

.faq-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #552709;
    flex-shrink: 0;
    /* removed margin-top — alignment handled by align-items: center */
}

.faq-q-text {
    font-family: 'Roboto', sans-serif;
    font-size: 1.5rem;
    font-weight: 600;
    color: #552709;
    line-height: 1.45;
}

.faq-chevron {
    font-size: 0.92rem;
    color: #936C53;
    transition: transform 0.3s ease;
    flex-shrink: 0;
    /* removed margin-top — alignment handled by align-items: center */
}

.faq-item.open .faq-chevron {
    transform: rotate(90deg);
}

.faq-answer {
    font-family: 'Roboto', sans-serif;
    font-size: 1rem;
    font-weight: 500;
    color: #552709;
    line-height: 1.85;
    padding: 0 4px 22px 23px; /* bottom padding increased + left aligned with text */
    display: none;
}

.faq-item.open .faq-answer {
    display: block;
}

/* =========================================================
   RESPONSIVE — FAQ
========================================================= */
@media (max-width: 1024px) {
    .faq-section {
        padding: 48px 48px 60px;
    }

    .faq-title-line {
        width: 50px;
    }

    .faq-title-line-left {
        width: 32px;
    }

    .faq-question {
        padding: 20px 4px;
        min-height: 58px;
    }
}

@media (max-width: 768px) {
    .faq-section {
        padding: 40px 28px 52px;
    }

    .faq-title-text {
        font-size: 1.6rem;
    }

    .faq-title-line {
        width: 40px;
    }

    .faq-title-line-left {
        width: 24px;
    }

    .faq-frame-outer {
        margin-right: 10px;
        margin-top: 10px;
    }

        .faq-frame-outer::after {
            top: -10px;
            left: 10px;
            right: -10px;
            bottom: 10px;
        }

    .faq-border-box {
        padding: 8px 20px 4px;
    }

    .faq-question {
        padding: 18px 4px;
        min-height: 52px;
    }

    .faq-q-text {
        font-size: 0.9rem;
    }

    .faq-answer {
        font-size: 0.84rem;
        padding: 0 4px 18px 20px;
    }
}

@media (max-width: 560px) {
    .faq-section {
        padding: 32px 20px 44px;
    }

    .faq-title-text {
        font-size: 1.4rem;
    }

    .faq-title-line {
        width: 30px;
    }

    .faq-title-line-left {
        width: 18px;
    }

    .faq-frame-outer {
        margin-right: 8px;
        margin-top: 8px;
    }

        .faq-frame-outer::after {
            top: -8px;
            left: 8px;
            right: -8px;
            bottom: 8px;
        }

    .faq-border-box {
        padding: 6px 16px 4px;
    }

    .faq-question {
        padding: 16px 4px;
        min-height: 48px;
    }

    .faq-q-text {
        font-size: 0.84rem;
    }

    .faq-answer {
        font-size: 0.80rem;
        padding: 0 4px 16px 18px;
    }
}

@media (max-width: 380px) {
    .faq-section {
        padding: 28px 14px 36px;
    }

    .faq-title-text {
        font-size: 1.25rem;
    }

    .faq-title-line {
        width: 22px;
    }

    .faq-title-line-left {
        width: 14px;
    }

    .faq-border-box {
        padding: 4px 12px;
    }

    .faq-question {
        padding: 14px 4px;
        min-height: 44px;
    }

    .faq-q-text {
        font-size: 0.78rem;
    }

    .faq-dot {
        width: 6px;
        height: 6px;
    }

    .faq-answer {
        font-size: 0.76rem;
        padding: 0 4px 14px 16px;
    }
}

/* =========================================================
   ## CORE VALUES SECTION
========================================================= */
.cv-section {
    background: #FDF5ED;
    width: 100%;
    padding: 50px 80px 70px;
    box-sizing: border-box;
    overflow: hidden;
}

.cv-title-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 28px;
    width: 100%;
}

.cv-title-line-left {
    width: 40px;
    height: 1px;
    background: #3a2a1a;
    flex-shrink: 0;
}

.cv-title-icon {
    width: 26px;
    height: 36px;
    background: #C9A97A;
    border: 1.5px solid #7A5C38;
    clip-path: polygon(0% 0%, 100% 0%, 100% 85%, 50% 100%, 0% 85%);
    flex-shrink: 0;
}

.cv-title-text {
    font-family: 'Merriweather', serif;
    font-size: 2rem;
    font-weight: 800;
    color: #552709;
    margin: 0;
    letter-spacing: -0.01em;
    white-space: nowrap;
}

.cv-title-line {
    width: 150px;
    height: 1px;
    background: #3a2a1a;
    flex-shrink: 0;
}

.cv-title-circle {
    width: 11px;
    height: 11px;
    border-radius: 50%;
    border: 1.5px solid #3a2a1a;
    background: transparent;
    flex-shrink: 0;
}

.cv-frame-outer {
    position: relative;
    margin-top: 12px;
    margin-right: 12px;
}

    .cv-frame-outer::after {
        content: '';
        position: absolute;
        top: -12px;
        left: 12px;
        right: -12px;
        bottom: 12px;
        border: 2px solid #552709;
        z-index: 0;
        pointer-events: none;
    }

.cv-border-box {
    position: relative;
    z-index: 1;
    padding: 8px 28px 4px;
    background-color: #D2B9A0;
}

.cv-item {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 20px 4px;
    border-bottom: 1px solid rgba(123, 91, 58, 0.28);
}

    .cv-item:last-child {
        border-bottom: none;
    }

.cv-dot-col {
    display: flex;
    align-items: flex-start;
    padding-top: 6px;
    flex-shrink: 0;
}

.cv-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #552709;
    display: block;
}

.cv-text-col {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.cv-value-title {
    font-family: 'Roboto', sans-serif;
    font-size: 1.15rem;
    font-weight: 700;
    color: #411C05;
    margin: 0;
    line-height: 1.4;
}

.cv-value-desc {
    font-family: 'Roboto', sans-serif;
    font-size: 0.95rem;
    font-weight: 500;
    color: #552709;
    line-height: 1.75;
    margin: 0;
    padding-left: 20px;
}

/* RESPONSIVE — Core Values */
@media (max-width: 768px) {
    .cv-section {
        padding: 40px 28px 52px;
    }

    .cv-title-line {
        width: 40px;
    }

    .cv-title-line-left {
        width: 24px;
    }

    .cv-title-text {
        font-size: 1.6rem;
    }

    .cv-frame-outer {
        margin-right: 10px;
        margin-top: 10px;
    }

        .cv-frame-outer::after {
            top: -10px;
            left: 10px;
            right: -10px;
            bottom: 10px;
        }

    .cv-border-box {
        padding: 8px 20px 4px;
    }

    .cv-value-title {
        font-size: 1rem;
    }

    .cv-value-desc {
        font-size: 0.88rem;
    }
}

@media (max-width: 560px) {
    .cv-section {
        padding: 32px 20px 44px;
    }

    .cv-title-text {
        font-size: 1.4rem;
    }

    .cv-title-line {
        width: 30px;
    }

    .cv-title-line-left {
        width: 18px;
    }

    .cv-frame-outer {
        margin-right: 8px;
        margin-top: 8px;
    }

        .cv-frame-outer::after {
            top: -8px;
            left: 8px;
            right: -8px;
            bottom: 8px;
        }

    .cv-border-box {
        padding: 6px 16px 4px;
    }

    .cv-value-title {
        font-size: 0.92rem;
    }

    .cv-value-desc {
        font-size: 0.82rem;
        padding-left: 14px;
    }
}

@media (max-width: 380px) {
    .cv-section {
        padding: 28px 14px 36px;
    }

    .cv-title-text {
        font-size: 1.25rem;
    }

    .cv-title-line {
        width: 22px;
    }

    .cv-title-line-left {
        width: 14px;
    }

    .cv-border-box {
        padding: 4px 12px;
    }

    .cv-dot {
        width: 6px;
        height: 6px;
    }

    .cv-value-title {
        font-size: 0.84rem;
    }

    .cv-value-desc {
        font-size: 0.78rem;
    }
}
/* =========================================================
   ## PRIVACY POLICY SECTION
========================================================= */
.pp-section {
    background: #FDF5ED;
    width: 100%;
    padding: 50px 80px 70px;
    box-sizing: border-box;
    overflow: hidden;
}

.pp-title-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 28px;
    width: 100%;
}

.pp-title-line-left {
    width: 40px;
    height: 1px;
    background: #3a2a1a;
    flex-shrink: 0;
}

.pp-title-icon {
    width: 26px;
    height: 36px;
    background: #C9A97A;
    border: 1.5px solid #7A5C38;
    clip-path: polygon(0% 0%, 100% 0%, 100% 85%, 50% 100%, 0% 85%);
    flex-shrink: 0;
}

.pp-title-text {
    font-family: 'Merriweather', serif;
    font-size: 2rem;
    font-weight: 800;
    color: #552709;
    margin: 0;
    letter-spacing: -0.01em;
    white-space: nowrap;
}

.pp-title-line {
    width: 150px;
    height: 1px;
    background: #3a2a1a;
    flex-shrink: 0;
}

.pp-title-circle {
    width: 11px;
    height: 11px;
    border-radius: 50%;
    border: 1.5px solid #3a2a1a;
    background: transparent;
    flex-shrink: 0;
}

.pp-frame-outer {
    position: relative;
    margin-top: 12px;
    margin-right: 12px;
}

    .pp-frame-outer::after {
        content: '';
        position: absolute;
        top: -12px;
        left: 12px;
        right: -12px;
        bottom: 12px;
        border: 2px solid #552709;
        z-index: 0;
        pointer-events: none;
    }

.pp-border-box {
    position: relative;
    z-index: 1;
    padding: 8px 28px 4px;
    background-color: #D2B9A0;
}

.pp-item {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 20px 4px;
    border-bottom: 1px solid rgba(123, 91, 58, 0.28);
}

    .pp-item:last-child {
        border-bottom: none;
    }

.pp-dot-col {
    display: flex;
    align-items: flex-start;
    padding-top: 5px;
    flex-shrink: 0;
}

.pp-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #552709;
    display: block;
}

.pp-text-col {
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1;
}

.pp-item-title {
    font-family: 'Roboto', sans-serif;
    font-size: 1.1rem;
    font-weight: 700;
    color: #411C05;
    margin: 0;
    line-height: 1.4;
}

.pp-item-desc {
    font-family: 'Roboto', sans-serif;
    font-size: 0.9rem;
    font-weight: 500;
    color: #552709;
    line-height: 1.8;
    margin: 0;
    padding-left: 20px;
}

.pp-sublist {
    list-style: none;
    margin: 2px 0 0;
    padding-left: 20px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

    .pp-sublist li {
        font-family: 'Roboto', sans-serif;
        font-size: 0.88rem;
        font-weight: 500;
        color: #552709;
        line-height: 1.7;
        display: flex;
        align-items: baseline;
        gap: 8px;
    }

        .pp-sublist li::before {
            content: '•';
            color: #765038;
            font-size: 0.75rem;
            flex-shrink: 0;
        }

/* RESPONSIVE — Privacy Policy */
@media (max-width: 768px) {
    .pp-section {
        padding: 40px 28px 52px;
    }

    .pp-title-line {
        width: 40px;
    }

    .pp-title-line-left {
        width: 24px;
    }

    .pp-title-text {
        font-size: 1.6rem;
    }

    .pp-frame-outer {
        margin-right: 10px;
        margin-top: 10px;
    }

        .pp-frame-outer::after {
            top: -10px;
            left: 10px;
            right: -10px;
            bottom: 10px;
        }

    .pp-border-box {
        padding: 8px 20px 4px;
    }

    .pp-item-title {
        font-size: 1rem;
    }

    .pp-item-desc {
        font-size: 0.84rem;
    }

    .pp-sublist li {
        font-size: 0.82rem;
    }
}

@media (max-width: 560px) {
    .pp-section {
        padding: 32px 20px 44px;
    }

    .pp-title-text {
        font-size: 1.4rem;
    }

    .pp-title-line {
        width: 30px;
    }

    .pp-title-line-left {
        width: 18px;
    }

    .pp-frame-outer {
        margin-right: 8px;
        margin-top: 8px;
    }

        .pp-frame-outer::after {
            top: -8px;
            left: 8px;
            right: -8px;
            bottom: 8px;
        }

    .pp-border-box {
        padding: 6px 16px 4px;
    }

    .pp-item-title {
        font-size: 0.92rem;
    }

    .pp-item-desc {
        font-size: 0.80rem;
        padding-left: 14px;
    }

    .pp-sublist {
        padding-left: 14px;
    }

        .pp-sublist li {
            font-size: 0.78rem;
        }
}

@media (max-width: 380px) {
    .pp-section {
        padding: 28px 14px 36px;
    }

    .pp-title-text {
        font-size: 1.25rem;
    }

    .pp-title-line {
        width: 22px;
    }

    .pp-title-line-left {
        width: 14px;
    }

    .pp-border-box {
        padding: 4px 12px;
    }

    .pp-dot {
        width: 6px;
        height: 6px;
    }

    .pp-item-title {
        font-size: 0.84rem;
    }

    .pp-item-desc {
        font-size: 0.76rem;
    }

    .pp-sublist li {
        font-size: 0.74rem;
    }
}

/* ═══════════════════════════════════════════════════════
   NS FASHION HUB — CONTACT PAGE
   Palette & fonts inherited from style.css
═══════════════════════════════════════════════════════ */

/* ══════════════════════════════
   SECTION WRAPPER
══════════════════════════════ */
.contact-section {
    background: #FDF5ED;
    width: 100%;
    padding: 48px 80px 64px;
    box-sizing: border-box;
    font-family: 'Roboto', sans-serif;
}

/* ══════════════════════════════
   PAGE HEADING
══════════════════════════════ */
.contact-page-heading {
    text-align: center;
    margin-bottom: 44px;
}

.contact-main-title {
    font-family: 'Merriweather', serif;
    font-size: clamp(1.7rem, 3vw, 2.4rem);
    font-weight: 800;
    color: #552709;
    margin: 0 0 8px;
    letter-spacing: -0.01em;
    line-height: 1.2;
}

.contact-main-sub {
    font-family: 'Roboto', sans-serif;
    font-size: 1rem;
    font-weight: 600;
    color: #936C53;
    margin: 0;
    line-height: 1.5;
}

/* ══════════════════════════════
   TOP ROW — Form + Map
══════════════════════════════ */
.contact-top-row {
    display: flex;
    align-items: flex-start;
    gap: 48px;
    width: 100%;
    margin-bottom: 52px;
}

/* ── FORM COLUMN ── */
.contact-form-col {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.contact-lets {
    font-family: 'Roboto', sans-serif;
    font-size: 0.85rem;
    font-weight: 700;
    color: #552709;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin: 0 0 6px;
}

.contact-form-title {
    font-family: 'Cormorant Infant', serif;
    font-size: clamp(1.6rem, 2.5vw, 2.2rem);
    font-weight: 500;
    color: #552709;
    margin: 0 0 8px;
    line-height: 1.2;
}

.contact-form-desc {
    font-family: 'Roboto', sans-serif;
    font-size: 1rem;
    font-weight: 600;
    color: #936C53;
    margin: 0 0 22px;
    line-height: 1.6;
}

/* Form fields */
.contact-form {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.contact-input-wrap {
    width: 100%;
}

.contact-input {
    width: 100%;
    background: #FFFFFF;
    border: none;
    border-radius: 8px;
    padding: 14px 18px;
    font-family: 'Roboto', sans-serif;
    font-size: 0.875rem;
    font-weight: 600;
    color: #765038;
    outline: none;
    box-sizing: border-box;
    box-shadow: 0 1px 4px rgba(65, 28, 5, 0.06);
    transition: box-shadow 0.2s ease, border 0.2s ease;
    resize: none;
}

    .contact-input::placeholder {
        color: #A08060;
        font-style: normal;
    }

    .contact-input:focus {
        box-shadow: 0 0 0 2px rgba(201, 166, 70, 0.35), 0 2px 8px rgba(65, 28, 5, 0.08);
    }

.contact-textarea {
    min-height: 90px;
    line-height: 1.6;
}

/* Send button */
.btn-send-message {
    width: 100%;
    padding: 15px 20px;
    border-radius: 8px;
    border: none;
    background: linear-gradient(135deg, #C9A646 0%, #7B4A1C 100%);
    color: #fff;
    font-family: 'Roboto', sans-serif;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    cursor: pointer;
    box-shadow: 0 4px 16px rgba(201, 166, 70, 0.38);
    transition: transform 0.22s ease, box-shadow 0.22s ease;
    margin-top: 4px;
}

    .btn-send-message:hover {
        transform: translateY(-2px);
        box-shadow: 0 8px 24px rgba(201, 166, 70, 0.52);
    }

/* ── MAP COLUMN ── */
.contact-map-col {
    flex: 1 1 0;
    min-width: 0;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(65, 28, 5, 0.12);
    align-self: stretch;
}

.contact-map-iframe {
    width: 100%;
    height: 100%;
    min-height: 500px;
    border: none;
    display: block;
}

/* ══════════════════════════════
   BOTTOM INFO BAR
══════════════════════════════ */
.contact-info-bar {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
    width: 100%;
}

.contact-info-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 10px;
}

/* Circle icon */
.contact-info-icon {
    width: 68px;
    height: 68px;
    border-radius: 50%;
    background: #D2B9A0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.25s ease, transform 0.25s ease;
}

.contact-info-item:hover .contact-info-icon {
    background: #936C53;
    transform: translateY(-4px);
}

.contact-info-icon i {
    font-size: 2rem;
    color: #411C05;
    transition: color 0.25s ease;
}

.contact-info-item:hover .contact-info-icon i {
    color: #FDF5ED;
}

/* Info title */
.contact-info-title {
    font-family: 'Merriweather', serif;
    font-size: 1.05rem;
    font-weight: 800;
    color: #552709;
    margin: 0;
    line-height: 1.3;
}

/* Info desc */
.contact-info-desc {
    font-family: 'Roboto', sans-serif;
    font-size: 1rem;
    font-weight: 400;
    color: #552709;
    margin: 0;
    line-height: 1.65;
}

/* ══════════════════════════════
   RESPONSIVE
══════════════════════════════ */
@media (max-width: 1024px) {
    .contact-section {
        padding: 40px 48px 56px;
    }

    .contact-top-row {
        gap: 32px;
    }

    .contact-map-iframe {
        height: 520px;
        min-height: 520px;
    }
}

@media (max-width: 768px) {
    .contact-section {
        padding: 36px 28px 52px;
    }

    .contact-top-row {
        flex-direction: column;
        gap: 32px;
    }

    .contact-form-col {
        width: 100%;
    }

    .contact-map-col {
        width: 100%;
        min-height: 350px;
    }

    .contact-map-iframe {
        height: 350px;
        min-height: 350px;
    }

    .contact-info-bar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 28px 20px;
    }
}

@media (max-width: 560px) {
    .contact-section {
        padding: 28px 20px 44px;
    }

    .contact-main-title {
        font-size: 1.6rem;
    }

    .contact-page-heading {
        margin-bottom: 32px;
    }

    .contact-map-col {
        min-height: 280px;
    }

    .contact-map-iframe {
        height: 280px;
        min-height: 280px;
    }

    .contact-info-bar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 24px 16px;
    }

    .contact-info-icon {
        width: 58px;
        height: 58px;
    }

        .contact-info-icon i {
            font-size: 1.1rem;
        }

    .contact-info-title {
        font-size: 0.92rem;
    }

    .contact-info-desc {
        font-size: 0.76rem;
    }
}

@media (max-width: 380px) {
    .contact-section {
        padding: 24px 14px 36px;
    }

    .contact-map-col {
        min-height: 240px;
    }

    .contact-map-iframe {
        height: 240px;
        min-height: 240px;
    }

    .contact-info-bar {
        grid-template-columns: 1fr 1fr;
        gap: 20px 12px;
    }

    .contact-info-icon {
        width: 52px;
        height: 52px;
    }

        .contact-info-icon i {
            font-size: 1rem;
        }

    .contact-info-title {
        font-size: 0.84rem;
    }

    .contact-info-desc {
        font-size: 0.72rem;
    }
}
/* =========================================================
   ## NGO DETAIL SECTION
========================================================= */

.ngo-section {
    max-width: 1400px;
    margin: 0 auto;
    padding: 30px 24px 80px;
}

/* Primary Partner label */
.ngo-partner-label {
    text-align: center;
    font-family: 'Cormorant Garamond', serif;
    font-size: 15px;
    font-weight: 600;
    color: #C9A646;
    letter-spacing: 0.06em;
    margin-bottom: 6px;
}

/* Main heading */
.ngo-heading {
    text-align: center;
    font-family: 'Merriweather', serif;
    font-size: 2.6rem;
    font-weight: 700;
    color: #552709;
    margin-bottom: 18px;
}

/* Sub description */
.ngo-description {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 52px;
    font-size: 0.97rem;
    line-height: 1.75;
    color: #7B5B3A;
}

/* ── Initiative wrapper — spacing between cards ── */
.ngo-initiative {
    margin-bottom: 72px;
}

    .ngo-initiative:last-child {
        margin-bottom: 0;
    }

/* ── Frame Outer — offset border bottom-left ── */
.ngo-frame-outer {
    position: relative;
    margin-top: 0;
    margin-right: 0;
    margin-bottom: 12px;
    margin-left: 12px;
}

    .ngo-frame-outer::after {
        content: '';
        position: absolute;
        top: 12px;
        left: -12px;
        right: 12px;
        bottom: -12px;
        border: 2px solid #552709;
        z-index: 0;
        pointer-events: none;
    }

/* ── Frame Inner ── */
.ngo-frame-inner {
    position: relative;
    z-index: 1;
    padding: 28px 28px 32px;
    background-color: #EDD9BE;
}

/* ── Initiative Card ── */
.ngo-card {
    background: #EDD9BE;
    border: none;
    border-radius: 0;
    display: flex;
    align-items: stretch;
    gap: 0;
    overflow: visible;
    position: relative;
}

/* Left content */
.ngo-card-body {
    flex: 1;
    padding: 28px 32px 32px;
}

/* CSR Badge */
.ngo-badge {
    display: inline-block;
    padding: 14px 48px;
    background: linear-gradient(135deg, #C9A646 0%, #7B4A1C 100%);
    color: #fff;
    text-decoration: none;
    font-family: 'Roboto', sans-serif;
    font-size: 0.92rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    box-shadow: 0 6px 24px rgba(201, 166, 70, 0.40), 0 2px 8px rgba(123, 74, 28, 0.22);
    transition: transform 0.22s ease, box-shadow 0.22s ease;
    align-self: flex-start;
    white-space: nowrap;
}

.ngo-card-year {
    font-size: 1rem;
    color: #936C53;
    margin-top: 16px;
    margin-bottom: 12px;
    font-family: 'Cormorant Infant', sans-serif;
    font-weight: 500;
}

.ngo-card-title {
    font-family: 'Cormorant Infant', serif;
    font-size: 1.5rem;
    font-weight: 500;
    color: #411C05;
    line-height: 1.5;
    margin-bottom: 22px;
}

/* Key-value list */
.ngo-meta {
    list-style: none;
    margin-bottom: 22px;
    padding: 0;
}

    .ngo-meta li {
        display: flex;
        align-items: baseline;
        gap: 10px;
        font-size: 1rem;
        color: #552709;
        margin-bottom: 10px;
    }

        .ngo-meta li::before {
            content: '•';
            color: #C9A646;
            font-size: 1.1rem;
            flex-shrink: 0;
        }

.ngo-meta-key {
    font-weight: 700;
    min-width: 80px;
    color: #552709;
    font-family: 'Roboto', sans-serif;
}

.ngo-meta-val {
    color: #936C53;
    font-weight: 500;
    font-family: 'Roboto', sans-serif;
}

/* Description paragraph */
.ngo-card-desc {
    font-size: 1rem;
    line-height: 1.8;
    color: #936C53;
    max-width: 560px;
    font-family: 'Roboto', sans-serif;
    font-weight: 500;
}

/* ── Right image wrap ── */
.ngo-card-img-wrap {
    flex: 0 0 480px;
    min-height: 300px;
    position: relative;
    padding: 36px 28px 36px 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: visible;
}

    .ngo-card-img-wrap img {
        width: 100%;
        max-width: 100%;
        height: 260px;
        object-fit: cover;
        display: block;
        border: none;
        border-radius: 2px;
        outline: 3px dashed #552709;
        outline-offset: 10px;
    }


/* =========================================================
   ## NGO MINI CARDS GRID
========================================================= */

/* ── Grid wrapper ──
   padding-left gives room for the ::after left offset
   so the shadow border never gets clipped               */
.ngo-mini-grid {
    display: grid;
    gap: 48px 32px; /* row-gap col-gap */
    padding-left: 16px; /* room for ::after left:-12px + 4px breathing */
    padding-bottom: 16px; /* room for ::after bottom:-12px */
}

    /* 2-column layout — default (when exactly 2 cards) */
    .ngo-mini-grid:has(> .ngo-mini-frame-outer:nth-child(2):last-child) {
        grid-template-columns: 1fr 1fr;
    }

    /* 3-column layout — when 3 or more cards */
    .ngo-mini-grid:has(> .ngo-mini-frame-outer:nth-child(3)) {
        grid-template-columns: 1fr 1fr 1fr;
    }

/* Fallback: always at least 2 columns if nothing else matched */
.ngo-mini-grid {
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

/* ── Outer frame ── */
.ngo-mini-frame-outer {
    position: relative;
    /* extra margin so ::after shadow clears the grid cell edge */
    margin-bottom: 14px;
    margin-left: 2px;
}

    .ngo-mini-frame-outer::after {
        content: '';
        position: absolute;
        top: 12px;
        left: -12px;
        right: 12px;
        bottom: -12px;
        border: 2px solid #552709;
        z-index: 0;
        pointer-events: none;
    }

/* ── Inner frame ── */
.ngo-mini-frame-inner {
    position: relative;
    z-index: 1;
    padding: 28px 28px 32px;
    background-color: #EDD9BE;
    height: 100%;
    box-sizing: border-box;
}

/* ── Mini card title ── */
.ngo-mini-title {
    font-family: 'Cormorant Infant', serif;
    font-size: 1.3rem;
    font-weight: 500;
    color: #411C05;
    line-height: 1.5;
    margin-top: 4px;
    margin-bottom: 18px;
}

/* year inside mini card — no top margin needed since no badge above */
.ngo-mini-frame-inner .ngo-card-year {
    margin-top: 0;
}

/* desc inside mini card — no max-width constraint */
.ngo-mini-frame-inner .ngo-card-desc {
    max-width: 100%;
}


/* =========================================================
   RESPONSIVE — NGO DETAIL SECTION
========================================================= */

@media (max-width: 1024px) {

    .ngo-section {
        padding: 52px 24px 72px;
    }

    .ngo-heading {
        font-size: 2.1rem;
    }

    .ngo-description {
        margin-bottom: 40px;
    }

    .ngo-initiative {
        margin-bottom: 60px;
    }

    .ngo-frame-outer {
        margin-bottom: 10px;
        margin-left: 10px;
    }

        .ngo-frame-outer::after {
            top: 10px;
            left: -10px;
            right: 10px;
            bottom: -10px;
        }

    .ngo-frame-inner {
        padding: 24px 24px 28px;
    }

    .ngo-card-img-wrap {
        flex: 0 0 400px;
        padding: 32px 22px 32px 22px;
    }

        .ngo-card-img-wrap img {
            height: 220px;
            outline-offset: 9px;
        }

    .ngo-card-title {
        font-size: 1.1rem;
    }

    .ngo-meta li {
        font-size: 0.95rem;
    }

    .ngo-card-desc {
        font-size: 0.95rem;
    }

    /* mini grid */
    .ngo-mini-grid {
        gap: 44px 24px;
    }

    .ngo-mini-frame-inner {
        padding: 24px 24px 28px;
    }

    .ngo-mini-title {
        font-size: 1.15rem;
    }
}

@media (max-width: 768px) {

    .ngo-section {
        padding: 44px 20px 64px;
    }

    .ngo-heading {
        font-size: 1.7rem;
    }

    .ngo-description {
        font-size: 0.9rem;
        margin-bottom: 32px;
    }

    .ngo-initiative {
        margin-bottom: 52px;
    }

    .ngo-frame-outer {
        margin-bottom: 8px;
        margin-left: 8px;
    }

        .ngo-frame-outer::after {
            top: 8px;
            left: -8px;
            right: 8px;
            bottom: -8px;
        }

    .ngo-frame-inner {
        padding: 20px 20px 24px;
    }

    /* Stack big card vertically */
    .ngo-card {
        flex-direction: column;
    }

    .ngo-card-body {
        padding: 22px 20px 24px;
    }

    .ngo-card-img-wrap {
        flex: unset;
        width: 100%;
        min-height: unset;
        padding: 20px 28px 32px 28px;
        justify-content: center;
    }

        .ngo-card-img-wrap img {
            width: calc(100% - 20px);
            max-width: 100%;
            height: 220px;
            outline-offset: 8px;
        }

    .ngo-card-title {
        font-size: 1.05rem;
    }

    /* mini grid — 2-col stays on tablet, 3-col drops to 2-col */
    .ngo-mini-grid {
        gap: 44px 20px;
        padding-left: 12px;
    }

        .ngo-mini-grid:has(> .ngo-mini-frame-outer:nth-child(3)) {
            grid-template-columns: 1fr 1fr;
        }

    .ngo-mini-frame-outer::after {
        top: 8px;
        left: -8px;
        right: 8px;
        bottom: -8px;
    }

    .ngo-mini-frame-inner {
        padding: 22px 20px 26px;
    }

    .ngo-mini-title {
        font-size: 1.05rem;
    }
}

@media (max-width: 560px) {

    .ngo-section {
        padding: 36px 16px 56px;
    }

    .ngo-heading {
        font-size: 1.4rem;
    }

    .ngo-description {
        font-size: 0.85rem;
        margin-bottom: 26px;
    }

    .ngo-initiative {
        margin-bottom: 44px;
    }

    .ngo-frame-outer {
        margin-bottom: 6px;
        margin-left: 6px;
    }

        .ngo-frame-outer::after {
            top: 6px;
            left: -6px;
            right: 6px;
            bottom: -6px;
        }

    .ngo-frame-inner {
        padding: 16px 14px 20px;
    }

    .ngo-card-body {
        padding: 18px 16px 20px;
    }

    .ngo-badge {
        font-size: 0.78rem;
        padding: 5px 14px;
    }

    .ngo-card-year {
        font-size: 0.88rem;
    }

    .ngo-card-title {
        font-size: 0.95rem;
        margin-bottom: 16px;
    }

    .ngo-meta li {
        font-size: 0.88rem;
    }

    .ngo-meta-key {
        min-width: 66px;
    }

    .ngo-card-desc {
        font-size: 0.88rem;
    }

    .ngo-card-img-wrap {
        padding: 18px 22px 28px 22px;
        min-height: unset;
    }

        .ngo-card-img-wrap img {
            height: 200px;
            outline-offset: 7px;
        }

    /* mini grid — all single column on mobile */
    .ngo-mini-grid,
    .ngo-mini-grid:has(> .ngo-mini-frame-outer:nth-child(2):last-child),
    .ngo-mini-grid:has(> .ngo-mini-frame-outer:nth-child(3)) {
        grid-template-columns: 1fr;
        gap: 40px;
        padding-left: 10px;
    }

    .ngo-mini-frame-outer::after {
        top: 6px;
        left: -6px;
        right: 6px;
        bottom: -6px;
    }

    .ngo-mini-frame-inner {
        padding: 18px 16px 22px;
    }

    .ngo-mini-title {
        font-size: 0.98rem;
        margin-bottom: 14px;
    }
}

@media (max-width: 380px) {

    .ngo-section {
        padding: 28px 12px 44px;
    }

    .ngo-heading {
        font-size: 1.2rem;
    }

    .ngo-description {
        font-size: 0.8rem;
        margin-bottom: 20px;
    }

    .ngo-initiative {
        margin-bottom: 36px;
    }

    .ngo-frame-outer {
        margin-bottom: 6px;
        margin-left: 6px;
    }

        .ngo-frame-outer::after {
            top: 6px;
            left: -6px;
            right: 6px;
            bottom: -6px;
        }

    .ngo-frame-inner {
        padding: 12px 10px 16px;
    }

    .ngo-card-body {
        padding: 14px 12px 16px;
    }

    .ngo-badge {
        font-size: 0.72rem;
        padding: 4px 10px;
    }

    .ngo-card-title {
        font-size: 0.88rem;
    }

    .ngo-meta li {
        font-size: 0.82rem;
        gap: 6px;
    }

    .ngo-meta-key {
        min-width: 56px;
    }

    .ngo-card-desc {
        font-size: 0.82rem;
        line-height: 1.7;
    }

    .ngo-card-img-wrap {
        padding: 16px 18px 24px 18px;
    }

        .ngo-card-img-wrap img {
            height: 180px;
            outline-offset: 6px;
        }

    .ngo-mini-frame-inner {
        padding: 14px 12px 18px;
    }

    .ngo-mini-title {
        font-size: 0.88rem;
    }
}


/* =========================================================
   ## MINI GRID — 3-CARD COMPACT VARIANT
   Targets grids that have exactly 3 cards (no meta list,
   less content) — reduces padding so cards don't balloon
========================================================= */

.ngo-mini-grid:has(> .ngo-mini-frame-outer:nth-child(3):last-child) .ngo-mini-frame-inner {
    padding: 22px 24px 24px; /* tighter than standard 28px 28px 32px */
}

.ngo-mini-grid:has(> .ngo-mini-frame-outer:nth-child(3):last-child) .ngo-mini-title {
    font-size: 1.15rem;
    margin-bottom: 12px;
}

.ngo-mini-grid:has(> .ngo-mini-frame-outer:nth-child(3):last-child) .ngo-card-year {
    margin-top: 0;
    margin-bottom: 8px;
}

.ngo-mini-grid:has(> .ngo-mini-frame-outer:nth-child(3):last-child) .ngo-card-desc {
    font-size: 0.93rem;
    line-height: 1.7;
}

/* Also stop cards stretching to equal height in this variant —
   let each card be only as tall as its content needs          */
.ngo-mini-grid:has(> .ngo-mini-frame-outer:nth-child(3):last-child) .ngo-mini-frame-inner {
    height: auto;
}

/* ── Responsive — 3-card compact ── */
@media (max-width: 1024px) {
    .ngo-mini-grid:has(> .ngo-mini-frame-outer:nth-child(3):last-child) .ngo-mini-frame-inner {
        padding: 18px 20px 20px;
    }
}

@media (max-width: 560px) {
    .ngo-mini-grid:has(> .ngo-mini-frame-outer:nth-child(3):last-child) .ngo-mini-frame-inner {
        padding: 16px 16px 18px;
    }

    .ngo-mini-grid:has(> .ngo-mini-frame-outer:nth-child(3):last-child) .ngo-mini-title {
        font-size: 0.95rem;
    }
}

/* =========================================================
   ## BILLING DETAILS SECTION
   Matches site palette: #EDD9BE background, #552709 dark
   brown, #C9A646 gold, #936C53 mid-brown, #F5EAD8 inputs
========================================================= */

.billing-section {
    max-width: 1400px;
    margin: 0 auto;
    padding: 60px 24px 80px;
}

/* ── Two-column layout ── */
.billing-wrap {
    display: grid;
    grid-template-columns: 1fr 1.1fr;
    gap: 64px;
    align-items: start;
}

/* =========================================================
   LEFT — FORM COLUMN
========================================================= */

.billing-heading {
    font-family: 'Merriweather', serif;
    font-size: 1.9rem;
    font-weight: 700;
    color: #552709;
    margin-bottom: 32px;
    margin-top: 0;
}

.billing-field {
    margin-bottom: 20px;
}

.billing-label {
    display: block;
    font-family: 'Roboto', sans-serif;
    font-size: 0.9rem;
    font-weight: 500;
    color: #552709;
    margin-bottom: 7px;
}

.billing-input {
    display: block;
    width: 100%;
    box-sizing: border-box;
    height: 42px;
    padding: 0 14px;
    background: #fff;
    border: 1.5px solid #D9C3A8;
    border-radius: 3px;
    font-family: 'Roboto', sans-serif;
    font-size: 0.92rem;
    color: #411C05;
    outline: none;
    transition: border-color 0.2s ease;
}

    .billing-input:focus {
        border-color: #C9A646;
    }

/* Ship to different address checkbox row */
.billing-check-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 8px;
    cursor: pointer;
}

.billing-checkbox {
    width: 18px;
    height: 18px;
    accent-color: #C9A646;
    cursor: pointer;
    flex-shrink: 0;
}

.billing-check-label {
    font-family: 'Roboto', sans-serif;
    font-size: 0.88rem;
    color: #936C53;
    font-weight: 500;
}


/* =========================================================
   RIGHT — ORDER SUMMARY COLUMN
========================================================= */

/* ── Product table ── */
.billing-table-wrap {
    border-bottom: 1.5px solid #C9A646;
    margin-bottom: 28px;
}

.billing-table {
    width: 100%;
    border-collapse: collapse;
    font-family: 'Roboto', sans-serif;
}

    .billing-table thead tr {
        border-bottom: 1.5px solid #C9A646;
    }

    .billing-table thead th {
        font-size: 0.88rem;
        font-weight: 600;
        color: #936C53;
        text-align: left;
        padding: 0 12px 12px 0;
        letter-spacing: 0.01em;
    }

        .billing-table thead th:last-child,
        .billing-table tbody td:last-child,
        .billing-table tfoot td:last-child {
            text-align: right;
            padding-right: 0;
        }

    .billing-table tbody tr {
        border-bottom: 1px solid #E8D5BC;
    }

    .billing-table tbody td {
        font-size: 0.92rem;
        color: #552709;
        padding: 13px 12px 13px 0;
        font-weight: 400;
    }

/* Total row */
.billing-total-row td {
    padding-top: 16px;
    padding-bottom: 16px;
}

.billing-total-label {
    font-family: 'Roboto', sans-serif;
    font-size: 0.95rem;
    font-weight: 600;
    color: #552709;
    text-align: right;
    padding-right: 24px !important;
}

.billing-total-val {
    font-family: 'Roboto', sans-serif;
    font-size: 1rem;
    font-weight: 700;
    color: #552709;
}

/* ── Payment options ── */
.billing-payment-opts {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 32px;
}

.billing-radio-row {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
}

.billing-radio {
    width: 18px;
    height: 18px;
    accent-color: #C9A646;
    cursor: pointer;
    flex-shrink: 0;
}

.billing-radio-label {
    font-family: 'Roboto', sans-serif;
    font-size: 0.9rem;
    color: #936C53;
    font-weight: 500;
}

/* ── Checkout button ── */
.billing-checkout-btn {
    display: block;
    width: 100%;
    padding: 16px 24px;
    background: linear-gradient(135deg, #C9A646 0%, #7B4A1C 100%);
    color: #fff;
    border: none;
    border-radius: 3px;
    font-family: 'Roboto', sans-serif;
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: opacity 0.2s ease, transform 0.15s ease;
    box-shadow: 0 4px 18px rgba(201, 166, 70, 0.35), 0 2px 6px rgba(123, 74, 28, 0.2);
}

    .billing-checkout-btn:hover {
        opacity: 0.92;
        transform: translateY(-1px);
    }

    .billing-checkout-btn:active {
        transform: translateY(0);
        opacity: 1;
    }


/* =========================================================
   RESPONSIVE — BILLING SECTION
========================================================= */

@media (max-width: 1024px) {

    .billing-section {
        padding: 52px 24px 72px;
    }

    .billing-wrap {
        gap: 48px;
    }

    .billing-heading {
        font-size: 1.65rem;
    }
}

@media (max-width: 768px) {

    .billing-section {
        padding: 44px 20px 64px;
    }

    /* Stack to single column */
    .billing-wrap {
        grid-template-columns: 1fr;
        gap: 48px;
    }

    .billing-heading {
        font-size: 1.5rem;
        margin-bottom: 24px;
    }

    .billing-table-wrap {
        overflow-x: auto;
    }

    .billing-table {
        min-width: 340px;
    }
}

@media (max-width: 560px) {

    .billing-section {
        padding: 36px 16px 56px;
    }

    .billing-heading {
        font-size: 1.3rem;
    }

    .billing-input {
        height: 40px;
        font-size: 0.88rem;
    }

    .billing-label {
        font-size: 0.84rem;
    }

    .billing-checkout-btn {
        font-size: 0.92rem;
        padding: 14px 20px;
    }
}

@media (max-width: 380px) {

    .billing-section {
        padding: 28px 12px 44px;
    }

    .billing-heading {
        font-size: 1.15rem;
    }

    .billing-input {
        height: 38px;
    }
}


/* =========================================================
   ## SHIPPING ADDRESS — TOGGLE PANEL
========================================================= */

/* Hidden by default — zero height, no overflow */
.billing-ship-fields {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.38s ease, opacity 0.28s ease, margin-top 0.28s ease;
    margin-top: 0;
}

/* Open state — toggled by JS adding this class */
.billing-ship-fields--open {
    max-height: 600px; /* large enough for 4 fields */
    opacity: 1;
    margin-top: 24px;
}

/* Divider line with "Shipping Address" label */
.billing-ship-divider {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 20px;
}

    .billing-ship-divider::before,
    .billing-ship-divider::after {
        content: '';
        flex: 1;
        height: 1.5px;
        background: #C9A646;
    }

    .billing-ship-divider span {
        font-family: 'Cormorant Garamond', serif;
        font-size: 0.88rem;
        font-weight: 600;
        color: #C9A646;
        letter-spacing: 0.06em;
        white-space: nowrap;
    }
/* Workshop name in lbd right panel */
.lbd-workshop-name {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.5rem;
    color: #411C05;
    margin: 0.4rem 0 0.75rem;
    line-height: 1.3;
}

/* Stay tuned fallback */
.lbd-stay-tuned {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 1.25rem;
    padding: 0.6rem 1.2rem;
    background: #FDF5ED;
    border: 1.5px solid #C9A646;
    border-radius: 6px;
    color: #552709;
    font-family: 'Roboto', sans-serif;
    font-size: 0.9rem;
    font-weight: 500;
}

    .lbd-stay-tuned i {
        color: #C9A646;
    }

/* ============================================================
   WORKSHOP REGISTRATION MODAL
============================================================ */
.wreg-overlay {
    position: fixed;
    inset: 0;
    background: rgba(65, 28, 5, 0.55);
    backdrop-filter: blur(3px);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}

.wreg-modal {
    background: #FDF5ED;
    border-radius: 16px;
    width: 100%;
    max-width: 600px;
    max-height: 92vh;
    overflow-y: auto;
    position: relative;
    box-shadow: 0 20px 60px rgba(65, 28, 5, 0.3);
    animation: wregSlideIn 0.3s ease;
    display: flex;
    flex-direction: column;
}

@keyframes wregSlideIn {
    from {
        transform: translateY(30px);
        opacity: 0;
    }

    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.wreg-close {
    position: absolute;
    top: 12px;
    right: 16px;
    background: rgba(255,255,255,0.15);
    border: none;
    font-size: 20px;
    color: #FDF5ED;
    cursor: pointer;
    line-height: 1;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
}

    .wreg-close:hover {
        background: rgba(255,255,255,0.3);
    }

.wreg-header {
    background: #411C05;
    color: #FDF5ED;
    padding: 20px 32px 16px;
    border-radius: 16px 16px 0 0;
    text-align: center;
    flex-shrink: 0;
}

    .wreg-header i {
        font-size: 24px;
        color: #C9A646;
        margin-bottom: 6px;
        display: block;
    }

    .wreg-header h3 {
        font-family: 'Cormorant Garamond', serif;
        font-size: 22px;
        margin: 0 0 4px;
        color: #FDF5ED;
    }

    .wreg-header p {
        font-size: 12px;
        color: #c7a98a;
        margin: 0;
    }

.wreg-body {
    padding: 20px 28px 24px;
    overflow-y: auto;
    flex: 1;
}

.wreg-group {
    margin-bottom: 12px;
}

.wreg-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.wreg-label {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: #411C05;
    margin-bottom: 5px;
    font-family: 'Roboto', sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

.wreg-required {
    color: #c0392b;
    margin-left: 2px;
}

.wreg-hint {
    color: #936C53;
    font-weight: 400;
    font-size: 11px;
    text-transform: none;
    letter-spacing: 0;
}

.wreg-control {
    width: 100%;
    padding: 9px 12px;
    border: 1.5px solid #d4b896;
    border-radius: 8px;
    background: #fff;
    font-size: 13px;
    color: #411C05;
    font-family: 'Roboto', sans-serif;
    box-sizing: border-box;
    transition: border-color 0.2s, box-shadow 0.2s;
}

    .wreg-control:focus {
        outline: none;
        border-color: #C9A646;
        box-shadow: 0 0 0 3px rgba(201,166,70,0.15);
    }

    .wreg-control::placeholder {
        color: #b5967a;
        font-size: 12px;
    }

.wreg-select {
    appearance: auto;
    cursor: pointer;
}

.wreg-textarea {
    resize: vertical;
    min-height: 72px;
}

.wreg-field-error {
    display: block;
    font-size: 11px;
    color: #c0392b;
    margin-top: 3px;
}

.wreg-actions {
    display: flex;
    gap: 10px;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid #e8d5c0;
}

.wreg-submit-btn {
    flex: 1;
    padding: 11px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    border-radius: 8px;
}

.wreg-cancel-btn {
    padding: 11px 20px;
    background: transparent;
    border: 1.5px solid #936C53;
    color: #765038;
    border-radius: 8px;
    font-size: 13px;
    cursor: pointer;
    font-family: 'Roboto', sans-serif;
    transition: all 0.2s;
    white-space: nowrap;
}

    .wreg-cancel-btn:hover {
        background: #765038;
        color: #FDF5ED;
    }

.wreg-msg {
    display: block;
    margin-top: 12px;
    padding: 9px 12px;
    border-radius: 8px;
    font-size: 12px;
    font-family: 'Roboto', sans-serif;
}

.wreg-msg-success {
    background: #eafaf1;
    color: #1e8449;
    border: 1px solid #a9dfbf;
}

.wreg-msg-error {
    background: #fdf2f2;
    color: #c0392b;
    border: 1px solid #f5b7b1;
}

.wreg-modal::-webkit-scrollbar {
    width: 5px;
}

.wreg-modal::-webkit-scrollbar-track {
    background: #f1e8df;
    border-radius: 0 16px 16px 0;
}

.wreg-modal::-webkit-scrollbar-thumb {
    background: #936C53;
    border-radius: 10px;
}

@media (max-width: 560px) {
    .wreg-body {
        padding: 16px 16px 20px;
    }

    .wreg-header {
        padding: 16px 16px 14px;
    }

    .wreg-row {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .wreg-actions {
        flex-direction: column;
    }

    .wreg-cancel-btn {
        text-align: center;
    }
}
.wreg-submit-btn {
    background: linear-gradient(135deg, rgb(201, 166, 70) 0%, rgb(155, 113, 32) 100%);
    color: #FDF5ED;
    border: none;
}

    .wreg-submit-btn:hover {
        background: linear-gradient(135deg, rgb(155, 113, 32) 0%, rgb(201, 166, 70) 100%);
        color: #fff;
    }
/* ============================================================
   LBD MULTI-WORKSHOP SLIDESHOW
============================================================ */
.lbd-slide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.8s ease;
}

    .lbd-slide.lbd-slide-active {
        opacity: 1;
        visibility: visible;
    }

.lbd-right {
    position: relative;
}

.lbd-slide-text {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.8s ease;
    display: flex;
    flex-direction: column;
    justify-content: center;
    /*padding: 48px 48px 48px 50px;*/
    box-sizing: border-box;
    gap: 10px;
}

    .lbd-slide-text.lbd-slide-active {
        opacity: 1;
        visibility: visible;
        position: relative;
    }
/* ============================================================
   CART MODAL — NS Fashion Hub
   Add this to your existing style.css
   ============================================================ */

/* ── Navbar Cart Icon ───────────────────────────────────────── */
.cart-icon-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 12px;
    font-size: 20px;
    color: inherit;
    text-decoration: none;
    transition: transform 0.2s;
}

    .cart-icon-wrap:hover {
        transform: scale(1.12);
    }

.cart-badge {
    position: absolute;
    top: -8px;
    right: -10px;
    background: #e53935;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    min-width: 18px;
    height: 18px;
    border-radius: 50%;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 0 3px;
    line-height: 1;
}

    .cart-badge.visible {
        display: flex;
    }

/* ── Guest Message (inline on page) ────────────────────────── */
.cart-guest-msg {
    display: none;
    position: fixed;
    bottom: 28px;
    left: 50%;
    transform: translateX(-50%);
    background: #fff;
    border: 1.5px solid #f0c040;
    border-radius: 10px;
    box-shadow: 0 6px 28px rgba(0,0,0,0.13);
    padding: 14px 24px;
    z-index: 9999;
    min-width: 300px;
    max-width: 90vw;
    text-align: center;
    animation: slideUp 0.3s ease;
}

    .cart-guest-msg.visible {
        display: block;
    }

    .cart-guest-msg p {
        margin: 0 0 10px;
        font-size: 14px;
        color: #555;
    }

    .cart-guest-msg .cgm-title {
        font-size: 15px;
        font-weight: 600;
        color: #333;
        margin-bottom: 6px;
    }

    .cart-guest-msg .cgm-actions {
        display: flex;
        gap: 10px;
        justify-content: center;
        margin-top: 10px;
    }

.cgm-btn-login {
    background: #c8a96e;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 8px 22px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.2s;
}

    .cgm-btn-login:hover {
        background: #b8934a;
        color: #fff;
    }

.cgm-btn-close {
    background: #f5f5f5;
    color: #666;
    border: none;
    border-radius: 6px;
    padding: 8px 16px;
    font-size: 14px;
    cursor: pointer;
    transition: background 0.2s;
}

    .cgm-btn-close:hover {
        background: #e0e0e0;
    }

/* ── Cart Modal Overlay ─────────────────────────────────────── */
.crt-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.45);
    z-index: 9000;
    align-items: center;
    justify-content: center;
    padding: 16px;
    animation: fadeIn 0.22s ease;
}

    .crt-overlay.open {
        display: flex;
    }

/* ── Cart Modal Box ─────────────────────────────────────────── */
.crt-modal {
    background: #fff;
    border-radius: 16px;
    width: 100%;
    max-width: 480px;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: 0 20px 60px rgba(0,0,0,0.2);
    animation: popIn 0.25s ease;
    position: relative;
}

/* ── Modal Header ───────────────────────────────────────────── */
.crt-header {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 20px 20px 16px;
    border-bottom: 1px solid #f0f0f0;
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 1;
    border-radius: 16px 16px 0 0;
}

.crt-header-img {
    width: 60px;
    height: 60px;
    border-radius: 10px;
    object-fit: cover;
    border: 1.5px solid #f0f0f0;
    flex-shrink: 0;
}

.crt-header-img-placeholder {
    width: 60px;
    height: 60px;
    border-radius: 10px;
    background: #f5f0e8;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    flex-shrink: 0;
}

.crt-header-info {
    flex: 1;
    min-width: 0;
}

    .crt-header-info h4 {
        margin: 0 0 4px;
        font-size: 16px;
        font-weight: 700;
        color: #222;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .crt-header-info .crt-type-badge {
        display: inline-block;
        font-size: 11px;
        font-weight: 600;
        padding: 2px 10px;
        border-radius: 20px;
        background: #f5f0e8;
        color: #c8a96e;
        letter-spacing: 0.4px;
    }

.crt-close {
    background: #f5f5f5;
    border: none;
    border-radius: 50%;
    width: 32px;
    height: 32px;
    font-size: 18px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.18s;
    color: #555;
}

    .crt-close:hover {
        background: #ebebeb;
    }

/* ── Modal Body ─────────────────────────────────────────────── */
.crt-body {
    padding: 20px;
}

/* ── Tabs (for Farma Both) ──────────────────────────────────── */
.crt-tabs {
    display: flex;
    gap: 0;
    border-radius: 10px;
    overflow: hidden;
    border: 1.5px solid #e8e8e8;
    margin-bottom: 20px;
}

.crt-tab {
    flex: 1;
    padding: 10px 0;
    text-align: center;
    font-size: 14px;
    font-weight: 600;
    color: #888;
    background: #fafafa;
    cursor: pointer;
    border: none;
    transition: background 0.18s, color 0.18s;
}

    .crt-tab.active {
        background: #c8a96e;
        color: #fff;
    }

.crt-tab-panel {
    display: none;
}

    .crt-tab-panel.active {
        display: block;
    }

/* ── Language Selector (Book) ───────────────────────────────── */
.crt-lang-label {
    font-size: 13px;
    font-weight: 600;
    color: #555;
    margin-bottom: 10px;
    display: block;
}

.crt-lang-row {
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.crt-lang-btn {
    flex: 1;
    min-width: 90px;
    padding: 10px 6px;
    border: 2px solid #e8e8e8;
    border-radius: 10px;
    background: #fff;
    font-size: 14px;
    font-weight: 600;
    color: #555;
    cursor: pointer;
    text-align: center;
    transition: border-color 0.18s, color 0.18s, background 0.18s;
}

    .crt-lang-btn:hover {
        border-color: #c8a96e;
        color: #c8a96e;
    }

    .crt-lang-btn.selected {
        border-color: #c8a96e;
        background: #fdf6ea;
        color: #c8a96e;
    }

    .crt-lang-btn .lang-flag {
        display: block;
        font-size: 20px;
        margin-bottom: 4px;
    }

/* ── Size Selector (Farma Size) ─────────────────────────────── */
.crt-size-label {
    font-size: 13px;
    font-weight: 600;
    color: #555;
    margin-bottom: 10px;
    display: block;
}

.crt-size-select {
    width: 100%;
    padding: 10px 14px;
    border: 1.5px solid #e0e0e0;
    border-radius: 8px;
    font-size: 14px;
    color: #333;
    background: #fff;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23888' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    cursor: pointer;
    margin-bottom: 12px;
    transition: border-color 0.18s;
}

    .crt-size-select:focus {
        outline: none;
        border-color: #c8a96e;
    }

/* ── Size Info Card ─────────────────────────────────────────── */
.crt-size-info {
    display: none;
    background: #fdf6ea;
    border-radius: 10px;
    padding: 12px 16px;
    margin-bottom: 16px;
    gap: 20px;
}

    .crt-size-info.visible {
        display: flex;
    }

.crt-size-info-item {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

    .crt-size-info-item .si-label {
        font-size: 11px;
        color: #999;
        font-weight: 500;
        text-transform: uppercase;
        letter-spacing: 0.4px;
    }

    .crt-size-info-item .si-value {
        font-size: 15px;
        font-weight: 700;
        color: #333;
    }

        .crt-size-info-item .si-value.price {
            color: #c8a96e;
        }

    .crt-size-info-item .si-old {
        font-size: 12px;
        color: #aaa;
        text-decoration: line-through;
    }

/* ── Quantity Selector ──────────────────────────────────────── */
.crt-qty-label {
    font-size: 13px;
    font-weight: 600;
    color: #555;
    margin-bottom: 10px;
    display: block;
}

.crt-qty-wrap {
    display: flex;
    align-items: center;
    gap: 0;
    border: 1.5px solid #e0e0e0;
    border-radius: 8px;
    overflow: hidden;
    width: fit-content;
    margin-bottom: 20px;
}

.crt-qty-btn {
    width: 38px;
    height: 38px;
    border: none;
    background: #f5f5f5;
    font-size: 18px;
    font-weight: 700;
    color: #555;
    cursor: pointer;
    transition: background 0.18s;
    display: flex;
    align-items: center;
    justify-content: center;
}

    .crt-qty-btn:hover {
        background: #ebebeb;
    }

.crt-qty-val {
    width: 44px;
    text-align: center;
    font-size: 15px;
    font-weight: 700;
    color: #333;
    border: none;
    border-left: 1.5px solid #e0e0e0;
    border-right: 1.5px solid #e0e0e0;
    height: 38px;
    padding: 0;
}

    .crt-qty-val:focus {
        outline: none;
    }

/* ── Custom Order Info Box ──────────────────────────────────── */
.crt-custom-box {
    background: #fdf6ea;
    border-radius: 12px;
    padding: 18px;
    margin-bottom: 20px;
}

    .crt-custom-box .cb-title {
        font-size: 14px;
        font-weight: 700;
        color: #c8a96e;
        margin-bottom: 12px;
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .crt-custom-box .cb-row {
        display: flex;
        justify-content: space-between;
        align-items: center;
        font-size: 14px;
        color: #555;
        margin-bottom: 8px;
        padding-bottom: 8px;
        border-bottom: 1px solid #f0e8d8;
    }

        .crt-custom-box .cb-row:last-child {
            border-bottom: none;
            margin-bottom: 0;
            padding-bottom: 0;
        }

        .crt-custom-box .cb-row strong {
            color: #333;
            font-weight: 700;
        }

.crt-custom-note {
    font-size: 12px;
    color: #999;
    margin-top: 10px;
    line-height: 1.5;
}

/* ── Modal Footer ───────────────────────────────────────────── */
.crt-footer {
    padding: 16px 20px 20px;
    border-top: 1px solid #f0f0f0;
    display: flex;
    gap: 10px;
    flex-direction: column;
}

.crt-btn-add {
    width: 100%;
    padding: 13px;
    background: #c8a96e;
    color: #fff;
    border: none;
    border-radius: 10px;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.2s, transform 0.15s;
    letter-spacing: 0.3px;
}

    .crt-btn-add:hover {
        background: #b8934a;
        transform: translateY(-1px);
    }

    .crt-btn-add:disabled {
        background: #ccc;
        cursor: not-allowed;
        transform: none;
    }

.crt-btn-visit {
    width: 100%;
    padding: 13px;
    background: transparent;
    color: #c8a96e;
    border: 2px solid #c8a96e;
    border-radius: 10px;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.2s;
    text-align: center;
    text-decoration: none;
    display: block;
}

    .crt-btn-visit:hover {
        background: #fdf6ea;
        color: #b8934a;
    }

/* ── Success / Error message in modal ───────────────────────── */
.crt-msg {
    display: none;
    padding: 10px 14px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    margin-bottom: 12px;
}

    .crt-msg.success {
        display: block;
        background: #e8f5e9;
        color: #2e7d32;
        border: 1px solid #c8e6c9;
    }

    .crt-msg.error {
        display: block;
        background: #ffebee;
        color: #c62828;
        border: 1px solid #ffcdd2;
    }

/* ── Toast Notification ─────────────────────────────────────── */
.cart-toast {
    position: fixed;
    bottom: 30px;
    right: 30px;
    background: #2e7d32;
    color: #fff;
    padding: 13px 22px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 600;
    z-index: 99999;
    box-shadow: 0 4px 20px rgba(0,0,0,0.18);
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.3s, transform 0.3s;
    pointer-events: none;
}

    .cart-toast.show {
        opacity: 1;
        transform: translateY(0);
    }

/* ── Animations ─────────────────────────────────────────────── */
@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes popIn {
    from {
        opacity: 0;
        transform: scale(0.94) translateY(10px);
    }

    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

@keyframes slideUp {
    from {
        opacity: 0;
        transform: translateX(-50%) translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateX(-50%) translateY(0);
    }
}

/* ── Responsive ─────────────────────────────────────────────── */
@media (max-width: 480px) {
    .crt-modal {
        border-radius: 16px 16px 0 0;
        max-height: 85vh;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        max-width: 100%;
    }

    .crt-overlay {
        align-items: flex-end;
        padding: 0;
    }

    .cart-toast {
        bottom: 16px;
        right: 16px;
        left: 16px;
        text-align: center;
    }
}

/* ============================================================
   CART SUCCESS CARD
   Shown inside the modal after a successful add to cart
   ============================================================ */

.crt-success-card {
    display: none;
    flex-direction: column;
    align-items: center;
    gap: 18px;
    padding: 10px 0 6px;
    animation: popIn 0.3s ease;
}

/* ── Big green check ────────────────────────────────────────── */
.csc-check {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: #e8f5e9;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    color: #2e7d32;
    flex-shrink: 0;
    animation: popIn 0.35s ease;
}

/* ── Product row ────────────────────────────────────────────── */
.csc-product {
    display: flex;
    align-items: center;
    gap: 14px;
    background: #fdf6ea;
    border-radius: 12px;
    padding: 14px 16px;
    width: 100%;
    box-sizing: border-box;
}

.csc-img {
    width: 64px;
    height: 64px;
    border-radius: 10px;
    object-fit: cover;
    border: 1.5px solid #f0e8d8;
    flex-shrink: 0;
}

.csc-info {
    flex: 1;
    min-width: 0;
}

.csc-name {
    margin: 0 0 4px;
    font-size: 15px;
    font-weight: 700;
    color: #222;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.csc-sub {
    margin: 0;
    font-size: 13px;
    color: #2e7d32;
    font-weight: 600;
}

/* ── Action buttons ─────────────────────────────────────────── */
.csc-actions {
    display: flex;
    gap: 10px;
    width: 100%;
}

.csc-btn-cart {
    flex: 1;
    padding: 12px;
    background: #c8a96e;
    color: #fff;
    border: none;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    text-align: center;
    text-decoration: none;
    transition: background 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

    .csc-btn-cart:hover {
        background: #b8934a;
        color: #fff;
    }

.csc-btn-continue {
    flex: 1;
    padding: 12px;
    background: transparent;
    color: #666;
    border: 1.5px solid #e0e0e0;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.18s, border-color 0.18s;
}

    .csc-btn-continue:hover {
        background: #f5f5f5;
        border-color: #ccc;
    }

/* ============================================================
   CART GUEST MESSAGE
============================================================ */
.cart-guest-msg {
    position: fixed;
    bottom: -120px;
    left: 50%;
    transform: translateX(-50%);
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18);
    padding: 20px 28px;
    z-index: 9999;
    min-width: 300px;
    max-width: 380px;
    width: 90%;
    border-top: 4px solid #c8a96e;
    transition: bottom 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
    display: flex;
    flex-direction: column;
    gap: 8px;
    opacity: 0;
    pointer-events: none; /* not clickable when hidden */
}

    .cart-guest-msg.visible {
        bottom: 30px;
    }

.cgm-title {
    font-size: 1rem;
    font-weight: 700;
    color: #1a1a1a;
    margin: 0;
}

.cart-guest-msg p:not(.cgm-title) {
    font-size: 0.875rem;
    color: #666;
    margin: 0;
}

.cgm-actions {
    display: flex;
    gap: 10px;
    margin-top: 6px;
}

.cgm-btn-login {
    flex: 1;
    background: #c8a96e;
    color: #fff;
    text-align: center;
    padding: 9px 16px;
    border-radius: 8px;
    font-size: 0.85rem;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.2s;
}

    .cgm-btn-login:hover {
        background: #b8934a;
        color: #fff;
    }

.cgm-btn-close {
    flex: 1;
    background: #f5f5f5;
    color: #555;
    border: none;
    padding: 9px 16px;
    border-radius: 8px;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s;
}

    .cgm-btn-close:hover {
        background: #e8e8e8;
    }

/* Mobile */
@media (max-width: 480px) {
    .cart-guest-msg {
        min-width: unset;
        width: 92%;
        padding: 16px 18px;
    }

    .cgm-actions {
        flex-direction: column;
    }
}
.cart-guest-msg.visible {
    transform: translateX(-50%) translateY(0);
    opacity: 1;
    pointer-events: all; /* clickable when shown */
}