/* =========================================================
   AURELIA JEWELLERY
   ASAREH MAIN STYLESHEET
   File: assets/css/asareh-main.css
========================================================= */


/* =========================================================
   01. FONT FACE
========================================================= */

@font-face {
    font-family: "Peyda";
    src: url("../fonts/peyda/Peyda-Regular.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Peyda";
    src: url("../fonts/peyda/Peyda-Medium.ttf") format("truetype");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Peyda";
    src: url("../fonts/peyda/Peyda-SemiBold.ttf") format("truetype");
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Peyda";
    src: url("../fonts/peyda/Peyda-Bold.ttf") format("truetype");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}


/* =========================================================
   02. ROOT VARIABLES
========================================================= */

:root {

    /* Brand */
    --asareh-color-espresso-950: #120c08;
    --asareh-color-espresso-900: #1c130d;
    --asareh-color-espresso-850: #24170f;
    --asareh-color-espresso-800: #2d1e14;
    --asareh-color-espresso-700: #3c291c;
    --asareh-color-espresso-600: #4d3622;

    --asareh-color-bronze-700: #6f5037;
    --asareh-color-bronze-600: #806047;
    --asareh-color-bronze-500: #906f56;
    --asareh-color-bronze-400: #aa886a;
    --asareh-color-bronze-300: #c0a184;

    --asareh-color-champagne-500: #ccb299;
    --asareh-color-champagne-400: #dbc7b2;
    --asareh-color-champagne-300: #e7d6c4;
    --asareh-color-champagne-200: #eee2d5;

    --asareh-color-ivory-100: #f3ece5;
    --asareh-color-ivory-50: #f8f4ef;

    --asareh-color-white: #ffffff;
    --asareh-color-black: #000000;

    /* Text */
    --asareh-text-dark: #201711;
    --asareh-text-body: #66594f;
    --asareh-text-soft: #92867d;
    --asareh-text-light: #e8ddd2;

    /* Borders */
    --asareh-border-light: rgba(74, 52, 37, 0.12);
    --asareh-border-medium: rgba(74, 52, 37, 0.2);
    --asareh-border-dark: rgba(255, 255, 255, 0.14);

    /* Background */
    --asareh-bg-main: #f5efe9;
    --asareh-bg-soft: #eee5dc;
    --asareh-bg-warm: #e6d8c9;
    --asareh-bg-dark: #1c130d;

    /* Fonts */
    --asareh-font-primary:
        "Peyda",
        Tahoma,
        Arial,
        sans-serif;

    --asareh-font-serif:
        "Times New Roman",
        Georgia,
        serif;

    /* Layout */
    --asareh-container: 1600px;
    --asareh-container-narrow: 1280px;

    --asareh-header-height: 92px;

    /* Radius */
    --asareh-radius-xs: 4px;
    --asareh-radius-sm: 8px;
    --asareh-radius-md: 14px;
    --asareh-radius-lg: 24px;
    --asareh-radius-pill: 999px;

    /* Transition */
    --asareh-transition-fast: 180ms ease;
    --asareh-transition-base: 320ms cubic-bezier(.2, .7, .2, 1);
    --asareh-transition-slow: 700ms cubic-bezier(.16, 1, .3, 1);

    /* Shadows */
    --asareh-shadow-soft:
        0 20px 60px rgba(31, 20, 12, 0.08);

    --asareh-shadow-medium:
        0 28px 80px rgba(31, 20, 12, 0.14);

    --asareh-shadow-dark:
        0 32px 80px rgba(0, 0, 0, 0.26);
}


/* =========================================================
   03. GLOBAL RESET
========================================================= */

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    margin: 0;
    padding: 0;
    scroll-behavior: smooth;
    background: var(--asareh-bg-main);
}

