
:root {

    --black: #0b0909;
    --black-soft: #121010;

    --wine: #5b151e;
    --wine-light: #7d2630;

    --cream: #f1e9df;
    --cream-dark: #d7cdc1;

    --white: #fffaf4;

    --border: rgba(241,233,223,.16);

    --serif: "Playfair Display", serif;
    --sans: "DM Sans", sans-serif;
}


/* =========================================================
   RESET
========================================================= */

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


html {
    scroll-behavior: smooth;
}


body {

    background: var(--black);

    color: var(--cream);

    font-family: var(--sans);

    overflow-x: hidden;
}


a {

    color: inherit;

    text-decoration: none;
}


button {

    font-family: inherit;
}


/* =========================================================
   LOADER
========================================================= */

.loader {

    position: fixed;

    inset: 0;

    background: var(--black);

    z-index: 9999;

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    transition:
        opacity 1s ease,
        visibility 1s ease;
}


.loader.hidden {

    opacity: 0;

    visibility: hidden;
}


.loader-logo {

    font-family: var(--serif);

    font-size: 70px;

    letter-spacing: 10px;

    animation: loaderLogo 1.5s ease forwards;
}


.loader-line {

    width: 0;

    height: 1px;

    background: var(--cream);

    margin-top: 20px;

    animation: loaderLine 1.5s ease forwards;
}


.loader p {

    margin-top: 18px;

    font-size: 8px;

    letter-spacing: 5px;

    opacity: .5;
}


@keyframes loaderLogo {

    from {

        opacity: 0;

        transform: translateY(20px);

    }

    to {

        opacity: 1;

        transform: translateY(0);

    }

}


@keyframes loaderLine {

    to {

        width: 100px;

    }

}


/* =========================================================
   NAVBAR
========================================================= */

.navbar {

    position: fixed;

    top: 0;
    left: 0;

    width: 100%;

    height: 90px;

    padding: 0 5vw;

    display: flex;

    align-items: center;

    justify-content: space-between;

    z-index: 1000;

    background:
        linear-gradient(
            to bottom,
            rgba(11,9,9,.9),
            transparent
        );

    transition: .4s ease;
}


.navbar.scrolled {

    height: 75px;

    background: rgba(11,9,9,.94);

    backdrop-filter: blur(15px);
}


.logo {

    display: flex;

    flex-direction: column;

    line-height: 1;
}


.logo span {

    font-family: var(--serif);

    font-size: 28px;

    letter-spacing: 6px;
}


.logo small {

    margin-top: 6px;

    font-size: 7px;

    letter-spacing: 4px;

    opacity: .55;
}


.desktop-nav {

    display: flex;

    gap: 30px;
}


.desktop-nav a {

    font-size: 10px;

    letter-spacing: 1px;

    opacity: .65;

    transition: .3s;
}


.desktop-nav a:hover {

    opacity: 1;
}


.nav-btn {

    padding: 13px 20px;

    border: 1px solid var(--border);

    font-size: 9px;

    letter-spacing: 1px;

    transition: .3s;
}


.nav-btn:hover {

    background: var(--cream);

    color: var(--black);
}


.menu-btn {

    display: none;

    border: none;

    background: none;

    cursor: pointer;

    width: 30px;
}


.menu-btn span {

    display: block;

    height: 1px;

    background: var(--cream);

    margin: 7px 0;
}


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

.mobile-menu {

    position: fixed;

    inset: 0;

    background: var(--black);

    z-index: 2000;

    display: flex;

    flex-direction: column;

    justify-content: center;

    align-items: center;

    gap: 25px;

    transform: translateX(100%);

    transition: transform .5s ease;
}


.mobile-menu.open {

    transform: translateX(0);
}


.mobile-menu a {

    font-family: var(--serif);

    font-size: 38px;

    transition: .3s;
}


.mobile-menu a:hover {

    color: #c89591;
}


.mobile-close {

    position: absolute;

    top: 25px;
    right: 30px;

    background: none;

    border: none;

    color: var(--cream);

    font-size: 35px;

    cursor: pointer;
}


/* =========================================================
   COMMON
========================================================= */

.eyebrow {

    margin-bottom: 25px;

    font-size: 8px;

    letter-spacing: 4px;

    opacity: .5;
}


h1,
h2,
h3,
h4 {

    font-family: var(--serif);

    font-weight: 400;
}


h2 {

    font-size: clamp(45px,6vw,90px);

    line-height: .95;

    letter-spacing: -2px;
}


em {

    color: #c89591;

    font-weight: 400;
}


.primary-btn {

    display: inline-flex;

    align-items: center;

    gap: 30px;

    padding: 17px 22px;

    background: var(--cream);

    color: var(--black);

    font-size: 9px;

    letter-spacing: 1px;

    transition: .4s ease;
}


.primary-btn span {

    font-size: 17px;
}


.primary-btn:hover {

    transform: translateY(-4px);

    background: white;
}


.text-btn {

    padding-bottom: 5px;

    border-bottom: 1px solid rgba(255,255,255,.3);

    font-size: 9px;

    letter-spacing: 1px;

    opacity: .6;
}


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

.hero {

    min-height: 100vh;

    position: relative;

    display: flex;

    align-items: center;

    overflow: hidden;
}


.hero-bg {

    position: absolute;

    inset: 0;

    background-position: center;

    background-size: cover;

    background-repeat: no-repeat;

    z-index: -2;
}


.hero::after {

    content: "";

    position: absolute;

    inset: 0;

    background:
        radial-gradient(
            circle at 70% 50%,
            rgba(91,21,30,.25),
            transparent 35%
        );

    z-index: -1;
}


