diff --git a/src/app/globals.css b/src/app/globals.css index 99f3014..2a6de1b 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -39,20 +39,26 @@ --container-boxed: 1320px; } -body { - background: var(--background); - color: var(--color-body); - font-family: var(--font-fa), Tahoma, sans-serif; - font-weight: 300; -} +/* Base element defaults belong in Tailwind's base layer so utility + classes (text-white, font-bold, etc.) can always override them — + unlayered CSS beats utilities regardless of specificity, which was + silently breaking text-color utilities on every heading. */ +@layer base { + body { + background: var(--background); + color: var(--color-body); + font-family: var(--font-fa), Tahoma, sans-serif; + font-weight: 300; + } -h1, -h2, -h3, -h4, -h5, -h6 { - color: var(--color-ink); + h1, + h2, + h3, + h4, + h5, + h6 { + color: var(--color-ink); + } } .font-en { @@ -98,6 +104,32 @@ h6 { background: var(--color-gold) !important; } +/* Fixed height bands on mobile/tablet (predictable layout, no odd + cropping); reverts to the slide's real aspect ratio on desktop where a + fixed height would look wrong on wide screens. */ +.hero-slide-media { + height: 140px; +} + +@media (min-width: 376px) { + .hero-slide-media { + height: 180px; + } +} + +@media (min-width: 441px) { + .hero-slide-media { + height: 280px; + } +} + +@media (min-width: 769px) { + .hero-slide-media { + height: auto; + aspect-ratio: var(--hero-aspect); + } +} + /* Minimal styling for CMS-authored HTML (product/blog descriptions) */ .rich-text p { margin-bottom: 1em; diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 43eeea4..c6e0c3e 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -28,7 +28,7 @@ export default async function RootLayout({ children }: LayoutProps<"/">) { dir="rtl" className={`${iranYekan.variable} ${rajdhani.variable} h-full antialiased`} > - +
{children}