/* ==========================================================================
   header.css — All header, topbar, nav, cart sidebar, mobile nav styles.
   Selectors prefixed tp- to avoid conflicts with WooCommerce.
   ========================================================================== */

/* TOP BAR */
.tp-topbar { background:#fff; border-bottom:1px solid #f0ede8; height:38px; display:flex; align-items:center; overflow:hidden; transition:height .3s,opacity .25s; }
.tp-topbar.is-hidden { height:0!important; opacity:0; pointer-events:none; }
.tp-topbar__inner { width:100%; max-width:1200px; margin:0 auto; padding:0 24px; display:flex; align-items:center; justify-content:space-between; font-size:13px; color:#888; }
.tp-topbar__right { display:flex; align-items:center; gap:20px; }
.tp-topbar__phone { display:flex; align-items:center; gap:6px; color:#444; text-decoration:none; font-weight:500; font-size:13px; transition:color .15s; }
.tp-topbar__phone:hover { color:#2d5a3d; }
.tp-topbar__phone svg { width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:2; flex-shrink:0; }

/* HEADER SHELL */
.tp-header { position:sticky!important; top:0!important; z-index:200!important; background:rgba(255,255,255,.97)!important; backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); transition:box-shadow .25s; width:100%; box-sizing:border-box; }
.tp-header.is-scrolled { box-shadow:0 2px 20px rgba(0,0,0,.08)!important; }

/* INNER: 3-col grid — nav | logo | actions */
.tp-header__inner { display:grid!important; grid-template-columns:1fr auto 1fr!important; align-items:center!important; max-width:1200px; margin:0 auto; padding:0 24px; height:120px; transition:height .4s cubic-bezier(.4,0,.2,1); border-top:1px solid #eee; box-sizing:border-box; }
.tp-header.is-scrolled .tp-header__inner { height:54px; }

/* LEFT: nav */
.tp-header__left { grid-column:1; display:flex; align-items:center; }
.tp-nav-menu { display:flex!important; align-items:center!important; gap:0!important; list-style:none!important; margin:0!important; padding:0!important; }
.tp-nav-menu > li { position:relative; list-style:none!important; }
.tp-nav-menu > li > a { display:flex!important; align-items:center; gap:3px; padding:6px 10px!important; font-size:14px!important; font-weight:500!important; color:#1a1a1a!important; text-decoration:none!important; border-radius:8px; white-space:nowrap; transition:background .15s,color .15s; }
.tp-nav-menu > li > a:hover, .tp-nav-menu > li.current-menu-item > a, .tp-nav-menu > li.current-menu-ancestor > a { background:#f3efe9!important; color:#2d5a3d!important; }
.tp-nav-menu > li.menu-item-has-children > a::after { content:''; display:inline-block; width:5px; height:5px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg) translateY(-2px); margin-left:3px; transition:transform .2s; }
.tp-nav-menu > li.menu-item-has-children:hover > a::after { transform:rotate(-135deg) translateY(-2px); }
.tp-nav-menu .sub-menu { position:absolute!important; top:calc(100% + 8px)!important; left:0!important; min-width:200px; background:#fff!important; border:1px solid #e8e4de!important; border-radius:12px!important; box-shadow:0 8px 32px rgba(0,0,0,.10)!important; padding:6px!important; list-style:none!important; margin:0!important; opacity:0; pointer-events:none; transform:translateY(-6px); transition:opacity .18s,transform .18s; z-index:500!important; }
.tp-nav-menu > li:hover > .sub-menu, .tp-nav-menu > li:focus-within > .sub-menu { opacity:1!important; pointer-events:auto!important; transform:translateY(0)!important; }
.tp-nav-menu .sub-menu a { display:block!important; padding:8px 12px!important; font-size:14px!important; color:#333!important; text-decoration:none!important; border-radius:8px!important; background:transparent!important; transition:background .12s,color .12s; }
.tp-nav-menu .sub-menu a:hover { background:#f3efe9!important; color:#2d5a3d!important; }

/* CENTRE: dual logo (big T2 -> compact T1 on scroll) */
.tp-header__centre { grid-column:2; display:flex; justify-content:center; align-items:center; position:relative; }
.tp-logo-t2-wrap, .tp-logo-t1-wrap { transition:opacity .35s,transform .35s; }
.tp-logo-t2-wrap { position:relative; }
.tp-logo-t1-wrap { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%) scale(.85); opacity:0; pointer-events:none; white-space:nowrap; }
.tp-header.is-scrolled .tp-logo-t2-wrap { opacity:0; transform:scale(.85); pointer-events:none; }
.tp-header.is-scrolled .tp-logo-t1-wrap { opacity:1; transform:translate(-50%,-50%) scale(1); pointer-events:auto; }
.tp-logo-t2 { height:88px; width:auto; display:block; object-fit:contain; transition:height .4s cubic-bezier(.4,0,.2,1); }
.tp-header.is-scrolled .tp-logo-t2 { height:0; }
.tp-logo-t1 { height:30px; width:auto; display:block; object-fit:contain; }
.tp-header__centre a { display:block; line-height:0; text-decoration:none; }

/* RIGHT: actions */
.tp-header__right { grid-column:3; display:flex!important; align-items:center!important; justify-content:flex-end!important; gap:2px; }
.tp-hd-link { padding:6px 10px; font-size:14px; font-weight:500; color:#1a1a1a; text-decoration:none; border-radius:8px; white-space:nowrap; transition:background .15s,color .15s; }
.tp-hd-link:hover { background:#f3efe9; color:#2d5a3d; }
.tp-hd-currency { font-size:12px; color:#aaa; padding:4px 6px; }
.tp-hd-icon { width:34px; height:34px; display:flex!important; align-items:center; justify-content:center; border-radius:8px; color:#333!important; text-decoration:none; position:relative; flex-shrink:0; transition:background .15s,color .15s; background:transparent; border:none; cursor:pointer; padding:0; }
.tp-hd-icon:hover { background:#f3efe9!important; color:#2d5a3d!important; }
.tp-hd-icon svg { width:17px; height:17px; fill:none!important; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; display:block; }
.tp-hd-icon--cart { background:#adddbd!important; color:#1a3a2a!important; width:40px!important; border-radius:10px!important; }
.tp-hd-icon--cart:hover { background:#9fd1af!important; }
.tp-hd-cart-count { position:absolute; top:-3px; right:-3px; width:16px; height:16px; background:#2d5a3d; color:#fff; border-radius:50%; font-size:9px; font-weight:700; display:flex; align-items:center; justify-content:center; border:1.5px solid #fff; }

/* HAMBURGER */
.tp-hamburger { display:none!important; flex-direction:column; justify-content:center; align-items:center; gap:5px; width:34px; height:34px; background:none!important; border:none!important; cursor:pointer; border-radius:8px; padding:0; transition:background .15s; }
.tp-hamburger:hover { background:#f3efe9!important; }
.tp-hamburger span { display:block; width:18px; height:1.5px; background:#333; border-radius:2px; transition:transform .25s,opacity .2s; }
body.tp-nav-open .tp-hamburger span:nth-child(1) { transform:translateY(6.5px) rotate(45deg); }
body.tp-nav-open .tp-hamburger span:nth-child(2) { opacity:0; }
body.tp-nav-open .tp-hamburger span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }

/* CART SIDEBAR */
.tp-cart-sidebar { position:fixed; top:0; right:0; width:min(420px,95vw); height:100dvh; background:#fff; z-index:10000; transform:translateX(100%); transition:transform .35s cubic-bezier(.4,0,.2,1); display:flex; flex-direction:column; box-shadow:-8px 0 40px rgba(0,0,0,.12); }
.tp-cart-sidebar.is-open { transform:translateX(0); }
.tp-cart-sidebar__head { display:flex; align-items:center; justify-content:space-between; padding:20px 24px; border-bottom:1px solid #eee; flex-shrink:0; }
.tp-cart-sidebar__title { font-family:'Frank Ruhl Libre',Georgia,serif; font-size:20px; font-weight:400; margin:0; }
.tp-cart-sidebar__close { background:none; border:none; cursor:pointer; width:34px; height:34px; display:flex; align-items:center; justify-content:center; border-radius:8px; color:#555; transition:background .15s; font-size:20px; }
.tp-cart-sidebar__close:hover { background:#f3efe9; }
.tp-cart-sidebar__body { flex:1; overflow-y:auto; padding:20px 24px; }
.tp-cart-sidebar__empty { display:flex; flex-direction:column; align-items:center; justify-content:center; height:100%; gap:16px; color:#aaa; text-align:center; }
.tp-cart-item { display:flex; gap:14px; padding:14px 0; border-bottom:1px solid #f0ede8; }
.tp-cart-item:last-child { border-bottom:none; }
.tp-cart-item__img { width:64px; height:64px; border-radius:10px; overflow:hidden; flex-shrink:0; background:#f7f4ef; }
.tp-cart-item__img img { width:100%; height:100%; object-fit:cover; display:block; }
.tp-cart-item__info { flex:1; min-width:0; }
.tp-cart-item__name { font-size:14px; font-weight:500; color:#111; margin:0 0 4px; line-height:1.3; }
.tp-cart-item__meta { font-size:12px; color:#888; margin:0 0 8px; }
.tp-cart-item__price { font-size:15px; font-weight:600; color:#111; margin:0; }
.tp-cart-item__remove { background:none; border:none; cursor:pointer; color:#ccc; font-size:20px; line-height:1; padding:0; transition:color .15s; align-self:flex-start; }
.tp-cart-item__remove:hover { color:#e44; }
.tp-cart-sidebar__foot { border-top:1px solid #eee; padding:20px 24px; flex-shrink:0; display:flex; flex-direction:column; gap:12px; }
.tp-cart-sidebar__total { display:flex; justify-content:space-between; align-items:baseline; }
.tp-cart-sidebar__total span:first-child { font-size:15px; font-weight:600; }
.tp-cart-sidebar__total span:last-child { font-family:'Frank Ruhl Libre',Georgia,serif; font-size:24px; font-weight:400; }
.tp-cart-sidebar__note { font-size:11px; color:#aaa; text-align:center; margin:0; }
.tp-cart-sidebar__btns { display:flex; flex-direction:column; gap:8px; }
.tp-cart-btn { display:flex; align-items:center; justify-content:center; height:48px; border-radius:12px; font-size:15px; font-weight:600; text-decoration:none; border:none; cursor:pointer; font-family:'Urbanist',Arial,sans-serif; transition:background .15s,transform .1s; }
.tp-cart-btn--primary { background:#1a1a1a; color:#fff; }
.tp-cart-btn--primary:hover { background:#2d5a3d; transform:translateY(-1px); color:#fff; }
.tp-cart-btn--secondary { background:#f3efe9; color:#1a1a1a; }
.tp-cart-btn--secondary:hover { background:#e8e2d8; }

/* MOBILE NAV */
.tp-mobile-nav { position:fixed!important; top:0!important; right:0!important; width:min(340px,90vw)!important; height:100dvh!important; background:#fff!important; z-index:9999!important; transform:translateX(100%); transition:transform .32s cubic-bezier(.4,0,.2,1); overflow-y:auto; padding:20px 24px 40px; display:flex!important; flex-direction:column!important; box-shadow:-6px 0 40px rgba(0,0,0,.12); }
.tp-mobile-nav[aria-hidden="false"] { transform:translateX(0)!important; }
.tp-mobile-nav__close { align-self:flex-end; background:none; border:none; font-size:18px; cursor:pointer; color:#666; width:34px; height:34px; display:flex; align-items:center; justify-content:center; border-radius:8px; margin-bottom:16px; transition:background .15s; }
.tp-mobile-nav__close:hover { background:#f3efe9; }
.tp-mobile-nav__logo { display:block; text-align:center; margin-bottom:20px; }
.tp-mobile-nav__menu { list-style:none!important; margin:0!important; padding:0!important; display:flex; flex-direction:column; gap:2px; }
.tp-mobile-nav__menu a { display:block; padding:11px 14px; font-size:16px; font-weight:500; color:#111!important; text-decoration:none; border-radius:10px; transition:background .12s; }
.tp-mobile-nav__menu a:hover { background:#f3efe9!important; color:#2d5a3d!important; }
.tp-mobile-nav__menu .sub-menu { list-style:none; margin:2px 0 0 12px; padding:0; }
.tp-mobile-nav__menu .sub-menu a { font-size:14px; color:#555!important; padding:8px 14px; }
.tp-mobile-nav__contact { margin-top:auto; padding-top:24px; border-top:1px solid #eee; display:flex; flex-direction:column; gap:5px; font-size:13px; color:#999; }
.tp-mobile-nav__contact a { color:#2d5a3d!important; font-weight:600; text-decoration:none; }

.tp-overlay { position:fixed!important; inset:0!important; background:rgba(0,0,0,.28); z-index:9998!important; opacity:0; pointer-events:none; transition:opacity .3s; }
.tp-overlay[aria-hidden="false"] { opacity:1!important; pointer-events:auto!important; }

/* RESPONSIVE */
@media (max-width:960px) {
  .tp-topbar { display:none!important; }
  .tp-header__inner { height:72px; border-top:none; padding:0 16px; grid-template-columns:auto 1fr auto!important; }
  .tp-header__left { display:none!important; }
  .tp-hd-link, .tp-hd-currency { display:none!important; }
  .tp-header__centre { justify-self:start; }
  .tp-logo-t2 { height:52px; }
  .tp-hamburger { display:flex!important; }
}
@media (max-width:480px) {
  .tp-hd-icon:not(.tp-hd-icon--cart) { display:none!important; }
}