.hero-content {

    width: 65%;

    margin-left: 9vw;

    padding-top: 60px;

    position: relative;

    z-index: 5;
}


.hero h1 {

    font-size: clamp(65px,8.5vw,135px);

    line-height: .83;

    letter-spacing: -5px;

    margin-bottom: 35px;
}


.hero-text {

    max-width: 450px;

    margin-bottom: 35px;

    font-size: 13px;

    line-height: 1.9;

    color: var(--cream-dark);
}


.hero-buttons {

    display: flex;

    align-items: center;

    gap: 30px;
}


.hero-floating-card {

    position: absolute;

    overflow: hidden;

    box-shadow: 0 40px 80px rgba(0,0,0,.55);

    transition: transform .2s ease;
}


.hero-floating-card img {

    width: 100%;

    height: 100%;

    object-fit: cover;

    object-position: center;
}


.hero-floating-card span {

    position: absolute;

    left: 15px;

    bottom: 15px;

    font-size: 7px;

    letter-spacing: 3px;

    text-shadow: 0 2px 10px black;
}


.card-one {

    width: 230px;

    height: 300px;

    right: 14vw;

    top: 23%;

    transform: rotate(7deg);

    z-index: 2;
}


.card-two {

    width: 200px;

    height: 270px;

    right: 4vw;

    bottom: 13%;

    transform: rotate(-8deg);

    z-index: 1;
}


.scroll-indicator {

    position: absolute;

    bottom: 35px;

    left: 5vw;

    display: flex;

    align-items: center;

    gap: 15px;

    font-size: 7px;

    letter-spacing: 3px;

    opacity: .4;
}


.scroll-indicator span {

    width: 35px;

    height: 1px;

    background: var(--cream);
}


/* =========================================================
   REVEAL
========================================================= */

.reveal {

    opacity: 0;

    transform: translateY(35px);

    transition:
        opacity 1s ease,
        transform 1s ease;
}


.reveal.active {

    opacity: 1;

    transform: translateY(0);
}


/* =========================================================
   INTRO
========================================================= */

.intro {

    min-height: 85vh;

    padding: 150px 10vw;

    display: grid;

    grid-template-columns: 80px 1fr 300px;

    gap: 70px;

    align-items: center;

    border-top: 1px solid var(--border);
}


.section-number {

    align-self: start;

    font-size: 9px;

    letter-spacing: 2px;

    opacity: .4;
}


.intro-content {

    max-width: 800px;
}


.intro-content h2 {

    margin-bottom: 45px;
}


.intro-content > p:not(.eyebrow) {

    max-width: 500px;

    margin-bottom: 18px;

    color: var(--cream-dark);

    font-size: 13px;

    line-height: 2;
}


.intro-mark {

    width: 260px;

    height: 260px;

    border: 1px solid var(--border);

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    position: relative;
}


.intro-mark::before {

    content: "";

    position: absolute;

    inset: 15px;

    border: 1px solid var(--border);

    border-radius: 50%;
}


.intro-mark span {

    font-family: var(--serif);

    font-size: 45px;

    letter-spacing: 8px;
}


/* =========================================================
   COLLECTIONS
========================================================= */

.collections {

    padding: 150px 7vw;

    background: #0e0c0c;
}


.section-heading {

    display: flex;

    align-items: end;

    justify-content: space-between;

    margin-bottom: 100px;
}


.heading-description {

    max-width: 340px;

    color: var(--cream-dark);

    font-size: 12px;

    line-height: 1.8;
}


.products {

    display: grid;

    grid-template-columns: repeat(2,1fr);

    gap: 100px 40px;
}


.product {

    cursor: pointer;
}


.product-large {

    margin-top: 100px;
}


.product-wide {

    grid-column: span 2;

    width: 75%;

    margin: auto;
}


.product-image {

    height: 520px;

    overflow: hidden;

    background: #181414;
}


.product-large .product-image {

    height: 650px;
}


.product-wide .product-image {

    height: 550px;
}


.product-image img {

    width: 100%;

    height: 100%;

    object-fit: cover;

    object-position: center;

    display: block;

    transition: transform .9s ease;
}


.product:hover .product-image img {

    transform: scale(1.06);
}


.product-info {

    display: grid;

    grid-template-columns: 40px 1fr 30px;

    gap: 20px;

    padding-top: 25px;

    align-items: start;
}


.product-number {

    font-size: 8px;

    opacity: .4;
}


.product-info h3 {

    margin-bottom: 10px;

    font-size: 28px;
}


.product-info p {

    max-width: 400px;

    color: var(--cream-dark);

    font-size: 11px;

    line-height: 1.7;

    opacity: .7;
}


.product-arrow {

    font-size: 20px;

    transition: .3s;
}


.product:hover .product-arrow {

    transform: translate(5px,-5px);
}


/* =========================================================
   WHY TRU
========================================================= */

.why-tru {

    padding: 150px 10vw;

    background: #f0e8de;

    color: #171010;
}


.why-heading {

    margin-bottom: 90px;
}


.why-grid {

    display: grid;

    grid-template-columns: repeat(3,1fr);

    border-top: 1px solid rgba(23,16,16,.2);
}


.why-card {

    min-height: 280px;

    padding: 40px 30px;

    border-right: 1px solid rgba(23,16,16,.2);
}


.why-card:first-child {

    padding-left: 0;
}


.why-card:last-child {

    border-right: none;
}


.why-card > span {

    font-size: 8px;

    opacity: .5;
}