body {
    margin: 0;
    padding: 0;
    font-family: var(--asareh-font-primary);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.8;
    color: var(--asareh-text-dark);
    background: var(--asareh-bg-main);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body.asareh-body {
    overflow-x: hidden;
}

img,
picture,
svg,
video {
    display: block;
    max-width: 100%;
}

img {
    object-fit: cover;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
textarea,
select {
    font: inherit;
}

button {
    padding: 0;
    border: 0;
    color: inherit;
    background: none;
    cursor: pointer;
}

input,
textarea {
    outline: none;
}

ul,
ol {
    padding: 0;
    margin: 0;
    list-style: none;
}

h1,
h2,
h3,
h4,
h5,
h6,
p {
    margin-top: 0;
}

::selection {
    color: var(--asareh-color-ivory-50);
    background: var(--asareh-color-bronze-600);
}


/* =========================================================
   04. GENERIC COMPONENTS
========================================================= */

.asareh-eyebrow {
    display: inline-block;
    margin-bottom: 18px;
    color: var(--asareh-color-bronze-500);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.18em;
    line-height: 1.5;
    text-transform: uppercase;
}

.asareh-section-title {
    margin: 0;
    font-size: clamp(34px, 4vw, 62px);
    font-weight: 400;
    line-height: 1.15;
    letter-spacing: -0.035em;
    color: var(--asareh-color-espresso-900);
}

.asareh-section-title span {
    display: block;
    color: var(--asareh-color-bronze-500);
    font-family: var(--asareh-font-serif);
    font-style: italic;
    font-weight: 400;
    direction: ltr;
}

.asareh-section-header {
    width: min(
        calc(100% - 80px),
        var(--asareh-container)
    );
    margin: 0 auto 52px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 40px;
}


/* =========================================================
   05. BUTTONS
========================================================= */

.asareh-button {
    position: relative;
    display: inline-flex;
    min-height: 52px;
    padding: 0 28px;
    align-items: center;
    justify-content: center;
    gap: 18px;
    overflow: hidden;
    border: 1px solid transparent;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.03em;
    transition:
        color var(--asareh-transition-base),
        background var(--asareh-transition-base),
        border-color var(--asareh-transition-base),
        transform var(--asareh-transition-base);
}

.asareh-button:hover {
    transform: translateY(-2px);
}

.asareh-button__arrow {
    font-size: 18px;
    line-height: 1;
    transition: transform var(--asareh-transition-base);
}

.asareh-button:hover .asareh-button__arrow {
    transform: translateX(-5px);
}

.asareh-button--light {
    color: var(--asareh-color-espresso-950);
    background: var(--asareh-color-ivory-50);
    border-color: var(--asareh-color-ivory-50);
}

.asareh-button--light:hover {
    color: var(--asareh-color-ivory-50);
    background: transparent;
}

.asareh-button--ghost-light {
    color: var(--asareh-color-ivory-50);
    background: transparent;
    border-color: rgba(255, 255, 255, 0.52);
}

.asareh-button--ghost-light:hover {
    color: var(--asareh-color-espresso-900);
    background: var(--asareh-color-ivory-50);
    border-color: var(--asareh-color-ivory-50);
}

.asareh-button--dark {
    color: var(--asareh-color-ivory-50);
    background: var(--asareh-color-espresso-900);
    border-color: var(--asareh-color-espresso-900);
}

.asareh-button--dark:hover {
    color: var(--asareh-color-espresso-900);
    background: transparent;
}

.asareh-text-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding-bottom: 5px;
    color: var(--asareh-color-espresso-900);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.05em;
}

.asareh-text-link::after {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    content: "";
    background: var(--asareh-color-bronze-500);
    transform: scaleX(0.32);
    transform-origin: right center;
    transition: transform var(--asareh-transition-base);
}

.asareh-text-link:hover::after {
    transform: scaleX(1);
}


/* =========================================================
   06. ICON BUTTON
========================================================= */

.asareh-icon-button {
    position: relative;
    display: inline-flex;
    width: 42px;
    height: 42px;
    align-items: center;
    justify-content: center;
    color: inherit;
    transition:
        opacity var(--asareh-transition-fast),
        transform var(--asareh-transition-fast);
}

.asareh-icon-button:hover {
    opacity: 0.68;
    transform: translateY(-1px);
}


/* =========================================================
   07. PAGE LOADER
========================================================= */

.asareh-loader {
    position: fixed;
    z-index: 99999;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--asareh-color-ivory-50);
    background: var(--asareh-color-espresso-950);
}

.asareh-loader__inner {
    width: 250px;
    text-align: center;
}

.asareh-loader__brand {
    display: block;
    font-family: var(--asareh-font-serif);
    font-size: 30px;
    letter-spacing: 0.24em;
    direction: ltr;
}

.asareh-loader__line {
    display: block;
    width: 100%;
    height: 1px;
    margin: 18px auto 13px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.16);
}

.asareh-loader__line::after {
    display: block;
    width: 40%;
    height: 100%;
    content: "";
    background: var(--asareh-color-champagne-500);
    animation: asarehLoaderLine 1.4s ease-in-out infinite;
}

.asareh-loader__text {
    color: rgba(255, 255, 255, 0.48);
    font-size: 9px;
    letter-spacing: 0.4em;
    direction: ltr;
}

@keyframes asarehLoaderLine {

    0% {
        transform: translateX(-150%);
    }

    100% {
        transform: translateX(350%);
    }
}


