:root{
  --thcs-card-bg:#f5f5f3;
  --thcs-price-color:#c8663a;
  --thcs-category-color:#111111;
  --thcs-product-name-color:#183c2f;
  --thcs-description-color:#111111;
  --thcs-option-bg:#f3ece8;
  --thcs-radius:30px;
  --thcs-shadow:0 6px 18px rgba(0,0,0,.05);
  --thcs-item-padding-y:28px;
  --thcs-item-padding-x:30px;
  --thcs-items-gap:22px;
  --thcs-option-padding:16px 18px;
  --thcs-category-gap:42px;
  --thcs-category-image-height:240px;
  --thcs-price-size:20px;
  --thcs-price-bg:transparent;
  --thcs-price-padding:0;
  --thcs-price-radius:0;
  --thcs-price-shadow:none;
  --thcs-price-text-color:var(--thcs-price-color);
  --thcs-sticky-offset:0px;
  --thcs-auto-sticky-offset:0px;
  --thcs-effective-sticky-offset:var(--thcs-sticky-offset, 0px);

  /* Elementor global typography fallbacks */
  --thcs-font-primary:var(--e-global-typography-primary-font-family, inherit);
  --thcs-weight-primary:var(--e-global-typography-primary-font-weight, 700);
  --thcs-transform-primary:var(--e-global-typography-primary-text-transform, uppercase);
  --thcs-style-primary:var(--e-global-typography-primary-font-style, normal);
  --thcs-letter-primary:var(--e-global-typography-primary-letter-spacing, .12em);

  --thcs-font-secondary:var(--e-global-typography-secondary-font-family, var(--thcs-font-primary));
  --thcs-weight-secondary:var(--e-global-typography-secondary-font-weight, 700);
  --thcs-transform-secondary:var(--e-global-typography-secondary-text-transform, none);
  --thcs-style-secondary:var(--e-global-typography-secondary-font-style, normal);
  --thcs-letter-secondary:var(--e-global-typography-secondary-letter-spacing, normal);

  --thcs-font-text:var(--e-global-typography-text-font-family, inherit);
  --thcs-weight-text:var(--e-global-typography-text-font-weight, 400);
  --thcs-transform-text:var(--e-global-typography-text-text-transform, none);
  --thcs-style-text:var(--e-global-typography-text-font-style, normal);
  --thcs-letter-text:var(--e-global-typography-text-letter-spacing, normal);
}

.thcs-carta{
  font-family:var(--thcs-font-text);
  max-width:1180px;
  margin:0 auto;
  padding:24px 18px 60px;
}

.thcs-categoria{
  margin:0;
}


.thcs-categorias-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--thcs-category-gap) 28px;
}

.thcs-categorias-grid--two-columns,
.thcs-categorias-grid--mixed{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--thcs-category-gap) 28px;
  align-items:stretch;
}

.thcs-categoria--full{
  grid-column:1 / -1;
}

.thcs-categoria--half{
  display:flex;
  flex-direction:column;
}

.thcs-categoria--half .thcs-items{
  flex:1;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:22px;
}

.thcs-categoria-imagen{
  margin:0 0 44px !important;
  border-radius:calc(var(--thcs-radius) * .72);
  overflow:hidden;
  box-shadow:var(--thcs-shadow);
  background:var(--thcs-card-bg);
}

.thcs-categoria-imagen img{
  display:block;
  width:100%;
  aspect-ratio:16 / 3.2;
  max-height:220px;
  object-fit:cover;
}

.thcs-categoria-titulo{
  clear:both;
  margin:0 0 26px;
  text-align:center;
  font-family:var(--thcs-font-primary);
  font-size:32px;
  font-weight:var(--thcs-weight-primary);
  font-style:var(--thcs-style-primary);
  line-height:1;
  letter-spacing:var(--thcs-letter-primary);
  text-transform:var(--thcs-transform-primary);
  color:var(--thcs-category-color);
}

.thcs-categoria-descripcion{
  max-width:720px;
  margin:0 auto 34px;
  text-align:center;
  font-family:var(--thcs-font-text);
  font-size:16px;
  font-weight:var(--thcs-weight-text);
  font-style:var(--thcs-style-text);
  line-height:1.65;
  letter-spacing:var(--thcs-letter-text);
  text-transform:var(--thcs-transform-text);
  color:var(--thcs-category-description-color, var(--thcs-description-color));
}