.why-card h3 {

    margin: 55px 0 20px;

    font-size: 34px;
}


.why-card p {

    max-width: 260px;

    color: #665c57;

    font-size: 12px;

    line-height: 1.8;
}


/* =========================================================
   QUOTE
========================================================= */

.quote-section {

    min-height: 80vh;

    display: flex;

    align-items: center;

    justify-content: center;

    position: relative;

    overflow: hidden;

    text-align: center;
}


.quote-section::before {

    content: "";

    position: absolute;

    width: 600px;

    height: 600px;

    border-radius: 50%;

    background: rgba(91,21,30,.25);

    filter: blur(100px);
}


.quote-content {

    position: relative;

    z-index: 2;
}


.quote-mark {

    font-family: var(--serif);

    font-size: 100px;

    line-height: .4;

    opacity: .2;
}


.quote-content h2 {

    max-width: 1000px;

    margin: 30px auto;

    font-size: clamp(45px,6vw,85px);
}


.quote-content p {

    font-size: 8px;

    letter-spacing: 4px;

    opacity: .5;
}


/* =========================================================
   GALLERY
========================================================= */

.gallery {

    padding: 150px 7vw;

    background: #0e0c0c;
}


.gallery-grid {

    display: grid;

    grid-template-columns: repeat(3,1fr);

    grid-auto-rows: auto;

    gap: 15px;
}


.gallery-item {

    overflow: hidden;

    background: #191515;

    aspect-ratio: 4 / 5;

    grid-column: span 1;

    grid-row: span 1;
}


.gallery-item img {

    width: 100%;

    height: 100%;

    object-fit: cover;

    object-position: center;

    display: block;

    transition: transform .8s ease;
}


.gallery-item:hover img {

    transform: scale(1.07);
}


.gallery-large {

    grid-row: span 1;
}


/* Give the gallery a varied portrait and landscape rhythm. */

.gallery-grid {

    grid-auto-flow: dense;
}


.gallery-grid .gallery-item {

    grid-column: span 1;

    grid-row: span 1;
}


/* =========================================================
   STORY
========================================================= */

.story {

    padding: 160px 10vw;

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 120px;

    align-items: center;

    background: #eee6dc;

    color: #171010;
}


.story-image {

    height: 650px;

    overflow: hidden;

    box-shadow: 40px 40px 0 #d3c5b6;
}


.story-image img {

    width: 100%;

    height: 100%;

    object-fit: cover;
}


.story-content h2 {

    margin-bottom: 40px;
}


.story-content > p:not(.eyebrow) {

    max-width: 450px;

    margin-bottom: 18px;

    color: #554b46;

    font-size: 13px;

    line-height: 1.9;
}


.signature {

    margin-top: 40px;

    display: flex;

    flex-direction: column;
}


.signature span {

    font-family: var(--serif);

    font-size: 16px;

    font-style: italic;
}


.signature strong {

    font-family: var(--serif);

    font-size: 35px;

    letter-spacing: 5px;
}


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

.occasions {

    padding: 150px 10vw;

    background: #100d0d;
}


.occasion-heading {

    margin-bottom: 80px;
}


.occasion-list {

    border-top: 1px solid var(--border);
}


.occasion {

    display: grid;

    grid-template-columns: 80px 1fr 1fr 30px;

    align-items: center;

    gap: 30px;

    padding: 35px 0;

    border-bottom: 1px solid var(--border);

    transition: .4s;
}


.occasion:hover {

    padding-left: 20px;

    background: rgba(255,255,255,.015);
}


.occasion > span {

    font-size: 8px;

    opacity: .4;
}


.occasion h3 {

    font-size: 32px;
}


.occasion p {

    font-size: 11px;

    opacity: .5;
}


.occasion b {

    font-size: 18px;

    font-weight: 400;
}


/* =========================================================
   PROCESS
========================================================= */

.process {

    padding: 150px 10vw;

    background: #eee6dc;

    color: #171010;
}


.process-title {

    margin-bottom: 100px;
}


.process-grid {

    display: grid;

    grid-template-columns: repeat(4,1fr);

    border-top: 1px solid rgba(23,16,16,.2);
}


.process-item {

    min-height: 280px;

    padding: 40px 30px;

    border-right: 1px solid rgba(23,16,16,.2);
}


.process-item:first-child {

    padding-left: 0;
}


.process-item:last-child {

    border-right: none;
}


.process-item > span {

    font-size: 8px;

    opacity: .5;
}


.process-item h3 {

    margin: 55px 0 20px;

    font-size: 32px;
}


.process-item p {

    color: #665c57;

    font-size: 11px;

    line-height: 1.8;
}


/* =========================================================
   CTA / CONTACT
========================================================= */

.cta {

    min-height: 85vh;

    padding: 150px 10vw;

    position: relative;

    display: flex;

    align-items: center;

    overflow: hidden;

    background:
        radial-gradient(
            circle at 80% 50%,
            rgba(116,35,44,.5),
            transparent 35%
        );
}


.cta-content {

    position: relative;

    z-index: 2;
}


.cta-content h2 {

    margin-bottom: 35px;

    font-size: clamp(55px,7vw,105px);
}


.cta-content > p:not(.eyebrow) {

    max-width: 420px;

    margin-bottom: 35px;

    color: var(--cream-dark);

    font-size: 12px;

    line-height: 1.8;
}


/* =========================================================
   ENQUIRY FORM
========================================================= */

.enquiry-form {

    width: min(100%, 560px);

    margin-top: 45px;

    padding-top: 28px;

    border-top: 1px solid var(--border);
}