/* =========================================================
   08. HEADER
========================================================= */

.asareh-header {
    position: absolute;
    z-index: 1000;
    top: 0;
    right: 0;
    left: 0;
    height: var(--asareh-header-height);
    color: var(--asareh-color-ivory-50);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    transition:
        height var(--asareh-transition-base),
        color var(--asareh-transition-base),
        background var(--asareh-transition-base),
        border-color var(--asareh-transition-base),
        box-shadow var(--asareh-transition-base);
}

.asareh-header.is-sticky {
    position: fixed;
    height: 74px;
    color: var(--asareh-color-ivory-50);
    background: rgba(28, 19, 13, 0.88);
    border-color: rgba(255, 255, 255, 0.1);
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
}

.asareh-header__container {
    width: min(
        calc(100% - 72px),
        var(--asareh-container)
    );
    height: 100%;
    margin: 0 auto;
    display: grid;
    grid-template-columns:
        minmax(70px, 1fr)
        auto
        minmax(400px, 5fr)
        minmax(160px, 1fr);
    align-items: center;
    gap: 28px;
}

.asareh-header__logo {
    position: relative;
    display: flex;
    min-width: 170px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: inherit;
    line-height: 1;
    direction: ltr;
}

.asareh-header__logo-main {
    font-family: var(--asareh-font-serif);
    font-size: 27px;
    letter-spacing: 0.22em;
}

.asareh-header__logo-sub {
    margin-top: 8px;
    opacity: 0.58;
    font-size: 7px;
    letter-spacing: 0.44em;
}

.asareh-header__nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(18px, 1.7vw, 34px);
}

.asareh-header__nav-link {
    position: relative;
    padding: 8px 0;
    color: inherit;
    font-size: 11px;
    font-weight: 500;
    white-space: nowrap;
}

.asareh-header__nav-link::after {
    position: absolute;
    right: 50%;
    bottom: 0;
    left: 50%;
    height: 1px;
    content: "";
    background: currentColor;
    transition:
        right var(--asareh-transition-base),
        left var(--asareh-transition-base);
}

.asareh-header__nav-link:hover::after {
    right: 0;
    left: 0;
}

.asareh-header__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 2px;
}

.asareh-header__actions--start {
    justify-content: flex-start;
}

.asareh-cart-button__count {
    position: absolute;
    top: 1px;
    right: 0;
    display: flex;
    width: 16px;
    height: 16px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--asareh-color-espresso-950);
    background: var(--asareh-color-champagne-500);
    font-size: 8px;
    font-weight: 700;
}


/* =========================================================
   09. MOBILE MENU
========================================================= */

.asareh-mobile-menu {
    position: fixed;
    z-index: 3000;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(440px, 92vw);
    padding: 30px;
    color: var(--asareh-color-ivory-50);
    background: var(--asareh-color-espresso-950);
    box-shadow: var(--asareh-shadow-dark);
    transform: translateX(105%);
    visibility: hidden;
    transition:
        transform var(--asareh-transition-slow),
        visibility var(--asareh-transition-slow);
}

.asareh-mobile-menu.is-open {
    transform: translateX(0);
    visibility: visible;
}

