/* Tailwind-style utility CSS, precompiled locally (no CDN).
 * Generated for the Katha Living site. Add classes here as needed. */

/* ------------------------------ Reset ------------------------------ */
*,
::before,
::after {
    box-sizing: border-box;
    border-width: 0;
    border-style: solid;
    border-color: #e5e7eb;
}
::before,
::after {
    --tw-content: "";
}
html {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    font-family: "Roboto Condensed", Helvetica, Arial, Lucida, sans-serif;
    font-feature-settings: normal;
}
body {
    margin: 0;
    line-height: 1.7em;
    color: #666;
    background: #fff;
    font-weight: 500;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
}
abbr:where([title]) {
    text-decoration: underline dotted;
}
h1,
h2,
h3,
h4,
h5,
h6 {
    font-size: inherit;
    font-weight: inherit;
    margin: 0;
}
a {
    color: inherit;
    text-decoration: inherit;
}
b,
strong {
    font-weight: bolder;
}
code,
kbd,
samp,
pre {
    font-family:
        ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
        "Liberation Mono", "Courier New", monospace;
    font-size: 1em;
}
small {
    font-size: 80%;
}
sub,
sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}
sub {
    bottom: -0.25em;
}
sup {
    top: -0.5em;
}
table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
}
button,
input,
optgroup,
select,
textarea {
    font-family: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    font-size: 100%;
    font-weight: inherit;
    line-height: inherit;
    color: inherit;
    margin: 0;
    padding: 0;
}
button,
select {
    text-transform: none;
}
button,
[type="button"],
[type="reset"],
[type="submit"] {
    -webkit-appearance: button;
    background-color: transparent;
    background-image: none;
}
:-moz-focusring {
    outline: auto;
}
:-moz-ui-invalid {
    box-shadow: none;
}
progress {
    vertical-align: baseline;
}
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
    height: auto;
}
[type="search"] {
    -webkit-appearance: textfield;
    outline-offset: -2px;
}
::-webkit-search-decoration {
    -webkit-appearance: none;
}
::-webkit-file-upload-button {
    -webkit-appearance: button;
    font: inherit;
}
summary {
    display: list-item;
}
blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
    margin: 0;
}
fieldset {
    margin: 0;
    padding: 0;
}
legend {
    padding: 0;
}
ol,
ul,
menu {
    list-style: none;
    margin: 0;
    padding: 0;
}
dialog {
    padding: 0;
}
textarea {
    resize: vertical;
}
input::placeholder,
textarea::placeholder {
    opacity: 1;
    color: #9ca3af;
}
button,
[role="button"] {
    cursor: pointer;
}
:disabled {
    cursor: default;
}
img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
    display: block;
    vertical-align: middle;
}
img,
video {
    max-width: 100%;
    height: auto;
}

/* ------------------------------ Fonts (local) ------------------------------ */
@font-face {
    font-family: "Alex Brush";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/AlexBrush-Regular.ttf") format("truetype");
}
@font-face {
    font-family: "Playfair Display";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/PlayfairDisplay-Regular.ttf") format("truetype");
}
@font-face {
    font-family: "Playfair Display";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url("../fonts/PlayfairDisplay-Medium.ttf") format("truetype");
}
@font-face {
    font-family: "Playfair Display";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url("../fonts/PlayfairDisplay-SemiBold.ttf") format("truetype");
}
@font-face {
    font-family: "Playfair Display";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("../fonts/PlayfairDisplay-Bold.ttf") format("truetype");
}
@font-face {
    font-family: "Playfair Display SC";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/PlayfairDisplaySC-Regular.ttf") format("truetype");
}
@font-face {
    font-family: "Playfair Display SC";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("../fonts/PlayfairDisplaySC-Bold.ttf") format("truetype");
}
@font-face {
    font-family: "Roboto Condensed";
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: url("../fonts/RobotoCondensed-Light.ttf") format("truetype");
}
@font-face {
    font-family: "Roboto Condensed";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/RobotoCondensed-Regular.ttf") format("truetype");
}
@font-face {
    font-family: "Roboto Condensed";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("../fonts/RobotoCondensed-Bold.ttf") format("truetype");
}
@font-face {
    font-family: "Antic Didone";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/AnticDidone-Regular.ttf") format("truetype");
}

/* ------------------------------ Layout ------------------------------ */
.container {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem;
    padding-right: 1rem;
}
@media (min-width: 640px) {
    .container {
        max-width: 640px;
    }
}
@media (min-width: 768px) {
    .container {
        max-width: 768px;
    }
}
@media (min-width: 1024px) {
    .container {
        max-width: 1024px;
    }
}
@media (min-width: 1280px) {
    .container {
        max-width: 1280px;
    }
}
@media (min-width: 1536px) {
    .container {
        max-width: 1536px;
    }
}

.block {
    display: block;
}
.inline-block {
    display: inline-block;
}
.inline {
    display: inline;
}
.flex {
    display: flex;
}
.inline-flex {
    display: inline-flex;
}
.grid {
    display: grid;
}
.hidden {
    display: none;
}
.relative {
    position: relative;
}
.absolute {
    position: absolute;
}
.fixed {
    position: fixed;
}
.sticky {
    position: sticky;
}
.static {
    position: static;
}
.inset-0 {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
.top-0 {
    top: 0;
}
.bottom-0 {
    bottom: 0;
}
.left-0 {
    left: 0;
}
.right-0 {
    right: 0;
}
.top-1\/2 {
    top: 50%;
}
.left-1\/2 {
    left: 50%;
}
.z-10 {
    z-index: 10;
}
.z-20 {
    z-index: 20;
}
.z-30 {
    z-index: 30;
}
.z-40 {
    z-index: 40;
}
.z-50 {
    z-index: 50;
}

.flex-row {
    flex-direction: row;
}
.flex-col {
    flex-direction: column;
}
.flex-wrap {
    flex-wrap: wrap;
}
.flex-nowrap {
    flex-wrap: nowrap;
}
.flex-1 {
    flex: 1 1 0;
}
.flex-auto {
    flex: 1 1 auto;
}
.flex-none {
    flex: none;
}
.items-start {
    align-items: flex-start;
}
.items-center {
    align-items: center;
}
.items-end {
    align-items: flex-end;
}
.items-baseline {
    align-items: baseline;
}
.items-stretch {
    align-items: stretch;
}
.justify-start {
    justify-content: flex-start;
}
.justify-center {
    justify-content: center;
}
.justify-end {
    justify-content: flex-end;
}
.justify-between {
    justify-content: space-between;
}
.justify-around {
    justify-content: space-around;
}
.justify-evenly {
    justify-content: space-evenly;
}
.gap-0 {
    gap: 0;
}
.gap-1 {
    gap: 0.25rem;
}
.gap-2 {
    gap: 0.5rem;
}
.gap-3 {
    gap: 0.75rem;
}
.gap-4 {
    gap: 1rem;
}
.gap-5 {
    gap: 1.25rem;
}
.gap-6 {
    gap: 1.5rem;
}
.gap-8 {
    gap: 2rem;
}
.gap-10 {
    gap: 2.5rem;
}
.gap-12 {
    gap: 3rem;
}
.gap-16 {
    gap: 4rem;
}
.gap-x-2 {
    column-gap: 0.5rem;
}
.gap-x-4 {
    column-gap: 1rem;
}
.gap-x-6 {
    column-gap: 1.5rem;
}
.gap-x-8 {
    column-gap: 2rem;
}
.gap-y-2 {
    row-gap: 0.5rem;
}
.gap-y-4 {
    row-gap: 1rem;
}
.gap-y-6 {
    row-gap: 1.5rem;
}
.gap-y-8 {
    row-gap: 2rem;
}

.grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
}
.grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}
.grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}
.col-span-1 {
    grid-column: span 1 / span 1;
}
.col-span-2 {
    grid-column: span 2 / span 2;
}
.col-span-3 {
    grid-column: span 3 / span 3;
}
.col-span-4 {
    grid-column: span 4 / span 4;
}
.col-span-6 {
    grid-column: span 6 / span 6;
}
.col-span-full {
    grid-column: 1/-1;
}

/* Width & height */
.w-0 {
    width: 0;
}
.w-1 {
    width: 0.25rem;
}
.w-2 {
    width: 0.5rem;
}
.w-3 {
    width: 0.75rem;
}
.w-4 {
    width: 1rem;
}
.w-5 {
    width: 1.25rem;
}
.w-6 {
    width: 1.5rem;
}
.w-8 {
    width: 2rem;
}
.w-10 {
    width: 2.5rem;
}
.w-12 {
    width: 3rem;
}
.w-14 {
    width: 3.5rem;
}
.w-16 {
    width: 4rem;
}
.w-20 {
    width: 5rem;
}
.w-24 {
    width: 6rem;
}
.w-28 {
    width: 7rem;
}
.w-32 {
    width: 8rem;
}
.w-40 {
    width: 10rem;
}
.w-48 {
    width: 12rem;
}
.w-56 {
    width: 14rem;
}
.w-64 {
    width: 16rem;
}
.w-72 {
    width: 18rem;
}
.w-80 {
    width: 20rem;
}
.w-96 {
    width: 24rem;
}
.w-auto {
    width: auto;
}
.w-full {
    width: 100%;
}
.w-screen {
    width: 100vw;
}
.w-1\/2 {
    width: 50%;
}
.w-1\/3 {
    width: 33.333333%;
}
.w-2\/3 {
    width: 66.666667%;
}
.w-1\/4 {
    width: 25%;
}
.w-3\/4 {
    width: 75%;
}
.w-1\/5 {
    width: 20%;
}
.w-2\/5 {
    width: 40%;
}
.w-3\/5 {
    width: 60%;
}
.w-4\/5 {
    width: 80%;
}
.h-0 {
    height: 0;
}
.h-1 {
    height: 0.25rem;
}
.h-2 {
    height: 0.5rem;
}
.h-3 {
    height: 0.75rem;
}
.h-4 {
    height: 1rem;
}
.h-5 {
    height: 1.25rem;
}
.h-6 {
    height: 1.5rem;
}
.h-8 {
    height: 2rem;
}
.h-10 {
    height: 2.5rem;
}
.h-12 {
    height: 3rem;
}
.h-14 {
    height: 3.5rem;
}
.h-16 {
    height: 4rem;
}
.h-20 {
    height: 5rem;
}
.h-24 {
    height: 6rem;
}
.h-32 {
    height: 8rem;
}
.h-40 {
    height: 10rem;
}
.h-48 {
    height: 12rem;
}
.h-56 {
    height: 14rem;
}
.h-64 {
    height: 16rem;
}
.h-72 {
    height: 18rem;
}
.h-80 {
    height: 20rem;
}
.h-96 {
    height: 24rem;
}
.h-auto {
    height: auto;
}
.h-full {
    height: 100%;
}
.h-screen {
    height: 100vh;
}
.min-h-screen {
    min-height: 100vh;
}
.min-h-full {
    min-height: 100%;
}
.min-h-0 {
    min-height: 0;
}
.max-w-xs {
    max-width: 20rem;
}
.max-w-sm {
    max-width: 24rem;
}
.max-w-md {
    max-width: 28rem;
}
.max-w-lg {
    max-width: 32rem;
}
.max-w-xl {
    max-width: 36rem;
}
.max-w-2xl {
    max-width: 42rem;
}
.max-w-3xl {
    max-width: 48rem;
}
.max-w-4xl {
    max-width: 56rem;
}
.max-w-5xl {
    max-width: 64rem;
}
.max-w-6xl {
    max-width: 72rem;
}
.max-w-7xl {
    max-width: 80rem;
}
.max-w-full {
    max-width: 100%;
}
.max-w-screen-xl {
    max-width: 1280px;
}
.max-w-screen-2xl {
    max-width: 1536px;
}
.max-h-screen {
    max-height: 100vh;
}
.max-h-full {
    max-height: 100%;
}

