/* TVUJORIGINAL COMPONENTS BUNDLE V1.4.0 */

/** TVUJORIGINAL COMPONENT: SECTION */
.to-section {
  position: relative;
  padding-block: clamp(44px, 6vw, 84px);
}
.to-section--compact { padding-block: clamp(28px, 4vw, 52px); }
.to-section--soft { background: var(--to-color-surface-soft); }
.to-section--brand { background: var(--to-color-brand-100); }
.to-section__inner {
  width: min(calc(100% - 32px), var(--to-container-content));
  margin-inline: auto;
}
.to-section__header {
  max-width: 760px;
  margin-bottom: clamp(24px, 4vw, 44px);
}
.to-section__header--center { margin-inline: auto; text-align: center; }
.to-section__eyebrow {
  margin: 0 0 10px;
  color: var(--to-color-brand-700);
  font-size: var(--to-text-xs);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.to-section__title {
  margin: 0;
  color: var(--to-color-heading);
  font-family: var(--to-font-heading);
  font-size: clamp(28px, 3.4vw, 44px);
  font-weight: 700;
  line-height: 1.18;
  letter-spacing: -.02em;
}
.to-section__lead {
  margin: 14px 0 0;
  color: var(--to-color-muted);
  font-size: clamp(17px, 1.8vw, 20px);
  line-height: 1.62;
}
@media (max-width:767px){.to-section__inner{width:min(calc(100% - 24px),var(--to-container-content));}}


/** TVUJORIGINAL COMPONENT: GRID */
.to-grid { display: grid; gap: clamp(16px, 2.2vw, 28px); }
.to-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.to-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.to-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.to-grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.to-grid--auto { grid-template-columns: repeat(auto-fit, minmax(min(240px,100%),1fr)); }
.to-grid--align-center { align-items: center; }
@media(max-width:991px){.to-grid--4,.to-grid--5{grid-template-columns:repeat(2,minmax(0,1fr));}.to-grid--3{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:599px){.to-grid--2,.to-grid--3,.to-grid--4,.to-grid--5{grid-template-columns:1fr;}}


/** TVUJORIGINAL COMPONENT: BUTTONS */
.to-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 48px;
  padding: 0 24px;
  border: 1px solid transparent;
  border-radius: var(--to-radius-sm);
  font-family: var(--to-font-body);
  font-size: var(--to-text-md);
  font-weight: 700;
  line-height: 1.15;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--to-transition),border-color var(--to-transition),color var(--to-transition),transform var(--to-transition);
}
.to-button:hover { text-decoration: none; transform: translateY(-1px); }
.to-button--primary { color:#fff; background:var(--to-color-action); }
.to-button--primary:hover,.to-button--primary:focus { color:#fff; background:var(--to-color-action-hover); }
.to-button--secondary { color:var(--to-color-heading); background:var(--to-color-brand-200); }
.to-button--secondary:hover,.to-button--secondary:focus { color:var(--to-color-heading); background:var(--to-color-brand-300); }
.to-button--outline { color:var(--to-color-heading); background:transparent; border-color:var(--to-color-brand-500); }
.to-button--outline:hover,.to-button--outline:focus { color:var(--to-color-heading); background:var(--to-color-brand-100); }
.to-button--ghost { color:var(--to-color-heading); background:transparent; }
.to-button--ghost:hover,.to-button--ghost:focus { color:var(--to-color-heading); background:var(--to-color-brand-100); }
.to-button--small { min-height:40px; padding-inline:18px; font-size:var(--to-text-sm); }
.to-button--large { min-height:54px; padding-inline:30px; font-size:var(--to-text-lg); }
.to-button--full { width:100%; }
.to-button-group { display:flex; flex-wrap:wrap; gap:12px; }
@media(max-width:479px){.to-button-group--mobile-full .to-button{width:100%;}}


/** TVUJORIGINAL COMPONENT: CARDS */
.to-card {
  position: relative;
  min-width: 0;
  overflow: hidden;
  background: var(--to-color-surface);
  border: 1px solid var(--to-color-line);
  border-radius: var(--to-radius-sm);
}
.to-card--soft { background:var(--to-color-surface-soft); }
.to-card--shadow { box-shadow:var(--to-shadow-soft); border-color:transparent; }
.to-card__media { display:block; aspect-ratio:4/3; overflow:hidden; background:var(--to-color-brand-100); }
.to-card__media img { width:100%; height:100%; object-fit:cover; transition:transform 300ms ease; }
.to-card:hover .to-card__media img { transform:scale(1.025); }
.to-card__body { padding:clamp(20px,2.8vw,30px); }
.to-card__eyebrow { margin:0 0 8px; color:var(--to-color-brand-700); font-size:var(--to-text-xs); font-weight:700; letter-spacing:.11em; text-transform:uppercase; }
.to-card__title { margin:0 0 10px; color:var(--to-color-heading); font-family:var(--to-font-heading); font-size:clamp(20px,2vw,25px); font-weight:700; line-height:1.3; }
.to-card__text { margin:0; color:var(--to-color-muted); font-size:var(--to-text-md); line-height:1.58; }
.to-card__footer { margin-top:20px; }
.to-card--link { color:inherit; text-decoration:none; transition:border-color var(--to-transition),box-shadow var(--to-transition),transform var(--to-transition); }
.to-card--link:hover { color:inherit; text-decoration:none; border-color:var(--to-color-brand-400); box-shadow:var(--to-shadow-soft); transform:translateY(-2px); }


/** TVUJORIGINAL COMPONENT: BADGES */
.to-badge {
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:4px 10px;
  color:var(--to-color-heading);
  background:var(--to-color-brand-100);
  border:1px solid var(--to-color-brand-200);
  border-radius:999px;
  font-size:var(--to-text-xs);
  font-weight:700;
  line-height:1.2;
  letter-spacing:.02em;
}
.to-badge--action { color:#fff; background:var(--to-color-action); border-color:var(--to-color-action); }
.to-badge--dark { color:#fff; background:var(--to-color-brand-800); border-color:var(--to-color-brand-800); }
.to-badge--outline { background:transparent; border-color:var(--to-color-brand-500); }
.to-badge-list { display:flex; flex-wrap:wrap; gap:8px; }


/** TVUJORIGINAL COMPONENT: HERO */
.to-hero { position:relative; overflow:hidden; background:var(--to-color-surface-soft); }
.to-hero__inner {
  width:min(calc(100% - 32px),var(--to-container-content));
  min-height:clamp(430px,56vw,680px);
  margin-inline:auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);
  align-items:center;
  gap:clamp(30px,5vw,72px);
  padding-block:clamp(52px,7vw,92px);
}
.to-hero__content { position:relative; z-index:2; max-width:680px; }
.to-hero__eyebrow { margin:0 0 12px; color:var(--to-color-brand-700); font-size:var(--to-text-xs); font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.to-hero__title { margin:0; color:var(--to-color-heading); font-family:var(--to-font-heading); font-size:clamp(36px,5.2vw,64px); font-weight:700; line-height:1.08; letter-spacing:-.035em; }
.to-hero__text { max-width:620px; margin:20px 0 0; color:var(--to-color-muted); font-size:clamp(18px,2vw,22px); line-height:1.6; }
.to-hero__actions { margin-top:28px; }
.to-hero__media { position:relative; min-width:0; }
.to-hero__media img { display:block; width:100%; height:auto; object-fit:contain; }
.to-hero--reverse .to-hero__content { order:2; }
.to-hero--reverse .to-hero__media { order:1; }
.to-hero--white { background:#fff; }
@media(max-width:899px){.to-hero__inner{grid-template-columns:1fr;min-height:0;padding-block:44px;}.to-hero__media{max-width:620px;margin-inline:auto;}.to-hero--reverse .to-hero__content,.to-hero--reverse .to-hero__media{order:initial;}}
@media(max-width:767px){.to-hero__inner{width:min(calc(100% - 24px),var(--to-container-content));}.to-hero__title{font-size:clamp(34px,11vw,46px);}.to-hero__text{font-size:18px;}}


/** TVUJORIGINAL COMPONENT: TRUST */
.to-trust {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  background:#fff;
  border:1px solid var(--to-color-line);
}
.to-trust__item { min-width:0; padding:clamp(20px,2.8vw,30px); text-align:center; }
.to-trust__item + .to-trust__item { border-left:1px solid var(--to-color-line); }
.to-trust__value { display:block; color:var(--to-color-heading); font-family:var(--to-font-heading); font-size:clamp(25px,2.8vw,34px); font-weight:700; line-height:1.15; }
.to-trust__label { display:block; margin-top:7px; color:var(--to-color-muted); font-size:var(--to-text-sm); line-height:1.45; }
.to-trust--cards { gap:16px; background:transparent; border:0; }
.to-trust--cards .to-trust__item { background:#fff; border:1px solid var(--to-color-line); }
.to-trust--cards .to-trust__item + .to-trust__item { border-left:1px solid var(--to-color-line); }
@media(max-width:799px){.to-trust{grid-template-columns:repeat(2,minmax(0,1fr));}.to-trust__item:nth-child(odd){border-left:0}.to-trust__item:nth-child(n+3){border-top:1px solid var(--to-color-line);}}
@media(max-width:479px){.to-trust{grid-template-columns:1fr}.to-trust__item+.to-trust__item{border-left:0;border-top:1px solid var(--to-color-line);}}


/** TVUJORIGINAL COMPONENT: FAQ */
.to-faq { border-top:1px solid var(--to-color-line); }
.to-faq__item { border-bottom:1px solid var(--to-color-line); }
.to-faq__question {
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:20px 0;
  color:var(--to-color-heading);
  background:transparent;
  border:0;
  font-family:var(--to-font-heading);
  font-size:clamp(18px,2vw,21px);
  font-weight:700;
  line-height:1.35;
  text-align:left;
  cursor:pointer;
}
.to-faq__question::after { content:'+'; flex:0 0 auto; font-family:var(--to-font-body); font-size:26px; font-weight:400; line-height:1; }
.to-faq__item[open] .to-faq__question::after { content:'−'; }
.to-faq__answer { max-width:820px; padding:0 0 22px; color:var(--to-color-muted); font-size:var(--to-text-md); line-height:1.65; }
.to-faq__answer p:last-child { margin-bottom:0; }
/* Nativní varianta bez JS: <details class="to-faq__item"><summary class="to-faq__question"> */
details.to-faq__item > summary { list-style:none; }
details.to-faq__item > summary::-webkit-details-marker { display:none; }


/** TVUJORIGINAL COMPONENT: GALLERY */
.to-gallery { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:clamp(10px,1.6vw,20px); }
.to-gallery__item { position:relative; overflow:hidden; min-height:220px; background:var(--to-color-brand-100); }
.to-gallery__item img { width:100%; height:100%; object-fit:cover; transition:transform 320ms ease; }
.to-gallery__item:hover img { transform:scale(1.025); }
.to-gallery__item--wide { grid-column:span 7; }
.to-gallery__item--narrow { grid-column:span 5; }
.to-gallery__item--half { grid-column:span 6; }
.to-gallery__item--third { grid-column:span 4; }
.to-gallery__caption { position:absolute; inset:auto 0 0; padding:28px 18px 16px; color:#fff; background:linear-gradient(transparent,rgba(0,0,0,.62)); font-size:var(--to-text-sm); font-weight:700; }
@media(max-width:767px){.to-gallery__item--wide,.to-gallery__item--narrow,.to-gallery__item--half,.to-gallery__item--third{grid-column:span 12;}.to-gallery__item{min-height:260px;}}


/** TVUJORIGINAL COMPONENT: REVIEWS */
.to-review {
  height:100%;
  padding:clamp(22px,3vw,32px);
  background:#fff;
  border:1px solid var(--to-color-line);
}
.to-review__stars { margin-bottom:14px; color:var(--to-color-action-dark); font-size:18px; letter-spacing:2px; }
.to-review__text { margin:0; color:var(--to-color-text); font-size:clamp(16px,1.7vw,18px); line-height:1.65; }
.to-review__author { margin-top:18px; color:var(--to-color-muted); font-size:var(--to-text-sm); font-weight:700; }
.to-review__source { display:block; margin-top:3px; color:var(--to-color-subtle); font-size:var(--to-text-xs); font-weight:400; }
.to-rating-summary { display:flex; align-items:center; gap:16px; }
.to-rating-summary__value { color:var(--to-color-heading); font-family:var(--to-font-heading); font-size:clamp(34px,4vw,52px); font-weight:700; line-height:1; }
.to-rating-summary__meta { color:var(--to-color-muted); font-size:var(--to-text-sm); line-height:1.45; }