.asareh-mobile-menu__header {
    display: flex;
    min-height: 70px;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.asareh-mobile-menu__logo {
    font-family: var(--asareh-font-serif);
    font-size: 23px;
    letter-spacing: 0.18em;
    direction: ltr;
}

.asareh-mobile-menu__nav {
    padding: 44px 0;
    display: flex;
    flex-direction: column;
}

.asareh-mobile-menu__link {
    position: relative;
    padding: 15px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
    color: rgba(255, 255, 255, 0.9);
    font-size: 18px;
    transition:
        color var(--asareh-transition-fast),
        padding-right var(--asareh-transition-base);
}

.asareh-mobile-menu__link:hover {
    padding-right: 10px;
    color: var(--asareh-color-champagne-500);
}

.asareh-mobile-menu__footer {
    display: flex;
    flex-wrap: wrap;
    gap: 18px 28px;
    color: rgba(255, 255, 255, 0.55);
    font-size: 11px;
}


/* =========================================================
   10. SEARCH DRAWER
========================================================= */

.asareh-search-drawer {
    position: fixed;
    z-index: 2500;
    top: 0;
    right: 0;
    left: 0;
    padding: 26px clamp(30px, 6vw, 100px) 42px;
    color: var(--asareh-color-espresso-900);
    background: var(--asareh-color-ivory-50);
    box-shadow: var(--asareh-shadow-medium);
    transform: translateY(-110%);
    visibility: hidden;
    transition:
        transform var(--asareh-transition-slow),
        visibility var(--asareh-transition-slow);
}

.asareh-search-drawer.is-open {
    transform: translateY(0);
    visibility: visible;
}

.asareh-search-drawer__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.asareh-search-drawer__title {
    font-size: 13px;
    font-weight: 600;
}

.asareh-search-form {
    position: relative;
    width: min(100%, 1000px);
    margin: 28px auto 0;
    display: flex;
    border-bottom: 1px solid var(--asareh-color-espresso-900);
}

.asareh-search-form__input {
    width: 100%;
    height: 74px;
    padding: 0 0 0 120px;
    border: 0;
    color: var(--asareh-color-espresso-900);
    background: transparent;
    font-size: clamp(20px, 3vw, 36px);
    font-weight: 300;
}

.asareh-search-form__input::placeholder {
    color: rgba(28, 19, 13, 0.28);
}

.asareh-search-form__submit {
    position: absolute;
    left: 0;
    bottom: 0;
    height: 74px;
    padding: 0 12px;
    color: var(--asareh-color-espresso-900);
    font-size: 12px;
    font-weight: 600;
}


/* =========================================================
   11. HERO
========================================================= */

.asareh-hero {
    position: relative;
    min-height: 100svh;
    overflow: hidden;
    color: var(--asareh-color-ivory-50);
    background: var(--asareh-color-espresso-900);
}

.asareh-hero__media,
.asareh-hero__media picture {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.asareh-hero__image {
    width: 100%;
    height: 100%;
    object-position: center center;
}

.asareh-hero__overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            90deg,
            rgba(12, 8, 5, 0.76) 0%,
            rgba(12, 8, 5, 0.38) 35%,
            rgba(12, 8, 5, 0.10) 65%,
            rgba(12, 8, 5, 0.26) 100%
        ),
        linear-gradient(
            0deg,
            rgba(10, 7, 5, 0.42) 0%,
            transparent 45%
        );
}

.asareh-hero__content {
    position: relative;
    z-index: 5;
    width: min(
        calc(100% - 120px),
        var(--asareh-container)
    );
    min-height: 100svh;
    margin: 0 auto;
    padding-top: calc(var(--asareh-header-height) + 80px);
    padding-bottom: 100px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
}

.asareh-hero .asareh-eyebrow {
    color: var(--asareh-color-champagne-400);
}

.asareh-hero__title {
    max-width: 670px;
    margin-bottom: 22px;
    color: var(--asareh-color-ivory-50);
    font-size: clamp(52px, 6.4vw, 104px);
    font-weight: 300;
    line-height: 0.98;
    letter-spacing: -0.045em;
}

.asareh-hero__title span {
    display: block;
    margin-top: 10px;
    color: var(--asareh-color-champagne-300);
    font-family: var(--asareh-font-serif);
    font-style: italic;
    font-weight: 400;
}

.asareh-hero__description {
    max-width: 520px;
    margin-bottom: 34px;
    color: rgba(255, 255, 255, 0.72);
    font-size: 15px;
    line-height: 2;
}

.asareh-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.asareh-scroll-indicator {
    position: absolute;
    z-index: 10;
    right: 50%;
    bottom: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 9px;
    color: rgba(255, 255, 255, 0.55);
    transform: translateX(50%);
}

.asareh-scroll-indicator__mouse {
    position: relative;
    display: block;
    width: 20px;
    height: 30px;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 20px;
}

.asareh-scroll-indicator__mouse span {
    position: absolute;
    top: 6px;
    right: 50%;
    width: 2px;
    height: 6px;
    border-radius: 2px;
    background: var(--asareh-color-ivory-50);
    transform: translateX(50%);
    animation: asarehScrollMouse 1.8s ease infinite;
}

.asareh-scroll-indicator__text {
    font-size: 7px;
    letter-spacing: 0.32em;
    direction: ltr;
}

@keyframes asarehScrollMouse {

    0% {
        opacity: 0;
        transform: translate(50%, 0);
    }

    30% {
        opacity: 1;
    }

    100% {
        opacity: 0;
        transform: translate(50%, 10px);
    }
}


/* =========================================================
   12. CATEGORY SECTION
========================================================= */

.asareh-category-section {
    padding: 110px 0 0;
    background: var(--asareh-color-espresso-950);
    color: var(--asareh-color-ivory-50);
}

.asareh-category-section__intro {
    width: min(
        calc(100% - 80px),
        var(--asareh-container)
    );
    margin: 0 auto 50px;
}

.asareh-category-section .asareh-section-title {
    max-width: 700px;
    color: var(--asareh-color-ivory-50);
}