.enquiry-fields {

    display: grid;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 18px;

    margin-top: 22px;
}


.enquiry-fields label {

    display: flex;

    flex-direction: column;

    gap: 8px;

    color: var(--cream-dark);

    font-size: 10px;

    letter-spacing: .8px;
}


.enquiry-fields label:last-child {

    grid-column: 1 / -1;
}


.enquiry-fields input,
.enquiry-fields select,
.enquiry-fields textarea {

    width: 100%;

    padding: 13px 14px;

    border: 1px solid var(--border);

    border-radius: 0;

    outline: none;

    background: rgba(255,255,255,.04);

    color: var(--cream);

    font: inherit;

    font-size: 12px;

    transition: border-color .3s ease, background .3s ease;
}


.enquiry-fields textarea {

    resize: vertical;

    min-height: 100px;
}


.enquiry-fields input:focus,
.enquiry-fields select:focus,
.enquiry-fields textarea:focus {

    border-color: var(--cream);

    background: rgba(255,255,255,.08);
}


.enquiry-submit {

    margin-top: 22px;

    cursor: pointer;

    background: transparent;

    color: var(--cream);

}


.feedback-form {

    width: min(100%, 560px);

    margin-top: 45px;

    padding-top: 28px;

    border-top: 1px solid var(--border);
}


.feedback-fields {

    display: grid;

    gap: 18px;

    margin-top: 22px;
}


.feedback-fields label {

    display: flex;

    flex-direction: column;

    gap: 8px;

    color: var(--cream-dark);

    font-size: 10px;

    letter-spacing: .8px;
}


.feedback-fields select,
.feedback-fields textarea {

    width: 100%;

    padding: 13px 14px;

    border: 1px solid var(--border);

    border-radius: 0;

    outline: none;

    background: rgba(255,255,255,.04);

    color: var(--cream);

    font: inherit;

    font-size: 12px;

    transition: border-color .3s ease, background .3s ease;
}


.feedback-fields textarea {

    resize: vertical;

    min-height: 100px;
}


.feedback-fields select:focus,
.feedback-fields textarea:focus {

    border-color: var(--cream);

    background: rgba(255,255,255,.08);
}


/* =========================================================
   TWO SIMPLE WHATSAPP BUTTONS
========================================================= */

.contact-buttons {

    display: flex;

    gap: 15px;

    margin-top: 30px;
}


.whatsapp-box {

    width: min(100%, 430px);

    padding: 8px;

    border: 1px solid var(--border);

    background: rgba(255,255,255,.03);
}


.whatsapp-box .whatsapp-link {

    flex: 1;

    min-width: 0;

    border: 0;
}


.whatsapp-box .whatsapp-link + .whatsapp-link {

    border-left: 1px solid var(--border);
}


.contact-btn {

    display: inline-flex;

    align-items: center;

    justify-content: space-between;

    gap: 30px;

    min-width: 190px;

    padding: 17px 20px;

    border: 1px solid var(--border);

    font-size: 9px;

    letter-spacing: 1px;

    transition: .4s ease;
}


.contact-btn span {

    font-size: 17px;
}


.contact-btn:hover {

    background: var(--cream);

    color: var(--black);

    transform: translateY(-4px);
}


/* =========================================================
   INSTAGRAM
========================================================= */

.instagram-btn {

    display: inline-flex;

    align-items: center;

    gap: 25px;

    margin-top: 15px;

    padding: 15px 20px;

    border-bottom: 1px solid var(--border);

    font-size: 9px;

    letter-spacing: 1px;

    transition: .3s;
}


.instagram-btn:hover {

    opacity: .6;

    padding-left: 25px;
}


.instagram-btn span {

    font-size: 16px;
}


.cta-circle {

    position: absolute;

    right: 5vw;

    width: 450px;

    height: 450px;

    border: 1px solid var(--border);

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    opacity: .5;
}


.cta-circle::before {

    content: "";

    position: absolute;

    inset: 25px;

    border: 1px solid var(--border);

    border-radius: 50%;
}


.cta-circle span {

    font-family: var(--serif);

    font-size: 80px;

    letter-spacing: 10px;
}


/* =========================================================
   FOOTER
========================================================= */

footer {

    padding: 80px 7vw 30px;

    background: #080707;

    border-top: 1px solid var(--border);
}


.footer-top {

    display: flex;

    justify-content: space-between;

    padding-bottom: 80px;
}


.footer-logo {

    font-family: var(--serif);

    font-size: 70px;

    letter-spacing: 8px;
}


.footer-brand p {

    margin: 5px 0 15px;

    font-family: var(--serif);

    font-size: 17px;

    font-style: italic;
}


.footer-brand > span {

    font-size: 9px;

    opacity: .4;
}


.footer-links {

    display: flex;

    gap: 100px;
}


.footer-links div {

    display: flex;

    flex-direction: column;

    gap: 15px;
}


.footer-links span {

    margin-bottom: 5px;

    font-size: 8px;

    letter-spacing: 3px;

    opacity: .4;
}


.footer-links a {

    font-size: 10px;

    opacity: .6;

    transition: .3s;
}


.footer-links a:hover {

    opacity: 1;
}


.footer-bottom {

    display: flex;

    justify-content: space-between;

    padding-top: 25px;

    border-top: 1px solid var(--border);

    font-size: 8px;

    letter-spacing: 1px;

    opacity: .35;
}


/* =========================================================
   RESPONSIVE — TABLET
========================================================= */

