:root {
  --premium-ink: #18221d;
  --premium-muted: #5e6b63;
  --premium-paper: #e2e7df;
  --premium-line: #d2d8cf;
  --premium-green: #164d3b;
  --premium-green-dark: #0d3428;
  --premium-lime: #dce8ad;
  --premium-orange: #e89a38;
  --premium-white: #fff;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  color: var(--premium-ink);
  background: var(--premium-paper);
  font-family: "DM Sans", sans-serif;
}

a { color: inherit; }

.premium-shell {
  min-height: 100vh;
  overflow: hidden;
  color: var(--premium-ink);
  background: var(--premium-paper);
  font-family: "DM Sans", sans-serif;
}

.premium-shell h1,
.premium-shell h2,
.premium-shell h3,
.premium-shell h4,
.premium-shell h5,
.premium-shell h6,
h1, h2, h3, h4, h5, h6 {
  color: inherit;
  font-family: "Playfair Display", serif !important;
  letter-spacing: -0.01em;
}

.premium-shell p,
.premium-shell label,
.premium-shell span,
.premium-shell a { letter-spacing: 0; }

.premium-shell input,
.premium-shell select,
.premium-shell button { font: inherit; }

.utility-bar { padding: .45rem clamp(1rem, 4vw, 4rem); color: rgba(255,255,255,.82); background: var(--premium-green-dark); font-size: .76rem; }
.utility-bar-inner { display: flex; justify-content: space-between; gap: 1rem; max-width: 1440px; margin: 0 auto; }
.main-header { position: fixed; top: 29px; right: 0; left: 0; z-index: 19; background: rgba(255,255,255,.96); border-bottom: 1px solid var(--premium-line); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); }
.premium-shell { padding-top: 165px; --premium-sidebar-width: 238px; }
.premium-shell .utility-bar { position: fixed; top: 0; right: 0; left: 0; z-index: 20; }
.header-row { display: grid; grid-template-columns: auto minmax(180px, 1fr) auto; align-items: center; gap: clamp(1rem, 3vw, 3rem); max-width: 1440px; padding: .8rem clamp(1rem, 4vw, 4rem); margin: 0 auto; }
.brand { display: inline-flex; align-items: center; text-decoration: none; }
.brand img { width: 76px; height: 58px; object-fit: contain; }
.search-form { position: relative; width: min(100%, 650px); justify-self: center; }
.search-form input { width: 100%; min-height: 46px; padding: .75rem 3.4rem .75rem 1.1rem; border: 1px solid #d9ded8; border-radius: 12px; color: var(--premium-ink); background: #f5f7f3; outline: 0; }
.search-form input:focus { border-color: var(--premium-green); box-shadow: 0 0 0 4px rgba(22,77,59,.1); }
.search-form button { position: absolute; top: 5px; right: 5px; width: 36px; height: 36px; border: 0; border-radius: 9px; color: var(--premium-white); background: var(--premium-orange); }
.search-results-dropdown { position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 1060; background: var(--premium-surface, #ffffff); border: 1px solid var(--premium-line, #d2d8cf); border-radius: 14px; box-shadow: 0 12px 32px rgba(24, 34, 29, 0.12); max-height: 380px; overflow-y: auto; padding: .4rem 0; }
.search-results-dropdown .search-result-item { display: flex; align-items: center; gap: .8rem; padding: .65rem 1rem; color: var(--premium-ink, #18221d); text-decoration: none; font-size: .88rem; transition: background .15s ease; }
.search-results-dropdown .search-result-item:hover { background: #f0f4ea; color: var(--premium-green, #164d3b); }
.search-results-dropdown .search-result-item i { font-size: 1.1rem; color: var(--premium-green, #164d3b); width: 24px; text-align: center; flex-shrink: 0; }
.search-results-dropdown .search-result-title { font-weight: 700; line-height: 1.25; }
.search-results-dropdown .search-result-subtitle { font-size: .78rem; color: var(--premium-muted, #5e6b63); }
.search-results-dropdown .search-no-results { padding: .8rem 1rem; color: var(--premium-muted, #5e6b63); font-size: .88rem; text-align: center; }
.header-actions { display: flex; align-items: center; gap: .75rem; }
.icon-action { display: inline-grid; width: 42px; height: 42px; place-items: center; border: 1px solid var(--premium-line); border-radius: 50%; color: var(--premium-ink); background: var(--premium-white); text-decoration: none; font-size: 1.12rem; transition: transform .2s ease, background .2s ease; }
.icon-action:hover { transform: translateY(-2px); background: var(--premium-lime); }
.category-nav { border-top: 1px solid #f0f2ee; background: var(--premium-white); }
.category-nav ul { display: flex; gap: clamp(1rem, 3vw, 2.8rem); max-width: 1440px; padding: 0 clamp(1rem, 4vw, 4rem); margin: 0 auto; overflow-x: auto; list-style: none; }
.category-nav a { display: inline-flex; align-items: center; min-height: 48px; border-bottom: 3px solid transparent; color: #58635d; font-size: .91rem; font-weight: 600; text-decoration: none; white-space: nowrap; transition: all .2s ease; }
.category-nav a:hover, .category-nav a.active { border-color: var(--premium-orange, #c28e2b); color: var(--premium-green, #234e32); font-weight: 800; }
.page-content { max-width: 1440px; padding: 0.75rem clamp(1rem, 4vw, 4rem) 4rem; margin: 0 auto; }
@media (max-width: 768px) {
  .page-content {
    padding-top: 0.65rem;
    padding-bottom: 2.5rem;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    margin-top: 0 !important;
  }
}
.premium-sidebar { position: fixed; top: 165px; bottom: 0; left: 0; z-index: 15; width: var(--premium-sidebar-width); padding: 1rem .8rem; overflow-y: auto; border-right: 1px solid var(--premium-line); background: #f7f9f5; box-shadow: 8px 0 24px rgba(24,34,29,.05); }
.premium-sidebar-header { display: flex; align-items: center; justify-content: space-between; padding: .55rem .65rem 1rem; border-bottom: 1px solid var(--premium-line); color: var(--premium-green); }
.premium-sidebar-nav { display: grid; gap: .2rem; padding-top: .8rem; }
.premium-sidebar-label { padding: .8rem .65rem .3rem; color: var(--premium-muted); font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.premium-sidebar-nav a { display: flex; align-items: center; gap: .65rem; padding: .62rem .65rem; border-radius: 8px; color: var(--premium-ink); font-size: .82rem; font-weight: 600; text-decoration: none; transition: all .2s ease; }
.premium-sidebar-nav a i { width: 1rem; color: var(--premium-green); text-align: center; }
.premium-sidebar-nav a:hover, .premium-sidebar-nav a.active { color: var(--premium-green, #234e32); background: #e9f0df; font-weight: 800; border-left: 3px solid var(--premium-green, #234e32); }
.premium-menu-toggle { display: none; }
.premium-footer { margin-top: 3rem; overflow: hidden; border: 1px solid rgba(34,65,50,.2); border-radius: 18px; color: #f3f5eb; background: linear-gradient(135deg,#102b23 0%,#174639 45%,#1f5f4e 100%); box-shadow: 0 22px 48px rgba(13,36,30,.2); }
.premium-footer-inner { padding: clamp(1.5rem, 3vw, 2.4rem); }
.footer-brand { max-width: 420px; }
.footer-logo { display: inline-flex; align-items: center; gap: .45rem; margin-bottom: .75rem; color: #fff9df; font-family: "Playfair Display", serif; font-size: 1.25rem; font-weight: 700; }
.footer-copy { max-width: 50ch; margin: 0; color: rgba(243,245,235,.82); line-height: 1.65; }
.footer-widget-title { margin-bottom: .85rem; color: #f9f2cb; font-size: .82rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.footer-links { display: grid; gap: .5rem; padding: 0; margin: 0; list-style: none; }
.footer-links a { display: inline-flex; align-items: center; gap: .35rem; color: rgba(243,245,235,.9); font-weight: 600; text-decoration: none; transition: transform .2s ease, color .2s ease; }
.footer-links a:hover { color: #ffde84; transform: translateX(3px); }
.footer-contact-item { display: flex; align-items: flex-start; gap: .6rem; margin-bottom: .55rem; color: rgba(243,245,235,.9); }
.footer-contact-item i { margin-top: 2px; color: #ffde84; }
.footer-contact-item a { color: inherit; text-decoration: none; }
.footer-social { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1rem; }
.footer-social a { display: inline-flex; width: 36px; height: 36px; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; color: #fff8db; background: rgba(255,255,255,.12); text-decoration: none; }
.footer-bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; padding: .95rem clamp(1.5rem, 3vw, 2.4rem); border-top: 1px solid rgba(255,255,255,.16); color: rgba(243,245,235,.76); }
.footer-bottom-links { display: flex; flex-wrap: wrap; gap: .9rem; }
.footer-bottom-links a { color: rgba(243,245,235,.85); text-decoration: none; }
.premium-toast-container { position: fixed; top: 175px; right: 1rem; z-index: 30; width: min(360px, calc(100vw - 2rem)); }
.premium-toast-container .toast { width: 100%; border: 1px solid rgba(22,77,59,.16); box-shadow: 0 14px 30px rgba(24,34,29,.16); }
.premium-toast-container .toast-header { color: var(--premium-green); background: #f4f7ef; }
.premium-toast-container .toast-body { color: #fff; font-weight: 600; }
@media (max-width: 1100px) { .premium-sidebar.offcanvas-lg { display: block !important; top: 0 !important; bottom: 0 !important; height: 100vh !important; z-index: 1055 !important; width: min(300px, 85vw) !important; padding: 1.2rem 1rem !important; background: #ffffff !important; box-shadow: 10px 0 30px rgba(0,0,0,0.25) !important; visibility: hidden; transform: translateX(-100%); transition: transform .25s ease, visibility .25s ease; } .premium-sidebar.offcanvas-lg.show { visibility: visible !important; transform: translateX(0) !important; } .premium-menu-toggle { display: inline-grid; } }
@media (min-width: 1101px) { .page-content { margin-left: calc(var(--premium-sidebar-width) + 1rem); } }
@media (max-width: 900px) { .premium-shell { padding-top: 156px; } .header-row { gap: .7rem; } .brand img { width: 65px; } }
@media (max-width: 600px) { .premium-shell { padding-top: 148px; } .premium-shell .main-header { top: 24px; } .premium-toast-container { top: 152px; right: .75rem; width: min(360px, calc(100vw - 1.5rem)); } .utility-bar-inner span:first-child { display: none; } .header-row { grid-template-columns: auto 1fr auto; padding: .65rem 1rem; } .search-form input { min-height: 40px; padding-left: .75rem; font-size: .8rem; } .search-form button { width: 31px; height: 31px; } .icon-action { width: 38px; height: 38px; } .premium-footer { border-radius: 14px; } .premium-footer .footer-bottom { flex-direction: column; align-items: flex-start; padding: .85rem 1.2rem; } .premium-footer .footer-bottom-links { display: grid; grid-template-columns: 1fr; gap: .55rem; } }