.asareh-category-section .asareh-eyebrow {
    color: var(--asareh-color-champagne-500);
}

.asareh-category-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
}

.asareh-category-card {
    position: relative;
    min-height: 510px;
    overflow: hidden;
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    border-left: 1px solid rgba(255, 255, 255, 0.14);
    color: var(--asareh-color-white);
}

.asareh-category-card:first-child {
    border-right: 1px solid rgba(255, 255, 255, 0.14);
}

.asareh-category-card__image {
    width: 100%;
    height: 100%;
    transition: transform 1.2s cubic-bezier(.16, 1, .3, 1);
}

.asareh-category-card__overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            0deg,
            rgba(11, 7, 4, 0.74) 0%,
            rgba(11, 7, 4, 0.08) 62%
        );
    transition: background var(--asareh-transition-slow);
}

.asareh-category-card__content {
    position: absolute;
    z-index: 3;
    right: 30px;
    bottom: 28px;
    left: 30px;
}

.asareh-category-card__number {
    display: block;
    margin-bottom: 9px;
    color: rgba(255, 255, 255, 0.42);
    font-size: 9px;
    letter-spacing: 0.2em;
}

.asareh-category-card__title {
    margin-bottom: 10px;
    font-family: var(--asareh-font-serif);
    font-size: clamp(28px, 2.1vw, 42px);
    font-weight: 400;
}

.asareh-category-card__link {
    position: relative;
    display: inline-block;
    padding-bottom: 3px;
    color: rgba(255, 255, 255, 0.68);
    font-size: 10px;
}

.asareh-category-card__link::after {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 32px;
    height: 1px;
    content: "";
    background: currentColor;
    transition: width var(--asareh-transition-base);
}

.asareh-category-card:hover .asareh-category-card__image {
    transform: scale(1.065);
}

.asareh-category-card:hover .asareh-category-card__overlay {
    background:
        linear-gradient(
            0deg,
            rgba(11, 7, 4, 0.82) 0%,
            rgba(11, 7, 4, 0.13) 70%
        );
}

.asareh-category-card:hover .asareh-category-card__link::after {
    width: 100%;
}


/* =========================================================
   13. FEATURED COLLECTION
========================================================= */

.asareh-featured {
    display: grid;
    grid-template-columns: minmax(360px, 0.75fr) 2fr;
    min-height: 820px;
    background: var(--asareh-color-ivory-50);
}

.asareh-featured__story {
    position: relative;
    min-height: 820px;
    overflow: hidden;
    color: var(--asareh-color-white);
}

.asareh-featured__story-media {
    position: absolute;
    inset: 0;
}

.asareh-featured__story-media::after {
    position: absolute;
    inset: 0;
    content: "";
    background:
        linear-gradient(
            0deg,
            rgba(16, 10, 6, 0.9) 0%,
            rgba(16, 10, 6, 0.36) 58%,
            rgba(16, 10, 6, 0.18) 100%
        );
}

.asareh-featured__story-media img {
    width: 100%;
    height: 100%;
}

.asareh-featured__story-content {
    position: absolute;
    z-index: 2;
    right: 46px;
    bottom: 60px;
    left: 46px;
}

.asareh-featured__story-content .asareh-eyebrow {
    color: var(--asareh-color-champagne-500);
}

.asareh-featured__title {
    margin-bottom: 22px;
    color: var(--asareh-color-white);
    font-family: var(--asareh-font-serif);
    font-size: clamp(42px, 4.5vw, 70px);
    font-weight: 400;
    line-height: 0.95;
    direction: ltr;
    text-align: right;
}

.asareh-featured__title span {
    display: block;
    font-style: italic;
}

.asareh-featured__description {
    max-width: 330px;
    margin-bottom: 28px;
    color: rgba(255, 255, 255, 0.7);
    font-size: 13px;
}

.asareh-featured__story .asareh-text-link {
    color: var(--asareh-color-white);
}

.asareh-featured__story .asareh-text-link::after {
    background: var(--asareh-color-champagne-500);
}

.asareh-featured__products {
    padding: 90px 60px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    align-items: center;
    gap: 26px;
}


/* =========================================================
   14. PRODUCT CARD
========================================================= */

.asareh-product-card {
    position: relative;
}

.asareh-product-card__media {
    position: relative;
    aspect-ratio: 0.88;
    overflow: hidden;
    background: #ece3da;
}

.asareh-product-card__media > a {
    display: block;
    width: 100%;
    height: 100%;
}

.asareh-product-card__image,
.asareh-product-card__media img {
    width: 100%;
    height: 100%;
    transition:
        transform 1s cubic-bezier(.16, 1, .3, 1),
        filter var(--asareh-transition-slow);
}

