/* =================================================
   booking-store/assets/css/theme.css
   Tema limpo, coeso e escalável (PT-PT)
================================================= */

/* ---------------- Paleta / tokens -------------- */
:root{
  --primary:        #2151a0;      /* botões & títulos */
  --primary-600:    #2f63b8;      /* hover */
  --ink:            #1a1d2e;      /* texto principal */
  --muted:          #6b7280;      /* texto secundário */
  --surface:        #ffffff;      /* cartões */
  --line:           rgba(0,0,0,.06);

  /* degradé da barra esquerda (por omissão) */
  --bar-grad:       linear-gradient(180deg, #e04b9f 0%, #7e5bef 100%);

  /* Sombras/raios/spacing */
  --shadow-sm:      0 6px 16px rgba(0,0,0,.06);
  --shadow-md:      0 10px 24px rgba(0,0,0,.08);
  --radius-sm:      .5rem;
  --radius-md:      .75rem;
  --radius-lg:      .875rem;

  --sp-1:.25rem; --sp-2:.5rem; --sp-3:.75rem; --sp-4:1rem; --sp-5:1.25rem; --sp-6:1.5rem;

  /* overhang do logo (quanto “sai” por baixo do header) */
  --logo-overhang: 28px;
}

/* alias Bootstrap */
:root{ --bs-primary:var(--primary); --btn-bg:var(--primary); --btn-bg-hover:var(--primary-600); }

/* ---------------- Tipografia & menus ------------ */
body{ color:var(--ink); }

/* Cabeçalhos — discretos e com hierarquia correcta */
h1,h2,h3,
.h1,.h2,.h3{
  margin-bottom:.5rem;
  letter-spacing:.2px;
  color:var(--primary);
  line-height:1.25;
}

/* Tamanhos (mobile-first) + fluidos com clamp() */
h1,.h1{ font-size: clamp(1.375rem, 1.1rem + 1.2vw, 1.75rem); } /* ~22px → 28px */
h2,.h2{ font-size: clamp(1.25rem, 1.05rem + 0.8vw, 1.5rem); }  /* ~20px → 24px */
h3,.h3{ font-size: clamp(1.125rem, 1.0rem + 0.4vw, 1.25rem); } /* ~18px → 20px */

a{ color:inherit; text-decoration:none; }
a:hover{ text-decoration:underline; }

/* Menu WP simples */
.menu{ list-style:none; margin:0; padding:0; }
.menu .menu-item{ display:inline-block; }
.menu .menu-item a{ padding:.25rem .5rem; display:inline-block; color:#333; border-radius:.375rem; }
.menu .menu-item a:hover{ color:var(--primary); }

/* ---------------- Woo bits ---------------------- */
.price{ color:#4c3f91; font-weight:700; }

/* ---------------- Cartões de lista -------------- */
.booking-list-item{
  position:relative; border-radius:var(--radius-lg); background:var(--surface);
  border:1px solid var(--line); box-shadow:var(--shadow-sm);
  transition: box-shadow .15s ease, transform .15s ease;
}
.booking-list-item::before{
  content:""; position:absolute; left:0; top:12px; bottom:12px; width:8px;
  background:var(--bar-grad); border-radius:8px; opacity:.95;
}
.booking-list-item .card-body{
  display:flex; align-items:center;
  padding: var(--sp-4) var(--sp-4) var(--sp-4) calc(var(--sp-4) + var(--sp-3) + 8px);
}
.booking-list-item img{
  width:72px; height:72px; object-fit:cover; border-radius:var(--radius-sm); display:block;
}
.booking-list-item h3{ margin:0 0 .25rem; }
.booking-list-item .text-muted{ color:var(--muted)!important; }
.booking-list-item .price{ display:block; margin-top:.25rem; }
.booking-list-item:hover{ transform:translateY(-1px); box-shadow:var(--shadow-md); }

/* Manter imagem à esquerda também em mobile */
@media (max-width:576px){
  .booking-list-item .card-body{
    flex-direction:row; align-items:center; gap:0;
    padding: var(--sp-4) var(--sp-4) var(--sp-4) calc(var(--sp-4) + var(--sp-3) + 8px);
  }
  .booking-list-item .ms-3{ margin-left:var(--sp-4)!important; }
  .booking-list-item .text-end{ text-align:right!important; }
}

/* ---------------- Single product ---------------- */
.booking-single .card-body{ padding:var(--sp-4); }
.booking-single .ratio{ border-radius:var(--radius-md); overflow:hidden; border:1px solid var(--line); }
.booking-single .text-muted{ color:var(--muted)!important; }

/* ---------------- Botões unificados ------------- */
.btn-agendar,
.btn.btn-primary,
.single_add_to_cart_button.button.alt,
a.single_add_to_cart_button.button.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce a.button,
.woocommerce button.button{
  display:inline-block; border:0; border-radius:var(--radius-sm);
  padding:.55rem .95rem; color:#fff!important; background:var(--btn-bg)!important;
  font-weight:600; line-height:1.2; text-decoration:none!important;
  box-shadow:0 10px 18px rgba(33,81,160,.18);
}
.btn-agendar:hover,
.btn.btn-primary:hover,
.single_add_to_cart_button.button.alt:hover,
a.single_add_to_cart_button.button.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover{
  background:var(--btn-bg-hover)!important; color:#fff!important; text-decoration:none!important;
}
button:disabled, .btn:disabled,
.single_add_to_cart_button.button.alt:disabled,
.woocommerce a.button.disabled, .woocommerce button.button.disabled{
  opacity:.55; cursor:not-allowed;
}
.btn-agendar:focus, .btn.btn-primary:focus,
.single_add_to_cart_button.button.alt:focus,
.woocommerce a.button:focus, .woocommerce button.button:focus{
  outline:2px solid rgba(33,81,160,.35); outline-offset:2px;
}

/* ---------------- Categorias (cartões) ---------- */
.booking-cat-item{
  position:relative; border-radius:var(--radius-lg); background:var(--surface);
  border:1px solid var(--line); box-shadow:var(--shadow-sm);
  transition: box-shadow .15s ease, transform .15s ease;
}
.booking-cat-item::before{
  content:""; position:absolute; left:0; top:12px; bottom:12px; width:8px;
  background:var(--bar-grad); border-radius:8px; opacity:.95;
}
.booking-cat-item .card-body{
  display:flex; align-items:center;
  padding: var(--sp-4) var(--sp-4) var(--sp-4) calc(var(--sp-4) + var(--sp-3) + 8px);
}
.booking-cat-item:hover{ transform:translateY(-1px); box-shadow:var(--shadow-md); }

/* ---------------- Utilidades -------------------- */
.text-secondary-pt{ color:#6c757d!important; }
.badge-soft{ display:inline-block; padding:.25rem .5rem; border-radius:.5rem;
  background:rgba(33,81,160,.08); color:var(--primary); font-weight:600; font-size:.8125rem; }
.hr-muted{ border:0; border-top:1px solid var(--line); margin:var(--sp-4) 0; }
.meta-price-label{ color:var(--muted); font-weight:600; margin-right:.35rem; }

/* =================================================
   CORES POR CATEGORIA (override de --bar-grad)
   Usa o slug da categoria em .cat-{slug}
================================================= */

/* azuis */
.cat-paineis-fotovoltaicos{ --bar-grad: linear-gradient(180deg,#2a6de9 0%, #4ac0ff 100%); }
/* verdes */
.cat-gasses-flourados, .cat-gases-fluorados{ --bar-grad: linear-gradient(180deg,#22c55e 0%, #4ade80 100%); }
/* roxo/pink (default) */
.cat-bombas-de-calor{ --bar-grad: linear-gradient(180deg,#e04b9f 0%, #7e5bef 100%); }
/* laranja */
.cat-seguranca, .cat-eletricidade{ --bar-grad: linear-gradient(180deg,#ff8a00 0%, #ffb84d 100%); }
/* ciano */
.cat-climatizacao{ --bar-grad: linear-gradient(180deg,#0ea5e9 0%, #22d3ee 100%); }
/* podes adicionar mais: .cat-{slug} { --bar-grad: linear-gradient(...); } */

/* =================================================
   Header compacto com logo a “sair” (overhang)
================================================= */
/* ===== Header ligeiramente maior + sem sobreposição ===== */

/* controla o quanto o logo “sai” do header */
:root{
  --logo-overhang: 36px;         /* quanto do logo fica para fora do header */
}
.site-header{
  padding: .45rem 0 !important;   /* header um pouco maior mas compacto */
  min-height: 56px;
  background:#fff;
  border-bottom: 1px solid rgba(0,0,0,.06);
  position: relative;
  z-index: 1000;                  /* garante que fica acima de sombras/cards */
  overflow: visible;              /* permite o overhang do logo */
}

/* Logo com overhang controlado (desktop) */
.site-logo{
  height: 110px;                   /* ↑ ligeiramente maior que a versão compacta */
  width: auto;
  display: inline-block;
  margin-bottom: 0px;           /* metade do logo “cai” abaixo do header */
  vertical-align: middle;
  filter: drop-shadow(0 4px 12px rgba(0,0,0,.08));
}

/* Compensação global do overhang no conteúdo (todas as páginas) */
main.container,
.site-main,
body .container:first-of-type{
  padding-top: 14px;              /* evita que o primeiro bloco “cole” ao logo */
}

/* Single product: garante o mesmo afastamento do primeiro cartão */
.single-product .booking-single{
  margin-top: 12px;
}

/* Responsivo (mobile) — logo e overhang mais discretos */
@media (max-width: 576px){
  .site-logo{
    height: 72px;
    margin-bottom: -16px;
  }
  main.container,
  .site-main,
  body .container:first-of-type{
    padding-top: 10px;
  }
}

/* Ocultar meta (data/autor) em páginas estáticas, incluindo "Finalizar compras" */
.page .entry-meta,
.page .posted-on,
.page time.entry-date {
  display: none !important;
}