@media(max-width:900px) {


    .desktop-nav,
    .nav-btn {

        display: none;
    }


    .menu-btn {

        display: block;
    }


    .hero-content {

        width: 90%;

        margin-left: 7vw;
    }


    .hero h1 {

        font-size: 15vw;

        letter-spacing: -3px;
    }


    .card-one {

        right: 3vw;

        top: 15%;

        width: 150px;

        height: 200px;

        opacity: .6;
    }


    .card-two {

        display: none;
    }


    .intro {

        grid-template-columns: 1fr;

        padding: 100px 8vw;
    }


    .section-number {

        display: none;
    }


    .intro-mark {

        margin-top: 40px;
    }


    .section-heading {

        display: block;
    }


    .heading-description {

        margin-top: 30px;
    }


    .products {

        grid-template-columns: 1fr;

        gap: 70px;
    }


    .product-large {

        margin-top: 0;
    }


    .product-wide {

        grid-column: span 1;

        width: 100%;
    }


    .product-image,
    .product-large .product-image,
    .product-wide .product-image {

        height: 450px;
    }


    .why-grid {

        grid-template-columns: 1fr;
    }


    .why-card {

        border-right: none;

        border-bottom: 1px solid rgba(23,16,16,.2);
    }


    .why-card:last-child {

        border-bottom: none;
    }


    .story {

        grid-template-columns: 1fr;

        padding: 100px 8vw;

        gap: 80px;
    }


    .story-image {

        height: 550px;
    }


    .process-grid {

        grid-template-columns: 1fr 1fr;
    }


    .occasion {

        grid-template-columns: 40px 1fr 30px;
    }


    .occasion p {

        display: none;
    }


    .cta-circle {

        width: 300px;

        height: 300px;

        right: -120px;

        opacity: .3;
    }


    .footer-top {

        flex-direction: column;

        gap: 70px;
    }


    .footer-links {

        gap: 60px;
    }


    .gallery-grid {

        grid-template-columns: 1fr 1fr;
    }


}


/* =========================================================
   RESPONSIVE — MOBILE
========================================================= */

@media(max-width:600px) {


    .navbar {

        height: 75px;

        padding: 0 6vw;
    }


    .hero {

        min-height: 100svh;
    }


    .hero-content {

        margin-left: 7vw;

        padding-top: 80px;
    }


    .hero h1 {

        font-size: 20vw;
    }


    .hero-text {

        max-width: 320px;

        font-size: 12px;
    }


    .hero-buttons {

        flex-direction: column;

        align-items: flex-start;
    }


    .card-one {

        width: 130px;

        height: 175px;

        right: -15px;

        top: 14%;
    }


    h2 {

        font-size: 48px;
    }


    .collections,
    .gallery {

        padding: 100px 7vw;
    }


    .product-image,
    .product-large .product-image,
    .product-wide .product-image {

        height: 380px;
    }


    .product-info {

        grid-template-columns: 25px 1fr 20px;

        gap: 10px;
    }


    .product-info h3 {

        font-size: 24px;
    }


    .gallery-grid {

        grid-template-columns: 1fr 1fr;

        grid-auto-rows: auto;
    }


    .story {

        padding: 90px 7vw;
    }


    .story-image {

        height: 450px;
    }


    .occasion {

        grid-template-columns: 35px 1fr 20px;
    }


    .occasion h3 {

        font-size: 25px;
    }


    .process {

        padding: 100px 7vw;
    }


    .process-grid {

        grid-template-columns: 1fr;
    }


    .process-item {

        min-height: auto;

        padding: 30px 0;

        border-right: none;
    }


    .process-item h3 {

        margin-top: 25px;
    }


    .cta {

        padding: 100px 7vw;
    }


    /* TWO WHATSAPP BUTTONS */

    .contact-buttons {

        flex-direction: column;

        width: 100%;
    }


    .whatsapp-box .whatsapp-link + .whatsapp-link {

        border-top: 1px solid var(--border);

        border-left: 0;
    }


    .enquiry-fields {

        grid-template-columns: 1fr;
    }


    .enquiry-fields label:last-child {

        grid-column: auto;
    }


    .contact-btn {

        width: 100%;
    }


    .cta-circle {

        display: none;
    }


    .footer-links {

        gap: 40px;
    }


    .footer-logo {

        font-size: 55px;
    }


    .footer-bottom {

        flex-direction: column;

        gap: 10px;
    }

}


/* =========================================================
   POOKIE SOFT-PINK TRU THEME OVERRIDES
   ========================================================= */
:root {
    --black: #fff7fa;
    --black-soft: #fff0f5;
    --wine: #d982a0;
    --wine-light: #eeabc2;
    --cream: #5a3f49;
    --cream-dark: #8b6874;
    --white: #ffffff;
    --border: rgba(180, 103, 130, .18);
    --serif: "Playfair Display", serif;
    --sans: "DM Sans", sans-serif;
}

body {
    background: #fff8fb;
    color: #5a3f49;
}

::selection {
    background: #f4b8cc;
    color: #5a3f49;
}