.asareh-product-card:hover .asareh-product-card__image,
.asareh-product-card:hover .asareh-product-card__media img {
    transform: scale(1.035);
}

.asareh-product-card__wishlist {
    position: absolute;
    z-index: 3;
    top: 16px;
    left: 16px;
    display: flex;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--asareh-color-espresso-900);
    background: rgba(255, 255, 255, 0.68);
    font-family: Arial, sans-serif;
    font-size: 20px;
    backdrop-filter: blur(10px);
    transition:
        color var(--asareh-transition-fast),
        background var(--asareh-transition-fast),
        transform var(--asareh-transition-fast);
}

.asareh-product-card__wishlist:hover {
    color: var(--asareh-color-white);
    background: var(--asareh-color-espresso-900);
    transform: scale(1.06);
}

.asareh-product-card__badge {
    position: absolute;
    z-index: 3;
    top: 18px;
    right: 18px;
    padding: 7px 11px;
    color: var(--asareh-color-ivory-50);
    background: var(--asareh-color-espresso-900);
    font-size: 9px;
}

.asareh-product-card__content {
    position: relative;
    padding: 18px 2px 0;
}

.asareh-product-card__title {
    margin-bottom: 5px;
    color: var(--asareh-color-espresso-900);
    font-family: var(--asareh-font-serif);
    font-size: 21px;
    font-weight: 400;
    line-height: 1.4;
}

.asareh-product-card__title a {
    transition: color var(--asareh-transition-fast);
}

.asareh-product-card__title a:hover {
    color: var(--asareh-color-bronze-500);
}

.asareh-product-card__meta {
    display: block;
    margin-bottom: 5px;
    color: var(--asareh-text-soft);
    font-size: 10px;
}

.asareh-product-card__price {
    display: block;
    color: var(--asareh-color-espresso-900);
    font-size: 12px;
    font-weight: 600;
}


/* =========================================================
   15. BRAND STORY
========================================================= */

.asareh-brand-story {
    display: grid;
    grid-template-columns: 1.08fr 0.92fr;
    min-height: 820px;
    background: var(--asareh-bg-soft);
}

.asareh-brand-story__media {
    min-height: 820px;
    overflow: hidden;
}

.asareh-brand-story__media img {
    width: 100%;
    height: 100%;
}

.asareh-brand-story__content {
    padding: 100px clamp(55px, 7vw, 130px);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}

.asareh-brand-story__content .asareh-section-title {
    max-width: 560px;
    margin-bottom: 32px;
}

.asareh-brand-story__content p {
    max-width: 560px;
    margin-bottom: 18px;
    color: var(--asareh-text-body);
    font-size: 14px;
    line-height: 2.05;
}

.asareh-brand-story__content .asareh-button {
    margin-top: 16px;
}


/* =========================================================
   16. SIGNATURE COLLECTION
========================================================= */

.asareh-signature {
    display: grid;
    grid-template-columns: 0.92fr 1.08fr;
    min-height: 790px;
    color: var(--asareh-color-ivory-50);
    background: var(--asareh-color-espresso-950);
}

.asareh-signature__content {
    padding: 100px clamp(55px, 7vw, 130px);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}

.asareh-signature .asareh-eyebrow {
    color: var(--asareh-color-champagne-500);
}

.asareh-signature__title {
    max-width: 540px;
    margin-bottom: 28px;
    color: var(--asareh-color-ivory-50);
    font-size: clamp(42px, 5.4vw, 80px);
    font-weight: 300;
    line-height: 1.05;
    letter-spacing: -0.045em;
}

.asareh-signature__title span {
    display: block;
    color: var(--asareh-color-champagne-400);
    font-family: var(--asareh-font-serif);
    font-style: italic;
}

.asareh-signature__text {
    max-width: 500px;
    margin-bottom: 36px;
    color: rgba(255, 255, 255, 0.6);
    font-size: 14px;
    line-height: 2;
}

.asareh-signature__media {
    min-height: 790px;
    overflow: hidden;
}

.asareh-signature__media img {
    width: 100%;
    height: 100%;
}


/* =========================================================
   17. PRODUCTS SECTION
========================================================= */

.asareh-products-section {
    padding: 110px 0 120px;
    background: var(--asareh-color-ivory-50);
}

.asareh-products-grid {
    width: min(
        calc(100% - 80px),
        var(--asareh-container)
    );
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 26px;
}


/* =========================================================
   18. EDITORIAL
========================================================= */

.asareh-editorial {
    position: relative;
    min-height: 880px;
    overflow: hidden;
    color: var(--asareh-color-white);
}