/* Spacing */
.m-0 {
    margin: 0;
}
.m-1 {
    margin: 0.25rem;
}
.m-2 {
    margin: 0.5rem;
}
.m-3 {
    margin: 0.75rem;
}
.m-4 {
    margin: 1rem;
}
.m-6 {
    margin: 1.5rem;
}
.m-8 {
    margin: 2rem;
}
.m-auto {
    margin: auto;
}
.mx-auto {
    margin-left: auto;
    margin-right: auto;
}
.my-auto {
    margin-top: auto;
    margin-bottom: auto;
}
.mx-0 {
    margin-left: 0;
    margin-right: 0;
}
.mx-1 {
    margin-left: 0.25rem;
    margin-right: 0.25rem;
}
.mx-2 {
    margin-left: 0.5rem;
    margin-right: 0.5rem;
}
.mx-4 {
    margin-left: 1rem;
    margin-right: 1rem;
}
.mx-6 {
    margin-left: 1.5rem;
    margin-right: 1.5rem;
}
.my-0 {
    margin-top: 0;
    margin-bottom: 0;
}
.my-1 {
    margin-top: 0.25rem;
    margin-bottom: 0.25rem;
}
.my-2 {
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
}
.my-4 {
    margin-top: 1rem;
    margin-bottom: 1rem;
}
.my-6 {
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
}
.my-8 {
    margin-top: 2rem;
    margin-bottom: 2rem;
}
.my-12 {
    margin-top: 3rem;
    margin-bottom: 3rem;
}
.mt-0 {
    margin-top: 0;
}
.mt-1 {
    margin-top: 0.25rem;
}
.mt-2 {
    margin-top: 0.5rem;
}
.mt-3 {
    margin-top: 0.75rem;
}
.mt-4 {
    margin-top: 1rem;
}
.mt-5 {
    margin-top: 1.25rem;
}
.mt-6 {
    margin-top: 1.5rem;
}
.mt-8 {
    margin-top: 2rem;
}
.mt-10 {
    margin-top: 2.5rem;
}
.mt-12 {
    margin-top: 3rem;
}
.mt-16 {
    margin-top: 4rem;
}
.mt-20 {
    margin-top: 5rem;
}
.mt-24 {
    margin-top: 6rem;
}
.mb-0 {
    margin-bottom: 0;
}
.mb-1 {
    margin-bottom: 0.25rem;
}
.mb-2 {
    margin-bottom: 0.5rem;
}
.mb-3 {
    margin-bottom: 0.75rem;
}
.mb-4 {
    margin-bottom: 1rem;
}
.mb-5 {
    margin-bottom: 1.25rem;
}
.mb-6 {
    margin-bottom: 1.5rem;
}
.mb-8 {
    margin-bottom: 2rem;
}
.mb-10 {
    margin-bottom: 2.5rem;
}
.mb-12 {
    margin-bottom: 3rem;
}
.mb-16 {
    margin-bottom: 4rem;
}
.mb-20 {
    margin-bottom: 5rem;
}
.mb-24 {
    margin-bottom: 6rem;
}
.ml-0 {
    margin-left: 0;
}
.ml-1 {
    margin-left: 0.25rem;
}
.ml-2 {
    margin-left: 0.5rem;
}
.ml-3 {
    margin-left: 0.75rem;
}
.ml-4 {
    margin-left: 1rem;
}
.ml-6 {
    margin-left: 1.5rem;
}
.ml-8 {
    margin-left: 2rem;
}
.ml-auto {
    margin-left: auto;
}
.mr-0 {
    margin-right: 0;
}
.mr-1 {
    margin-right: 0.25rem;
}
.mr-2 {
    margin-right: 0.5rem;
}
.mr-3 {
    margin-right: 0.75rem;
}
.mr-4 {
    margin-right: 1rem;
}
.mr-6 {
    margin-right: 1.5rem;
}
.mr-8 {
    margin-right: 2rem;
}
.mr-auto {
    margin-right: auto;
}

.p-0 {
    padding: 0;
}
.p-1 {
    padding: 0.25rem;
}
.p-2 {
    padding: 0.5rem;
}
.p-3 {
    padding: 0.75rem;
}
.p-4 {
    padding: 1rem;
}
.p-5 {
    padding: 1.25rem;
}
.p-6 {
    padding: 1.5rem;
}
.p-8 {
    padding: 2rem;
}
.p-10 {
    padding: 2.5rem;
}
.p-12 {
    padding: 3rem;
}
.p-16 {
    padding: 4rem;
}
.px-0 {
    padding-left: 0;
    padding-right: 0;
}
.px-1 {
    padding-left: 0.25rem;
    padding-right: 0.25rem;
}
.px-2 {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}
.px-3 {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
}
.px-4 {
    padding-left: 1rem;
    padding-right: 1rem;
}
.px-5 {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
}
.px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}
.px-8 {
    padding-left: 2rem;
    padding-right: 2rem;
}
.px-10 {
    padding-left: 2.5rem;
    padding-right: 2.5rem;
}
.px-12 {
    padding-left: 3rem;
    padding-right: 3rem;
}
.py-0 {
    padding-top: 0;
    padding-bottom: 0;
}
.py-1 {
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
}
.py-2 {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}
.py-3 {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}
.py-4 {
    padding-top: 1rem;
    padding-bottom: 1rem;
}
.py-5 {
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
}
.py-6 {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
}
.py-8 {
    padding-top: 2rem;
    padding-bottom: 2rem;
}
.py-10 {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
}
.py-12 {
    padding-top: 3rem;
    padding-bottom: 3rem;
}
.py-16 {
    padding-top: 4rem;
    padding-bottom: 4rem;
}
.py-20 {
    padding-top: 5rem;
    padding-bottom: 5rem;
}
.py-24 {
    padding-top: 6rem;
    padding-bottom: 6rem;
}
.pt-2 {
    padding-top: 0.5rem;
}
.pt-4 {
    padding-top: 1rem;
}
.pt-6 {
    padding-top: 1.5rem;
}
.pt-8 {
    padding-top: 2rem;
}
.pt-12 {
    padding-top: 3rem;
}
.pt-16 {
    padding-top: 4rem;
}
.pt-20 {
    padding-top: 5rem;
}
.pt-24 {
    padding-top: 6rem;
}
.pb-2 {
    padding-bottom: 0.5rem;
}
.pb-4 {
    padding-bottom: 1rem;
}
.pb-6 {
    padding-bottom: 1.5rem;
}
.pb-8 {
    padding-bottom: 2rem;
}
.pb-12 {
    padding-bottom: 3rem;
}
.pb-16 {
    padding-bottom: 4rem;
}
.pb-20 {
    padding-bottom: 5rem;
}
.pb-24 {
    padding-bottom: 6rem;
}
.pl-2 {
    padding-left: 0.5rem;
}
.pl-4 {
    padding-left: 1rem;
}
.pl-6 {
    padding-left: 1.5rem;
}
.pl-8 {
    padding-left: 2rem;
}
.pr-2 {
    padding-right: 0.5rem;
}
.pr-4 {
    padding-right: 1rem;
}
.pr-6 {
    padding-right: 1.5rem;
}
.pr-8 {
    padding-right: 2rem;
}

/* Typography */
.font-serif {
    font-family: "Playfair Display", Georgia, "Times New Roman", serif;
}
.font-sans {
    font-family: "Roboto Condensed", Helvetica, Arial, Lucida, sans-serif;
}
.font-script {
    font-family: "Alex Brush", handwriting, cursive;
}
.font-sc {
    font-family: "Playfair Display SC", "Playfair Display", Georgia, serif;
}
.text-xs {
    font-size: 0.75rem;
    line-height: 1rem;
}
.text-sm {
    font-size: 0.875rem;
    line-height: 1.25rem;
}
.text-base {
    font-size: 1rem;
    line-height: 1.5rem;
}
.text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem;
}
.text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem;
}
.text-2xl {
    font-size: 1.5rem;
    line-height: 2rem;
}
.text-3xl {
    font-size: 1.875rem;
    line-height: 2.25rem;
}
.text-4xl {
    font-size: 2.25rem;
    line-height: 2.5rem;
}
.text-5xl {
    font-size: 3rem;
    line-height: 1.1;
}
.text-6xl {
    font-size: 3.75rem;
    line-height: 1;
}
.text-7xl {
    font-size: 4.5rem;
    line-height: 1;
}
.text-8xl {
    font-size: 6rem;
    line-height: 1;
}
.font-light {
    font-weight: 300;
}
.font-normal {
    font-weight: 400;
}
.font-medium {
    font-weight: 500;
}
.font-semibold {
    font-weight: 600;
}
.font-bold {
    font-weight: 700;
}
.italic {
    font-style: italic;
}
.not-italic {
    font-style: normal;
}
.uppercase {
    text-transform: uppercase;
}
.lowercase {
    text-transform: lowercase;
}
.capitalize {
    text-transform: capitalize;
}
.normal-case {
    text-transform: none;
}
.text-left {
    text-align: left;
}
.text-center {
    text-align: center;
}
.text-right {
    text-align: right;
}
.text-justify {
    text-align: justify;
}
.underline {
    text-decoration: underline;
}
.no-underline {
    text-decoration: none;
}
.line-through {
    text-decoration: line-through;
}
.leading-none {
    line-height: 1;
}
.leading-tight {
    line-height: 1.25;
}
.leading-snug {
    line-height: 1.375;
}
.leading-normal {
    line-height: 1.5;
}
.leading-relaxed {
    line-height: 1.625;
}
.leading-loose {
    line-height: 2;
}
.tracking-tight {
    letter-spacing: -0.025em;
}
.tracking-normal {
    letter-spacing: 0;
}
.tracking-wide {
    letter-spacing: 0.025em;
}
.tracking-wider {
    letter-spacing: 0.05em;
}
.tracking-widest {
    letter-spacing: 0.1em;
}
.whitespace-nowrap {
    white-space: nowrap;
}
.whitespace-pre-line {
    white-space: pre-line;
}

/* Colors */
.text-white {
    color: #fff;
}
.text-black {
    color: #000;
}
.text-gray-50 {
    color: #f9fafb;
}
.text-gray-100 {
    color: #f3f4f6;
}
.text-gray-200 {
    color: #e5e7eb;
}
.text-gray-300 {
    color: #d1d5db;
}
.text-gray-400 {
    color: #9ca3af;
}
.text-gray-500 {
    color: #6b7280;
}
.text-gray-600 {
    color: #4b5563;
}
.text-gray-700 {
    color: #374151;
}
.text-gray-800 {
    color: #1f2937;
}
.text-gray-900 {
    color: #111827;
}
.text-red-500 {
    color: #ef4444;
}
.text-red-600 {
    color: #dc2626;
}
.text-green-500 {
    color: #22c55e;
}
.text-green-600 {
    color: #16a34a;
}
.text-yellow-500 {
    color: #eab308;
}
.text-blue-500 {
    color: #3b82f6;
}
.text-blue-600 {
    color: #2563eb;
}
.text-katha-gold {
    color: #c9b079;
}
.text-katha-dark {
    color: #1a1a1a;
}
.text-katha-body {
    color: #2c2c2c;
}
.text-katha-muted {
    color: #6b6b6b;
}

.bg-white {
    background-color: #fff;
}
.bg-black {
    background-color: #000;
}
.bg-transparent {
    background-color: transparent;
}
.bg-gray-50 {
    background-color: #f9fafb;
}
.bg-gray-100 {
    background-color: #f3f4f6;
}
.bg-gray-200 {
    background-color: #e5e7eb;
}
.bg-gray-300 {
    background-color: #d1d5db;
}
.bg-gray-400 {
    background-color: #9ca3af;
}
.bg-gray-500 {
    background-color: #6b7280;
}
.bg-gray-600 {
    background-color: #4b5563;
}
.bg-gray-700 {
    background-color: #374151;
}
.bg-gray-800 {
    background-color: #1f2937;
}
.bg-gray-900 {
    background-color: #111827;
}
.bg-red-500 {
    background-color: #ef4444;
}
.bg-red-600 {
    background-color: #dc2626;
}
.bg-green-500 {
    background-color: #22c55e;
}
.bg-green-600 {
    background-color: #16a34a;
}
.bg-blue-500 {
    background-color: #3b82f6;
}
.bg-blue-600 {
    background-color: #2563eb;
}
.bg-yellow-500 {
    background-color: #eab308;
}
.bg-katha-gold {
    background-color: #c9b079;
}
.bg-katha-light {
    background-color: #efebe5;
}
.bg-katha-dark {
    background-color: #1a1a1a;
}
.bg-katha-gray {
    background-color: #aaa;
}

.border {
    border-width: 1px;
}
.border-0 {
    border-width: 0;
}
.border-2 {
    border-width: 2px;
}
.border-4 {
    border-width: 4px;
}
.border-t {
    border-top-width: 1px;
}
.border-r {
    border-right-width: 1px;
}
.border-b {
    border-bottom-width: 1px;
}
.border-l {
    border-left-width: 1px;
}
.border-gray-100 {
    border-color: #f3f4f6;
}
.border-gray-200 {
    border-color: #e5e7eb;
}
.border-gray-300 {
    border-color: #d1d5db;
}
.border-gray-400 {
    border-color: #9ca3af;
}
.border-gray-500 {
    border-color: #6b7280;
}
.border-gray-600 {
    border-color: #4b5563;
}
.border-gray-700 {
    border-color: #374151;
}
.border-gray-800 {
    border-color: #1f2937;
}
.border-gray-900 {
    border-color: #111827;
}
.border-white {
    border-color: #fff;
}
.border-black {
    border-color: #000;
}
.border-katha-gold {
    border-color: #c9b079;
}
.border-katha-dark {
    border-color: #1a1a1a;
}
.border-transparent {
    border-color: transparent;
}
.border-solid {
    border-style: solid;
}
.border-dashed {
    border-style: dashed;
}

/* Border radius */
.rounded-none {
    border-radius: 0;
}
.rounded-sm {
    border-radius: 0.125rem;
}
.rounded {
    border-radius: 0.25rem;
}
.rounded-md {
    border-radius: 0.375rem;
}
.rounded-lg {
    border-radius: 0.5rem;
}
.rounded-xl {
    border-radius: 0.75rem;
}
.rounded-2xl {
    border-radius: 1rem;
}
.rounded-3xl {
    border-radius: 1.5rem;
}
.rounded-full {
    border-radius: 9999px;
}