.thcs-items{
  display:grid;
  gap:var(--thcs-items-gap);
}

.thcs-item{
  background:var(--thcs-card-bg);
  border-radius:var(--thcs-radius);
  padding:var(--thcs-item-padding-y) var(--thcs-item-padding-x);
  box-shadow:var(--thcs-shadow);
}

.thcs-item-grid{
  display:grid;
  gap:28px;
  align-items:start;
}

.thcs-item-content{
  min-width:0;
}

.thcs-item-name{
  font-family:var(--thcs-font-secondary);
  font-size:var(--thcs-price-size);
  font-weight:var(--thcs-weight-secondary);
  font-style:var(--thcs-style-secondary);
  letter-spacing:var(--thcs-letter-secondary);
  text-transform:var(--thcs-transform-secondary);
  margin:0 0 14px;
  line-height:1.3;
  color:var(--thcs-product-name-color);
}

.thcs-item-description{
  margin:0;
  font-family:var(--thcs-font-text);
  font-size:16px;
  font-weight:var(--thcs-weight-text);
  font-style:var(--thcs-style-text);
  letter-spacing:var(--thcs-letter-text);
  text-transform:var(--thcs-transform-text);
  line-height:1.65;
  color:var(--thcs-description-color);
  max-width:none;
  width:100%;
}

.thcs-item-side{
  display:flex;
  align-items:center;
  justify-content:flex-end;
}

.thcs-item--simple{
  padding-top:24px;
  padding-bottom:24px;
}

.thcs-item--simple .thcs-item-grid{
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:24px;
}

.thcs-item--simple .thcs-item-name{
  margin:0;
}

.thcs-item--simple .thcs-item-side{
  justify-content:flex-end;
}

.thcs-item-price{
  font-family:var(--thcs-font-primary);
  white-space:nowrap;
  font-size:20px;
  font-weight:var(--thcs-weight-primary);
  font-style:var(--thcs-style-primary);
  letter-spacing:var(--thcs-letter-primary);
  color:var(--thcs-price-text-color);
  background:var(--thcs-price-bg);
  padding:var(--thcs-price-padding);
  border-radius:var(--thcs-price-radius);
  box-shadow:var(--thcs-price-shadow);
}

.thcs-item-options{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:14px;
  margin-top:18px;
}

.thcs-item-option{
  background:var(--thcs-option-bg);
  border-radius:var(--thcs-radius);
  padding:var(--thcs-option-padding);
  text-align:center;
}