.asareh-editorial__media {
    position: absolute;
    inset: 0;
}

.asareh-editorial__media::after {
    position: absolute;
    inset: 0;
    content: "";
    background:
        linear-gradient(
            90deg,
            rgba(18, 12, 8, 0.76) 0%,
            rgba(18, 12, 8, 0.2) 55%,
            rgba(18, 12, 8, 0.08) 100%
        );
}

.asareh-editorial__media img {
    width: 100%;
    height: 100%;
}

.asareh-editorial__content {
    position: relative;
    z-index: 3;
    width: min(
        calc(100% - 100px),
        var(--asareh-container)
    );
    min-height: 880px;
    margin: 0 auto;
    padding: 100px 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}

.asareh-editorial .asareh-eyebrow {
    color: var(--asareh-color-champagne-500);
}

.asareh-editorial__title {
    max-width: 750px;
    margin-bottom: 38px;
    color: var(--asareh-color-white);
    font-size: clamp(48px, 7vw, 100px);
    font-weight: 300;
    line-height: 1;
    letter-spacing: -0.05em;
}

.asareh-editorial__title span {
    display: block;
    color: var(--asareh-color-champagne-300);
    font-family: var(--asareh-font-serif);
    font-style: italic;
}


/* =========================================================
   19. SERVICES
========================================================= */

.asareh-services {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    background: var(--asareh-color-espresso-900);
    color: var(--asareh-color-white);
}

