Files
hoomat-store/app/globals.css
T
Alireza HassaniandCursor 1d52d78513 Serve Iran Sans, Montserrat, and Josefin Sans from local files.
CDN @imports were failing on deploy; self-host the faces under public/fonts and enable standalone output for lean PM2 runtime.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-09 19:56:26 +03:30

2433 lines
41 KiB
CSS

@font-face {
font-family: "iran-sans";
src: url("/fonts/iran-sans/iran-sans-thin.ttf") format("truetype");
font-weight: 100;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "iran-sans";
src: url("/fonts/iran-sans/iran-sans-ultralight.ttf") format("truetype");
font-weight: 200;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "iran-sans";
src: url("/fonts/iran-sans/iran-sans-light.ttf") format("truetype");
font-weight: 300;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "iran-sans";
src: url("/fonts/iran-sans/iran-sans-regular.ttf") format("truetype");
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "iran-sans";
src: url("/fonts/iran-sans/iran-sans-medium.ttf") format("truetype");
font-weight: 500;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "iran-sans";
src: url("/fonts/iran-sans/iran-sans-semibold.ttf") format("truetype");
font-weight: 600;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "iran-sans";
src: url("/fonts/iran-sans/iran-sans-bold.ttf") format("truetype");
font-weight: 700;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "iran-sans";
src: url("/fonts/iran-sans/iran-sans-extrabold.ttf") format("truetype");
font-weight: 800;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "iran-sans";
src: url("/fonts/iran-sans/iran-sans-black.ttf") format("truetype");
font-weight: 900;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Montserrat";
src: url("/fonts/montserrat/montserrat-regular.ttf") format("truetype");
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Montserrat";
src: url("/fonts/montserrat/montserrat-medium.ttf") format("truetype");
font-weight: 500;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Montserrat";
src: url("/fonts/montserrat/montserrat-semibold.ttf") format("truetype");
font-weight: 600;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Montserrat";
src: url("/fonts/montserrat/montserrat-bold.ttf") format("truetype");
font-weight: 700;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Josefin Sans";
src: url("/fonts/josefin-sans/JosefinSans-SemiBold.ttf") format("truetype");
font-weight: 600;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Josefin Sans";
src: url("/fonts/josefin-sans/JosefinSans-Bold.ttf") format("truetype");
font-weight: 700;
font-style: normal;
font-display: swap;
}
:root {
--primary: #00234b;
--secondary: #cc9966;
--tertiary: #883f3f;
--cream: #f8f3ec;
--sand: #efe3d2;
--ink: #12151c;
--muted: #6b7280;
--white: #ffffff;
--radius: 28px;
--shadow: 0 24px 70px rgba(0, 35, 75, 0.12);
--font-fa: iran-sans, IRANSans, Tahoma, sans-serif;
--font-en: Montserrat, Arial, sans-serif;
--font-en-title: "Josefin Sans", Montserrat, Arial, sans-serif;
--product-card-width: 280px;
}
* {
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
body {
margin: 0;
direction: rtl;
color: var(--ink);
background: linear-gradient(180deg, #fff 0%, var(--cream) 42%, #fff 100%);
font-family: var(--font-fa);
}
a {
color: inherit;
text-decoration: none;
}
img {
display: block;
max-width: 100%;
}
button,
input,
textarea {
font: inherit;
}
.site-shell {
min-height: 100vh;
overflow: hidden;
}
.container {
width: min(1180px, calc(100% - 32px));
margin-inline: auto;
}
.header {
position: fixed;
top: 18px;
left: 0;
right: 0;
z-index: 20;
transition: transform 220ms ease, filter 220ms ease;
}
.header-inner {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
gap: 18px;
padding: 12px 18px;
border: 1px solid rgba(255, 255, 255, 0.32);
border-radius: 999px;
background: rgba(255, 255, 255, 0.2);
backdrop-filter: blur(10px) saturate(130%);
box-shadow: none;
transition: background 220ms ease, border-color 220ms ease, box-shadow 220ms ease, backdrop-filter 220ms ease;
}
.header.is-scrolled {
transform: translateY(-4px);
}
.header.is-scrolled .header-inner {
border-color: rgba(255, 255, 255, 0.68);
background: linear-gradient(135deg, rgba(255, 255, 255, 0.86), rgba(255, 255, 255, 0.54));
backdrop-filter: blur(22px) saturate(160%);
box-shadow: 0 18px 60px rgba(0, 35, 75, 0.12);
}
.brand {
display: flex;
align-items: center;
gap: 10px;
font-weight: 900;
color: var(--primary);
white-space: nowrap;
}
.brand img {
width: clamp(148px, 16vw, 210px);
height: auto;
object-fit: contain;
}
.nav {
display: flex;
align-items: center;
gap: 20px;
color: #31415a;
font-size: 14px;
}
.nav a:hover {
color: var(--secondary);
}
.phone-pill,
.primary-btn,
.secondary-btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
border-radius: 999px;
font-weight: 800;
}
.phone-pill {
padding: 10px 16px;
color: var(--white);
background: var(--primary);
font-size: 14px;
gap: 10px;
}
.phone-pill svg {
flex-shrink: 0;
}
.primary-btn,
.secondary-btn {
min-height: 48px;
padding: 0 22px;
border: 0;
cursor: pointer;
}
.primary-btn {
color: var(--white);
background: var(--secondary);
}
.secondary-btn {
color: var(--primary);
background: var(--white);
border: 1px solid rgba(0, 35, 75, 0.12);
}
.hero {
padding: 96px 0 16px;
}
.hero-card {
position: relative;
min-height: 640px;
overflow: hidden;
border-radius: 42px;
background: var(--cream);
box-shadow: var(--shadow);
}
.hero-image-link {
position: absolute;
inset: 0;
display: block;
z-index: 0;
}
.hero-image-layer {
position: absolute;
inset: 0;
background-position: center;
background-size: cover;
animation: slideImageIn 900ms ease both;
}
.hero-content {
position: absolute;
right: 34px;
bottom: 34px;
z-index: 1;
width: min(620px, calc(100% - 68px));
padding: 22px 26px;
color: var(--primary);
border: 1px solid rgba(255, 255, 255, 0.48);
border-radius: 26px;
background: linear-gradient(135deg, rgba(255, 255, 255, 0.76), rgba(255, 255, 255, 0.34) 58%, rgba(255, 255, 255, 0.08));
backdrop-filter: blur(14px) saturate(140%);
box-shadow: 0 16px 44px rgba(0, 35, 75, 0.1);
}
.sequence-item {
opacity: 0;
filter: blur(16px);
transform: translateY(14px);
animation: contentBlurIn 720ms ease forwards;
}
.sequence-eyebrow {
animation-delay: 100ms;
}
.sequence-title {
animation-delay: 230ms;
}
.sequence-copy {
animation-delay: 360ms;
}
.sequence-actions {
animation-delay: 500ms;
}
.eyebrow {
margin: 0 0 12px;
color: var(--secondary);
font-family: var(--font-en-title);
font-size: 13px;
font-weight: 900;
letter-spacing: 0.18em;
text-transform: uppercase;
}
.page-hero h1 {
margin: 0;
color: inherit;
font-size: clamp(34px, 5vw, 72px);
line-height: 1.18;
letter-spacing: -0.04em;
}
.hero h1 {
margin: 0;
color: inherit;
font-size: clamp(23px, 2.5vw, 34px);
line-height: 1.2;
letter-spacing: -0.035em;
white-space: nowrap;
}
.hero p,
.page-hero p {
margin: 20px 0 30px;
color: rgba(255, 255, 255, 0.78);
font-size: 18px;
line-height: 2;
}
.hero p {
margin: 14px 0 20px;
color: rgba(0, 35, 75, 0.72);
font-size: 14px;
line-height: 1.8;
}
.hero .eyebrow {
color: var(--secondary);
margin-bottom: 10px;
}
.hero-actions {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 12px;
}
.hero-phone-link {
display: inline-flex;
align-items: center;
gap: 9px;
min-height: 48px;
padding: 0 10px;
color: var(--primary);
font-weight: 900;
white-space: nowrap;
}
.hero-phone-icon {
display: grid;
width: 34px;
height: 34px;
flex: 0 0 34px;
place-items: center;
border-radius: 999px;
color: var(--white);
background: var(--primary);
font-size: 16px;
}
.hero-phone-link .ltr-number {
color: var(--primary);
white-space: nowrap;
}
.hero-dots {
position: absolute;
left: 54px;
right: auto;
bottom: 44px;
z-index: 1;
display: flex;
gap: 9px;
}
.hero-dots button {
width: 34px;
height: 5px;
padding: 0;
border: 0;
border-radius: 999px;
background: rgba(0, 35, 75, 0.24);
cursor: pointer;
transition: width 180ms ease, background 180ms ease;
}
.hero-dots button.active {
width: 44px;
background: var(--secondary);
}
.quick-categories-section {
margin-top: -6px;
padding: 18px 0 20px;
}
.quick-category-frame {
display: grid;
grid-template-columns: repeat(6, 1fr);
gap: 10px;
padding: 16px;
border: 1px solid rgba(255, 255, 255, 0.68);
border-radius: 30px;
background: linear-gradient(135deg, rgba(255, 255, 255, 0.78), rgba(255, 255, 255, 0.38));
backdrop-filter: blur(18px) saturate(145%);
box-shadow: 0 18px 54px rgba(0, 35, 75, 0.08);
}
.quick-category-item {
display: grid;
gap: 10px;
min-height: 158px;
place-items: center;
padding: 16px 10px;
border-radius: 22px;
color: var(--primary);
background: rgba(255, 255, 255, 0.44);
font-size: 14px;
font-weight: 900;
text-align: center;
transition: transform 180ms ease, background 180ms ease, box-shadow 180ms ease;
}
.quick-category-item:hover {
transform: translateY(-3px);
background: rgba(255, 255, 255, 0.72);
box-shadow: 0 14px 32px rgba(0, 35, 75, 0.09);
}
.quick-category-icon {
display: grid;
width: 118px;
height: 118px;
place-items: center;
color: var(--secondary);
background: transparent;
}
.quick-category-icon svg {
width: 72px;
height: 72px;
fill: none;
stroke: currentColor;
stroke-width: 1.8;
stroke-linecap: round;
stroke-linejoin: round;
}
.quick-category-icon img {
width: 116px;
height: 116px;
object-fit: contain;
}
@keyframes slideImageIn {
from {
opacity: 0;
filter: blur(10px);
transform: scale(1.035);
}
to {
opacity: 1;
filter: blur(0);
transform: scale(1);
}
}
@keyframes contentBlurIn {
to {
opacity: 1;
filter: blur(0);
transform: translateY(0);
}
}
.section {
padding: 54px 0;
}
.section-title {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
gap: 20px;
margin-bottom: 28px;
padding-right: 18px;
}
.section-title::before {
content: "";
position: absolute;
top: 4px;
right: 0;
width: 4px;
height: calc(100% - 8px);
border-radius: 999px;
background: var(--secondary);
}
.section-title::after {
content: "";
position: absolute;
inset: 0;
pointer-events: none;
background-image: linear-gradient(
135deg,
rgba(0, 35, 75, 0.05) 25%,
transparent 25%,
transparent 50%,
rgba(0, 35, 75, 0.05) 50%,
rgba(0, 35, 75, 0.05) 75%,
transparent 75%
);
background-size: 14px 14px;
mask-image: linear-gradient(90deg, transparent 0%, black 58%, transparent 100%);
opacity: 0.55;
}
.section-title > * {
position: relative;
z-index: 1;
}
.section-title h2 {
margin: 0;
color: var(--primary);
font-size: clamp(18px, 2vw, 26px);
line-height: 1.35;
}
.section-title p {
margin: 0 0 6px;
color: var(--muted);
}
.section-title-chevron {
display: inline-flex;
align-items: center;
gap: 8px;
flex-shrink: 0;
margin-inline-start: 0;
padding: 0;
color: var(--primary);
direction: ltr;
font-family: var(--font-en-title);
font-size: 13px;
font-weight: 800;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.section-title-chevron em {
font-style: normal;
}
.section-title-chevron span {
display: grid;
width: 36px;
height: 36px;
place-items: center;
border-radius: 999px;
color: var(--white);
background: var(--primary);
font-size: 22px;
line-height: 1;
}
.grid {
display: grid;
gap: 20px;
}
.category-grid {
grid-template-columns: repeat(4, 1fr);
}
.category-card,
.product-card,
.feature-card,
.article-card,
.contact-card,
.banner,
.about-panel {
border: 1px solid rgba(0, 35, 75, 0.08);
border-radius: var(--radius);
background: var(--white);
box-shadow: 0 16px 44px rgba(0, 35, 75, 0.06);
}
.category-card {
position: relative;
overflow: hidden;
min-height: 260px;
}
.category-card img {
width: 100%;
height: 100%;
object-fit: cover;
}
.category-card div {
position: absolute;
right: 14px;
bottom: 14px;
left: 14px;
padding: 13px 14px;
border: 1px solid rgba(255, 255, 255, 0.46);
border-radius: 20px;
background: linear-gradient(135deg, rgba(255, 255, 255, 0.86), rgba(255, 255, 255, 0.46));
backdrop-filter: blur(16px) saturate(145%);
box-shadow: 0 14px 34px rgba(0, 35, 75, 0.1);
text-align: center;
}
.category-card h3,
.feature-card h3 {
margin: 0 0 6px;
color: var(--primary);
font-size: 20px;
}
.category-card h3 {
margin-bottom: 4px;
font-size: 15px;
}
.category-card p,
.feature-card p,
.product-card p,
.article-card p {
margin: 0;
color: var(--muted);
}
.category-card p {
font-size: 12px;
}
.category-card p,
.feature-card p,
.eyebrow {
font-family: var(--font-en-title);
}
.sale {
position: relative;
overflow: hidden;
border-radius: var(--radius);
padding: 44px;
color: var(--white);
border: 1px solid rgba(0, 35, 75, 0.08);
background:
linear-gradient(90deg, rgba(136, 63, 63, 0.74), rgba(0, 35, 75, 0.72)),
url("/assets/sample/charlesdeluvio-CKbBn7ZhmyM-unsplash.jpg") center / cover;
box-shadow: 0 16px 44px rgba(0, 35, 75, 0.06);
}
.sale-carousel {
align-items: stretch;
gap: 14px;
}
.sale-promo-card {
display: block;
width: 260px;
min-width: 260px;
margin: 0;
padding: 0;
text-decoration: none;
scroll-snap-align: start;
}
.sale-carousel .product-card {
transform: translateX(10px);
}
.sale h2 {
margin: 0 0 10px;
font-size: clamp(30px, 4vw, 54px);
}
.sale p {
max-width: 560px;
margin: 0 0 24px;
color: rgba(255, 255, 255, 0.78);
line-height: 2;
}
.feature-grid {
grid-template-columns: repeat(4, 1fr);
}
.feature-showcase {
position: relative;
min-height: 580px;
margin-top: 24px;
}
.feature-connectors {
position: absolute;
inset: 0;
z-index: 0;
width: 100%;
height: 100%;
overflow: visible;
}
.feature-connectors path {
fill: none;
stroke: rgba(204, 153, 102, 0.72);
stroke-width: 0.45;
stroke-linecap: round;
stroke-dasharray: 1.2 2.1 0.6 1.4;
}
.feature-sofa {
position: absolute;
top: 46%;
left: 50%;
z-index: 1;
width: min(560px, 54vw);
transform: translate(-50%, -50%);
}
.feature-sofa img {
width: 100%;
height: auto;
object-fit: contain;
filter: drop-shadow(0 30px 40px rgba(0, 35, 75, 0.14));
}
.feature-card {
position: absolute;
z-index: 2;
width: 270px;
padding: 30px 28px;
}
.feature-card p {
font-size: 11px;
line-height: 1.25;
}
.feature-subtext {
display: block;
margin-top: 12px;
color: rgba(107, 114, 128, 0.62);
font-size: 12px;
line-height: 1.8;
}
.feature-card-1 {
top: 34px;
right: 0;
}
.feature-card-2 {
top: 34px;
left: 0;
}
.feature-card-3 {
right: 70px;
bottom: 36px;
}
.feature-card-4 {
left: 70px;
bottom: 36px;
}
.feature-icon {
display: grid;
width: 58px;
height: 58px;
margin-bottom: 18px;
place-items: center;
border-radius: 18px;
color: var(--white);
background: var(--primary);
font-weight: 900;
}
.product-carousel-shell {
position: relative;
}
.carousel {
display: grid;
align-items: stretch;
grid-auto-columns: var(--product-card-width);
grid-auto-flow: column;
gap: 14px;
overflow-x: hidden;
padding: 0 0 16px;
scroll-snap-type: x mandatory;
scroll-behavior: smooth;
scrollbar-width: none;
}
.carousel::-webkit-scrollbar {
display: none;
}
.product-card {
display: flex;
width: var(--product-card-width);
min-width: var(--product-card-width);
height: 100%;
flex-direction: column;
overflow: hidden;
color: inherit;
text-decoration: none;
scroll-snap-align: start;
transition: box-shadow 220ms ease, border-color 220ms ease;
}
a.product-card:hover {
border-color: rgba(204, 153, 102, 0.45);
box-shadow: 0 22px 50px rgba(0, 35, 75, 0.12);
}
.product-card img {
width: 100%;
aspect-ratio: 1 / 1;
height: auto;
object-fit: cover;
flex-shrink: 0;
transition: transform 320ms ease;
}
a.product-card:hover img {
transform: scale(1.05);
}
.product-body {
display: flex;
flex: 1 1 auto;
flex-direction: column;
padding: 20px;
}
.badge {
display: inline-flex;
margin-bottom: 12px;
padding: 6px 12px;
border-radius: 999px;
color: var(--tertiary);
background: rgba(136, 63, 63, 0.1);
font-size: 12px;
font-weight: 900;
}
.product-card .price {
display: inline-flex;
align-items: baseline;
align-self: flex-end;
gap: 6px;
margin-top: auto;
padding-top: 16px;
color: var(--primary);
font-family: var(--font-fa);
font-size: 15px;
font-weight: 800;
line-height: 1.4;
}
.price-with-amount {
direction: ltr;
}
.price-amount {
color: var(--primary);
font-weight: 800;
}
.price-unit,
.price-note {
color: var(--primary);
font-family: var(--font-fa);
font-weight: 800;
}
.price-note {
margin: 0;
direction: rtl;
}
.product-card h3 {
display: -webkit-box;
min-height: calc(1.8em * 2);
margin: 0;
overflow: hidden;
color: var(--primary);
font-size: 15px;
line-height: 1.8;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
.product-en-name {
margin: 0 0 8px;
color: var(--muted);
font-family: var(--font-en-title);
font-size: 11px;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.carousel-chevron {
position: absolute;
top: 50%;
z-index: 3;
display: grid;
width: 44px;
height: 44px;
place-items: center;
border: 1px solid rgba(255, 255, 255, 0.55);
border-radius: 999px;
color: var(--primary);
background: linear-gradient(135deg, rgba(255, 255, 255, 0.78), rgba(255, 255, 255, 0.34));
backdrop-filter: blur(14px) saturate(150%);
box-shadow: 0 14px 34px rgba(0, 35, 75, 0.16);
cursor: pointer;
direction: ltr;
font-family: var(--font-en-title);
font-size: 30px;
line-height: 1;
transform: translateY(-50%);
transition: background 180ms ease, transform 180ms ease;
}
.carousel-chevron:hover {
background: linear-gradient(135deg, rgba(255, 255, 255, 0.92), rgba(255, 255, 255, 0.5));
transform: translateY(-50%) scale(1.05);
}
.carousel-chevron-left {
left: 0;
}
.carousel-chevron-right {
right: 0;
}
.contact-row {
display: grid;
grid-template-columns: 1.15fr 0.85fr;
gap: 20px;
align-items: stretch;
}
.contact-card {
padding: 34px;
}
.contact-card h2 {
margin: 0 0 12px;
color: var(--primary);
font-size: clamp(22px, 2.2vw, 30px);
}
.contact-card p,
.about-panel p {
color: var(--muted);
line-height: 2.05;
}
.contact-list {
display: grid;
gap: 10px;
margin: 22px 0;
padding: 0;
list-style: none;
}
.contact-list li {
padding: 12px 16px;
border-radius: 18px;
background: var(--cream);
}
.ltr-number {
display: inline-block;
direction: ltr;
unicode-bidi: isolate;
font-family: var(--font-en), var(--font-fa);
font-variant-numeric: lining-nums tabular-nums;
font-feature-settings: "tnum" 1, "lnum" 1;
}
.contact-guarantee {
display: flex;
min-height: 100%;
flex-direction: column;
justify-content: flex-end;
background:
linear-gradient(160deg, rgba(0, 35, 75, 0.72), rgba(136, 63, 63, 0.78)),
url("/assets/sample/charlesdeluvio-CdTH3UwWlR4-unsplash.jpg") center / cover;
}
.contact-guarantee h3 {
font-size: clamp(20px, 2vw, 26px);
}
.contact-guarantee .eyebrow {
color: rgba(255, 255, 255, 0.82);
}
.banner-grid {
grid-template-columns: repeat(2, 1fr);
}
.banner-grid.three {
grid-template-columns: repeat(3, 1fr);
}
.banner {
min-height: 230px;
overflow: hidden;
padding: 28px;
color: var(--white);
background: linear-gradient(135deg, var(--primary), var(--tertiary));
}
.banner h3 {
margin: 0 0 10px;
font-size: 28px;
}
.banner p {
margin: 0;
color: rgba(255, 255, 255, 0.75);
line-height: 1.9;
}
.about-panel {
display: grid;
grid-template-columns: 0.85fr 1.15fr;
gap: 28px;
align-items: center;
overflow: hidden;
}
.about-panel img {
width: 100%;
height: 100%;
min-height: 430px;
object-fit: cover;
}
.about-copy {
padding: 38px;
}
.about-copy h2 {
margin: 0 0 14px;
color: var(--primary);
font-size: clamp(22px, 2.4vw, 32px);
}
.article-grid {
grid-template-columns: repeat(4, 1fr);
}
.article-carousel {
--article-card-width: calc((100% - 42px) / 3.5);
grid-auto-columns: var(--article-card-width);
gap: 14px;
}
.article-carousel-shell .carousel-chevron {
top: 50%;
left: auto;
right: auto;
}
.article-carousel-shell .carousel-chevron-left {
left: 0;
}
.article-carousel-shell .carousel-chevron-right {
right: 0;
}
.article-card {
display: flex;
width: 100%;
min-width: 0;
flex-direction: column;
overflow: hidden;
padding: 0;
color: inherit;
text-decoration: none;
scroll-snap-align: start;
transition: box-shadow 220ms ease, border-color 220ms ease;
}
a.article-card:hover {
border-color: rgba(204, 153, 102, 0.45);
box-shadow: 0 22px 50px rgba(0, 35, 75, 0.12);
}
.article-media {
position: relative;
width: 100%;
aspect-ratio: 3 / 2;
overflow: hidden;
background: var(--cream);
}
.article-media img {
object-fit: cover;
transition: transform 320ms ease;
}
a.article-card:hover .article-media img {
transform: scale(1.05);
}
.article-body {
display: flex;
flex: 1;
flex-direction: column;
gap: 8px;
padding: 16px;
}
.article-date {
color: var(--muted);
font-size: 12px;
}
.article-card h3 {
margin: 0;
color: var(--primary);
font-size: 13px;
line-height: 1.75;
font-weight: 800;
}
.article-card p {
margin: 0;
margin-top: auto;
color: var(--secondary);
font-size: 13px;
font-weight: 800;
}
.page-hero {
margin: 118px 0 24px;
padding: 72px;
border-radius: 42px;
color: var(--white);
background:
linear-gradient(90deg, rgba(0, 35, 75, 0.94), rgba(0, 35, 75, 0.52)),
url("/assets/sample/premium_photo-1682259448839-2ea3bc7f9e73.avif") center / cover;
}
.content-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 22px;
padding-bottom: 70px;
}
.locations-section {
padding-bottom: 80px;
}
.locations-header {
max-width: 560px;
margin: 0 0 28px;
}
.locations-header h2 {
margin: 0 0 10px;
color: var(--primary);
font-size: clamp(26px, 3vw, 36px);
}
.locations-header p:last-child {
margin: 0;
color: var(--muted);
line-height: 1.9;
}
.locations-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 18px;
}
.location-card {
display: flex;
flex-direction: column;
min-height: 100%;
padding: 28px 26px 24px;
border: 1px solid rgba(0, 35, 75, 0.08);
border-radius: var(--radius);
background:
linear-gradient(165deg, rgba(255, 255, 255, 0.96), rgba(248, 243, 236, 0.88)),
var(--white);
box-shadow: 0 16px 44px rgba(0, 35, 75, 0.06);
transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.location-card:hover {
transform: translateY(-4px);
border-color: rgba(204, 153, 102, 0.45);
box-shadow: 0 22px 52px rgba(0, 35, 75, 0.1);
}
.location-card-top {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 22px;
}
.location-index {
color: var(--secondary);
font-family: var(--font-fa);
font-size: 15px;
font-weight: 800;
letter-spacing: 0.04em;
}
.location-pin {
display: grid;
width: 44px;
height: 44px;
place-items: center;
color: var(--primary);
border: 1px solid rgba(0, 35, 75, 0.1);
border-radius: 16px;
background: linear-gradient(145deg, rgba(204, 153, 102, 0.22), rgba(255, 255, 255, 0.9));
}
.location-city {
display: flex;
align-items: center;
gap: 10px;
margin: 0 0 8px;
color: var(--muted);
font-size: 13px;
}
.location-city-en {
font-family: var(--font-en-title);
font-size: 11px;
font-weight: 700;
letter-spacing: 0.1em;
text-transform: uppercase;
color: var(--secondary);
}
.location-card h3 {
margin: 0 0 16px;
color: var(--primary);
font-size: clamp(20px, 2vw, 24px);
}
.location-lines {
display: grid;
gap: 6px;
margin: 0 0 24px;
padding: 0;
list-style: none;
color: var(--muted);
line-height: 1.85;
font-size: 14px;
}
.location-map-link {
display: inline-flex;
align-items: center;
gap: 8px;
margin-top: auto;
padding-top: 16px;
border-top: 1px solid rgba(0, 35, 75, 0.08);
color: var(--primary);
font-size: 14px;
font-weight: 700;
text-decoration: none;
transition: color 180ms ease, gap 180ms ease;
}
.location-map-link span {
font-family: var(--font-en-title);
font-size: 18px;
line-height: 1;
}
.location-map-link:hover {
color: var(--tertiary);
gap: 12px;
}
.form {
display: grid;
gap: 14px;
}
.form input,
.form textarea {
width: 100%;
border: 1px solid rgba(0, 35, 75, 0.12);
border-radius: 18px;
padding: 15px 18px;
outline: none;
background: #fbfaf8;
}
.form textarea {
min-height: 150px;
resize: vertical;
}
.footer {
margin-top: 40px;
color: rgba(255, 255, 255, 0.78);
background:
radial-gradient(circle at 12% 18%, rgba(204, 153, 102, 0.18), transparent 36%),
linear-gradient(165deg, #00234b 0%, #001a3a 58%, #0a1628 100%);
}
.footer-main {
display: grid;
grid-template-columns: 1.25fr 0.75fr 1.15fr;
gap: 36px;
padding: 64px 0 42px;
}
.footer-brand {
display: grid;
gap: 16px;
align-content: start;
}
.footer-logo {
display: inline-flex;
width: fit-content;
padding: 10px 14px;
border-radius: 16px;
background: rgba(255, 255, 255, 0.92);
}
.footer-logo-img {
width: auto;
height: 36px;
object-fit: contain;
}
.footer-brand > p {
margin: 0;
max-width: 34ch;
line-height: 2;
color: rgba(255, 255, 255, 0.72);
}
.footer-phone {
display: inline-flex;
align-items: center;
gap: 12px;
width: fit-content;
margin-top: 6px;
padding: 12px 16px;
border: 1px solid rgba(255, 255, 255, 0.14);
border-radius: 18px;
background: rgba(255, 255, 255, 0.06);
transition: background 180ms ease, border-color 180ms ease;
}
.footer-phone:hover {
border-color: rgba(204, 153, 102, 0.45);
background: rgba(255, 255, 255, 0.1);
}
.footer-phone-icon {
display: grid;
width: 38px;
height: 38px;
place-items: center;
border-radius: 999px;
background: var(--secondary);
color: #fff;
}
.footer-phone span {
display: grid;
gap: 2px;
font-size: 13px;
}
.footer-phone strong {
color: #fff;
font-size: 15px;
font-weight: 800;
}
.footer-col h4 {
margin: 0 0 16px;
color: #fff;
font-size: 16px;
}
.footer-col ul {
margin: 0;
padding: 0;
list-style: none;
display: grid;
gap: 10px;
}
.footer-col a {
color: rgba(255, 255, 255, 0.72);
transition: color 160ms ease;
}
.footer-col a:hover {
color: var(--secondary);
}
.footer-addresses li {
display: grid;
gap: 4px;
padding-bottom: 12px;
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.footer-addresses li:last-child {
padding-bottom: 0;
border-bottom: 0;
}
.footer-addresses strong {
color: #fff;
font-size: 13px;
}
.footer-addresses span {
color: rgba(255, 255, 255, 0.68);
font-size: 13px;
line-height: 1.9;
}
.footer-bottom {
border-top: 1px solid rgba(255, 255, 255, 0.08);
background: rgba(0, 0, 0, 0.28);
}
.footer-bottom-bar {
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: 12px;
padding: 10px 0;
}
.footer-bottom-site {
color: #9c9c9c;
font-size: 12px;
}
.meshkee-credit {
position: relative;
display: inline-flex;
align-items: center;
gap: 10px;
padding: 6px 10px;
color: #9c9c9c;
text-decoration: none;
transition: color 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
.meshkee-credit:hover {
color: #e0e0e0;
text-decoration: none;
}
.meshkee-credit__frame {
position: absolute;
inset: 0;
pointer-events: none;
}
.meshkee-credit__line {
position: absolute;
background: #777;
transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}
.meshkee-credit__line--l {
top: 0;
left: 0;
width: 1px;
height: 100%;
transform: scaleY(0);
transform-origin: top;
transition-delay: 0s;
}
.meshkee-credit__line--b {
bottom: 0;
left: 0;
width: 100%;
height: 1px;
transform: scaleX(0);
transform-origin: left;
transition-delay: 0.14s;
}
.meshkee-credit__line--r {
top: 0;
right: 0;
width: 1px;
height: 100%;
transform: scaleY(0);
transform-origin: bottom;
transition-delay: 0.28s;
}
.meshkee-credit__line--t {
top: 0;
left: 0;
width: 100%;
height: 1px;
transform: scaleX(0);
transform-origin: right;
transition-delay: 0.42s;
}
.meshkee-credit:hover .meshkee-credit__line--l,
.meshkee-credit:hover .meshkee-credit__line--r {
transform: scaleY(1);
}
.meshkee-credit:hover .meshkee-credit__line--b,
.meshkee-credit:hover .meshkee-credit__line--t {
transform: scaleX(1);
}
.meshkee-credit:not(:hover) .meshkee-credit__line--l {
transition-delay: 0.42s;
}
.meshkee-credit:not(:hover) .meshkee-credit__line--b {
transition-delay: 0.28s;
}
.meshkee-credit:not(:hover) .meshkee-credit__line--r {
transition-delay: 0.14s;
}
.meshkee-credit:not(:hover) .meshkee-credit__line--t {
transition-delay: 0s;
}
.meshkee-credit__logo {
position: relative;
display: block;
flex-shrink: 0;
width: 42px;
height: 42px;
object-fit: contain;
opacity: 0.7;
transition: opacity 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
.meshkee-credit:hover .meshkee-credit__logo {
opacity: 1;
}
.meshkee-credit__text {
position: relative;
display: flex;
min-height: 42px;
flex-direction: column;
justify-content: center;
line-height: 1.25;
font-family: var(--font-en);
}
.meshkee-credit__label {
font-size: 11px;
}
.meshkee-credit__name {
color: #cfcfcf;
font-size: 13px;
font-weight: 600;
transition: color 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
.meshkee-credit:hover .meshkee-credit__name {
color: #fff;
}
@media (max-width: 1200px) {
:root {
--product-card-width: 280px;
}
}
@media (max-width: 960px) {
.nav {
display: none;
}
.hero-card {
min-height: 540px;
}
.page-hero {
padding: 54px 28px;
}
.hero-content {
right: 22px;
bottom: 22px;
width: calc(100% - 44px);
padding: 22px;
}
.hero h1 {
white-space: normal;
}
.quick-category-frame {
grid-template-columns: repeat(3, 1fr);
}
.category-grid,
.feature-grid,
.article-grid,
.banner-grid,
.banner-grid.three,
.locations-grid,
.contact-row,
.about-panel,
.content-grid,
.footer-main {
grid-template-columns: 1fr;
}
.footer-bottom-bar {
flex-direction: column;
justify-content: center;
text-align: center;
}
.article-carousel {
--article-card-width: calc((100% - 14px) / 2.2);
}
.feature-showcase {
display: grid;
min-height: auto;
gap: 18px;
}
.feature-connectors {
display: none;
}
.feature-sofa,
.feature-card {
position: relative;
inset: auto;
width: 100%;
transform: none;
}
.feature-sofa {
order: -1;
max-width: 520px;
margin-inline: auto;
}
.section-title {
display: block;
}
}
@media (max-width: 560px) {
.phone-pill {
display: none;
}
.header-inner {
border-radius: 24px;
}
.brand img {
width: 138px;
}
.hero-card {
border-radius: 28px;
}
.hero-dots {
left: 28px;
}
.quick-category-frame {
grid-template-columns: repeat(2, 1fr);
}
:root {
--product-card-width: 250px;
}
.carousel-chevron-left {
left: 0;
}
.carousel-chevron-right {
right: 0;
}
.sale-promo-card {
width: 240px;
min-width: 240px;
}
}
/* Backend / Meshkee UI */
.toast {
position: fixed;
bottom: 24px;
left: 50%;
z-index: 200;
transform: translateX(-50%);
padding: 12px 18px;
border-radius: 999px;
background: var(--primary);
color: #fff;
box-shadow: 0 16px 40px rgba(0, 35, 75, 0.28);
}
.header-actions {
display: flex;
align-items: center;
gap: 10px;
}
.nav-icons {
display: inline-flex;
align-items: center;
gap: 4px;
margin-right: 4px;
}
.header-icon-btn {
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
width: 36px;
height: 36px;
padding: 0;
border: 0;
border-radius: 999px;
background: transparent;
color: var(--primary);
cursor: pointer;
transition: color 160ms ease, background 160ms ease;
}
.header-icon-btn:hover {
color: var(--secondary);
background: rgba(0, 35, 75, 0.05);
}
.header-icon-link {
position: relative;
display: inline-flex;
align-items: center;
gap: 6px;
padding: 8px 10px;
border: 0;
border-radius: 999px;
background: transparent;
color: var(--primary);
cursor: pointer;
font: inherit;
}
.cart-badge {
position: absolute;
top: 2px;
left: 2px;
min-width: 16px;
height: 16px;
padding: 0 4px;
border-radius: 999px;
background: var(--tertiary);
color: #fff;
font-size: 10px;
line-height: 16px;
text-align: center;
}
.user-menu {
position: relative;
}
.user-menu-greeting {
margin: 0;
padding: 8px 12px 4px;
color: var(--muted);
font-size: 12px;
}
.user-menu-dropdown {
position: absolute;
top: calc(100% + 8px);
left: 0;
min-width: 180px;
padding: 8px;
border-radius: 16px;
background: rgba(255, 255, 255, 0.96);
box-shadow: var(--shadow);
display: grid;
gap: 4px;
z-index: 40;
}
.user-menu-dropdown a,
.user-menu-dropdown button {
display: block;
width: 100%;
padding: 10px 12px;
border: 0;
border-radius: 12px;
background: transparent;
text-align: right;
color: var(--ink);
cursor: pointer;
font: inherit;
}
.user-menu-dropdown a:hover,
.user-menu-dropdown button:hover {
background: rgba(0, 35, 75, 0.06);
}
.mega-menu {
position: static;
}
.mega-menu-trigger {
display: inline-flex;
align-items: center;
gap: 6px;
}
.mega-menu-chevron {
display: block;
flex-shrink: 0;
transition: transform 180ms ease;
}
.mega-menu.is-open .mega-menu-chevron {
transform: rotate(180deg);
}
.mega-menu-panel {
position: absolute;
top: calc(100% + 14px);
right: 0;
left: 0;
width: auto;
max-width: none;
padding: 20px 22px;
border-radius: 22px;
background: rgba(255, 255, 255, 0.97);
box-shadow: var(--shadow);
z-index: 35;
}
.mega-menu-panel::before {
content: "";
position: absolute;
top: -18px;
right: 0;
left: 0;
height: 18px;
}
.mega-menu-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 18px 22px;
}
.mega-menu-column {
padding: 4px 2px 8px;
min-width: 0;
}
.mega-menu-parent {
display: block;
margin-bottom: 10px;
padding-bottom: 10px;
border-bottom: 1px solid rgba(0, 35, 75, 0.1);
color: var(--primary);
font-size: 15px;
font-weight: 800;
line-height: 1.5;
}
.mega-menu-parent:hover {
color: var(--secondary);
}
.mega-menu-children {
margin: 0;
padding: 0;
list-style: none;
display: grid;
gap: 2px;
}
.mega-menu-child {
display: block;
padding: 5px 0;
color: var(--muted);
font-size: 13px;
font-weight: 500;
line-height: 1.6;
}
.mega-menu-child:hover {
color: var(--secondary);
}
.mega-menu-leaf-row {
margin-top: 18px;
padding-top: 16px;
border-top: 1px solid rgba(0, 35, 75, 0.08);
}
.mega-menu-leaf-label {
margin: 0 0 12px;
color: var(--secondary);
font-family: var(--font-en-title);
font-size: 11px;
font-weight: 700;
letter-spacing: 0.1em;
text-transform: uppercase;
}
.mega-menu-leaf-list {
display: flex;
flex-wrap: wrap;
gap: 8px 10px;
margin: 0;
padding: 0;
list-style: none;
}
.mega-menu-parent-leaf {
display: inline-flex;
align-items: center;
padding: 8px 14px;
border: 1px solid rgba(0, 35, 75, 0.1);
border-radius: 999px;
color: var(--primary);
background: rgba(248, 243, 236, 0.7);
font-size: 13px;
font-weight: 700;
line-height: 1.4;
text-decoration: none;
transition: border-color 180ms ease, color 180ms ease, background 180ms ease;
}
.mega-menu-parent-leaf:hover {
border-color: rgba(204, 153, 102, 0.5);
color: var(--secondary);
background: rgba(255, 255, 255, 0.95);
}
.cart-drawer-root {
position: fixed;
inset: 0;
z-index: 120;
}
.cart-drawer-backdrop {
position: absolute;
inset: 0;
border: 0;
background: rgba(18, 21, 28, 0.42);
backdrop-filter: blur(4px);
}
.cart-drawer {
position: absolute;
top: 0;
left: 0;
display: flex;
flex-direction: column;
width: min(420px, 100%);
height: 100%;
background: #fff;
box-shadow: var(--shadow);
}
.cart-drawer-head,
.cart-drawer-foot {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
padding: 18px;
border-bottom: 1px solid rgba(0, 35, 75, 0.08);
}
.cart-drawer-foot {
border-bottom: 0;
border-top: 1px solid rgba(0, 35, 75, 0.08);
flex-direction: column;
align-items: stretch;
}
.cart-drawer-body {
flex: 1;
overflow: auto;
padding: 16px 18px;
display: grid;
gap: 14px;
align-content: start;
}
.cart-line {
display: grid;
grid-template-columns: 72px 1fr;
gap: 12px;
}
.cart-line-media,
.cart-line-fallback,
.store-card-fallback {
overflow: hidden;
border-radius: 14px;
background: var(--sand);
aspect-ratio: 1;
}
.cart-line-media img,
.store-card-media img,
.blog-card-media img,
.store-main-image img,
.store-thumbs img,
.blog-detail-cover img {
width: 100%;
height: 100%;
object-fit: cover;
}
.cart-line-info h3 {
margin: 0 0 4px;
font-size: 0.95rem;
}
.cart-line-actions {
display: flex;
align-items: center;
gap: 8px;
margin-top: 8px;
}
.cart-line-actions button,
.icon-btn,
.text-btn {
border: 0;
background: rgba(0, 35, 75, 0.06);
border-radius: 10px;
padding: 6px 10px;
cursor: pointer;
font: inherit;
}
.text-btn {
background: transparent;
color: var(--tertiary);
}
.cart-total {
display: flex;
justify-content: space-between;
font-weight: 700;
}
.cart-continue {
text-align: center;
}
.store-grid,
.blog-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 18px;
}
.store-card,
.blog-card {
display: flex;
flex-direction: column;
overflow: hidden;
border-radius: 22px;
background: rgba(255, 255, 255, 0.72);
box-shadow: 0 10px 30px rgba(0, 35, 75, 0.06);
}
.store-card-media,
.blog-card-media {
aspect-ratio: 1;
overflow: hidden;
}
.blog-card-media {
aspect-ratio: 3 / 2;
}
.store-card-body,
.blog-card-body {
display: grid;
gap: 8px;
padding: 14px;
}
.store-card-body h2,
.blog-card-body h2,
.store-card-body h3 {
margin: 0;
font-size: 1rem;
line-height: 1.6;
}
.pager {
display: flex;
justify-content: center;
align-items: center;
gap: 16px;
margin-top: 28px;
}
.store-detail {
display: grid;
grid-template-columns: 1.1fr 0.9fr;
gap: 28px;
padding: 120px 0 40px;
}
.store-detail-gallery,
.store-detail-info,
.store-detail-tabs,
.similar-section {
min-width: 0;
}
.store-detail-tabs,
.similar-section {
grid-column: 1 / -1;
}
.store-main-image {
position: relative;
display: block;
width: 100%;
overflow: hidden;
border: 0;
border-radius: 28px;
padding: 0;
background: var(--sand);
cursor: zoom-in;
}
.store-main-image.zoomable img {
transition: transform 280ms ease;
}
.store-main-image.zoomable:hover img {
transform: scale(1.08);
}
.store-thumbs {
display: flex;
gap: 10px;
margin-top: 12px;
overflow: auto;
}
.store-thumbs button {
flex: 0 0 84px;
border: 2px solid transparent;
border-radius: 14px;
overflow: hidden;
padding: 0;
background: transparent;
cursor: pointer;
}
.store-thumbs button.is-active {
border-color: var(--secondary);
}
.store-detail-price {
display: inline-block;
margin: 12px 0 18px;
font-size: 1.35rem;
color: var(--primary);
}
.store-buy-row {
display: flex;
flex-wrap: wrap;
gap: 12px;
align-items: end;
}
.store-buy-row label {
display: grid;
gap: 6px;
}
.store-buy-row input {
width: 88px;
padding: 10px 12px;
border: 1px solid rgba(0, 35, 75, 0.14);
border-radius: 12px;
}
.tab-list {
display: flex;
gap: 8px;
margin-bottom: 16px;
}
.tab-list button {
border: 0;
border-radius: 999px;
padding: 10px 16px;
background: rgba(0, 35, 75, 0.06);
cursor: pointer;
font: inherit;
}
.tab-list button.is-active {
background: var(--primary);
color: #fff;
}
.tab-panel,
.rich-html,
.blog-content {
line-height: 1.9;
}
.tech-table {
width: 100%;
border-collapse: collapse;
}
.tech-table th,
.tech-table td {
padding: 12px;
border-bottom: 1px solid rgba(0, 35, 75, 0.08);
text-align: right;
}
.login-box,
.form-success,
.empty-note {
padding: 14px 16px;
border-radius: 16px;
background: rgba(204, 153, 102, 0.12);
}
.form-success {
background: rgba(0, 35, 75, 0.08);
color: var(--primary);
}
.comments-list {
display: grid;
gap: 12px;
margin-top: 18px;
}
.comments-list article {
padding: 14px;
border-radius: 16px;
background: rgba(255, 255, 255, 0.7);
}
.lightbox {
position: fixed;
inset: 0;
z-index: 140;
display: grid;
place-items: center;
}
.lightbox-backdrop {
position: absolute;
inset: 0;
border: 0;
background: rgba(0, 0, 0, 0.72);
}
.lightbox-content {
position: relative;
z-index: 1;
width: min(900px, calc(100% - 32px));
}
.lightbox-content .icon-btn {
position: absolute;
top: 12px;
left: 12px;
}
.blog-detail {
padding-top: 40px;
}
.blog-detail-cover {
overflow: hidden;
border-radius: 28px;
margin-bottom: 24px;
aspect-ratio: 16 / 9;
}
.blog-abstract {
font-size: 1.05rem;
color: var(--muted);
}
@media (max-width: 960px) {
.store-grid,
.blog-grid,
.mega-menu-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.store-detail {
grid-template-columns: 1fr;
padding-top: 110px;
}
.mega-menu-panel {
width: auto;
left: 0;
right: 0;
}
}
@media (max-width: 560px) {
.header-icon-link span {
display: none;
}
.store-grid,
.blog-grid {
grid-template-columns: 1fr;
}
}