/* Shadow */
.shadow-none {
    box-shadow: 0 0 #0000;
}
.shadow-sm {
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}
.shadow {
    box-shadow:
        0 1px 3px 0 rgba(0, 0, 0, 0.1),
        0 1px 2px -1px rgba(0, 0, 0, 0.1);
}
.shadow-md {
    box-shadow:
        0 4px 6px -1px rgba(0, 0, 0, 0.1),
        0 2px 4px -2px rgba(0, 0, 0, 0.1);
}
.shadow-lg {
    box-shadow:
        0 10px 15px -3px rgba(0, 0, 0, 0.1),
        0 4px 6px -4px rgba(0, 0, 0, 0.1);
}
.shadow-xl {
    box-shadow:
        0 20px 25px -5px rgba(0, 0, 0, 0.1),
        0 8px 10px -6px rgba(0, 0, 0, 0.1);
}
.shadow-2xl {
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}

/* Overflow */
.overflow-hidden {
    overflow: hidden;
}
.overflow-auto {
    overflow: auto;
}
.overflow-scroll {
    overflow: scroll;
}
.overflow-visible {
    overflow: visible;
}
.overflow-x-auto {
    overflow-x: auto;
}
.overflow-y-auto {
    overflow-y: auto;
}
.overflow-x-hidden {
    overflow-x: hidden;
}
.overflow-y-hidden {
    overflow-y: hidden;
}

/* Object */
.object-contain {
    object-fit: contain;
}
.object-cover {
    object-fit: cover;
}
.object-fill {
    object-fit: fill;
}
.object-none {
    object-fit: none;
}
.object-center {
    object-position: center;
}
.object-top {
    object-position: top;
}
.object-bottom {
    object-position: bottom;
}

/* Cursor */
.cursor-pointer {
    cursor: pointer;
}
.cursor-default {
    cursor: default;
}
.cursor-not-allowed {
    cursor: not-allowed;
}

/* Opacity */
.opacity-0 {
    opacity: 0;
}
.opacity-25 {
    opacity: 0.25;
}
.opacity-50 {
    opacity: 0.5;
}
.opacity-75 {
    opacity: 0.75;
}
.opacity-90 {
    opacity: 0.9;
}
.opacity-100 {
    opacity: 1;
}