.asareh-service-card {
    min-height: 330px;
    padding: 50px 42px;
    border-left: 1px solid rgba(255, 255, 255, 0.11);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.asareh-service-card:first-child {
    border-right: 1px solid rgba(255, 255, 255, 0.11);
}

.asareh-service-card__number {
    margin-bottom: auto;
    color: var(--asareh-color-champagne-500);
    font-size: 10px;
    letter-spacing: 0.2em;
}

.asareh-service-card h3 {
    margin-bottom: 14px;
    color: var(--asareh-color-ivory-50);
    font-size: 18px;
    font-weight: 500;
}

.asareh-service-card p {
    margin: 0;
    color: rgba(255, 255, 255, 0.48);
    font-size: 12px;
    line-height: 1.95;
}


/* =========================================================
   20. JOURNAL
========================================================= */

.asareh-journal {
    padding: 120px 0;
    background: var(--asareh-bg-main);
}

.asareh-journal-grid {
    width: min(
        calc(100% - 80px),
        var(--asareh-container)
    );
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

.asareh-journal-card__media {
    position: relative;
    display: block;
    aspect-ratio: 1.26;
    overflow: hidden;
    background: var(--asareh-bg-soft);
}

.asareh-journal-card__media img {
    width: 100%;
    height: 100%;
    transition: transform 1s cubic-bezier(.16, 1, .3, 1);
}

.asareh-journal-card:hover .asareh-journal-card__media img {
    transform: scale(1.045);
}

.asareh-journal-card__content {
    padding-top: 23px;
}

.asareh-journal-card__category {
    display: inline-block;
    margin-bottom: 13px;
    color: var(--asareh-color-bronze-500);
    font-size: 10px;
    font-weight: 600;
}

.asareh-journal-card h3 {
    max-width: 460px;
    margin-bottom: 18px;
    color: var(--asareh-color-espresso-900);
    font-size: 21px;
    font-weight: 500;
    line-height: 1.6;
}


/* =========================================================
   21. NEWSLETTER
========================================================= */

.asareh-newsletter {
    padding: 110px 40px;
    color: var(--asareh-color-ivory-50);
    background:
        linear-gradient(
            135deg,
            #22160f 0%,
            #3b281b 55%,
            #24170f 100%
        );
}

.asareh-newsletter__inner {
    width: min(100%, 800px);
    margin: 0 auto;
    text-align: center;
}

.asareh-newsletter .asareh-eyebrow {
    color: var(--asareh-color-champagne-500);
}

.asareh-newsletter__title {
    margin-bottom: 16px;
    color: var(--asareh-color-ivory-50);
    font-size: clamp(36px, 4vw, 58px);
    font-weight: 300;
}

.asareh-newsletter__description {
    max-width: 560px;
    margin: 0 auto 40px;
    color: rgba(255, 255, 255, 0.58);
    font-size: 13px;
    line-height: 2;
}

.asareh-newsletter__form {
    position: relative;
    width: min(100%, 590px);
    margin: 0 auto;
    display: flex;
    border-bottom: 1px solid rgba(255, 255, 255, 0.45);
}

.asareh-newsletter__form input {
    width: 100%;
    height: 62px;
    padding: 0 0 0 90px;
    border: 0;
    color: var(--asareh-color-white);
    background: transparent;
    font-size: 14px;
}

.asareh-newsletter__form input::placeholder {
    color: rgba(255, 255, 255, 0.35);
}

.asareh-newsletter__form button {
    position: absolute;
    left: 0;
    bottom: 0;
    height: 62px;
    color: var(--asareh-color-champagne-400);
    font-size: 12px;
    font-weight: 600;
}


/* =========================================================
   22. FOOTER
========================================================= */

.asareh-footer {
    color: var(--asareh-color-ivory-50);
    background: var(--asareh-color-espresso-950);
}

.asareh-footer__top {
    width: min(
        calc(100% - 90px),
        var(--asareh-container)
    );
    margin: 0 auto;
    padding: 90px 0 80px;
    display: grid;
    grid-template-columns: 1.7fr repeat(4, 1fr);
    gap: 55px;
}

.asareh-footer__brand {
    max-width: 340px;
}

.asareh-footer__logo {
    display: inline-block;
    margin-bottom: 20px;
    color: var(--asareh-color-ivory-50);
    font-family: var(--asareh-font-serif);
    font-size: 33px;
    letter-spacing: 0.21em;
    direction: ltr;
}

.asareh-footer__brand p {
    max-width: 280px;
    color: rgba(255, 255, 255, 0.45);
    font-size: 12px;
    line-height: 2;
}

.asareh-footer__column {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.asareh-footer__column h3 {
    margin-bottom: 23px;
    color: var(--asareh-color-champagne-400);
    font-size: 12px;
    font-weight: 600;
}

.asareh-footer__column a {
    margin-bottom: 11px;
    color: rgba(255, 255, 255, 0.5);
    font-size: 11px;
    transition:
        color var(--asareh-transition-fast),
        transform var(--asareh-transition-fast);
}

.asareh-footer__column a:hover {
    color: var(--asareh-color-white);
    transform: translateX(-3px);
}

.asareh-footer__bottom {
    width: min(
        calc(100% - 90px),
        var(--asareh-container)
    );
    min-height: 90px;
    margin: 0 auto;
    padding: 24px 0;
    border-top: 1px solid rgba(255, 255, 255, 0.09);
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 30px;
    color: rgba(255, 255, 255, 0.35);
    font-size: 9px;
}

.asareh-footer__legal,
.asareh-footer__social {
    display: flex;
    align-items: center;
    gap: 24px;
}

.asareh-footer__social {
    justify-content: flex-end;
    direction: ltr;
}

.asareh-footer__legal a,
.asareh-footer__social a {
    transition: color var(--asareh-transition-fast);
}

.asareh-footer__legal a:hover,
.asareh-footer__social a:hover {
    color: var(--asareh-color-white);
}


/* =========================================================
   23. BACK TO TOP
========================================================= */

.asareh-back-to-top {
    position: fixed;
    z-index: 800;
    right: 26px;
    bottom: 26px;
    display: flex;
    width: 46px;
    height: 46px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 50%;
    color: var(--asareh-color-white);
    background: rgba(28, 19, 13, 0.88);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.14);
    opacity: 0;
    visibility: hidden;
    transform: translateY(15px);
    backdrop-filter: blur(12px);
    transition:
        opacity var(--asareh-transition-base),
        visibility var(--asareh-transition-base),
        transform var(--asareh-transition-base),
        background var(--asareh-transition-fast);
}

.asareh-back-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.asareh-back-to-top:hover {
    background: var(--asareh-color-bronze-600);
}


/* =========================================================
   24. FOCUS / ACCESSIBILITY
========================================================= */

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
    outline: 2px solid var(--asareh-color-champagne-500);
    outline-offset: 4px;
}


/* =========================================================
   25. SCROLLBAR
========================================================= */

::-webkit-scrollbar {
    width: 9px;
}

::-webkit-scrollbar-track {
    background: var(--asareh-color-espresso-950);
}

::-webkit-scrollbar-thumb {
    border: 2px solid var(--asareh-color-espresso-950);
    border-radius: 20px;
    background: var(--asareh-color-bronze-500);
}

::-webkit-scrollbar-thumb:hover {
    background: var(--asareh-color-champagne-500);
}


/* =========================================================
   26. UTILITY STATE CLASSES
========================================================= */

.asareh-no-scroll {
    overflow: hidden !important;
}

.is-hidden {
    display: none !important;
}

.is-invisible {
    opacity: 0 !important;
    visibility: hidden !important;
}


/* =========================================================
   27. REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}