.loader {
    background: #fff3f7;
    color: #8f536b;
}
.loader-line { background: #d982a0; }
.loader p { color: #a76b82; }

.navbar {
    background: linear-gradient(to bottom, rgba(255,247,250,.97), rgba(255,247,250,0));
}
.navbar.scrolled {
    background: rgba(255,247,250,.92);
    border-bottom: 1px solid rgba(180,103,130,.12);
}
.logo span { color: #8e4f68; }
.logo small { color: #b16f86; }
.desktop-nav a { color: #795766; }
.nav-btn {
    border-color: rgba(180,103,130,.28);
    color: #7d4e62;
    border-radius: 999px;
    background: rgba(255,255,255,.55);
}
.nav-btn:hover { background: #d982a0; color: white; }
.menu-btn span { background: #8e4f68; }

.mobile-menu {
    background: #fff4f8;
    color: #6e4656;
}
.mobile-close { color: #8e4f68; }

.eyebrow { color: #b0647d; opacity: .8; }
em { color: #d47798; }

.hero {
    min-height: 100vh;
    background:
      radial-gradient(circle at 12% 20%, rgba(255,210,224,.65), transparent 24%),
      radial-gradient(circle at 90% 75%, rgba(248,194,212,.55), transparent 27%),
      #fff7fa;
}
.hero-bg {
    opacity: .24;
    filter: saturate(.7) brightness(1.12);
}
.hero::after {
    background:
      radial-gradient(circle at 72% 45%, rgba(255,214,228,.72), transparent 31%),
      linear-gradient(90deg, rgba(255,247,250,.98), rgba(255,247,250,.72), rgba(255,247,250,.25));
}
.hero-content { color: #5a3f49; }
.hero h1 { color: #674653; text-shadow: 0 3px 20px rgba(215,125,154,.10); }
.hero-text { color: #8b6874; }
.primary-btn {
    background: #d982a0;
    color: white;
    border-radius: 999px;
    box-shadow: 0 12px 30px rgba(217,130,160,.24);
}
.primary-btn:hover { background: #cb6f91; color: white; }
.text-btn { color: #805366; border-bottom-color: rgba(128,83,102,.28); }

.hero-floating-card {
    border: 7px solid #fff;
    border-radius: 18px;
    box-shadow: 0 25px 60px rgba(174,92,120,.20);
}
.hero-floating-card img { border-radius: 11px; }
.hero-floating-card span {
    color: white;
    background: rgba(145,72,98,.55);
    padding: 6px 9px;
    border-radius: 999px;
}
.scroll-indicator { color: #a46c80; }
.scroll-indicator span { background: #d982a0; }

.profile-intro {
    width: 88px;
    height: 88px;
    border-radius: 50%;
    padding: 5px;
    background: #fff;
    border: 2px solid #efb1c6;
    box-shadow: 0 10px 30px rgba(211,113,148,.20);
    margin-bottom: 26px;
    position: relative;
    opacity: 0;
    transform: scale(.7) translateY(18px);
    animation: profileAppear 1s cubic-bezier(.2,.8,.2,1) 2s forwards;
}
.profile-intro::before {
    content: "♡";
    position: absolute;
    right: -12px;
    top: -14px;
    width: 26px;
    height: 26px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #f4b7cb;
    color: white;
    font-size: 14px;
    transform: rotate(12deg);
}
.profile-intro img {
    width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display:block;
}
@keyframes profileAppear {
    0% { opacity:0; transform:scale(.7) translateY(18px); }
    70% { opacity:1; transform:scale(1.08) translateY(0); }
    100% { opacity:1; transform:scale(1) translateY(0); }
}

/* cute Canva-inspired floating sticker look */
.pookie-sticker {
    position: absolute;
    z-index: 4;
    pointer-events: none;
    filter: drop-shadow(0 8px 12px rgba(177,100,128,.15));
    user-select: none;
}
.sticker-heart { left: 8%; top: 25%; color:#e889a9; font-size: 42px; transform: rotate(-15deg); }
.sticker-bow { right: 37%; top: 15%; font-size: 35px; transform: rotate(10deg); }
.sticker-flower { left: 44%; bottom: 13%; font-size: 28px; transform: rotate(-8deg); }
.sticker-sparkle { right: 7%; top: 35%; color:#e4a0b8; font-size: 35px; transform: rotate(15deg); }

.intro, .collections, .gallery, .occasions { background: #fff8fb; }
.intro { border-top-color: rgba(180,103,130,.14); }
.intro-content > p:not(.eyebrow) { color:#8b6874; }
.intro-mark { border-color: rgba(180,103,130,.20); }
.intro-mark::before { border-color: rgba(180,103,130,.15); }
.intro-mark span { color:#c16f8d; }

.section-heading { color:#674653; }
.heading-description { color:#8b6874; }
.product-image {
    background: #fdebf2;
    border-radius: 22px;
    box-shadow: 0 15px 40px rgba(180,103,130,.10);
}
.product-image img { border-radius: 22px; }
.product-info h3 { color:#684654; }
.product-info p { color:#967281; }
.product-arrow { color:#d27b98; }

.why-tru, .story, .process {
    background: #ffeaf2;
    color:#674653;
}
.why-card, .process-item { border-color: rgba(154,91,115,.17); }
.why-card p, .process-item p, .story-content > p:not(.eyebrow) { color:#8d6875; }
.story-image {
    border-radius: 24px;
    box-shadow: 28px 28px 0 #f4c6d6;
}
.story-image img { border-radius: 24px; }

.quote-section {
    background:
      radial-gradient(circle at center, rgba(255,207,223,.8), transparent 48%),
      #fff8fb;
}
.quote-section::before { background: rgba(238,151,179,.20); }
.quote-content p { color:#a2677e; }

.gallery-item {
    background:#fdebf2;
    border-radius:18px;
}
.gallery-item img { border-radius:18px; }

.occasion-list, .occasion { border-color: rgba(180,103,130,.18); }
.occasion:hover { background: rgba(244,184,204,.12); }
.occasion p { color:#977080; }
.occasion b { color:#d27b98; }

.cta {
    background:
      radial-gradient(circle at 75% 45%, rgba(247,180,205,.55), transparent 33%),
      #fff1f6;
}
.cta-content > p:not(.eyebrow) { color:#8c6875; }
.cta-circle { border-color: rgba(180,103,130,.18); }
.cta-circle::before { border-color: rgba(180,103,130,.13); }
.cta-circle span { color:#d27b98; }
.contact-btn {
    border-color: rgba(180,103,130,.25);
    color:#7b5061;
    border-radius:999px;
    background: rgba(255,255,255,.55);
}
.contact-btn:hover { background:#d982a0; color:white; }
.instagram-btn { border-bottom-color: rgba(180,103,130,.25); color:#87566a; }

footer { background:#fff0f5; border-top-color: rgba(180,103,130,.15); color:#714d5c; }
.footer-brand > span, .footer-links a, .footer-bottom { color:#a27483; }
.footer-logo { color:#9a5a72; }

@media(max-width:600px) {
    .profile-intro { width:70px; height:70px; }
    .pookie-sticker { opacity:.65; }
    .sticker-heart { left:5%; top:23%; font-size:30px; }
    .sticker-bow { right:10%; top:13%; font-size:27px; }
    .sticker-flower { left:80%; bottom:16%; font-size:23px; }
    .sticker-sparkle { right:4%; top:42%; font-size:25px; }
}


/* =========================================================
   POOKIE ATTRACTIVE EXTRAS
========================================================= */

:root {
    --pookie-pink: #f6a8bc;
    --pookie-pink-soft: #ffdce6;
    --pookie-pink-pale: #fff3f6;
    --pookie-rose: #d86f8c;
    --pookie-brown: #6c4851;
    --pookie-shadow: rgba(179, 88, 113, .18);
}

/* Floating Canva-style stickers */
.pookie-stickers {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 20;
    overflow: hidden;
}

.sticker {
    position: absolute;
    display: block;
    font-size: 26px;
    opacity: .72;
    filter: drop-shadow(0 8px 15px rgba(130,70,90,.12));
    animation: pookieFloat 5s ease-in-out infinite;
}

.sticker-bow { top: 16%; left: 3%; animation-delay: -.8s; transform: rotate(-12deg); }
.sticker-heart { top: 43%; right: 3%; animation-delay: -2s; font-size: 30px; }
.sticker-flower { bottom: 18%; left: 3%; animation-delay: -1.5s; }
.sticker-sparkle { top: 26%; right: 10%; animation-delay: -3s; font-size: 21px; }
.sticker-star { bottom: 12%; right: 6%; animation-delay: -.2s; font-size: 24px; }

@keyframes pookieFloat {
    0%, 100% { transform: translateY(0) rotate(-4deg); }
    50% { transform: translateY(-12px) rotate(5deg); }
}

/* Soft decorative dots */
.pookie-stickers::before,
.pookie-stickers::after {
    content: "•";
    position: absolute;
    color: var(--pookie-pink);
    opacity: .4;
    font-size: 34px;
}
.pookie-stickers::before { top: 35%; left: 9%; }
.pookie-stickers::after { bottom: 28%; right: 11%; }

/* Cursor sparkle layer */
.cursor-sparkle-layer {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 9998;
}

.cursor-heart {
    position: fixed;
    pointer-events: none;
    font-size: 13px;
    color: var(--pookie-rose);
    animation: cursorHeart 900ms ease-out forwards;
}

@keyframes cursorHeart {
    0% { opacity: .9; transform: translate(-50%, -50%) scale(.7); }
    100% { opacity: 0; transform: translate(-50%, -90px) scale(1.35) rotate(15deg); }
}

/* Surprise note trigger */
.secret-note-trigger {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 80;
    border: 1px solid rgba(216,111,140,.25);
    background: rgba(255,243,246,.94);
    color: var(--pookie-brown);
    border-radius: 999px;
    padding: 11px 16px;
    font: 600 9px/1 var(--sans);
    letter-spacing: 1px;
    box-shadow: 0 14px 35px var(--pookie-shadow);
    cursor: pointer;
    backdrop-filter: blur(10px);
    transition: transform .3s ease, box-shadow .3s ease;
}
.secret-note-trigger:hover {
    transform: translateY(-4px) rotate(-1deg);
    box-shadow: 0 18px 42px rgba(179,88,113,.25);
}
.secret-note-trigger span { margin-right: 6px; }

/* Modal */
.tru-note-modal {
    position: fixed;
    inset: 0;
    z-index: 5000;
    display: grid;
    place-items: center;
    padding: 25px;
    opacity: 0;
    visibility: hidden;
    transition: .35s ease;
}
.tru-note-modal.open {
    opacity: 1;
    visibility: visible;
}
.note-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(79,48,57,.48);
    backdrop-filter: blur(8px);
}
.note-card {
    position: relative;
    width: min(520px, 100%);
    padding: 55px 45px 45px;
    border-radius: 30px;
    background:
        radial-gradient(circle at 15% 15%, rgba(255,255,255,.8), transparent 28%),
        linear-gradient(145deg, #fff7f9, #ffe5ec);
    color: #5e4149;
    box-shadow: 0 35px 90px rgba(70,35,48,.3);
    transform: translateY(30px) scale(.96);
    transition: .45s cubic-bezier(.2,.8,.2,1);
    text-align: center;
    overflow: hidden;
}
.tru-note-modal.open .note-card {
    transform: translateY(0) scale(1);
}
.note-card::before {
    content: "♡  ✦  ♡  ✦  ♡";
    position: absolute;
    top: 17px;
    left: 0;
    width: 100%;
    font-size: 13px;
    letter-spacing: 10px;
    color: #e596aa;
    opacity: .5;
}
.note-envelope {
    font-size: 45px;
    margin-bottom: 15px;
    animation: envelopeBounce 1.2s ease-in-out infinite;
}
@keyframes envelopeBounce {
    0%,100% { transform: translateY(0) rotate(-3deg); }
    50% { transform: translateY(-5px) rotate(3deg); }
}
.note-card h3 {
    font-size: 35px;
    line-height: 1.05;
    margin-bottom: 22px;
}
.note-card > p:not(.eyebrow) {
    color: #80636c;
    font-size: 12px;
    line-height: 1.9;
}
.note-signature {
    display: block;
    margin-top: 25px;
    font-family: var(--serif);
    font-style: italic;
    font-size: 18px;
}
.note-close {
    position: absolute;
    top: 18px;
    right: 20px;
    border: 0;
    background: transparent;
    color: #8a6470;
    font-size: 28px;
    cursor: pointer;
}

/* Pookie picker */
.pookie-picker {
    padding: 125px 8vw;
    background:
        radial-gradient(circle at 90% 10%, rgba(246,168,188,.26), transparent 25%),
        #fff1f5;
    color: #543c43;
    position: relative;
    overflow: hidden;
}
.pookie-picker::before {
    content: "🎀";
    position: absolute;
    top: 55px;
    right: 7vw;
    font-size: 55px;
    transform: rotate(10deg);
    opacity: .5;
}
.pookie-picker-inner {
    max-width: 1000px;
    margin: auto;
    text-align: center;
}
.pookie-picker h2 {
    font-size: clamp(45px, 6vw, 78px);
    margin-bottom: 20px;
}
.picker-subtitle {
    color: #846871;
    font-size: 12px;
    line-height: 1.8;
}
.pookie-options {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px;
    margin: 42px 0 30px;
}
.pookie-option {
    border: 1px solid rgba(216,111,140,.25);
    background: rgba(255,255,255,.7);
    color: #66464f;
    border-radius: 999px;
    padding: 15px 20px;
    font-size: 10px;
    cursor: pointer;
    box-shadow: 0 8px 25px rgba(179,88,113,.08);
    transition: .3s ease;
}
.pookie-option:hover,
.pookie-option.active {
    background: #f6a8bc;
    color: #fff;
    transform: translateY(-3px) rotate(-1deg);
}
.pookie-result {
    max-width: 650px;
    margin: 25px auto 0;
    padding: 22px;
    border-radius: 22px;
    display: flex;
    align-items: center;
    gap: 16px;
    text-align: left;
    background: rgba(255,255,255,.7);
    border: 1px dashed rgba(216,111,140,.3);
    box-shadow: 0 18px 40px rgba(179,88,113,.08);
}
.result-emoji { font-size: 30px; }
.pookie-result strong { font-family: var(--serif); font-size: 21px; font-weight: 500; }
.pookie-result p { margin-top: 4px; font-size: 11px; color: #846871; }

/* Small CTA link */
.pookie-mini-link {
    position: absolute;
    left: 10vw;
    bottom: 80px;
    z-index: 3;
    padding: 12px 17px;
    border-radius: 999px;
    background: rgba(255,220,230,.88);
    color: #6b4752;
    font-size: 9px;
    letter-spacing: 1px;
    box-shadow: 0 12px 30px rgba(179,88,113,.12);
    transition: .3s;
}
.pookie-mini-link:hover { transform: translateY(-3px); }

/* Final reveal */
.final-reveal {
    padding: 120px 7vw 140px;
    text-align: center;
    background: #fff6f8;
    color: #5d4149;
}
.final-reveal > button {
    border: 1px solid rgba(216,111,140,.28);
    background: #fff;
    color: #6a4752;
    border-radius: 999px;
    padding: 16px 23px;
    cursor: pointer;
    font-size: 9px;
    letter-spacing: 1px;
    transition: .3s;
}
.final-reveal > button:hover {
    background: #ffdce6;
    transform: translateY(-3px);
}
.final-message {
    max-width: 720px;
    margin: 35px auto 0;
    padding: 0 15px;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transform: translateY(12px);
    transition: max-height .7s ease, opacity .5s ease, transform .5s ease;
}
.final-message.show {
    max-height: 350px;
    opacity: 1;
    transform: translateY(0);
}
.final-message > span {
    display: block;
    font-family: var(--serif);
    font-size: 70px;
    line-height: .45;
    color: #eaa0b2;
}
.final-message p {
    font-family: var(--serif);
    font-size: clamp(28px, 4vw, 48px);
    line-height: 1.15;
}
.final-message small {
    display: block;
    margin-top: 22px;
    font-size: 9px;
    letter-spacing: 2px;
    color: #96747e;
}

/* Mobile */
@media (max-width: 600px) {
    .pookie-stickers { display: none; }
    .secret-note-trigger {
        right: 14px;
        bottom: 14px;
        font-size: 8px;
        padding: 10px 13px;
    }
    .note-card { padding: 50px 25px 35px; }
    .note-card h3 { font-size: 29px; }
    .pookie-picker { padding: 95px 7vw; }
    .pookie-picker::before { right: 7vw; top: 35px; font-size: 35px; }
    .pookie-options { flex-direction: column; }
    .pookie-option { width: 100%; }
    .pookie-result { align-items: flex-start; }
    .pookie-mini-link {
        left: 7vw;
        bottom: 45px;
    }
}