/* Transitions */
.transition {
    transition-property:
        color, background-color, border-color, text-decoration-color, fill,
        stroke, opacity, box-shadow, transform, filter, backdrop-filter;
    transition-duration: 150ms;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.transition-all {
    transition-property: all;
    transition-duration: 150ms;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.transition-colors {
    transition-property: color, background-color, border-color;
    transition-duration: 150ms;
}
.transition-opacity {
    transition-property: opacity;
    transition-duration: 150ms;
}
.transition-transform {
    transition-property: transform;
    transition-duration: 150ms;
}
.duration-100 {
    transition-duration: 100ms;
}
.duration-200 {
    transition-duration: 200ms;
}
.duration-300 {
    transition-duration: 300ms;
}
.duration-500 {
    transition-duration: 500ms;
}
.duration-700 {
    transition-duration: 700ms;
}
.duration-1000 {
    transition-duration: 1000ms;
}
.ease-in {
    transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
}
.ease-out {
    transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
.ease-in-out {
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

/* Transforms */
.transform {
    transform: translate(var(--tw-translate-x, 0), var(--tw-translate-y, 0))
        rotate(var(--tw-rotate, 0)) skewX(var(--tw-skew-x, 0))
        skewY(var(--tw-skew-y, 0)) scaleX(var(--tw-scale-x, 1))
        scaleY(var(--tw-scale-y, 1));
}
.-translate-x-1\/2 {
    transform: translateX(-50%);
}
.-translate-y-1\/2 {
    transform: translateY(-50%);
}
.-translate-x-y-1\/2 {
    transform: translate(-50%, -50%);
}
.scale-105 {
    transform: scale(1.05);
}
.scale-110 {
    transform: scale(1.1);
}
.rotate-180 {
    transform: rotate(180deg);
}

/* Hover utilities */
.hover\:bg-gray-100:hover {
    background-color: #f3f4f6;
}
.hover\:bg-gray-200:hover {
    background-color: #e5e7eb;
}
.hover\:bg-gray-700:hover {
    background-color: #374151;
}
.hover\:bg-gray-800:hover {
    background-color: #1f2937;
}
.hover\:bg-gray-900:hover {
    background-color: #111827;
}
.hover\:bg-katha-gold:hover {
    background-color: #c9b079;
}
.hover\:bg-katha-dark:hover {
    background-color: #1a1a1a;
}
.hover\:bg-white:hover {
    background-color: #fff;
}
.hover\:bg-black:hover {
    background-color: #000;
}
.hover\:text-white:hover {
    color: #fff;
}
.hover\:text-black:hover {
    color: #000;
}
.hover\:text-katha-gold:hover {
    color: #c9b079;
}
.hover\:text-katha-dark:hover {
    color: #1a1a1a;
}
.hover\:text-gray-900:hover {
    color: #111827;
}
.hover\:text-gray-700:hover {
    color: #374151;
}
.hover\:underline:hover {
    text-decoration: underline;
}
.hover\:no-underline:hover {
    text-decoration: none;
}
.hover\:scale-105:hover {
    transform: scale(1.05);
}
.hover\:scale-110:hover {
    transform: scale(1.1);
}
.hover\:opacity-100:hover {
    opacity: 1;
}
.hover\:opacity-90:hover {
    opacity: 0.9;
}
.hover\:opacity-75:hover {
    opacity: 0.75;
}
.hover\:shadow-lg:hover {
    box-shadow:
        0 10px 15px -3px rgba(0, 0, 0, 0.1),
        0 4px 6px -4px rgba(0, 0, 0, 0.1);
}
.hover\:border-katha-gold:hover {
    border-color: #c9b079;
}
.hover\:border-katha-dark:hover {
    border-color: #1a1a1a;
}

/* Focus utilities */
.focus\:outline-none:focus {
    outline: 2px solid transparent;
    outline-offset: 2px;
}
.focus\:ring:focus {
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.5);
}
.focus\:ring-katha-gold:focus {
    box-shadow: 0 0 0 3px rgba(201, 176, 121, 0.4);
}
.focus\:border-katha-gold:focus {
    border-color: #c9b079;
}

/* Group hover */
.group:hover .group-hover\:opacity-100 {
    opacity: 1;
}
.group:hover .group-hover\:scale-105 {
    transform: scale(1.05);
}
.group:hover .group-hover\:scale-110 {
    transform: scale(1.1);
}
.group:hover .group-hover\:text-katha-gold {
    color: #c9b079;
}
.group:hover .group-hover\:underline {
    text-decoration: underline;
}
.group:hover .group-hover\:bg-katha-gold {
    background-color: #c9b079;
}

/* Responsive */
@media (min-width: 640px) {
    .sm\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .sm\:grid-cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .sm\:grid-cols-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
    .sm\:flex-row {
        flex-direction: row;
    }
    .sm\:block {
        display: block;
    }
    .sm\:hidden {
        display: none;
    }
    .sm\:text-base {
        font-size: 1rem;
        line-height: 1.5rem;
    }
    .sm\:text-lg {
        font-size: 1.125rem;
        line-height: 1.75rem;
    }
    .sm\:text-xl {
        font-size: 1.25rem;
        line-height: 1.75rem;
    }
    .sm\:text-2xl {
        font-size: 1.5rem;
        line-height: 2rem;
    }
    .sm\:text-3xl {
        font-size: 1.875rem;
        line-height: 2.25rem;
    }
    .sm\:text-4xl {
        font-size: 2.25rem;
        line-height: 2.5rem;
    }
    .sm\:text-5xl {
        font-size: 3rem;
        line-height: 1.1;
    }
    .sm\:px-6 {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
    .sm\:px-8 {
        padding-left: 2rem;
        padding-right: 2rem;
    }
    .sm\:py-12 {
        padding-top: 3rem;
        padding-bottom: 3rem;
    }
}
@media (min-width: 768px) {
    .md\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .md\:grid-cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .md\:grid-cols-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
    .md\:grid-cols-5 {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
    .md\:flex {
        display: flex;
    }
    .md\:flex-row {
        flex-direction: row;
    }
    .md\:block {
        display: block;
    }
    .md\:hidden {
        display: none;
    }
    .md\:inline {
        display: inline;
    }
    .md\:inline-block {
        display: inline-block;
    }
    .md\:w-1\/2 {
        width: 50%;
    }
    .md\:w-1\/3 {
        width: 33.333333%;
    }
    .md\:w-2\/3 {
        width: 66.666667%;
    }
    .md\:w-1\/4 {
        width: 25%;
    }
    .md\:w-3\/4 {
        width: 75%;
    }
    .md\:text-base {
        font-size: 1rem;
        line-height: 1.5rem;
    }
    .md\:text-lg {
        font-size: 1.125rem;
        line-height: 1.75rem;
    }
    .md\:text-xl {
        font-size: 1.25rem;
        line-height: 1.75rem;
    }
    .md\:text-2xl {
        font-size: 1.5rem;
        line-height: 2rem;
    }
    .md\:text-3xl {
        font-size: 1.875rem;
        line-height: 2.25rem;
    }
    .md\:text-4xl {
        font-size: 2.25rem;
        line-height: 2.5rem;
    }
    .md\:text-5xl {
        font-size: 3rem;
        line-height: 1.1;
    }
    .md\:text-6xl {
        font-size: 3.75rem;
        line-height: 1;
    }
    .md\:text-7xl {
        font-size: 4.5rem;
        line-height: 1;
    }
    .md\:text-8xl {
        font-size: 6rem;
        line-height: 1;
    }
    .md\:px-8 {
        padding-left: 2rem;
        padding-right: 2rem;
    }
    .md\:px-12 {
        padding-left: 3rem;
        padding-right: 3rem;
    }
    .md\:py-16 {
        padding-top: 4rem;
        padding-bottom: 4rem;
    }
    .md\:py-20 {
        padding-top: 5rem;
        padding-bottom: 5rem;
    }
    .md\:py-24 {
        padding-top: 6rem;
        padding-bottom: 6rem;
    }
    .md\:h-96 {
        height: 24rem;
    }
    .md\:gap-8 {
        gap: 2rem;
    }
    .md\:gap-12 {
        gap: 3rem;
    }
}
@media (min-width: 1024px) {
    .lg\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .lg\:grid-cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .lg\:grid-cols-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
    .lg\:grid-cols-5 {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
    .lg\:grid-cols-6 {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
    .lg\:flex {
        display: flex;
    }
    .lg\:hidden {
        display: none;
    }
    .lg\:block {
        display: block;
    }
    .lg\:inline {
        display: inline;
    }
    .lg\:inline-block {
        display: inline-block;
    }
    .lg\:text-lg {
        font-size: 1.125rem;
        line-height: 1.75rem;
    }
    .lg\:text-xl {
        font-size: 1.25rem;
        line-height: 1.75rem;
    }
    .lg\:text-2xl {
        font-size: 1.5rem;
        line-height: 2rem;
    }
    .lg\:text-3xl {
        font-size: 1.875rem;
        line-height: 2.25rem;
    }
    .lg\:text-4xl {
        font-size: 2.25rem;
        line-height: 2.5rem;
    }
    .lg\:text-5xl {
        font-size: 3rem;
        line-height: 1.1;
    }
    .lg\:text-6xl {
        font-size: 3.75rem;
        line-height: 1;
    }
    .lg\:text-7xl {
        font-size: 4.5rem;
        line-height: 1;
    }
    .lg\:text-8xl {
        font-size: 6rem;
        line-height: 1;
    }
    .lg\:w-1\/2 {
        width: 50%;
    }
    .lg\:w-1\/3 {
        width: 33.333333%;
    }
    .lg\:w-2\/3 {
        width: 66.666667%;
    }
    .lg\:w-1\/4 {
        width: 25%;
    }
    .lg\:w-3\/4 {
        width: 75%;
    }
    .lg\:px-12 {
        padding-left: 3rem;
        padding-right: 3rem;
    }
    .lg\:px-16 {
        padding-left: 4rem;
        padding-right: 4rem;
    }
    .lg\:py-20 {
        padding-top: 5rem;
        padding-bottom: 5rem;
    }
    .lg\:py-24 {
        padding-top: 6rem;
        padding-bottom: 6rem;
    }
}

/* ------------------- Custom site components ------------------- */
:root {
    --katha-gold: #c9b079;
    --katha-gold-soft: #d8c89a;
    --katha-dark: #1a1a1a;
    --katha-body: #2c2c2c;
    --katha-muted: #6b6b6b;
    --katha-light: #efebe5;
    --katha-border: #e5e0d8;
}

body {
    font-family: "Roboto Condensed", Helvetica, Arial, Lucida, sans-serif;
    color: #666;
    background: #fff;
    font-size: 14px;
    line-height: 1.7em;
    font-weight: 500;
}
h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: "Playfair Display", Georgia, "Times New Roman", serif;
    color: #333;
    font-weight: 500;
    line-height: 1em;
}

/* Header logo */
.katha-logo {
    font-family: "Cormorant Garamond", serif;
    display: flex;
    flex-direction: column;
    align-items: center;
    line-height: 1;
    color: #1a1a1a;
    text-align: center;
}
.katha-logo .lg-1 {
    font-size: 34px;
    font-weight: 500;
    letter-spacing: 1px;
    font-style: italic;
    color: #1a1a1a;
}
.katha-logo .lg-2 {
    font-size: 18px;
    font-weight: 300;
    letter-spacing: 6px;
    color: #3a3a3a;
    margin-top: -4px;
    text-transform: none;
}
@media (min-width: 768px) {
    .katha-logo .lg-1 {
        font-size: 46px;
    }
    .katha-logo .lg-2 {
        font-size: 22px;
    }
}
.katha-logo-img {
    height: auto;
    width: auto;
    max-height: 50px;
    max-width: 130px;
    object-fit: contain;
    display: block;
}
@media (min-width: 768px) {
    .katha-logo-img {
        max-height: 62px;
        max-width: 160px;
    }
}
@media (min-width: 1024px) {
    .katha-logo-img {
        max-height: 70px;
        max-width: 180px;
    }
}

/* Main nav links — matches .et_pb_menu_1_tb_header.et_pb_menu ul li a:
   Playfair Display SC, 20px, #1B1918, ls 1px, uppercase */
.katha-nav-link {
    font-family: "Playfair Display SC", "Playfair Display", Georgia, serif;
    font-size: 16px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #1b1918;
    padding: 6px 14px;
    transition: opacity 0.4s ease;
    font-weight: 400;
    text-decoration: none;
}
@media (min-width: 768px) {
    .katha-nav-link {
        font-size: 18px;
    }
}
@media (min-width: 1024px) {
    .katha-nav-link {
        font-size: 20px;
    }
}
.katha-nav-link:hover {
    opacity: 0.7;
}
.katha-nav-link.active {
    color: #9E9E9E;
}

/* Header layout — logo centered + nav left/right */
.katha-header {
    background: #fff;
    padding: 18px 0;
    border-bottom: none;
}
@media (min-width: 768px) {
    .katha-header {
        padding: 24px 0;
    }
}
.katha-header-inner {
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
    gap: 24px;
    min-height: 70px;
}
@media (min-width: 1024px) {
    .katha-header-inner {
        min-height: 80px;
        gap: 40px;
    }
}
.katha-logo {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    flex: 0 0 auto;
    padding: 0 8px;
}
.katha-nav-left {
    justify-content: flex-end;
}
.katha-nav-right {
    justify-content: flex-start;
}
.katha-nav {
    display: flex;
    align-items: center;
    gap: 28px;
    flex: 1 1 0;
}
@media (min-width: 1024px) {
    .katha-nav {
        gap: 18px;
    }
}
.katha-burger {
    display: none;
    background: transparent;
    border: 0;
    color: #1b1918;
    font-size: 28px;
    cursor: pointer;
    padding: 0 12px;
}
.katha-mobile-menu {
    display: none;
    flex-direction: column;
    gap: 12px;
    padding-top: 18px;
    border-top: 1px solid #eee;
    margin-top: 12px;
}
.katha-mobile-menu.hidden {
    display: none;
}
.katha-mobile-menu .katha-nav-link {
    display: block;
    padding: 8px 0;
}

@media (max-width: 767px) {
    .katha-header-inner {
        justify-content: space-between;
        gap: 8px;
        min-height: 60px;
    }
    .katha-nav-left,
    .katha-nav-right {
        display: none;
    }
    .katha-logo {
        align-items: flex-start;
        padding: 0;
        flex: 0 0 auto;
    }
    .katha-burger {
        display: block;
        flex: 0 0 auto;
    }
    .katha-mobile-menu:not(.hidden) {
        display: flex;
    }
}

/* Headings */
/* Matches: .et_pb_text_6 h4 / .et_pb_text_11 h4 — Alex Brush 90px, #d7cbb7 */
.h-script {
    font-family: "Alex Brush", handwriting, cursive;
    color: #d7cbb7;
    font-size: 46px;
    line-height: 1;
    font-weight: 400;
}
@media (min-width: 768px) {
    .h-script {
        font-size: 70px;
    }
}
@media (min-width: 981px) {
    .h-script {
        font-size: 90px;
    }
}

/* Matches: .et_pb_text_5 h2 — Playfair Display 56px / mobile 42px / phone 32px */
.h-display {
    font-family: "Playfair Display", Georgia, "Times New Roman", serif;
    font-size: 32px;
    font-weight: 500;
    color: #000;
    line-height: 1em;
}
@media (min-width: 768px) {
    .h-display {
        font-size: 42px;
    }
}
@media (min-width: 981px) {
    .h-display {
        font-size: 56px;
    }
}

/* Matches: .et_pb_text_16 / .et_pb_text_18 — Playfair Display 25px */
.h-section {
    font-family: "Playfair Display", Georgia, "Times New Roman", serif;
    font-size: 22px;
    font-weight: 500;
    color: #000;
    line-height: 1.2;
}
@media (min-width: 981px) {
    .h-section {
        font-size: 25px;
    }
}

/* Matches: .et_pb_text_9 / .et_pb_text_12 — Alex Brush 42–60px, #d7cbb7 */
.eyebrow {
    font-family: "Alex Brush", handwriting, cursive;
    color: #d7cbb7;
    font-size: 32px;
    font-weight: 400;
    line-height: 1;
}
@media (min-width: 768px) {
    .eyebrow {
        font-size: 42px;
    }
}

/* Body copy — matches .et_pb_text_14 (19px) / .et_pb_text_10 (21px) Roboto Condensed light */
.body-copy {
    font-family: "Roboto Condensed", Helvetica, Arial, sans-serif;
    font-size: 17px;
    color: #666;
    line-height: 1.6em;
    font-weight: 300;
}
@media (min-width: 768px) {
    .body-copy {
        font-size: 19px;
    }
}
.body-copy-lg {
    font-family: "Roboto Condensed", Helvetica, Arial, sans-serif;
    font-size: 18px;
    color: #666;
    line-height: 1.6em;
    font-weight: 300;
}
@media (min-width: 768px) {
    .body-copy-lg {
        font-size: 21px;
    }
}
.body-copy-sm {
    font-family: "Roboto Condensed", Helvetica, Arial, sans-serif;
    font-size: 15px;
    color: #595959;
    line-height: 2.2em;
    font-weight: 300;
}
@media (min-width: 768px) {
    .body-copy-sm {
        line-height: 2.6em;
    }
}

/* Buttons — match Divi: 1px border #1B1918, Roboto Condensed 18px, 16/45/15/45 px padding, ls 2px */
.btn-katha {
    display: inline-block;
    padding: 16px 45px 15px 45px;
    border: 1px solid #1b1918;
    background: transparent;
    color: #1b1918;
    font-family: "Roboto Condensed", Helvetica, Arial, sans-serif;
    font-size: 16px;
    letter-spacing: 2px;
    font-weight: 500;
    text-decoration: none;
    border-radius: 0;
    transition:
        color 300ms ease,
        background-color 300ms ease,
        border 300ms ease;
}
@media (min-width: 768px) {
    .btn-katha {
        font-size: 18px;
    }
}
.btn-katha:hover {
    background: #848585;
    color: #fff;
    border-color: #848585;
}
.btn-katha-dark {
    display: inline-block;
    padding: 16px 50px 15px 50px;
    border: 1px solid #1b1918;
    background: #1b1918;
    color: #fff;
    font-family: "Roboto Condensed", Helvetica, Arial, sans-serif;
    font-size: 16px;
    letter-spacing: 2px;
    font-weight: 500;
    text-decoration: none;
    border-radius: 0;
    transition: all 300ms ease;
}
.btn-katha-dark:hover {
    background: #848585;
    border-color: #848585;
}
.btn-katha-light {
    display: inline-block;
    padding: 16px 50px 15px 50px;
    border: 1px solid #fff;
    background: transparent;
    color: #fff !important;
    font-family: "Roboto Condensed", Helvetica, Arial, sans-serif;
    font-size: 16px;
    letter-spacing: 2px;
    font-weight: 500;
    text-decoration: none;
    border-radius: 0;
    transition: all 300ms ease;
}
.btn-katha-light:hover {
    background: #848585;
    border-color: #848585;
}
.btn-katha-gray {
    display: inline-block;
    padding: 14px 30px;
    background: #888;
    color: #fff;
    font-family: "Cormorant Garamond", serif;
    font-size: 16px;
    letter-spacing: 1px;
    border: none;
    cursor: pointer;
    transition: all 0.2s ease;
}
.btn-katha-gray:hover {
    background: #666;
}

/* Product card */
.product-card {
    display: block;
    text-decoration: none;
    color: inherit;
}
.product-card .product-img {
    aspect-ratio: 1/1;
    overflow: hidden;
    background: #f5f3ef;
}
.product-card .product-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}
.product-card:hover .product-img img {
    transform: scale(1.05);
}
.product-card .product-name {
    font-family: "Cormorant Garamond", serif;
    font-size: 17px;
    font-weight: 500;
    color: #1a1a1a;
    padding: 14px 4px 6px 4px;
    border-bottom: 1px solid #e5e0d8;
}
.product-card:hover .product-name {
    color: #c9b079;
}

/* Filter dropdown style */
.katha-select {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid #cfcfcf;
    background: #fff;
    font-family: "Cormorant Garamond", serif;
    font-size: 15px;
    color: #1a1a1a;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%23666' d='M6 8L0 0h12z'/></svg>");
    background-repeat: no-repeat;
    background-position: right 14px center;
}

.katha-input {
    width: 100%;
    padding: 14px 18px;
    border: 1px solid #d3d3d3;
    background: #f3f3f3;
    font-family: "Cormorant Garamond", serif;
    font-size: 16px;
    color: #1a1a1a;
}
.katha-input::placeholder {
    color: #5a5a5a;
}
.katha-input:focus {
    outline: none;
    border-color: #c9b079;
    background: #fff;
}
.katha-textarea {
    width: 100%;
    padding: 14px 18px;
    border: 1px solid #d3d3d3;
    background: #f3f3f3;
    font-family: "Cormorant Garamond", serif;
    font-size: 16px;
    color: #1a1a1a;
    min-height: 240px;
    resize: vertical;
}
.katha-textarea::placeholder {
    color: #5a5a5a;
}

/* Hero overlay text — matches .et_pb_text_0 h2: Playfair 62px white centered (phone 32 / mobile 42) */
.hero-title {
    font-family: "Playfair Display", Georgia, "Times New Roman", serif;
    color: #fff;
    font-size: 32px;
    font-weight: 500;
    line-height: 1em;
    letter-spacing: 0.5px;
    text-shadow: 0 2px 16px rgba(0, 0, 0, 0.4);
    text-align: center;
}
@media (min-width: 768px) {
    .hero-title {
        font-size: 42px;
    }
}
@media (min-width: 981px) {
    .hero-title {
        font-size: 62px;
    }
}

/* Page banner title overlay */
.banner-title {
    font-family: "Playfair Display", Georgia, "Times New Roman", serif;
    font-size: 32px;
    font-weight: 500;
    color: #1a1a1a;
    background: rgba(255, 255, 255, 0.85);
    padding: 14px 50px;
    display: inline-block;
    line-height: 1em;
}
@media (min-width: 768px) {
    .banner-title {
        font-size: 48px;
        padding: 18px 80px;
    }
}

/* Brand quote block — matches .et_pb_text_11 h4: Alex Brush 90px (mobile 70 / phone 38), #d7cbb7, right-aligned */
.brand-quote {
    font-family: "Alex Brush", handwriting, cursive;
    font-size: 38px;
    color: #d7cbb7;
    text-align: right;
    line-height: 0.9em;
    font-weight: 400;
}
@media (min-width: 768px) {
    .brand-quote {
        font-size: 70px;
    }
}
@media (min-width: 981px) {
    .brand-quote {
        font-size: 90px;
    }
}

/* KL initials icon */
.kl-icon {
    font-family: "Cormorant Garamond", serif;
    font-weight: 700;
    color: #1a1a1a;
    font-size: 38px;
    line-height: 1;
    letter-spacing: -2px;
    display: inline-block;
}
.kl-icon .k {
}
.kl-icon .l {
    display: inline-block;
    margin-left: -6px;
    color: #888;
}

/* Color swatch button */
.swatch {
    width: 50px;
    height: 50px;
    border: 1px solid #c9b079;
    background-size: cover;
    background-position: center;
    cursor: pointer;
    transition: transform 0.2s ease;
}
.swatch:hover {
    transform: scale(1.06);
}

/* Footer — matches Divi .et_pb_section_0_tb_footer:
   bg #1B1918, padding 140px 0, 20px white border left/right */
.footer {
    background: #1b1918;
    color: #fff;
    padding: 80px 0 0 0;
    border-left: 20px solid #fff;
    border-right: 20px solid #fff;
}
@media (min-width: 768px) {
    .footer {
        padding: 140px 0 0 0;
    }
}
@media (max-width: 767px) {
    .footer {
        border-left-width: 10px;
        border-right-width: 10px;
    }
}
.footer-brand {
    font-family: "Playfair Display SC", "Playfair Display", Georgia, serif;
    font-size: 28px;
    color: #fff;
    font-weight: 400;
    line-height: 0.7em;
}
@media (min-width: 768px) {
    .footer-brand {
        font-size: 34px;
    }
}
.footer-tag {
    font-family: "Roboto Condensed", Helvetica, Arial, sans-serif;
    color: #999;
    font-size: 16px;
    margin-top: 6px;
    font-weight: 300;
    line-height: 1.7em;
    max-width: 507px;
}
@media (min-width: 768px) {
    .footer-tag {
        font-size: 18px;
    }
}
.footer-link {
    display: inline-block;
    color: #fff !important;
    text-decoration: underline;
    letter-spacing: 3px;
    font-size: 13px;
    text-transform: uppercase;
    font-family: "Roboto Condensed", Helvetica, Arial, sans-serif;
    line-height: 1em;
    margin-top: 30px;
}
.footer-link:hover {
    color: #c9b079 !important;
}
.footer-copy {
    color: #fff;
    font-size: 14px;
    text-align: center;
    padding: 30px 0 30px 0;
    font-family: "Roboto Condensed", Helvetica, Arial, sans-serif;
    font-weight: 300;
}
@media (min-width: 768px) {
    .footer-copy {
        padding: 50px 0 30px 0;
    }
}
.footer-grid {
    display: grid;
    grid-template-columns: 1fr;
    align-items: start;
    gap: 30px;
    padding-bottom: 60px;
}
@media (min-width: 768px) {
    .footer-grid {
        grid-template-columns: 2fr 1fr;
        gap: 60px;
        padding-bottom: 120px;
    }
}
.footer-right {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
}
@media (min-width: 768px) {
    .footer-right {
        justify-content: flex-end;
        padding-top: 20px;
    }
}

/* Admin */
.admin-shell {
    display: flex;
    min-height: 100vh;
    background: #f6f7fb;
}
.admin-sidebar {
    width: 240px;
    background: #1f2937;
    color: #e5e7eb;
    flex-shrink: 0;
    min-height: 100vh;
    padding: 0;
}
.admin-sidebar h1 {
    font-family: "Cormorant Garamond", serif;
    font-size: 20px;
    font-weight: 600;
    padding: 18px 24px;
    border-bottom: 1px solid #374151;
    color: #fff;
}
.admin-sidebar a {
    display: block;
    padding: 11px 24px;
    color: #cbd5e1;
    text-decoration: none;
    font-size: 14px;
    transition: all 0.2s;
}
.admin-sidebar a:hover {
    background: #374151;
    color: #fff;
}
.admin-sidebar a.active {
    background: #c9b079;
    color: #1a1a1a;
    font-weight: 600;
}
.admin-sb-group {
    padding: 18px 24px 6px 24px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: #94a3b8;
}
.admin-sb-badge {
    display: inline-block;
    background: #dc2626;
    color: #fff;
    border-radius: 12px;
    padding: 2px 9px;
    font-size: 11px;
    font-weight: 700;
    margin-left: 8px;
}
.admin-sb-logout {
    margin-top: 18px;
    border-top: 1px solid #374151;
}
.settings-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    border-bottom: 1px solid #e5e7eb;
    margin-bottom: 24px;
}
.settings-tab {
    display: inline-block;
    padding: 10px 18px;
    color: #4b5563;
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    transition: all .15s ease;
}
.settings-tab:hover {
    color: #1f2937;
    background: #f9fafb;
}
.settings-tab.active {
    color: #1f2937;
    border-bottom-color: #c9b079;
    background: #fff;
    font-weight: 600;
}
.admin-main {
    flex: 1;
    padding: 24px;
}
.admin-topbar {
    background: #fff;
    padding: 14px 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    border-radius: 6px;
    margin-bottom: 24px;
}
.admin-card {
    background: #fff;
    border-radius: 8px;
    padding: 24px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}
.admin-table {
    width: 100%;
    border-collapse: collapse;
}
.admin-table th {
    text-align: left;
    padding: 10px 12px;
    background: #f3f4f6;
    font-weight: 600;
    font-size: 13px;
    color: #374151;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.admin-table td {
    padding: 12px;
    border-top: 1px solid #e5e7eb;
    font-size: 14px;
    vertical-align: middle;
}
.admin-table tr:hover {
    background: #f9fafb;
}
.btn-primary {
    display: inline-block;
    padding: 9px 18px;
    background: #1f2937;
    color: #fff;
    border-radius: 6px;
    border: none;
    cursor: pointer;
    font-size: 14px;
    text-decoration: none;
    transition: background 0.2s;
}
.btn-primary:hover {
    background: #111827;
}
.btn-success {
    display: inline-block;
    padding: 9px 18px;
    background: #16a34a;
    color: #fff;
    border-radius: 6px;
    border: none;
    cursor: pointer;
    font-size: 14px;
    text-decoration: none;
}
.btn-success:hover {
    background: #15803d;
}
.btn-danger {
    display: inline-block;
    padding: 7px 14px;
    background: #dc2626;
    color: #fff;
    border-radius: 6px;
    border: none;
    cursor: pointer;
    font-size: 13px;
    text-decoration: none;
}
.btn-danger:hover {
    background: #b91c1c;
}

/* Icon action buttons (admin only) */
.admin-actions {
    display: inline-flex;
    gap: 6px;
    align-items: center;
    flex-wrap: nowrap;
}
.btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    background: #f9fafb;
    color: #374151;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    cursor: pointer;
    text-decoration: none;
    transition: all .15s ease;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 16px 16px;
    font-size: 0;
    line-height: 0;
    vertical-align: middle;
}
.btn-icon:hover {
    transform: translateY(-1px);
    box-shadow: 0 2px 4px rgba(0,0,0,0.08);
}
.btn-icon:focus-visible {
    outline: 2px solid #c9b079;
    outline-offset: 2px;
}
.btn-icon-view {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23374151' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'/><circle cx='12' cy='12' r='3'/></svg>");
}
.btn-icon-view:hover {
    background-color: #e5e7eb;
}
.btn-icon-edit {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231d4ed8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 20h9'/><path d='M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4 12.5-12.5z'/></svg>");
    background-color: #eff6ff;
    border-color: #bfdbfe;
}
.btn-icon-edit:hover {
    background-color: #dbeafe;
}
.btn-icon-del {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23b91c1c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='3 6 5 6 21 6'/><path d='M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6'/><path d='M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/><line x1='10' y1='11' x2='10' y2='17'/><line x1='14' y1='11' x2='14' y2='17'/></svg>");
    background-color: #fef2f2;
    border-color: #fecaca;
}
.btn-icon-del:hover {
    background-color: #fee2e2;
}
.btn-icon-ext {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23374151' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/><polyline points='15 3 21 3 21 9'/><line x1='10' y1='14' x2='21' y2='3'/></svg>");
}
.btn-icon-ext:hover {
    background-color: #e5e7eb;
}
.btn-icon-toggle {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2316a34a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>");
    background-color: #f0fdf4;
    border-color: #bbf7d0;
}
.btn-icon-toggle.is-off {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23dc2626' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><line x1='18' y1='6' x2='6' y2='18'/><line x1='6' y1='6' x2='18' y2='18'/></svg>");
    background-color: #fef2f2;
    border-color: #fecaca;
}
.btn-icon[disabled],
.btn-icon.is-disabled {
    opacity: 0.4;
    pointer-events: none;
}

/* Admin paginator (used in admin tables, e.g. products list) */
.admin-pagination {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid #e5e7eb;
}
.admin-pagination-info {
    font-size: 13px;
    color: #6b7280;
}
.admin-pagination-info strong {
    color: #1f2937;
    font-weight: 600;
}
.admin-pagination-nav {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 4px;
}
.admin-page-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    height: 34px;
    padding: 0 11px;
    background: #fff;
    color: #374151;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
    transition: all .15s ease;
    font-family: inherit;
    line-height: 1;
}
.admin-page-btn:hover {
    background: #f3f4f6;
    border-color: #d1d5db;
    color: #111827;
}
.admin-page-btn.is-current {
    background: #1f2937;
    border-color: #1f2937;
    color: #fff;
    cursor: default;
}
.admin-page-btn.is-disabled {
    color: #d1d5db;
    background: #fff;
    cursor: default;
    pointer-events: none;
}
.admin-page-ellipsis {
    display: inline-flex;
    align-items: center;
    padding: 0 6px;
    color: #9ca3af;
    font-size: 14px;
}
@media (max-width: 640px) {
    .admin-pagination {
        flex-direction: column;
        align-items: stretch;
    }
    .admin-pagination-info {
        text-align: center;
    }
    .admin-pagination-nav {
        justify-content: center;
    }
}

.btn-secondary {
    display: inline-block;
    padding: 7px 14px;
    background: #e5e7eb;
    color: #374151;
    border-radius: 6px;
    border: none;
    cursor: pointer;
    font-size: 13px;
    text-decoration: none;
}
.btn-secondary:hover {
    background: #d1d5db;
}
.form-label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: #374151;
    margin-bottom: 6px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.form-input {
    width: 100%;
    padding: 9px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    background: #fff;
    font-family: inherit;
}
.form-input:focus {
    outline: none;
    border-color: #c9b079;
    box-shadow: 0 0 0 3px rgba(201, 176, 121, 0.2);
}
.form-textarea {
    width: 100%;
    padding: 9px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    background: #fff;
    min-height: 120px;
    resize: vertical;
    font-family: inherit;
}
.form-select {
    width: 100%;
    padding: 9px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    background: #fff;
    font-family: inherit;
}
.form-row {
    margin-bottom: 16px;
}
.alert-success {
    background: #dcfce7;
    color: #166534;
    padding: 12px 16px;
    border-radius: 6px;
    margin-bottom: 18px;
    border: 1px solid #bbf7d0;
}
.alert-error {
    background: #fee2e2;
    color: #991b1b;
    padding: 12px 16px;
    border-radius: 6px;
    margin-bottom: 18px;
    border: 1px solid #fecaca;
}
.stat-card {
    background: #fff;
    padding: 24px;
    border-radius: 8px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}
.stat-card .stat-label {
    color: #6b7280;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
}
.stat-card .stat-value {
    font-size: 32px;
    font-weight: 700;
    color: #1f2937;
    margin-top: 6px;
    font-family: "Cormorant Garamond", serif;
}

/* Admin topbar internal layout */
.admin-topbar-left {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
}
.admin-topbar-right {
    color: #6b7280;
    font-size: 13px;
    white-space: nowrap;
}
.admin-topbar-title {
    font-size: 18px;
    font-weight: 600;
    color: #1f2937;
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Hamburger + sidebar close (desktop hidden) */
.admin-burger {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    width: 38px;
    height: 38px;
    padding: 0;
    background: transparent;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    cursor: pointer;
}
.admin-burger span {
    display: block;
    width: 18px;
    height: 2px;
    margin: 0 auto;
    background: #1f2937;
    border-radius: 2px;
}
.admin-sb-close {
    display: none;
    position: absolute;
    top: 10px;
    right: 12px;
    width: 36px;
    height: 36px;
    background: transparent;
    color: #cbd5e1;
    font-size: 28px;
    line-height: 1;
    border: none;
    cursor: pointer;
    border-radius: 6px;
}
.admin-sb-close:hover {
    background: #374151;
    color: #fff;
}
.admin-sb-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 998;
}
.admin-sb-backdrop.open {
    display: block;
}

/* Tablet (≤ 991px): sidebar becomes a slide-in drawer */
@media (max-width: 991px) {
    .admin-shell {
        display: block;
        min-height: 100vh;
    }
    .admin-sidebar {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: 260px;
        min-height: 0;
        z-index: 999;
        transform: translateX(-100%);
        transition: transform 0.22s ease;
        overflow-y: auto;
        box-shadow: 4px 0 20px rgba(0, 0, 0, 0.2);
        padding-top: 8px;
    }
    .admin-sidebar.open {
        transform: translateX(0);
    }
    .admin-sb-close {
        display: block;
    }
    .admin-sidebar h1 {
        padding-right: 56px;
    }
    .admin-main {
        padding: 16px;
    }
    .admin-burger {
        display: flex;
    }
    .admin-topbar {
        padding: 12px 14px;
        gap: 10px;
    }
    .admin-topbar-title {
        font-size: 16px;
    }
    .admin-topbar-right {
        font-size: 12px;
        text-align: right;
    }
    .admin-card {
        padding: 18px;
    }
    /* Settings tabs scroll horizontally instead of wrapping into messy rows */
    .settings-tabs {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .settings-tab {
        white-space: nowrap;
        flex-shrink: 0;
    }
    /* Tables: wrap in a horizontal scroll container.
       Auto-wrapped by app.js, but also self-scrolls if a page renders the
       <table> raw without a wrapper. */
    .admin-table-scroll {
        width: 100%;
        max-width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        border: 1px solid #e5e7eb;
        border-radius: 6px;
        background: #fff;
    }
    .admin-table-scroll .admin-table {
        min-width: 680px;
        margin: 0;
    }
    .admin-table-scroll .admin-table th,
    .admin-table-scroll .admin-table td {
        white-space: nowrap;
    }
    /* Scrollbar polish */
    .admin-table-scroll::-webkit-scrollbar {
        height: 8px;
    }
    .admin-table-scroll::-webkit-scrollbar-thumb {
        background: #cbd5e1;
        border-radius: 4px;
    }
    .admin-table-scroll::-webkit-scrollbar-track {
        background: #f3f4f6;
    }
    /* Visual nudge so users notice the table is scrollable horizontally */
    .admin-table-scroll::after {
        content: "";
        display: block;
        height: 2px;
    }

    /* Multi-column tile grids collapse from 4→3 cols on tablet */
    .grid.grid-cols-4 {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

/* Mobile (≤ 640px): denser spacing + collapse multi-col grids */
@media (max-width: 640px) {
    .admin-main {
        padding: 12px;
    }
    .admin-card {
        padding: 14px;
    }
    .admin-topbar {
        padding: 10px 12px;
        flex-wrap: wrap;
        align-items: flex-start;
    }
    .admin-topbar-right {
        flex-basis: 100%;
        text-align: left;
        padding-left: 52px;
        margin-top: -4px;
        font-size: 11px;
    }
    .admin-topbar-title {
        font-size: 15px;
    }
    .stat-card {
        padding: 16px;
    }
    .stat-card .stat-value {
        font-size: 26px;
    }
    /* Force common multi-col Tailwind-style grids to single column on phone */
    .grid.md\:grid-cols-2,
    .grid.md\:grid-cols-3,
    .grid.md\:grid-cols-4,
    .grid.lg\:grid-cols-2,
    .grid.lg\:grid-cols-3,
    .grid.lg\:grid-cols-4 {
        grid-template-columns: 1fr !important;
    }
    /* Tile grids without a md: prefix (gallery/swatches) → 2 cols on phone */
    .grid.grid-cols-3,
    .grid.grid-cols-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    /* Tailwind col-span helpers should not force overflow on narrow screens */
    [style*="grid-column:span 2"],
    [style*="grid-column: span 2"] {
        grid-column: auto !important;
    }
    /* Product-edit swatch row: name input + file input were a fixed-width
       flex row that overflowed on phones. Stack and go full-width. */
    .admin-card .flex.gap-2.mb-2.items-center {
        flex-direction: column;
        align-items: stretch !important;
        gap: 6px;
    }
    .admin-card .flex.gap-2.mb-2.items-center > input[type=text] {
        flex: 1 1 auto !important;
        width: 100% !important;
    }
    /* File inputs should never blow past their container */
    .admin-card input[type=file] {
        max-width: 100%;
    }
    /* Product-edit footer row (Back / Save) should stack on phone */
    .admin-card form > .flex.justify-between,
    form.admin-card > .flex.justify-between {
        flex-wrap: wrap;
        gap: 10px;
    }
    .form-input,
    .form-select,
    .form-textarea {
        font-size: 16px; /* prevents iOS zoom on focus */
    }
    .btn-primary,
    .btn-success {
        width: 100%;
        text-align: center;
    }
}

/* Lock body scroll when drawer is open */
body.admin-drawer-open {
    overflow: hidden;
}

/* ---------- Centered confirm modal (replaces native confirm()) ---------- */
.kl-confirm {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
}
.kl-confirm.open {
    display: flex;
}
.kl-confirm-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
    backdrop-filter: blur(2px);
    animation: kl-fade-in 0.15s ease;
}
.kl-confirm-box {
    position: relative;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
    padding: 28px 26px 22px;
    width: 100%;
    max-width: 420px;
    text-align: center;
    animation: kl-pop-in 0.18s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.kl-confirm-icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 12px;
    border-radius: 50%;
    background: #fef3c7;
    color: #d97706;
    display: flex;
    align-items: center;
    justify-content: center;
}
.kl-confirm-title {
    font-size: 18px;
    font-weight: 700;
    color: #1f2937;
    margin: 0 0 6px;
    font-family: inherit;
}
.kl-confirm-msg {
    font-size: 14px;
    color: #4b5563;
    line-height: 1.55;
    margin: 0 0 22px;
}
.kl-confirm-actions {
    display: flex;
    gap: 10px;
    justify-content: center;
}
.kl-confirm-cancel,
.kl-confirm-ok {
    flex: 1;
    max-width: 160px;
    padding: 10px 18px;
    border: 1px solid transparent;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
    transition: all 0.15s ease;
}
.kl-confirm-cancel {
    background: #f3f4f6;
    color: #374151;
    border-color: #e5e7eb;
}
.kl-confirm-cancel:hover {
    background: #e5e7eb;
}
.kl-confirm-ok {
    background: #1f2937;
    color: #fff;
}
.kl-confirm-ok:hover {
    background: #111827;
}
.kl-confirm-ok.is-danger {
    background: #dc2626;
}
.kl-confirm-ok.is-danger:hover {
    background: #b91c1c;
}
.kl-confirm-ok:focus-visible,
.kl-confirm-cancel:focus-visible {
    outline: 2px solid #c9b079;
    outline-offset: 2px;
}
body.kl-confirm-open {
    overflow: hidden;
}

@keyframes kl-fade-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}
@keyframes kl-pop-in {
    from { opacity: 0; transform: translateY(-6px) scale(0.96); }
    to   { opacity: 1; transform: translateY(0)    scale(1); }
}

@media (max-width: 640px) {
    .kl-confirm-box {
        padding: 22px 18px 18px;
    }
    .kl-confirm-icon {
        width: 54px;
        height: 54px;
    }
    .kl-confirm-actions {
        flex-direction: column-reverse;
    }
    .kl-confirm-cancel,
    .kl-confirm-ok {
        max-width: none;
        width: 100%;
    }
}

/* Pagination */
.pagination {
    display: flex;
    gap: 6px;
    justify-content: center;
    margin-top: 24px;
}
.pagination a,
.pagination span {
    padding: 8px 14px;
    border: 1px solid #e5e0d8;
    color: #1a1a1a;
    text-decoration: none;
    font-family: "Cormorant Garamond", serif;
    font-size: 14px;
}
.pagination a:hover {
    background: #1a1a1a;
    color: #fff;
}
.pagination .current {
    background: #1a1a1a;
    color: #fff;
}

/* Utilities specific to design */
.hero-overlay {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 30px;
    text-align: right;
    padding: 0 40px;
}
.section-divider {
    border-top: 1px solid #e5e0d8;
    width: 100%;
}
.aspect-square {
    aspect-ratio: 1/1;
}
.aspect-video {
    aspect-ratio: 16/9;
}
.aspect-banner {
    aspect-ratio: 16/4;
}

.placeholder-img {
    background: #f0ece4
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100'><rect width='100' height='100' fill='%23f0ece4'/><text x='50' y='52' text-anchor='middle' font-family='Georgia,serif' font-size='18' fill='%23c9b079'>Katha</text></svg>")
        center/cover no-repeat;
}

/* Hero responsive heights */
.hero-section {
    height: 280px;
}
@media (min-width: 640px) {
    .hero-section {
        height: 380px;
    }
}
@media (min-width: 768px) {
    .hero-section {
        height: 460px;
    }
}
@media (min-width: 1024px) {
    .hero-section {
        height: 540px;
    }
}
@media (min-width: 1280px) {
    .hero-section {
        height: 600px;
    }
}
.hero-overlay {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 18px;
    text-align: right;
    padding: 0 16px;
}
@media (min-width: 768px) {
    .hero-overlay {
        bottom: 30px;
        padding: 0 40px;
    }
}

/* Brand quote section responsive */
.brand-section {
    min-height: 280px;
}
.brand-section-inner {
    min-height: 280px;
    padding: 48px 0;
}
@media (min-width: 640px) {
    .brand-section,
    .brand-section-inner {
        min-height: 340px;
    }
}
@media (min-width: 768px) {
    .brand-section,
    .brand-section-inner {
        min-height: 420px;
        padding: 80px 0;
    }
}
@media (min-width: 1024px) {
    .brand-section,
    .brand-section-inner {
        min-height: 480px;
    }
}

/* Tighten hero-title for very small screens */
@media (max-width: 639px) {
    .hero-title {
        font-size: 32px;
        letter-spacing: 0.5px;
    }
    .h-display {
        font-size: 26px;
    }
    .h-script {
        font-size: 38px;
    }
    .eyebrow {
        font-size: 42px;
    }
    .brand-quote {
        font-size: 32px;
    }
}
@media (max-width: 380px) {
    .hero-title {
        font-size: 18px;
    }
    .brand-quote {
        font-size: 26px;
    }
    .h-display {
        font-size: 22px;
    }
}

/* Stack ethics/innovation on small screens by default — already handled by grid md:grid-cols-3 */

/* Product card name shouldn't underline-jump on tap */
.product-card {
    -webkit-tap-highlight-color: transparent;
}

/* Banner title shrinks on small */
@media (max-width: 639px) {
    .banner-title {
        font-size: 24px;
        padding: 10px 28px;
    }
}

/* ===== Divi-pixel-matched homepage =================================== */

/* Container — matches Divi .et_pb_row: 90% width / max 1300px */
.kl-container {
    width: 90%;
    max-width: 1300px;
    margin: 0 auto;
}

/* Body sections have white side borders 20px (10px mobile) like Divi */
.kl-hero,
.kl-gallery,
.kl-section,
.kl-brand,
.footer {
    border-left: 20px solid #fff;
    border-right: 20px solid #fff;
}
@media (max-width: 767px) {
    .kl-hero,
    .kl-gallery,
    .kl-section,
    .kl-brand,
    .footer {
        border-left-width: 10px;
        border-right-width: 10px;
    }
}

/* Hero — matches .et_pb_section_0: padding-top 27vh / mobile 180px / phone 136px */
.kl-hero {
    position: relative;
    padding-top: 136px;
    padding-bottom: 0;
    min-height: 430px;
}
@media (min-width: 768px) {
    .kl-hero {
        padding-top: 180px;
        min-height: 560px;
    }
}
@media (min-width: 981px) {
    .kl-hero {
        padding-top: 37vh;
        padding-bottom: 27vh;
        min-height: 0;
    }
}
.kl-hero-overlay {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 30px;
    text-align: center;
    z-index: 2;
    padding: 0 20px;
}
@media (min-width: 981px) {
    .kl-hero-overlay {
        text-align: right;
        right: 34px;
        left: auto;
        bottom: auto;
        top: 82%;
        transform: translateY(20%);
    }
}

/* 4-image gallery strip — matches .et_pb_section_1 */
.kl-gallery {
    padding: 20px 0 0 0;
    background: #fff;
}
.kl-gallery-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 0 10px;
}
@media (min-width: 768px) {
    .kl-gallery-row {
        grid-template-columns: repeat(4, 1fr);
    }
}

.kl-gallery-cell {
    aspect-ratio: 2/1;
    overflow: hidden;
}
.kl-gallery-cell img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Generic section — matches .et_pb_section: 4% padding (desktop) / 50px mobile */
.kl-section {
    background: #fff;
    padding: 50px 0;
}
@media (min-width: 981px) {
    .kl-section {
        padding: 4% 0;
    }
}

/* PRODUCTS section — tight against the 4-image gallery above */
.kl-section--products {
    padding: 24px 0 9px 0;
}
@media (min-width: 768px) {
    .kl-section--products {
        padding: 32px 0 9px 0;
    }
}
@media (min-width: 981px) {
    .kl-section--products {
        padding: 70px 0 9px 0;
    }
}
.kl-products-heading {
    text-align: center;
    margin-bottom: 30px;
}
.kl-products-heading .h-script {
    margin-top: 0px;
    color: #d7cbb7;
}
@media (min-width: 768px) {
    .kl-products-heading .h-script {
        margin-top: -45px;
    }
}
@media (min-width: 981px) {
    .kl-products-heading .h-script {
        margin-top: -10px;
    }
}
.kl-products-grid {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 18px;
}
@media (min-width: 576px) {
    .kl-products-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (min-width: 1140px) {
    .kl-products-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}
@media (min-width: 1340px) {
    .kl-products-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* DESIGNERS REGISTER section — .et_pb_section_3 with carpet bg
   padding-top:140 padding-bottom:140 (mobile same, phone 60/60), margin 20 top/bottom */
.kl-designers {
    background:
        url("../../uploads/banners/designers-bg.jpg") center/cover no-repeat,
        #f7f5f1;
    padding: 60px 0;
    margin-top: 20px;
    margin-bottom: 20px;
}
@media (min-width: 768px) {
    .kl-designers {
        padding: 140px 0;
    }
}
.kl-designers-inner {
    max-width: 900px;
}
.kl-designers .eyebrow {
    color: #d7cbb7;
    font-size: 40px;
}
@media (min-width: 768px) {
    .kl-designers .eyebrow {
        font-size: 60px;
    }
}

/* BRAND QUOTE — .et_pb_section_4 with parallax carpet5 bg
   padding-top:220 padding-bottom:220 (mobile 160/160, phone 110/110), right-aligned text */
.kl-brand {
    position: relative;
    padding: 110px 0;
    overflow: hidden;
}
@media (min-width: 768px) {
    .kl-brand {
        padding: 160px 0;
    }
}
@media (min-width: 981px) {
    .kl-brand {
        padding: 220px 0;
    }
}
.kl-brand > .absolute {
    z-index: 1;
}

/* ETHICS section — .et_pb_section_6: 1/2 + 1/4 + 1/4 columns (desktop) */
.kl-ethics {
    padding: 30px 0 60px 0;
}
@media (min-width: 981px) {
    .kl-ethics {
        padding: 4% 0;
    }
}
.kl-ethics-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 30px;
}
@media (min-width: 981px) {
    .kl-ethics-grid {
        grid-template-columns: 2fr 1fr 1fr;
        gap: 3%;
    }
}
.kl-ethics-col-right {
    padding-top: 0;
}
@media (min-width: 981px) {
    .kl-ethics-col-right {
        padding-top: 90px;
    }
}

/* Override product-card to match Divi cards */
.product-card {
    display: block;
    text-decoration: none;
    color: inherit;
    background: #fff;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.075);
}
.product-card .product-img {
    aspect-ratio: 1/1;
    overflow: hidden;
    background: #f5f3ef;
}
.product-card .product-name {
    font-family: "Playfair Display", Georgia, "Times New Roman", serif;
    font-size: 22px;
    font-weight: 600;
    color: #454545;
    padding: 18px 22px 18px 22px;
    border: none;
    line-height: 1.2;
}
@media (min-width: 768px) {
    .product-card .product-name {
        font-size: 26px;
    }
}
.product-card:hover .product-name {
    color: #666;
}

/* Nav: tighten gap on smaller desktops */
@media (min-width: 768px) and (max-width: 1023px) {
    .katha-nav-link {
        font-size: 14px;
        letter-spacing: 1px;
        padding: 6px 8px;
    }
}

/* ===================== SHOP PAGE (Divi-matched) ===================== */
.shop-banner{
  position:relative;
  background-size:cover;
  background-position:center bottom 0px;
  background-color:#d8d4cc;
  border-top:20px solid #fff;
  border-left:20px solid #fff;
  border-right:20px solid #fff;
  padding:40px 0;
}
@media(min-width:768px){.shop-banner{padding:7vh 0}}
@media(min-width:981px){.shop-banner{padding:11vh 0}}
@media(max-width:767px){.shop-banner{border-left-width:10px;border-right-width:10px;border-top-width:10px}}

.shop-banner-title-box{
  background-color:rgba(255,255,255,.77);
  padding:20px 0;
  box-shadow:0 12px 18px -6px rgba(0,0,0,.3);
  text-align:center;
  margin:0 auto;
  width:60%;
  max-width:50%;
}
@media(min-width:981px){.shop-banner-title-box{width:25%}}
.shop-banner-title-box h2{
  font-family:'Playfair Display',Georgia,'Times New Roman',serif;
  font-size:32px;
  font-weight:500;
  color:#000;
  text-align:center;
  line-height:1em;
  margin:0;
  padding:0;
}
@media(min-width:768px){.shop-banner-title-box h2{font-size:48px}}
@media(min-width:981px){.shop-banner-title-box h2{font-size:62px}}

.shop-section{
  background:#fff;
  border-left:20px solid #fff;
  border-right:20px solid #fff;
  padding:50px 0 60px 0;
}
@media(min-width:768px){.shop-section{padding:130px 0 60px 0}}
@media(min-width:981px){.shop-section{padding:80px 0 60px 0}}
@media(max-width:767px){.shop-section{border-left-width:10px;border-right-width:10px}}

.shop-title{text-align:center;margin-bottom:25px}
.shop-title .h-script{
  font-family:'Alex Brush',handwriting,cursive;
  font-size:40px;
  color:#d7cbb7;
  text-align:center;
  margin-top:-30px;
  line-height:1;
}
@media(min-width:768px){.shop-title .h-script{font-size:70px;margin-top:-50px}}
@media(min-width:981px){.shop-title .h-script{font-size:90px;margin-top:-35px}}

.shop-filters{
  display:flex;
  flex-wrap:wrap;
  gap:15px;
  margin:0 0 40px 0;
  align-items:flex-end;
  justify-content:flex-start;
}
.shop-filter{
  flex:1 1 22%;
  min-width:160px;
  padding:0 5px;
}
.shop-filter-reset{flex:0 0 auto}
.shop-filter-label{
  display:block;
  font-family:'Roboto Condensed',Helvetica,Arial,sans-serif;
  font-weight:300;
  font-size:14px;
  color:#666;
  margin-bottom:6px;
}
.shop-select-wrap{position:relative}
.shop-select{
  width:100%;
  padding:10px 32px 10px 10px;
  border:1px solid #000;
  border-radius:0;
  background:transparent;
  font-family:'Roboto Condensed',Helvetica,Arial,sans-serif;
  font-size:14px;
  color:#000;
  appearance:none;
  -webkit-appearance:none;
  cursor:pointer;
}
.shop-select-wrap::after{
  content:"";
  position:absolute;
  right:14px;
  top:50%;
  width:8px;height:8px;
  border-right:1.5px solid #000;
  border-bottom:1.5px solid #000;
  transform:translateY(-70%) rotate(45deg);
  pointer-events:none;
}
.shop-reset-btn{
  display:inline-block;
  padding:9px 36px;
  background-color:#666;
  color:#fff !important;
  font-family:'Roboto Condensed',Helvetica,Arial,sans-serif;
  font-size:14px;
  letter-spacing:1px;
  text-decoration:none;
  border:none;
  cursor:pointer;
  transition:background .2s ease;
}
.shop-reset-btn:hover{background:#1B1918}

.shop-grid{
  display:grid;
  grid-template-columns:repeat(1,1fr);
  gap:18px;
  margin-top:10px;
}
@media(min-width:576px){.shop-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1140px){.shop-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1340px){.shop-grid{grid-template-columns:repeat(4,1fr)}}

.shop-card{
  display:flex;
  flex-direction:column;
  text-decoration:none;
  color:inherit;
  background:#fff;
  box-shadow:0 2px 6px 0 rgba(0,0,0,.075);
  border-radius:6px;
  overflow:hidden;
  transition:box-shadow .35s ease, transform .35s ease;
}
.shop-card:hover{box-shadow:0 6px 18px rgba(0,0,0,.1)}
.shop-card-img{
  aspect-ratio:1/1;
  overflow:hidden;
  background:#f5f3ef;
}
.shop-card-img img{
  width:100%;height:100%;
  object-fit:cover;
  display:block;
  transition:transform .6s ease, opacity .6s ease;
}
.shop-card:hover .shop-card-img img{transform:scale(1.1);opacity:.9}
.shop-card-name{
  font-family:'Playfair Display',Georgia,'Times New Roman',serif;
  font-size:22px;
  font-weight:600;
  color:#454545;
  padding:18px 22px;
  line-height:1.2;
  border:none;
  transition:color .35s ease;
}
@media(min-width:768px){.shop-card-name{font-size:26px}}
.shop-card:hover .shop-card-name{color:#9E9E9E}

/* ===================== PRODUCT DETAIL PAGE (Divi-matched) ===================== */
.pd-section{
  background:#fff;
  border-left:20px solid #fff;
  border-right:20px solid #fff;
  padding:30px 0 0 0;
}
@media(min-width:768px){.pd-section{padding:60px 0 0 0}}
@media(max-width:767px){.pd-section{border-left-width:10px;border-right-width:10px;padding:45px 0 0 0}}

.pd-grid{display:grid;grid-template-columns:1fr;gap:30px;align-items:flex-start}
@media(min-width:981px){.pd-grid{grid-template-columns:1fr 1fr;gap:50px}}

/* Left: gallery */
.pd-gallery{position:relative}
.pd-main-image-wrap{
  position:relative;
  aspect-ratio:1/1;
  background:#f5f3ef;
  overflow:hidden;
  cursor:zoom-in;
}
.pd-main-image-wrap img{
  width:100%;height:100%;
  object-fit:cover;
  display:block;
  transition:transform .6s ease;
  transform-origin:center center;
  will-change:transform;
}
.pd-main-image-wrap:hover img{transform:scale(1.12)}
.pd-zoom{
  position:absolute;top:16px;right:16px;
  width:38px;height:38px;
  border-radius:9999px;
  background:#fff;
  border:none;
  font-size:18px;
  cursor:pointer;
  box-shadow:0 1px 4px rgba(0,0,0,.15);
  z-index:2;
  transition:background .2s ease;
}
.pd-zoom:hover{background:#f5f3ef}

/* Fullscreen lightbox */
.pd-lightbox{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.92);
  z-index:9999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:30px;
  cursor:zoom-out;
}
.pd-lightbox.open{display:flex}
.pd-lightbox img{
  max-width:100%;
  max-height:100%;
  display:block;
  cursor:zoom-in;
  transition:transform .25s ease;
  transform-origin:center center;
}
.pd-lightbox img.zoomed{cursor:zoom-out;transform:scale(2)}
.pd-lightbox-close{
  position:absolute;top:18px;right:22px;
  background:transparent;border:none;
  color:#fff;font-size:36px;line-height:1;
  cursor:pointer;font-family:Arial,sans-serif;
  z-index:1;
}
.pd-lightbox-close:hover{color:#ccc}
.pd-thumbs{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:14px;
  margin-top:18px;
}
.pd-thumb{
  aspect-ratio:1/1;
  border:2px solid transparent;
  overflow:hidden;
  background:#f5f3ef;
  cursor:pointer;
  padding:0;
}
.pd-thumb.active{border-color:#c9b079}
.pd-thumb img{width:100%;height:100%;object-fit:cover;display:block}

/* Right: info */
.pd-info{padding:0}
@media(min-width:981px){.pd-info{padding-top:0}}

.pd-title{
  font-family:'Playfair Display',Georgia,'Times New Roman',serif;
  font-size:30px;
  font-weight:600;
  color:#000;
  line-height:1.2em;
  margin:0 0 18px 0;
}
@media(min-width:768px){.pd-title{font-size:36px}}
@media(min-width:1024px){.pd-title{font-size:40px}}

.pd-meta{
  font-family:'Roboto Condensed',Helvetica,Arial,sans-serif;
  font-size:16px;
  color:#666;
  line-height:1.8;
  margin-bottom:16px;
}
.pd-meta strong{font-weight:700;color:#666}
.pd-meta-val{color:#9E9E9E;font-weight:400}

.pd-short-desc{
  font-family:'Roboto Condensed',Helvetica,Arial,sans-serif;
  font-size:16px;
  color:#666;
  line-height:1.6;
  margin:14px 0 24px 0;
}

.pd-swatches-block{margin:18px 0 30px 0}
.pd-swatches-label{
  font-family:'Playfair Display',Georgia,serif;
  font-weight:700;
  font-size:22px;
  color:#000;
  margin-bottom:14px;
  line-height:1.2;
}
@media(min-width:768px){.pd-swatches-label{font-size:26px}}
.pd-swatches{display:flex;gap:10px;flex-wrap:wrap}
.pd-swatch{
width: 70px;
    height: 70px;
    border: 1px solid #000;
    padding: 3px;
    background: #fff;
    cursor: pointer;
    overflow: hidden;
    border-radius: 5px;
    display: block;
    box-sizing: border-box;
    transition: box-shadow .2s ease;
}
.pd-swatch img{width:100%;height:100%;object-fit:cover;display:block}
.pd-swatch:hover{box-shadow:0 0 0 2px #000}
.pd-swatch.active{box-shadow:0 0 0 2px #000}

.pd-divider{
  border:none;
  border-top:1px solid #e5e0d8;
  margin:22px 0 18px 0;
}

.pd-sku{
  font-family:'Roboto Condensed',Helvetica,Arial,sans-serif;
  font-size:14px;
  color:#000;
  margin-bottom:18px;
}

.pd-buttons{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
  margin-top:6px;
}
@media(min-width:576px){.pd-buttons{grid-template-columns:1fr 1fr}}
.pd-btn{
  display:flex;align-items:center;justify-content:center;
  padding:18px 24px;
  background:#1B1918;
  color:#fff !important;
  font-family:'Roboto Condensed',Helvetica,Arial,sans-serif;
  font-size:16px;
  font-weight:400;
  letter-spacing:.5px;
  text-decoration:none;
  border:1px solid #1B1918;
  border-radius:0;
  text-align:center;
  transition:all .3s ease;
  
}
.pd-btn:hover{background:#848585;border-color:#848585}

/* ====== Description section ====== */
.pd-desc-section{
  background:#fff;
  border-left:20px solid #fff;
  border-right:20px solid #fff;
  padding:50px 0 30px 0;
}
@media(min-width:768px){.pd-desc-section{padding:70px 0 40px 0}}
@media(max-width:767px){.pd-desc-section{border-left-width:10px;border-right-width:10px}}
.pd-desc-title{
  font-family:'Playfair Display',Georgia,serif;
  font-size:22px;font-weight:600;color:#000;
  margin:0 0 18px 0;line-height:1.2;
}
@media(min-width:768px){.pd-desc-title{font-size:30px}}
.pd-desc-body{
  font-family:'Roboto Condensed',Helvetica,Arial,sans-serif;
  font-size:16px;color:#666;line-height:1.7em;
  max-width:100%;
  font-weight:400;
}
@media(min-width:768px){.pd-desc-body{font-size:16px}}

/* ====== Related products ====== */
.pd-related-section{
  background:#fff;
  border-left:20px solid #fff;
  border-right:20px solid #fff;
  padding:40px 0;
}
@media(min-width:768px){.pd-related-section{padding:60px 0}}
@media(max-width:767px){.pd-related-section{border-left-width:10px;border-right-width:10px}}
.pd-related-title{
  font-family:'Playfair Display',Georgia,serif;
  font-size:22px;font-weight:600;
  color:#000;
  margin:0 0 24px 0;line-height:1.2;
}
@media(min-width:768px){.pd-related-title{font-size:30px}}
.pd-related-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:18px;
}
@media(min-width:768px){.pd-related-grid{grid-template-columns:repeat(4,1fr)}}
.pd-related-card{
  display:block;text-decoration:none;color:inherit;
  background:#fff;border-radius:6px;overflow:hidden;
  box-shadow:0 2px 6px rgba(0,0,0,.075);
  transition:box-shadow .3s ease;
}
.pd-related-card:hover{box-shadow:0 6px 18px rgba(0,0,0,.1)}
.pd-related-img{aspect-ratio:1/1;overflow:hidden;background:#f5f3ef}
.pd-related-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}
.pd-related-card:hover .pd-related-img img{transform:scale(1.05)}
.pd-related-name{
  font-family:'Playfair Display',Georgia,serif;
  font-size:18px;font-weight:600;color:#454545;
  padding:14px 18px;line-height:1.2;
}
@media(min-width:768px){.pd-related-name{font-size:22px}}

/* ====== Reviews ====== */
.pd-reviews-section{
  background:#fff;
  border-left:20px solid #fff;
  border-right:20px solid #fff;
  padding:40px 0 80px 0;
}
@media(min-width:768px){.pd-reviews-section{padding:60px 0 120px 0}}
@media(max-width:767px){.pd-reviews-section{border-left-width:10px;border-right-width:10px}}
.pd-reviews-title{
  font-family:'Playfair Display',Georgia,serif;
  font-size:22px;font-weight:600;color:#1B1918;
  margin:0 0 18px 0;line-height:1.2;
}
@media(min-width:768px){.pd-reviews-title{font-size:30px}}
.pd-reviews-note{
  font-family:'Roboto Condensed',Helvetica,Arial,sans-serif;
  font-size:15px;color:#000;
  font-weight:300;
}

/* ===================== ABOUT PAGE (Divi-matched) ===================== */
/* Banner — matches .et_pb_section_0 */
.ab-banner{
  position:relative;
  background-size:cover;
  background-position:center bottom 0;
  background-color:#d8d4cc;
  border-top:20px solid #fff;
  border-left:20px solid #fff;
  border-right:20px solid #fff;
  padding:40px 0;
}
@media(min-width:768px){.ab-banner{padding:7vh 0}}
@media(min-width:981px){.ab-banner{padding:11vh 0}}
@media(max-width:767px){.ab-banner{border-left-width:10px;border-right-width:10px;border-top-width:10px}}

.ab-banner-title{
  background-color:rgba(255,255,255,.77);
  padding:20px 0;
  box-shadow:0 12px 18px -6px rgba(0,0,0,.3);
  text-align:center;
  margin:0 auto;
  width:60%;max-width:50%;
}
@media(min-width:981px){.ab-banner-title{width:25%}}
.ab-banner-title h2{
  font-family:'Playfair Display',Georgia,serif;
  font-size:32px;font-weight:500;color:#000;
  text-align:center;line-height:1em;margin:0;
}
@media(min-width:768px){.ab-banner-title h2{font-size:48px}}
@media(min-width:981px){.ab-banner-title h2{font-size:62px}}

/* Intro — matches .et_pb_section_1 */
.ab-intro{
  background:#fff;
  border-left:20px solid #fff;
  border-right:20px solid #fff;
  padding:36px 0 0 0;
}
@media(min-width:768px){.ab-intro{padding:50px 0 0 0}}
@media(max-width:767px){.ab-intro{border-left-width:10px;border-right-width:10px}}
.ab-intro-inner{max-width:950px;margin:0 auto;text-align:center;padding:0 10px}
.ab-intro-title{
  font-family:'Playfair Display',Georgia,serif;
  font-size:30px;font-weight:500;color:#000;
  line-height:1.1em;margin:0 0 18px 0;
}
@media(min-width:768px){.ab-intro-title{font-size:42px}}
@media(min-width:981px){.ab-intro-title{font-size:52px}}
.ab-intro-text{
  font-family:'Roboto Condensed',Helvetica,Arial,sans-serif;
  font-size:16px;color:#666;line-height:1.8em;font-weight:400;
  margin:0;
}
@media(min-width:768px){.ab-intro-text{font-size:18px}}
@media(max-width:767px){.ab-intro-text,.ab-intro-title{text-align:left}}

/* 4 feature blurbs — matches .et_pb_section_2 + .et_pb_blurb */
.ab-features{
  background:#fff;
  border-left:20px solid #fff;
  border-right:20px solid #fff;
  padding:21px 0 60px 0;
}
@media(min-width:768px){.ab-features{padding:21px 0 88px 0}}
@media(max-width:767px){.ab-features{border-left-width:10px;border-right-width:10px;padding:10px 0 30px 0}}

.ab-features-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:30px;
  padding:30px 0 0 0;
}
@media(min-width:768px){.ab-features-grid{grid-template-columns:1fr 1fr;column-gap:6%;row-gap:60px;padding:60px 0 0 0}}

.ab-feature{
  display:flex;
  align-items:flex-start;
  gap:14px;
}
.ab-feature-icon{flex:0 0 50px;width:50px}
.ab-feature-icon img{width:50px;height:auto;display:block}
.ab-feature-body{flex:1;min-width:0}
.ab-feature-title{
  font-family:'Playfair Display',Georgia,serif;
  font-weight:700;font-size:20px;color:#1B1918;
  text-align:left;line-height:1.2;margin:0 0 10px 0;
}
@media(min-width:768px){.ab-feature-title{font-size:24px}}
.ab-feature-desc{
  font-family:'Roboto Condensed',Helvetica,Arial,sans-serif;
  font-size:16px;color:#666;line-height:1.7em;font-weight:400;
  text-align:left;margin:0;
}
@media(min-width:768px){.ab-feature-desc{font-size:18px}}

/* 3-col CTA section — matches .et_pb_section_3 (3 equal 1/3 columns) */
.ab-cta{
  background:#fff;
  border-left:20px solid #fff;
  border-right:20px solid #fff;
}
@media(max-width:767px){.ab-cta{border-left-width:10px;border-right-width:10px}}
.ab-cta-row{
  display:grid;
  grid-template-columns:1fr;
}
@media(min-width:981px){.ab-cta-row{grid-template-columns:1fr 1fr 1fr}}

.ab-cta-img{
  background-size:cover;
  background-position:center bottom 0;
  background-repeat:no-repeat;
  min-height:280px;
}
@media(min-width:768px){.ab-cta-img{min-height:520px}}
@media(min-width:981px){.ab-cta-img{min-height:620px}}

.ab-cta-text{
  background:#848585;
  color:#fff;
  padding:50px 30px;
}
@media(min-width:768px){.ab-cta-text{padding:70px 30px}}
.ab-cta-title{
  font-family:'Playfair Display',Georgia,serif;
  font-weight:700;font-size:26px;color:#fff;
  line-height:1em;margin:0 0 20px 0;text-align:left;
}
@media(min-width:768px){.ab-cta-title{font-size:32px}}
@media(min-width:981px){.ab-cta-title{font-size:36px}}
.ab-cta-body p{
  font-family:'Roboto Condensed',Helvetica,Arial,sans-serif;
  font-size:16px;color:#fff;line-height:1.8em;font-weight:400;
  margin:0 0 16px 0;text-align:left;
}
@media(min-width:768px){.ab-cta-body p{font-size:18px}}
.ab-cta-btn{
  display:inline-block;
  margin-top:14px;
  padding:17px 30px;
  background:transparent;
  color:#fff !important;
  border:1px solid #fff;
  font-family:'Poppins',Helvetica,Arial,sans-serif;
  font-size:14px;
  letter-spacing:1px;
  text-transform:uppercase;
  text-decoration:none;
  font-weight:500;
  transition:all .3s ease;
}
.ab-cta-btn:hover{background:#1B1918;border-color:#1B1918;letter-spacing:2px}

/* ===================== CONTACT PAGE (Divi-matched) ===================== */
.ct-banner{
  position:relative;
  background-size:cover;
  background-position:center bottom 0;
  background-color:#d8d4cc;
  border-top:20px solid #fff;
  border-left:20px solid #fff;
  border-right:20px solid #fff;
  padding:40px 0;
}
@media(min-width:768px){.ct-banner{padding:7vh 0}}
@media(min-width:981px){.ct-banner{padding:11vh 0}}
@media(max-width:767px){.ct-banner{border-left-width:10px;border-right-width:10px;border-top-width:10px}}
.ct-banner-title{
  background-color:rgba(255,255,255,.77);
  padding:20px 0;
  box-shadow:0 12px 18px -6px rgba(0,0,0,.3);
  text-align:center;
  margin:0 auto;
  width:60%;max-width:50%;
}
@media(min-width:981px){.ct-banner-title{width:25%}}
.ct-banner-title h2{
  font-family:'Playfair Display',Georgia,serif;
  font-size:32px;font-weight:500;color:#000;
  text-align:center;line-height:1em;margin:0;
}
@media(min-width:768px){.ct-banner-title h2{font-size:48px}}
@media(min-width:981px){.ct-banner-title h2{font-size:62px}}

.ct-section{
  background:#fff;
  border-left:20px solid #fff;
  border-right:20px solid #fff;
  padding:50px 0 90px 0;
}
@media(max-width:767px){.ct-section{border-left-width:10px;border-right-width:10px;padding:40px 0 60px 0}}

.ct-headrow{
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
  align-items:center;
  margin-bottom:60px;
}
@media(min-width:768px){.ct-headrow{grid-template-columns:1fr 1fr;gap:40px}}

.ct-headline h1{
  font-family:'Playfair Display',Georgia,serif;
  text-transform:uppercase;
  font-size:32px;
  font-weight:700;
  color:#000;
  letter-spacing:2px;
  line-height:1.3em;
  margin:0;
  text-align:left;
}
@media(min-width:768px){.ct-headline h1{font-size:54px;letter-spacing:3px}}
@media(min-width:1024px){.ct-headline h1{font-size:75px}}

.ct-email{
  text-align:left;
}
@media(min-width:768px){.ct-email{text-align:left}}
.ct-email a{
  font-family:'Playfair Display',Georgia,serif;
  font-size:18px;
  letter-spacing:1px;
  color:#000 !important;
  text-decoration:underline;
  text-underline-offset:2px;
  word-break:break-all;
}
@media(min-width:768px){.ct-email a{font-size:24px;letter-spacing:2px}}
@media(min-width:1024px){.ct-email a{font-size:30px}}

.ct-form-wrap{display:grid;grid-template-columns:1fr;gap:0}
@media(min-width:981px){.ct-form-wrap{grid-template-columns:1fr 2fr;gap:30px}}
.ct-form-spacer{display:none}
@media(min-width:981px){.ct-form-spacer{display:block}}

.ct-form input[type=text],
.ct-form input[type=tel],
.ct-form input[type=email],
.ct-form textarea{
  width:100%;
  background:#eee;
  border:none;
  border-radius:0;
  color:#5a5a5a;
  padding:15px;
  font-family:'Roboto Condensed',Helvetica,Arial,sans-serif;
  font-size:15px;
  outline:none;
  margin:0;
  box-sizing:border-box;
}
.ct-form input::placeholder,
.ct-form textarea::placeholder{color:#5a5a5a;opacity:1}
.ct-form input:focus,
.ct-form textarea:focus{background:#e6e6e6;color:#000}

.ct-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-bottom:12px;
}
.ct-row-3{grid-template-columns:1fr}
@media(min-width:576px){.ct-row-3{grid-template-columns:1fr 1fr 1fr}}

.ct-form textarea{
  min-height:240px;
  resize:vertical;
  margin-bottom:18px;
  margin-top:6px;
}

/* reCAPTCHA-style placeholder block */
.ct-robot{
  display:inline-flex;
  align-items:center;
  gap:14px;
  background:#f9f9f9;
  border:1px solid #d3d3d3;
  padding:14px 18px;
  margin:6px 0 20px 0;
  font-family:Arial,sans-serif;
  font-size:14px;
  color:#000;
  cursor:pointer;
  user-select:none;
}
.ct-robot-box{position:relative;width:28px;height:28px;border:2px solid #c1c1c1;background:#fff;display:inline-block;flex-shrink:0;border-radius:2px}
.ct-robot-box input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;margin:0}
.ct-robot-box .ct-robot-check{position:absolute;left:6px;top:2px;width:8px;height:14px;border:solid #4285F4;border-width:0 3px 3px 0;transform:rotate(45deg);display:none}
.ct-robot-box input:checked + .ct-robot-check{display:block}
.ct-robot-label{margin-right:30px;color:#000}
.ct-robot-brand{display:flex;align-items:center;gap:6px;color:#9a9a9a;font-size:11px;line-height:1.2;text-align:right}
.ct-robot-brand svg{flex-shrink:0}

.ct-submit{
  display:inline-block;
  background:#848585;
  color:#fff;
  font-family:'Roboto Condensed',Helvetica,Arial,sans-serif;
  font-size:20px;
  font-weight:400;
  padding:12px 30px;
  border:none;
  border-radius:0;
  cursor:pointer;
  letter-spacing:1px;
  transition:background .25s ease;
}
@media(min-width:768px){.ct-submit{font-size:22px}}
.ct-submit:hover{background:#1B1918}

.ct-success{
  background:#dcfce7;
  color:#166534;
  padding:14px 18px;
  border:1px solid #bbf7d0;
  margin-bottom:20px;
  font-family:'Roboto Condensed',Helvetica,Arial,sans-serif;
  font-size:15px;
}
.ct-error{
  background:#fee2e2;
  color:#991b1b;
  padding:14px 18px;
  border:1px solid #fecaca;
  margin-bottom:20px;
  font-family:'Roboto Condensed',Helvetica,Arial,sans-serif;
  font-size:15px;
}
.ct-error ul{padding-left:18px;list-style:disc;margin:0}