.thcs-item-option-label{
  display:block;
  font-family:var(--thcs-font-text);
  font-size:14px;
  font-weight:var(--thcs-weight-text);
  font-style:var(--thcs-style-text);
  letter-spacing:var(--thcs-letter-text);
  text-transform:var(--thcs-transform-text);
  margin-bottom:8px;
  color:var(--thcs-option-text-color, #2c2c2c);
}

.thcs-item-option-price{
  display:block;
  font-family:var(--thcs-font-primary);
  font-size:18px;
  font-weight:var(--thcs-weight-primary);
  font-style:var(--thcs-style-primary);
  letter-spacing:var(--thcs-letter-primary);
  color:var(--thcs-price-color);
}

.thcs-item-extras{
  margin-top:14px;
  font-family:var(--thcs-font-text);
  font-size:14px;
  font-weight:var(--thcs-weight-text);
  font-style:var(--thcs-style-text);
  letter-spacing:var(--thcs-letter-text);
  text-transform:var(--thcs-transform-text);
  line-height:1.6;
  color:var(--thcs-extras-text-color, #333);
}

.thcs-last-sync{
  margin-top:18px;
  font-size:12px;
  opacity:.7;
}

.thcs-error{
  padding:14px 16px;
  border-radius:14px;
  background:#fef2f2;
  color:#991b1b;
  border:1px solid #fecaca;
}

@media (max-width: 991px) {
  .thcs-item-description{
    max-width:none;
    width:100%;
  }

  .thcs-categorias-grid,
  .thcs-categorias-grid--two-columns,
  .thcs-categorias-grid--mixed {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }

  .thcs-categoria,
  .thcs-categoria--full,
  .thcs-categoria--half {
    grid-column: auto !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  .thcs-items {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  .thcs-item {
    width: 100% !important;
    min-width: 0 !important;
  }

  .thcs-item-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .thcs-item-side {
    justify-content: flex-start !important;
  }

  .thcs-item-options {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width:767px){
  .thcs-carta{
    padding:18px 14px 40px;
  }

  .thcs-item{
    padding:22px 20px;
  }

  .thcs-item-grid{
    grid-template-columns:1fr;
    gap:14px;
  }

  .thcs-item-side{
    justify-content:flex-start;
  }

  .thcs-item-options{
    grid-template-columns:1fr;
  }
}

@media (max-width: 991px) {
  .thcs-categorias-grid,
  .thcs-categorias-grid--two-columns,
  .thcs-categorias-grid--mixed {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }

  .thcs-categoria,
  .thcs-categoria--full,
  .thcs-categoria--half {
    grid-column: auto !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  .thcs-items {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  .thcs-item {
    width: 100% !important;
    min-width: 0 !important;
  }

  .thcs-item-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

    .thcs-item-side {
        display: inline-block;
    }
    
.thcs-item-options,
    .thcs-option-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(120px, 1fr)) !important;
        gap: 12px !important;
        width: auto !important;
    }
    
}

.thui-header-meta {
    padding: 1em;
}

/* Elementor compatibility: keep category image spacing inside text/editor widgets. */
.elementor .thcs-carta figure.thcs-categoria-imagen,
.thcs-carta .thcs-categoria > figure.thcs-categoria-imagen{
  margin:0 0 44px !important;
}


/* Mobile category image: larger banner and tighter title spacing. */
@media (max-width: 767px) {
  .elementor .thcs-carta figure.thcs-categoria-imagen,
  .thcs-carta .thcs-categoria > figure.thcs-categoria-imagen,
  .thcs-categoria-imagen {
    margin: 0 0 20px !important;
  }

  .thcs-categoria-imagen img {
    aspect-ratio:auto;
    height:clamp(170px, 24vh, 230px);
    max-height:230px;
    object-fit: cover;
  }

  .thcs-categoria-titulo {
    font-size:26px;
    margin: 0 0 18px;
  }

  .thcs-categoria-descripcion {
    font-size:15px;
    line-height:1.55;
    margin:0 auto 24px;
    text-align:left;
  }
}

/* Category navigation and search. */
.thcs-carta-nav{
  position:sticky;
  top:var(--thcs-effective-sticky-offset, var(--thcs-sticky-offset, 0px));
  z-index:20;
  margin:0 0 30px;
  padding:10px 0;
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(160%) blur(10px);
  -webkit-backdrop-filter:saturate(160%) blur(10px);
  border-bottom:1px solid rgba(0,0,0,.06);
}

body.admin-bar .thcs-carta-nav{
  top:calc(var(--thcs-effective-sticky-offset, var(--thcs-sticky-offset, 0px)) + 32px);
}

.thcs-carta-nav-inner{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(220px,300px);
  gap:14px;
  align-items:center;
}

.thcs-carta-nav-scroll{
  display:flex;
  align-items:center;
  gap:8px;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scrollbar-width:thin;
  padding:4px 2px 8px;
  -webkit-overflow-scrolling:touch;
}

.thcs-carta-nav-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:10px 16px;
  border-radius:999px !important;
  background:rgba(0,0,0,.055);
  color:var(--thcs-category-color);
  font-family:var(--thcs-font-text);
  font-size:14px;
  font-weight:600;
  line-height:1;
  text-decoration:none !important;
  white-space:nowrap;
  transition:background .18s ease,color .18s ease,box-shadow .18s ease;
}

.thcs-carta-nav-link:hover,
.thcs-carta-nav-link:focus{
  background:rgba(0,0,0,.1);
  color:var(--thcs-category-color);
  outline:none;
}

.thcs-carta-nav-link.is-active{
  background:var(--thcs-category-color);
  color:#fff;
  box-shadow:0 6px 14px rgba(0,0,0,.12);
}

.thcs-carta-search-wrap{
  position:relative;
  display:block;
  margin:0;
  border-radius:999px !important;
  background:rgba(0,0,0,.055);
  box-shadow:0 8px 22px rgba(0,0,0,.05);
}

.thcs-carta-search-wrap:before{
  content:'';
  position:absolute;
  right:18px;
  top:50%;
  width:15px;
  height:15px;
  transform:translateY(-50%);
  border:2px solid currentColor;
  border-radius:50%;
  color:var(--thcs-description-color);
  opacity:.66;
  pointer-events:none;
  box-sizing:border-box;
  z-index:1;
}

.thcs-carta-search-wrap:after{
  content:'';
  position:absolute;
  right:12px;
  top:50%;
  width:8px;
  height:2px;
  transform:translateY(6px) rotate(45deg);
  background:currentColor;
  color:var(--thcs-description-color);
  border-radius:999px;
  opacity:.66;
  pointer-events:none;
  z-index:1;
}

.thcs-carta-search{
  -webkit-appearance:none;
  appearance:none;
  display:block;
  width:100%;
  min-height:42px;
  border:0 !important;
  border-radius:999px !important;
  background:transparent !important;
  padding:10px 48px 10px 18px;
  color:var(--thcs-description-color);
  font-family:var(--thcs-font-text);
  font-size:14px;
  line-height:1.2;
  box-shadow:none !important;
  outline:none;
  transition:background .18s ease,box-shadow .18s ease;
}

.thcs-carta-search:hover{
  background:rgba(255,255,255,.34) !important;
}

.thcs-carta-search:focus{
  background:#fff !important;
  box-shadow:0 0 0 3px rgba(0,0,0,.06) !important;
}

.thcs-carta-search::placeholder{
  color:var(--thcs-description-color);
  opacity:.66;
}

.thcs-carta-search::-webkit-search-decoration,
.thcs-carta-search::-webkit-search-cancel-button,
.thcs-carta-search::-webkit-search-results-button,
.thcs-carta-search::-webkit-search-results-decoration{
  -webkit-appearance:none;
}

.thcs-empty-search{
  margin:22px 0 0;
  padding:18px 20px;
  border-radius:calc(var(--thcs-radius) * .55);
  background:var(--thcs-card-bg);
  color:var(--thcs-description-color);
  text-align:center;
  box-shadow:var(--thcs-shadow);
}

.thcs-categoria,
.thcs-categoria-imagen{
  scroll-margin-top:calc(var(--thcs-effective-sticky-offset, var(--thcs-sticky-offset, 0px)) + 110px);
}

.thcs-item[hidden],
.thcs-categoria[hidden],
.thcs-empty-search[hidden]{
  display:none !important;
}

@media (max-width: 782px){
  body.admin-bar .thcs-carta-nav{
    top:calc(var(--thcs-effective-sticky-offset, var(--thcs-sticky-offset, 0px)) + 46px);
  }
}

@media (max-width: 767px){
  .thcs-carta-nav{
    margin:0 -4px 24px;
    padding:8px 0 10px;
  }

  .thcs-carta-nav-inner{
    grid-template-columns:1fr;
    gap:8px;
  }

  .thcs-carta-nav-scroll{
    gap:7px;
    padding:2px 0 6px;
  }

  .thcs-carta-nav-link{
    min-height:36px;
    padding:9px 13px;
    font-size:13px;
  }

  .thcs-carta-search{
    min-height:42px;
    font-size:14px;
    box-shadow:0 6px 18px rgba(0,0,0,.06);
  }

  .thcs-categoria,
  .thcs-categoria-imagen{
    scroll-margin-top:calc(var(--thcs-effective-sticky-offset, var(--thcs-sticky-offset, 0px)) + 128px);
  }
}


/* Keep simple name + price items aligned horizontally, including responsive views. */
.thcs-item--simple .thcs-item-grid{
  grid-template-columns:minmax(0,1fr) auto !important;
  align-items:center !important;
}

.thcs-item--simple .thcs-item-side{
  justify-content:flex-end !important;
}

@media (max-width: 767px){
  .thcs-item--simple{
    padding-top:20px;
    padding-bottom:20px;
  }

  .thcs-item--simple .thcs-item-grid{
    gap:14px !important;
  }
}
