/* =====================================================================
   Luxvitra "Luxe" layer: loaded after styles.css on every page.
   Royal emerald (from the brand header) + polished gold, Cormorant serif.
   Visual only: no markup or behaviour depends on this file.
   ===================================================================== */
@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;1,400;1,500&display=swap");

:root {
    --lv-emerald: #005249;
    --lv-emerald-deep: #00332E;
    --lv-emerald-night: #002420;
    --lv-gold: #A88545;
    --lv-gold-soft: #E6CF9C;
    --lv-gold-metal: linear-gradient(135deg, #8A6A2E 0%, #C9A65E 22%, #F4E3B2 45%, #C29C52 62%, #E9D29C 80%, #8A6A2E 100%);
    --lv-pearl: #F8F6F1;
    --lv-ink: #1A2220;
    --lv-muted: #66706C;
    --lv-line: #E7E1D5;
    --lv-serif: "Cormorant Garamond", "Playfair Display", serif;
    --logo: #005249; /* theme accent was purple */
    --lv-velvet: radial-gradient(120% 90% at 50% 0%, var(--lv-emerald) 0%, var(--lv-emerald-deep) 55%, var(--lv-emerald-night) 100%);
}
body { color: var(--lv-ink); -webkit-font-smoothing: antialiased; }
body .container { max-width: 1360px; }
@media (min-width: 768px) { body .container { padding-left: 24px; padding-right: 24px; } }
@media (max-width: 575px) { body .container { padding-left: 16px; padding-right: 16px; } }
::selection { background: var(--lv-emerald); color: var(--lv-gold-soft); }

/* Shared building blocks other pages can use */
.lv-serif { font-family: var(--lv-serif) !important; }
.lv-orn { display: flex; align-items: center; justify-content: center; gap: 12px; margin: 18px 0; }
.lv-orn::before, .lv-orn::after { content: ""; width: 72px; height: 1px; background: linear-gradient(90deg, transparent, var(--lv-gold)); }
.lv-orn::after { transform: scaleX(-1); }
.lv-orn i { width: 9px; height: 9px; background: var(--lv-gold-metal); transform: rotate(45deg); box-shadow: 0 0 0 3px #fff, 0 0 0 4px var(--lv-gold); }

/* ---------- Top bar + header ---------- */
.tf-topbar.bg-olive-brown { background: var(--lv-emerald-night) !important; padding: 9px 0; border-bottom: 1px solid rgba(230, 207, 156, .18); }
.tf-topbar .text-caption-3 { color: var(--lv-gold-soft) !important; font-size: 12.5px; letter-spacing: .14em; font-weight: 400 !important; }
.lv-header { background-image: linear-gradient(180deg, var(--lv-emerald) 0%, #00463F 100%); border-bottom: 1px solid rgba(230, 207, 156, .35) !important; box-shadow: 0 10px 30px -18px rgba(0, 0, 0, .5); }
.lv-head-nav { border-top: 1px solid rgba(230, 207, 156, .16) !important; }
.lv-head-nav .item-link { position: relative; font-size: 13.5px !important; letter-spacing: .16em !important; color: rgba(255, 255, 255, .92) !important; }
.lv-head-nav .item-link::after { content: ""; position: absolute; left: 50%; right: 50%; bottom: 10px; height: 1px; background: var(--lv-gold-soft); transition: left .45s ease, right .45s ease; }
.lv-head-nav .menu-item:hover > .item-link::after { left: 0; right: 0; }
.lv-head-nav .menu-item:hover > .item-link, .lv-head-nav .menu-item:hover > .item-link i { color: var(--lv-gold-soft) !important; }
.lv-appointment { border: 1px solid rgba(230, 207, 156, .7) !important; border-radius: 0 !important; color: var(--lv-gold-soft) !important; letter-spacing: .06em; padding: 11px 20px !important; }
.lv-appointment:hover { background: var(--lv-gold-metal) !important; color: var(--lv-emerald-night) !important; border-color: transparent !important; }
.lv-search-box { border: 1px solid rgba(230, 207, 156, .45) !important; border-radius: 0; background: rgba(0, 0, 0, .08); }
.lv-search-box:hover { border-color: var(--lv-gold-soft) !important; }
.lv-icon:hover, .lv-circle:hover { color: var(--lv-gold-soft) !important; }
.lv-badge { background: var(--lv-gold-metal) !important; color: var(--lv-emerald-night) !important; font-weight: 600; }
.lv-circle { background: rgba(230, 207, 156, .1) !important; border: 1px solid rgba(230, 207, 156, .3); }
.lv-currency .dropdown-toggle { border-color: rgba(230, 207, 156, .5) !important; border-radius: 0 !important; }
/* Mega menu: ivory panel with a gold rule */
.lv-head-nav .sub-menu.mega-menu { border-radius: 0 !important; border-top: 2px solid transparent; border-image: var(--lv-gold-metal) 1; box-shadow: 0 30px 60px -30px rgba(0, 36, 32, .45) !important; }
.lv-head-nav .menu-heading { font-family: var(--lv-serif); font-size: 24px !important; font-weight: 600; letter-spacing: .02em; text-transform: none !important; color: var(--lv-emerald) !important; border-bottom: 1px solid var(--lv-line); padding-bottom: 10px; margin-bottom: 14px; }
.lv-head-nav .shape-option span { transition: color .3s; }
.lv-head-nav .shape-option:hover span { color: var(--lv-gold) !important; }
@media (max-width: 1199px) {
    .lv-currency { background: var(--lv-emerald-deep) !important; border: 1px solid rgba(230, 207, 156, .45); border-radius: 0 !important; }
    .lv-currency select, .lv-currency .dropdown-toggle { max-width: 138px; font-size: 12px !important; }
}

/* Off-canvas panels (search, menu, filters) */
.offcanvas .canvas-header { background: var(--lv-velvet); color: #fff; border-bottom: 1px solid rgba(230, 207, 156, .3); }
.offcanvas .canvas-header .title { font-family: var(--lv-serif); font-size: 26px; letter-spacing: .02em; text-transform: none; color: #fff; }
.offcanvas .canvas-header .icon-close-popup { color: var(--lv-gold-soft); }

/* Mobile menu */
#mobileMenu { background: #fff; display: flex; flex-direction: column; }
#mobileMenu .icon-close-popup { position: absolute; top: 18px; right: 18px; z-index: 2; color: var(--lv-gold-soft); font-size: 18px; }
#mobileMenu .lv-mb-crest { background: var(--lv-velvet); padding: 30px 24px 26px; text-align: center; border-bottom: 2px solid transparent; border-image: var(--lv-gold-metal) 1; }
#mobileMenu .lv-mb-crest img { max-height: 34px; width: auto; }
#mobileMenu .mb-canvas-content { flex: 1; overflow-y: auto; padding-top: 6px !important; }
#mobileMenu .mb-body { padding-top: 8px !important; }
#mobileMenu .mb-content-top { margin-top: 0 !important; padding-top: 0 !important; }
#mobileMenu .mb-menu-link { font-family: var(--lv-serif); font-size: 23px; font-weight: 500; color: var(--lv-ink); padding: 16px 0; }
#mobileMenu .nav-mb-item { border-bottom: 1px solid var(--lv-line) !important; }
#mobileMenu .mb-menu-link[aria-expanded="true"] { color: var(--lv-emerald); }
#mobileMenu .btn-open-sub::before, #mobileMenu .btn-open-sub::after { background: var(--lv-gold) !important; }
#mobileMenu .sub-nav-menu { border-left: 1px solid var(--lv-gold); margin: 0 0 16px 4px; padding-left: 16px; }
#mobileMenu .sub-nav-link { color: var(--lv-muted); font-size: 15px; padding: 7px 0; }
#mobileMenu .sub-nav-link:hover { color: var(--lv-emerald); }
#mobileMenu .lv-mb-foot { padding: 22px 0 30px; display: grid; gap: 14px; text-align: center; }
#mobileMenu .lv-mb-mail { color: var(--lv-muted); font-size: 14px; }
@media (max-width: 767px) { .tf-topbar .text-caption-3 { letter-spacing: .06em; font-size: 11px; } }

/* ---------- Page title: a velvet banner on every inner page ---------- */
section:has(> .container > .page-title) { padding: 0 !important; margin-bottom: clamp(40px, 5vw, 72px); background: var(--lv-velvet); position: relative; overflow: hidden; }
section:has(> .container > .page-title)::before { content: ""; position: absolute; inset: 0; opacity: .07; pointer-events: none;
    background-image: linear-gradient(45deg, var(--lv-gold-soft) 1px, transparent 1px), linear-gradient(-45deg, var(--lv-gold-soft) 1px, transparent 1px); background-size: 34px 34px; }
section:has(> .container > .page-title)::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--lv-gold-metal); }
.page-title { position: relative; border: 0 !important; padding: clamp(48px, 7vw, 92px) 0 clamp(52px, 7vw, 96px) !important; text-align: center; }
.page-title .breadcrumbs { display: flex; flex-direction: column-reverse; align-items: center; gap: 18px; }
.page-title .bread-wrap { justify-content: center; gap: 10px; color: rgba(255, 255, 255, .75); font-size: 13px; letter-spacing: .12em; text-transform: uppercase; }
.page-title .bread-wrap a { color: var(--lv-gold-soft) !important; }
.page-title .bread-wrap a:hover { color: #fff !important; }
.page-title .bread-wrap .br-line { background: rgba(230, 207, 156, .6) !important; width: 14px; }
.page-title .heading, .page-title h1 { font-family: var(--lv-serif) !important; font-weight: 500 !important; font-size: clamp(40px, 5.4vw, 76px) !important; line-height: 1.02; letter-spacing: .01em; text-transform: none !important; color: #fff !important; margin: 0; }
.page-title .heading::after, .page-title h1::after { content: ""; display: block; width: 180px; height: 11px; margin: 20px auto 0;
    background: linear-gradient(var(--lv-gold-soft), var(--lv-gold-soft)) left center / 74px 1px no-repeat, linear-gradient(var(--lv-gold-soft), var(--lv-gold-soft)) right center / 74px 1px no-repeat,
                conic-gradient(from 45deg, #F4E3B2 0 25%, #C9A65E 0 50%, #F4E3B2 0 75%, #C9A65E 0) center / 11px 11px no-repeat; }
.page-title .text, .page-title p { color: rgba(255, 255, 255, .72); }

@media (max-width: 767px) {
    .page-title { padding: 34px 0 38px !important; }
    .page-title .breadcrumbs { gap: 12px; }
    .page-title .heading::after, .page-title h1::after { margin-top: 14px; }
    section:has(> .container > .page-title) { margin-bottom: 32px; }
}

/* ---------- Buttons ---------- */
.tf-btn { border-radius: 0 !important; letter-spacing: .06em; font-weight: 500; }
.tf-btn.btn-fill, .tf-btn.btn-fill-2, .tf-btn.btn-fill-3, .tf-btn.btn-primary-main, .tf-btn.style-2 { background: var(--lv-emerald) !important; color: var(--lv-gold-soft) !important; border: 1px solid var(--lv-gold) !important; }
.tf-btn.btn-fill:hover, .tf-btn.btn-fill-2:hover, .tf-btn.btn-fill-3:hover, .tf-btn.btn-primary-main:hover, .tf-btn.style-2:hover { background: var(--lv-emerald-deep) !important; color: #fff !important; }
.tf-btn.btn-out-line, .tf-btn.style-line, .tf-btn.btn-line { border-radius: 0 !important; border-color: var(--lv-emerald) !important; color: var(--lv-emerald) !important; }
.tf-btn.btn-out-line:hover, .tf-btn.style-line:hover, .tf-btn.btn-line:hover { background: var(--lv-emerald) !important; color: #fff !important; }
.tf-btn-line { color: var(--lv-emerald); border-bottom-color: var(--lv-gold) !important; }
.lv-btn-royal { display: inline-flex; align-items: center; justify-content: center; gap: 10px; background: var(--lv-emerald); color: var(--lv-gold-soft); border: 1px solid var(--lv-gold); padding: 15px 34px; font-size: 15px; font-weight: 500; letter-spacing: .06em; transition: background .3s, color .3s; }
.lv-btn-royal:hover { background: var(--lv-emerald-deep); color: #fff; }

/* ---------- Form fields (site content only, admin is separate) ---------- */
body input[type="text"], body input[type="email"], body input[type="password"], body input[type="tel"], body input[type="number"], body input[type="search"], body textarea, body select.form-select, body .form-control {
    border-radius: 0 !important; border-color: var(--lv-line) !important; transition: border-color .3s, box-shadow .3s; }
body input[type="text"]:focus, body input[type="email"]:focus, body input[type="password"]:focus, body input[type="tel"]:focus, body input[type="number"]:focus, body input[type="search"]:focus, body textarea:focus, body select.form-select:focus, body .form-control:focus {
    border-color: var(--lv-gold) !important; box-shadow: 0 0 0 3px rgba(168, 133, 69, .14) !important; outline: none; }
.lv-header input, .lv-header select, footer input { box-shadow: none !important; }
input[type="checkbox"], input[type="radio"] { accent-color: var(--lv-emerald); }

/* ---------- Product cards (shop, home, related products) ---------- */
.card_product--V01:has(.lv-card-btn) { background: transparent !important; border: 0 !important; border-radius: 0 !important; padding: 0 !important; box-shadow: none !important; }
.card_product--V01:has(.lv-card-btn) .card_product-wrapper { position: relative; background: #fff; border-radius: 0 !important; transition: transform .6s ease, box-shadow .6s ease; }
.card_product--V01:has(.lv-card-btn) .card_product-wrapper::after { content: ""; position: absolute; inset: 0; z-index: 2; border: 1px solid var(--lv-line); pointer-events: none; transition: inset .5s ease, border-color .5s ease; }
.card_product--V01:has(.lv-card-btn):hover .card_product-wrapper { transform: translateY(-6px); box-shadow: 0 24px 44px -26px rgba(0, 36, 32, .45); }
.card_product--V01:has(.lv-card-btn):hover .card_product-wrapper::after { inset: 8px; border-color: rgba(168, 133, 69, .55); }
.card_product--V01:has(.lv-card-btn) .list-product-btn { z-index: 3; }
.card_product--V01:has(.lv-card-btn) .list-product-btn .box-icon { border-radius: 50% !important; box-shadow: none !important; background: transparent !important; color: var(--lv-ink); }
.card_product--V01:has(.lv-card-btn) .card_product-info { align-items: center; text-align: center; gap: 6px; padding-top: 18px !important; }
.card_product--V01:has(.lv-card-btn) .name-product { font-family: var(--lv-serif) !important; color: var(--lv-ink) !important; font-size: 21px !important; font-weight: 500 !important; line-height: 1.25; }
.card_product--V01:has(.lv-card-btn) .name-product:hover { color: var(--lv-emerald) !important; }
.card_product--V01:has(.lv-card-btn) .price-new { color: var(--lv-emerald) !important; font-size: 16px !important; font-weight: 500; letter-spacing: .02em; }
.lv-off { background: none !important; color: var(--lv-gold) !important; padding: 0 !important; font-size: 13px !important; font-weight: 500 !important; text-transform: none; }
.lv-card-btn { margin-top: 10px; background: transparent !important; color: var(--lv-emerald) !important; border: 1px solid var(--lv-emerald); border-radius: 0 !important; padding: 12px 8px !important; font-size: 14px !important; font-weight: 500 !important; letter-spacing: .06em !important; text-transform: none !important; transition: background .35s, color .35s; }
.lv-card-btn:hover { background: var(--lv-emerald) !important; color: #fff !important; }
@media (max-width: 575px) {
    .card_product--V01:has(.lv-card-btn) .name-product { font-size: 17px !important; }
    .lv-card-btn { font-size: 12.5px !important; padding: 9px 4px !important; }
}

/* Slider arrows site-wide */
.group-btn-slider .tf-sw-nav:hover { color: var(--lv-gold) !important; }

/* ---------- Footer ---------- */
.lv-footer { background: var(--lv-velvet); color: rgba(255, 255, 255, .78); position: relative; }
.lv-footer::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: var(--lv-gold-metal); }
.lv-footer a { color: rgba(255, 255, 255, .78); transition: color .3s; }
.lv-footer a:hover { color: var(--lv-gold-soft); }
.lv-foot-crest { text-align: center; padding: 64px 0 46px; border-bottom: 1px solid rgba(230, 207, 156, .18); }
.lv-foot-crest img { height: 64px; width: auto; }
.lv-foot-crest p { font-family: var(--lv-serif); font-style: italic; font-size: 22px; color: var(--lv-gold-soft); margin: 18px 0 0; }
.lv-foot-main { display: grid; grid-template-columns: 1.35fr 1fr 1fr 1fr 1fr; gap: 40px; padding: 56px 0 48px; }
.lv-foot-h { font-family: var(--lv-serif); font-size: 23px; font-weight: 500; color: #fff; margin: 0 0 20px; }
.lv-foot-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 11px; font-size: 15px; }
.lv-foot-office { margin-bottom: 22px; font-size: 15px; line-height: 1.65; }
.lv-foot-office strong { display: block; font-family: var(--lv-serif); font-size: 19px; font-weight: 600; color: var(--lv-gold-soft); margin-bottom: 6px; }
.lv-foot-office .lv-row { display: flex; gap: 12px; align-items: flex-start; margin-top: 6px; }
.lv-foot-office .lv-row i { color: var(--lv-gold-soft); margin-top: 5px; width: 14px; }
.lv-foot-news { display: flex; align-items: center; gap: 30px; justify-content: space-between; flex-wrap: wrap; padding: 30px 0; border-top: 1px solid rgba(230, 207, 156, .18); border-bottom: 1px solid rgba(230, 207, 156, .18); }
.lv-foot-news h3 { font-family: var(--lv-serif); font-size: 28px; font-weight: 500; color: #fff; margin: 0; }
.lv-foot-news h3 span { display: block; font-family: inherit; font-size: 15px; color: rgba(255, 255, 255, .6); margin-top: 4px; font-style: italic; }
.lv-foot-news form { display: flex; flex: 1 1 380px; max-width: 520px; border: 1px solid rgba(230, 207, 156, .5); }
.lv-foot-news fieldset { flex: 1; margin: 0; }
.lv-foot-news input { width: 100%; background: transparent !important; border: 0 !important; color: #fff !important; padding: 15px 18px !important; font-size: 15px; }
.lv-foot-news input::placeholder { color: rgba(255, 255, 255, .5); }
.lv-foot-news button { background: var(--lv-gold-metal); color: var(--lv-emerald-night); border: 0; padding: 0 26px; font-weight: 600; letter-spacing: .06em; font-size: 14px; }
.lv-foot-bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding: 26px 0 30px; font-size: 14px; color: rgba(255, 255, 255, .6); }
.lv-foot-bottom .tf-social-icon { display: flex; gap: 10px; margin: 0; padding: 0; list-style: none; }
.lv-foot-bottom .tf-social-icon a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(230, 207, 156, .4); color: var(--lv-gold-soft); font-size: 15px; transition: background .3s, color .3s; }
.lv-foot-bottom .tf-social-icon a:hover { background: var(--lv-gold-metal); color: var(--lv-emerald-night); border-color: transparent; }
.lv-foot-bottom select { background: transparent; color: rgba(255, 255, 255, .7); border: 1px solid rgba(230, 207, 156, .35); padding: 7px 10px; font-size: 13px; }
.lv-foot-bottom select option { color: #000; }
@media (max-width: 991px) {
    .lv-foot-main { grid-template-columns: 1fr 1fr; }
    .lv-foot-main > :first-child { grid-column: 1 / -1; }
}
@media (max-width: 575px) {
    .lv-foot-main { grid-template-columns: 1fr 1fr; gap: 32px 20px; padding: 40px 0 34px; }
    .lv-foot-crest { padding: 44px 0 34px; }
    .lv-foot-news form { flex-basis: 100%; }
    .lv-foot-bottom { justify-content: center; text-align: center; padding-bottom: 96px; }
}

/* ---------- Mobile bottom bar + back to top ---------- */
.tf-toolbar-bottom { background: rgba(255, 255, 255, .97) !important; border-top: 1px solid var(--lv-line); box-shadow: 0 -10px 30px -20px rgba(0, 36, 32, .5); backdrop-filter: blur(8px); }
.tf-toolbar-bottom .toolbar-icon, .tf-toolbar-bottom .toolbar-label { color: var(--lv-emerald) !important; }
.tf-toolbar-bottom .toolbar-label { font-size: 11.5px; letter-spacing: .04em; }
.tf-toolbar-bottom .toolbar-count { background: var(--lv-gold-metal) !important; color: var(--lv-emerald-night) !important; font-weight: 600; }
#goTop { border-radius: 50% !important; background: var(--lv-emerald) !important; color: var(--lv-gold-soft) !important; border: 1px solid var(--lv-gold) !important; box-shadow: 0 10px 24px -12px rgba(0, 0, 0, .5); }
#goTop .border-progress { border-color: var(--lv-gold-soft) !important; }

/* ---------- Misc theme pieces ---------- */
.breadcrumbs a:hover { color: var(--lv-gold) !important; }
.pagination-item, .wg-pagination a, .wg-pagination span { border-radius: 0 !important; }
.wg-pagination .active a, .wg-pagination .active span, .pagination-item.active { background: var(--lv-emerald) !important; border-color: var(--lv-emerald) !important; color: var(--lv-gold-soft) !important; }
.modal-content { border-radius: 0 !important; }
.modal .modal-heading, .modal .title { font-family: var(--lv-serif); }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
