/* Functional and responsive fixes kept separate from the generated base stylesheet. */
/* WordPress adds `.search` to the body of a search-result page. Scope this
   component rule to the form so it cannot turn the whole result page into the
   compact header search field. */
form.search { position:relative; }
body.search { display:block; width:auto; height:auto; max-width:none; margin:0; padding:0; gap:0; border:0; border-radius:0; background:var(--bg); }
body.search:focus-within { box-shadow:none; }
.search-submit { width:1px; height:1px; overflow:hidden; padding:0; border:0; position:absolute; }
.search-suggestions { display:none; position:absolute; z-index:80; top:calc(100% + 8px); left:0; right:0; max-height:360px; overflow:auto; background:#fff; border:1px solid var(--line); box-shadow:var(--shadow-md); border-radius:6px; padding:6px; }
.search-suggestions.is-open { display:block; }
.search-suggestions a { display:flex; align-items:center; gap:12px; padding:9px; color:var(--ink); border-radius:4px; }
.search-suggestions a:hover { background:var(--soft); }
.search-suggestions img { width:48px; height:42px; object-fit:contain; flex:0 0 auto; }
.search-suggestions span { display:flex; flex:1; flex-direction:column; font-weight:600; font-size:13px; }
.search-suggestions small { color:var(--accent); margin-top:3px; }
.search-suggestions p { padding:12px; margin:0; color:var(--muted); font-size:13px; }

.mobile-drawer { display:none; }
.vov-toast { position:fixed; z-index:1001; right:20px; bottom:20px; max-width:calc(100vw - 40px); padding:13px 16px; background:var(--dark); color:#fff; border-radius:6px; box-shadow:var(--shadow-md); transform:translateY(12px); opacity:0; transition:opacity .2s ease,transform .2s ease; }
.vov-toast.is-visible { opacity:1; transform:translateY(0); }
.vov-modal { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:20px; }
.vov-modal__backdrop { position:absolute; inset:0; background:rgba(13,17,48,.58); }
.vov-modal__panel { position:relative; width:min(100%,560px); max-height:calc(100vh - 40px); overflow:auto; padding:28px; background:#fff; border-radius:8px; box-shadow:0 22px 56px rgba(0,0,0,.25); }
.vov-modal__panel h2 { margin:0 32px 20px 0; font-size:24px; }
.vov-modal__close { position:absolute; right:16px; top:14px; width:34px; height:34px; border-radius:50%; background:var(--soft); font-size:24px; line-height:1; }
.vov-modal-open { overflow:hidden; }
.vov-cart-loading { position:relative !important; pointer-events:none !important; min-width:42px; }
.btn.btn-primary.vov-cart-loading { color:transparent !important; }
.vov-cart-loading > * { opacity:0 !important; }
.btn.btn-primary.vov-cart-loading::after,.vov-cart-loading::after { content:"" !important; position:absolute; inset:0; width:18px; height:18px; margin:auto; border:2px solid rgba(255,255,255,.45); border-top-color:#fff; border-radius:50%; transform:none !important; transition:none !important; animation:vov-cart-spin .7s linear infinite; }
.icon-btn.vov-cart-loading::after { border-color:rgba(15,21,53,.28); border-top-color:var(--accent); }
@keyframes vov-cart-spin { to { transform:rotate(360deg); } }
.vov-cart-modal__panel { width:min(100%,440px); padding:36px 28px 28px; text-align:center; }
.vov-cart-modal__check { display:grid; place-items:center; width:54px; height:54px; margin:0 auto 16px; border-radius:50%; background:#eaf8ef; color:#16803c; font-size:30px; font-weight:800; }
.vov-cart-modal__panel h2 { margin:0 36px 8px; }
.vov-cart-modal__description p { margin:0; color:var(--muted); }
.vov-cart-modal__description strong { color:var(--ink); }
.vov-cart-modal__actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:24px; }
.vov-cart-modal__actions .btn { width:100%; padding:13px 12px; }
@media (max-width:480px) {
  .vov-cart-modal__panel { padding:32px 20px 20px; }
  .vov-cart-modal__actions { grid-template-columns:1fr; }
}
.vov-saved { margin:0; padding:0; list-style:none; }
.vov-saved__item { display:flex; align-items:center; gap:14px; padding:12px 0; border-top:1px solid var(--line); }
.vov-saved__item img { width:64px; height:54px; object-fit:contain; }
.vov-saved__item div { display:flex; flex:1; flex-direction:column; gap:3px; }
.vov-saved__item a { font-weight:600; color:var(--ink); }
.vov-saved__item strong { color:var(--accent); font-size:14px; }
.vov-saved__item button { width:30px; height:30px; border-radius:50%; background:var(--soft); font-size:20px; }
.vov-saved__empty { color:var(--muted); padding:12px 0; }
.vov-modal__panel--compare { width:min(100%,1120px); }
.vov-compare__hint { margin:-8px 0 16px; color:var(--muted); font-size:14px; }
.vov-compare__scroll { overflow-x:auto; }
.vov-compare { width:100%; min-width:640px; border-collapse:collapse; font-size:13px; }
.vov-compare th,.vov-compare td { padding:12px; border:1px solid var(--line); text-align:left; vertical-align:top; }
.vov-compare thead th { min-width:180px; background:var(--soft); font-weight:600; }
.vov-compare thead th:first-child { min-width:130px; }
.vov-compare thead img { width:72px; height:56px; margin:0 0 8px; object-fit:contain; }
.vov-compare thead a { color:var(--ink); }
.vov-compare tbody th { background:var(--soft); font-weight:700; white-space:nowrap; }
.vov-question { display:grid; gap:14px; }
.vov-question label { display:grid; gap:6px; color:var(--ink); font-size:13px; font-weight:700; }
.vov-question input,.vov-question textarea { width:100%; padding:11px 12px; color:var(--ink); border:1px solid var(--line); border-radius:4px; font:inherit; }
.vov-question__message { min-height:20px; margin:0; color:var(--accent); font-size:13px; }
.vov-honeypot { position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); white-space:nowrap; }
.prod-actions .icon-btn-dark { border:0; cursor:pointer; }
.prod-actions .icon-btn-dark.is-active { background:var(--gradient-primary); }
.socials a[aria-label="Twitter"],.socials a[aria-label="YouTube"] { display:none; }

/* Homepage: fully interactive tab panels and comfortable small-screen rails. */
.vov-tab-panel[hidden] { display:none!important; }
.vov-hp-products .tabs,.vov-hp-blog .tabs { flex-wrap:wrap; }
.vov-hp-products .prod-card h3 a,.vov-hp-blog .blog-card h3 a { color:inherit; text-decoration:none; }
.vov-hp-products .prod-card h3 a:hover,.vov-hp-blog .blog-card h3 a:hover { color:var(--accent); }
.vov-hp-blog .blog-card .blog-body > p { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:4; }
.heritage .h-icon { filter:none!important; }

/* Cards must preserve the complete supplied photograph. The fixed media area
   keeps every card aligned; `contain` avoids trimming tall appliances,
   headphones and editorial featured images. */
.prod-card .prod-media { display:flex; align-items:center; justify-content:center; background:#fff; }
.prod-card .prod-media > a {
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  overflow:hidden;
}
.prod-card .prod-media img {
  width:auto!important;
  height:auto!important;
  max-width:calc(100% - 28px)!important;
  max-height:calc(100% - 28px)!important;
  padding:0!important;
  object-fit:contain!important;
  object-position:center;
  flex:0 0 auto;
}
.prod-card:hover .prod-media img { transform:none!important; }

/* Homepage category tiles use product photography too. They previously kept
   the theme-wide `cover` rule, which cut off tall headphones and appliances.
   Preserve the complete image and leave a clear lower area for the label. */
#homepage-categories .cat-card { background:#fff; }
#homepage-categories .cat-card img {
  object-fit:contain!important;
  object-position:center;
  padding:12px 12px 56px;
}
#homepage-categories .cat-card:hover img { transform:none!important; }
.blog-card > a:first-child,.blog-card .blog-media { display:flex; align-items:center; justify-content:center; height:220px; overflow:hidden; background:#fff; }
.blog-card > a:first-child img,.blog-card .blog-media img { width:100%; height:100%; padding:12px; object-fit:contain!important; object-position:center; }
.blog-card:hover > a:first-child img,.blog-archive .blog-card:hover .blog-media img { transform:none; }

/* Legal documents, statutory withdrawal link and cookie consent. */
.vov-withdrawal-cta { background:var(--soft); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.vov-withdrawal-cta__inner { display:flex; align-items:center; justify-content:center; gap:12px; min-height:48px; color:var(--ink); font-size:13px; }
.vov-withdrawal-cta a { color:var(--accent); font-weight:800; text-decoration:underline; text-underline-offset:3px; transition:text-decoration-color var(--transition); }
.vov-withdrawal-cta a:hover { text-decoration-color:transparent; }
.vov-legal-page { max-width:960px; padding-top:56px; padding-bottom:80px; }
.vov-legal-page > h1 { max-width:820px; margin:0 auto 36px; padding-bottom:16px; color:var(--ink); font-size:42px; font-weight:800; letter-spacing:-1.2px; line-height:1.12; border-bottom:4px solid transparent; border-image:var(--gradient-primary) 1; }
.vov-legal-page > h1 + p,.vov-legal-page > h1 + h2 { margin-top:0; }
.vov-legal-page > p,.vov-legal-page > h2,.vov-legal-page > h3,.vov-legal-page > .vov-legal-form { max-width:820px; margin-left:auto; margin-right:auto; }
.vov-legal-page p { margin-top:0; margin-bottom:15px; color:var(--ink); line-height:1.7; }
.vov-legal-page h2 { margin-top:38px; margin-bottom:13px; color:var(--ink); font-size:25px; line-height:1.25; }
.vov-legal-page h3 { margin-top:22px; margin-bottom:9px; color:var(--ink-2); font-size:17px; line-height:1.4; }
.vov-legal-page a { color:var(--accent); font-weight:700; text-decoration-color:rgba(255,2,1,.45); text-underline-offset:3px; transition:color var(--transition),text-decoration-color var(--transition); }
.vov-legal-page a:hover { color:var(--primary-700); text-decoration-color:transparent; }
.vov-legal-form { margin:24px auto 40px; padding:26px; border:1px solid var(--line); border-radius:8px; background:#fff; box-shadow:var(--shadow-sm); }
.vov-legal-form h2 { margin:0 0 8px; font-size:24px; }
.vov-legal-form form { display:grid; gap:15px; margin-top:20px; }
.vov-legal-form label { display:grid; gap:6px; color:var(--ink); font-size:13px; font-weight:700; }
.vov-legal-form input,.vov-legal-form textarea { width:100%; border:1px solid var(--line); border-radius:4px; padding:11px 13px; color:var(--ink); font:inherit; }
.vov-legal-form input:focus,.vov-legal-form textarea:focus { border-color:var(--accent); outline:0; box-shadow:0 0 0 3px rgba(255,2,1,.1); }
.vov-legal-form__grid { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.vov-legal-form__notice { margin:12px 0 0!important; color:#16703a!important; font-weight:700; }
.vov-legal-form__notice--error { color:#b42318!important; }
.vov-cookie-banner { position:fixed; z-index:9999; right:20px; bottom:20px; width:min(100% - 40px,720px); padding:22px; background:#fff; color:var(--ink); border:1px solid var(--line); border-radius:8px; box-shadow:0 22px 56px rgba(15,21,53,.28); }
.vov-cookie-banner[hidden] { display:none; }
.vov-cookie-banner__inner { display:grid; gap:16px; }
.vov-cookie-banner h2 { margin:0 0 6px; font-size:20px; }
.vov-cookie-banner p { margin:0; color:var(--muted); font-size:13px; line-height:1.55; }
.vov-cookie-banner p a { color:var(--accent); font-weight:700; text-decoration:underline; }
.vov-cookie-banner__settings { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 16px; padding:14px; background:var(--soft); border-radius:4px; }
.vov-cookie-banner__settings label { display:flex; align-items:center; gap:8px; color:var(--ink); font-size:13px; font-weight:600; }
.vov-cookie-banner__settings input { accent-color:var(--accent); }
.vov-cookie-banner__actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:9px; }
.vov-cookie-banner__actions .btn { min-height:40px; padding:10px 15px; font-size:12px; }
.newsletter-fields { align-items:start; }
.newsletter-consent { grid-column:1 / -1; display:flex; align-items:flex-start; gap:8px; color:var(--muted); font-size:12px; line-height:1.4; text-align:left; }
.newsletter-consent input { width:16px; height:16px; margin:1px 0 0; accent-color:var(--accent); flex:0 0 auto; }
.newsletter-status { margin:0 0 12px; color:#16703a; font-size:13px; font-weight:700; }
.newsletter-status--error { color:#b42318; }
.footer-certificate { display:block; width:126px; margin-top:20px; opacity:.95; transition:opacity var(--transition),transform var(--transition); }
.footer-certificate:hover { opacity:1; transform:translateY(-2px); }
.footer-certificate img { width:100%; height:auto; }
.vov-checkout-consents { margin:16px 0 0; padding:14px 16px; background:#fff; border:1px solid rgba(255,90,31,.18); }
.vov-checkout-consents .form-row { margin:0; }
.vov-checkout-consents label { display:flex!important; align-items:flex-start; gap:8px; color:var(--muted)!important; font-size:12px!important; font-weight:500!important; line-height:1.45; }
.vov-checkout-consents input { width:16px; height:16px; margin:1px 0 0; accent-color:var(--accent); flex:0 0 auto; }
@media (max-width:640px) {
  .vov-withdrawal-cta__inner { min-height:0; padding:12px 16px; text-align:center; flex-wrap:wrap; }
  .vov-legal-page { padding-top:38px; padding-bottom:56px; }
  .vov-legal-page > h1 { margin-bottom:28px; padding-bottom:13px; font-size:30px; letter-spacing:-.8px; }
  .vov-legal-page h2 { margin-top:30px; font-size:22px; }
  .vov-legal-page h3 { font-size:16px; }
  .vov-legal-form { margin-top:20px; padding:20px 16px; }
  .vov-legal-form__grid { grid-template-columns:1fr; gap:12px; }
  .vov-cookie-banner { right:12px; bottom:12px; width:calc(100% - 24px); padding:18px; }
  .vov-cookie-banner__settings { grid-template-columns:1fr; }
  .vov-cookie-banner__actions { display:grid; grid-template-columns:1fr; }
  .vov-cookie-banner__actions .btn { width:100%; }
  .newsletter-consent { grid-column:auto; }
}

/* Blog archive and article detail: keep the homepage rail untouched while
   giving the editable posts page a clear, readable editorial layout. */
.blog-archive { padding:72px 0 84px; }
.blog-archive .section-head { margin-bottom:34px; }
.blog-archive .section-head h1 { margin:0; color:var(--ink); font-size:42px; font-weight:800; letter-spacing:-1.2px; line-height:1.1; }
.blog-archive .blog-card { overflow:hidden; border-color:var(--line); box-shadow:none; }
.blog-archive .blog-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
.blog-archive .blog-media { display:flex; align-items:center; justify-content:center; height:auto; aspect-ratio:16 / 10; overflow:hidden; background:var(--soft); }
.blog-archive .blog-media img { width:100%; height:100%; object-fit:contain; transition:transform .35s ease; }
.blog-archive .blog-card:hover .blog-media img { transform:none; }
.blog-archive .blog-body { padding:20px; gap:12px; }
.blog-archive .blog-body h2 { margin:0; font-size:18px; line-height:1.32; }
.blog-archive .blog-body h2 a { color:var(--ink); text-decoration:none; transition:color var(--transition); }
.blog-archive .blog-body h2 a:hover { color:var(--accent); }
.blog-archive .blog-body .muted { margin:0; display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:4; line-height:1.55; }
.blog-archive .navigation.pagination { display:flex; justify-content:center; margin-top:38px; }
.blog-archive .nav-links { display:flex; flex:0 0 auto; gap:6px; }
.blog-archive .nav-links .page-numbers { display:grid; place-items:center; min-width:38px; height:38px; padding:0 10px; border:1px solid var(--line); border-radius:4px; color:var(--ink); font-size:14px; font-weight:700; text-decoration:none; }
.blog-archive .nav-links a.page-numbers:hover,.blog-archive .nav-links .current { border-color:var(--accent); background:var(--gradient-primary); color:#fff; }
.vov-post { padding:56px 0 88px; }
.vov-post__inner { max-width:1000px; }
.vov-post__back { display:inline-flex; margin-bottom:28px; color:var(--ink); font-size:14px; font-weight:700; text-decoration:none; transition:color var(--transition),transform var(--transition); }
.vov-post__back:hover { color:var(--accent); transform:translateX(-3px); }
.vov-post__header { max-width:820px; margin:0 auto 34px; text-align:center; }
.vov-post__eyebrow { display:inline-block; margin-bottom:12px; color:var(--accent); font-size:12px; font-weight:800; letter-spacing:1.2px; text-transform:uppercase; }
.vov-post__header h1 { margin:0; color:var(--ink); font-size:48px; font-weight:800; letter-spacing:-1.7px; line-height:1.1; }
.vov-post__meta { display:flex; justify-content:center; gap:9px; margin-top:18px; color:var(--muted); font-size:13px; }
.vov-post__media { max-width:900px; aspect-ratio:16 / 8; margin:0 auto 44px; overflow:hidden; border-radius:8px; background:var(--soft); box-shadow:var(--shadow-md); }
.vov-post__media img { width:100%; height:100%; object-fit:cover; }
.vov-post__content { max-width:760px; margin:0 auto; color:var(--ink); font-size:17px; line-height:1.75; }
.vov-post__content > :first-child { margin-top:0; font-size:19px; line-height:1.65; color:var(--ink-2); }
.vov-post__content h2 { margin:40px 0 14px; color:var(--ink); font-size:27px; line-height:1.22; }
.vov-post__content p { margin:0 0 20px; }
.vov-post__content a { color:var(--accent); font-weight:700; text-decoration-color:rgba(255,2,1,.45); text-underline-offset:3px; transition:text-decoration-color var(--transition),color var(--transition); }
.vov-post__content a:hover { color:var(--primary-700); text-decoration-color:transparent; }
@media (max-width:640px) {
  .blog-archive { padding:44px 0 56px; }
  .blog-archive .section-head h1 { font-size:30px; }
  .blog-archive .blog-grid { display:grid; grid-template-columns:1fr; overflow:visible; gap:16px; }
  .blog-archive .blog-grid > .blog-card { flex:auto; }
  .blog-archive .blog-body { padding:17px; }
  .vov-post { padding:34px 0 56px; }
  .vov-post__back { margin-bottom:22px; }
  .vov-post__header { margin-bottom:24px; text-align:left; }
  .vov-post__header h1 { font-size:32px; letter-spacing:-.9px; }
  .vov-post__meta { justify-content:flex-start; }
  .vov-post__media { aspect-ratio:16 / 10; margin-bottom:28px; border-radius:6px; }
  .vov-post__content { font-size:16px; line-height:1.7; }
  .vov-post__content > :first-child { font-size:17px; }
  .vov-post__content h2 { margin-top:30px; font-size:23px; }
}

/* Keep highlighted words in headings consistent with the Newsletter gradient. */
h1 .accent,
h2 .accent,
h3 .accent {
  background:var(--gradient-primary);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  -webkit-text-fill-color:transparent;
}

/* My Account: match the shop's cards, typography and primary colour system. */
body.woocommerce-account article.container {
  padding-top:46px;
  padding-bottom:64px;
}
body.woocommerce-account article.container > h1 {
  position:relative;
  margin:0 0 30px;
  padding-bottom:16px;
  color:var(--ink);
  font-size:40px;
  font-weight:800;
  letter-spacing:-1.2px;
  line-height:1.12;
}
body.woocommerce-account article.container > h1::after {
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:64px;
  height:4px;
  background:var(--gradient-primary);
}
body.woocommerce-account .woocommerce {
  grid-template-columns:200px minmax(0,1fr);
  gap:20px;
  align-items:start;
}

/* WooCommerce's default floats/percentage widths conflict with the grid above. */
body.woocommerce-account .woocommerce-MyAccount-navigation,
body.woocommerce-account .woocommerce-MyAccount-content {
  float:none!important;
  width:auto!important;
}
body.woocommerce-account .woocommerce-MyAccount-navigation {
  position:sticky;
  top:20px;
  overflow:hidden;
  padding:10px;
  border:0;
  border-radius:8px;
  background:var(--gradient-dark);
  box-shadow:0 14px 32px rgba(15,21,53,.18);
}
body.woocommerce-account .woocommerce-MyAccount-navigation ul {
  display:grid;
  gap:3px;
}
body.woocommerce-account .woocommerce-MyAccount-navigation li a {
  display:flex;
  align-items:center;
  min-height:46px;
  padding:12px 14px;
  border:0;
  border-radius:5px;
  color:#dfe3f0;
  font-size:14px;
  font-weight:650;
  transition:background .2s ease,color .2s ease,transform .2s ease;
}
body.woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
  background:rgba(255,255,255,.1);
  color:#fff;
  transform:translateX(2px);
}
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
  border:0;
  background:#fff;
  color:var(--ink);
  box-shadow:0 5px 14px rgba(0,0,0,.14);
}
body.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout {
  margin-top:7px;
  padding-top:8px;
  border-top:1px solid rgba(255,255,255,.18);
}
body.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout a {
  color:#ffd3c1;
}
body.woocommerce-account .woocommerce-MyAccount-content {
  min-width:0;
  padding:34px;
  border:1px solid var(--line);
  border-top:4px solid var(--accent);
  border-radius:8px;
  background:#fff;
  box-shadow:var(--shadow-sm);
}
body.woocommerce-account .woocommerce-MyAccount-content > p:first-child {
  margin:0 0 24px;
  padding:16px 18px;
  border:1px solid #ffd8c8;
  border-radius:5px;
  background:#fff8f4;
  color:var(--ink);
  line-height:1.65;
}
body.woocommerce-account .woocommerce-MyAccount-content a:not(.button) {
  color:var(--accent);
  font-weight:650;
  text-decoration:underline;
  text-decoration-color:rgba(255,2,1,.28);
  text-underline-offset:3px;
}
body.woocommerce-account .woocommerce-MyAccount-content a:not(.button):hover {
  color:var(--primary-700);
  text-decoration-color:currentColor;
}
body.woocommerce-account .woocommerce-MyAccount-content h2,
body.woocommerce-account .woocommerce-MyAccount-content h3 {
  margin:0 0 18px;
  color:var(--ink);
  font-size:24px;
  font-weight:750;
}
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address {
  min-height:100%;
  padding:22px;
  border:1px solid var(--line);
  border-radius:6px;
  background:var(--soft);
}
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:0 0 12px;
}
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title h3 {
  margin:0;
  font-size:17px;
}
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title a.edit {
  padding:7px 11px;
  border:1px solid rgba(255,2,1,.22);
  border-radius:4px;
  background:#fff;
  font-size:12px;
  font-weight:750;
  text-decoration:none;
}
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title a.edit:hover {
  border-color:var(--accent);
  background:#fff4ef;
}
body.woocommerce-account .woocommerce-MyAccount-content address {
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--muted);
}
body.woocommerce-account .woocommerce-MyAccount-content fieldset {
  margin:28px 0 0;
  padding:22px;
  border:1px solid var(--line);
  border-radius:6px;
  background:var(--soft);
}
body.woocommerce-account .woocommerce-MyAccount-content legend {
  padding:0 8px;
  color:var(--ink);
  font-weight:750;
}
body.woocommerce-account .woocommerce-MyAccount-content .form-row {
  margin-bottom:18px;
}
body.woocommerce-account .woocommerce-MyAccount-content button.button {
  min-height:48px;
  margin-top:4px;
}
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table {
  margin:0;
}
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table .button {
  padding:9px 13px!important;
  font-size:12px!important;
}

/* Sign-in and registration use two balanced cards instead of the default layout. */
body.woocommerce-account:not(.logged-in) .woocommerce {
  display:block;
  max-width:980px;
  margin:0 auto;
}
body.woocommerce-account:not(.logged-in) .u-columns {
  gap:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  box-shadow:var(--shadow-sm);
}
body.woocommerce-account:not(.logged-in) .u-column1,
body.woocommerce-account:not(.logged-in) .u-column2 {
  padding:36px;
  border:0;
  border-radius:0;
  background:#fff;
}
body.woocommerce-account:not(.logged-in) .u-column1 {
  border-right:1px solid var(--line);
}
body.woocommerce-account:not(.logged-in) .u-column1 h2,
body.woocommerce-account:not(.logged-in) .u-column2 h2 {
  margin:0 0 22px;
  color:var(--ink);
  font-size:26px;
  font-weight:800;
}
body.woocommerce-account:not(.logged-in) form.login,
body.woocommerce-account:not(.logged-in) form.register {
  margin:0;
  padding:0;
  border:0;
}
body.woocommerce-account:not(.logged-in) .woocommerce-form-login__rememberme {
  color:var(--muted);
  font-size:13px;
}
body.woocommerce-account:not(.logged-in) .woocommerce-LostPassword {
  margin:16px 0 0;
}
body.woocommerce-account:not(.logged-in) .woocommerce-LostPassword a {
  color:var(--accent);
  font-weight:650;
}

@media (max-width:900px) {
  body.woocommerce-account article.container { padding-top:30px; padding-bottom:40px; }
  body.woocommerce-account article.container > h1 { margin-bottom:22px; font-size:32px; }
  body.woocommerce-account .woocommerce { grid-template-columns:minmax(0,1fr)!important; gap:16px; }
  body.woocommerce-account .woocommerce-MyAccount-navigation { position:static; overflow:visible; padding:6px; }
  body.woocommerce-account .woocommerce-MyAccount-navigation ul { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; width:100%; }
  body.woocommerce-account .woocommerce-MyAccount-navigation li { min-width:0; }
  body.woocommerce-account .woocommerce-MyAccount-navigation li a { justify-content:center; min-height:44px; padding:9px 8px; text-align:center; white-space:normal; line-height:1.2; }
  body.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout { margin:0; padding:0; border:0; }
  body.woocommerce-account .woocommerce-MyAccount-content { padding:26px 22px; }
  body.woocommerce-account:not(.logged-in) .u-columns { grid-template-columns:1fr; }
  body.woocommerce-account:not(.logged-in) .u-column1 { border-right:0; border-bottom:1px solid var(--line); }
}
@media (max-width:560px) {
  body.woocommerce-account article.container { padding-right:16px; padding-left:16px; }
  body.woocommerce-account article.container > h1 { padding-bottom:13px; font-size:29px; }
  body.woocommerce-account article.container > h1::after { width:50px; height:3px; }
  body.woocommerce-account .woocommerce-MyAccount-content { padding:22px 16px; }
  body.woocommerce-account .woocommerce-MyAccount-navigation ul { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout { grid-column:1 / -1; }
  body.woocommerce-account .woocommerce-MyAccount-content > p:first-child { padding:14px; font-size:14px; }
  body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address { padding:17px; }
  body.woocommerce-account .woocommerce-MyAccount-content fieldset { padding:16px; }
  body.woocommerce-account:not(.logged-in) .u-column1,
  body.woocommerce-account:not(.logged-in) .u-column2 { padding:26px 20px; }
  body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table,
  body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table tbody,
  body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table tr,
  body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table td { display:block; width:100%; }
  body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table thead { display:none; }
  body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table tr { padding:14px 0; border-bottom:1px solid var(--line); }
  body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table tr:last-child { border-bottom:0; }
  body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table td { padding:5px 0!important; border:0!important; text-align:left!important; }
  body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table td::before { content:attr(data-title); display:block; margin-bottom:2px; color:var(--muted); font-size:11px; font-weight:750; text-transform:uppercase; letter-spacing:.06em; }
}

@media (max-width:860px) {
  .vov-hp-products .section-head,.vov-hp-blog .section-head { align-items:flex-start; gap:14px; }
  .vov-hp-products .tabs,.vov-hp-blog .tabs { width:100%; overflow-x:auto; flex-wrap:nowrap; padding:4px; -webkit-overflow-scrolling:touch; }
  .vov-hp-products .tab,.vov-hp-blog .tab { flex:0 0 auto; white-space:nowrap; }
  .reviews-grid { display:block!important; }
  .reviews-aside { margin-bottom:22px; }
  .reviews { display:flex!important; gap:14px!important; overflow-x:auto!important; overflow-y:hidden; padding:0 2px 8px!important; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
  .reviews::-webkit-scrollbar { display:none; }
  .reviews .review { flex:0 0 min(82vw,360px)!important; min-width:0; scroll-snap-align:start; }
  .reviews-dots { display:flex!important; justify-content:center; gap:10px; margin-top:14px; }
  .newsletter { padding-left:16px!important; padding-right:16px!important; }
  .newsletter .newsletter-inner { width:100%; padding-left:20px!important; padding-right:20px!important; }
  .newsletter .newsletter-fields { width:100%; }
  .newsletter .newsletter-fields input,.newsletter .newsletter-fields .btn { min-width:0; }
  .features { padding-left:0!important; padding-right:0!important; }
  .features .container { padding-left:16px; padding-right:16px; }
  .features-grid { display:flex!important; gap:14px!important; overflow-x:auto!important; overflow-y:hidden; padding:0 2px 8px!important; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
  .features-grid::-webkit-scrollbar { display:none; }
  .features-grid .feat { flex:0 0 min(78vw,310px)!important; min-width:0; scroll-snap-align:start; }
  .features-dots { display:flex!important; justify-content:center; gap:10px; margin-top:14px; }
}

@media (max-width:520px) {
  .newsletter { padding-left:12px!important; padding-right:12px!important; }
  .newsletter .newsletter-inner { padding:22px 18px!important; }
  .newsletter .newsletter-fields { display:grid!important; grid-template-columns:1fr!important; gap:10px; }
  .newsletter .newsletter-fields input,.newsletter .newsletter-fields .btn { width:100%!important; }
  .reviews .review { flex-basis:calc(100vw - 48px)!important; }
  .features-grid .feat { flex-basis:calc(100vw - 48px)!important; }
}

/* Keep the account navigation as a compact left sidebar on desktop and tablet.
   This intentionally follows the generic <=900px WooCommerce rule above. */
@media (min-width:701px) {
  body.woocommerce-account .woocommerce {
    display:grid!important;
    grid-template-columns:200px minmax(0,1fr)!important;
    gap:20px!important;
    align-items:start!important;
  }
  body.woocommerce-account .woocommerce-MyAccount-navigation,
  body.woocommerce-account .woocommerce-MyAccount-content {
    float:none!important;
    width:auto!important;
    margin:0!important;
  }
  body.woocommerce-account .woocommerce-MyAccount-navigation {
    grid-column:1!important;
    grid-row:1!important;
  }
  body.woocommerce-account .woocommerce-MyAccount-content {
    grid-column:2!important;
    grid-row:1!important;
  }
}

/* Product archives use WooCommerce's `li.product` markup, unlike the cards
   on the homepage. Neutralise Woo's legacy floats/widths inside this one grid
   so shop and category cards keep the same clean card layout. */
.vov-products { width:100%; min-width:0; }
.vov-products > ul.products.prod-grid {
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:18px!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  clear:both!important;
  list-style:none!important;
}
.vov-products > ul.products.prod-grid > li.product.prod-card {
  float:none!important;
  width:auto!important;
  min-width:0;
  margin:0!important;
}
/* WooCommerce adds clearing pseudo-elements to product lists. In a CSS grid
   they became visible as an empty first/last grid cell. */
.vov-products > ul.products.prod-grid::before,
.vov-products > ul.products.prod-grid::after {
  content:none!important;
  display:none!important;
}
/* Archive cards intentionally match the orange price treatment on the HP. */
.vov-products .prod-card .price {
  color:var(--primary)!important;
  font-size:24px!important;
  font-weight:800!important;
  line-height:1!important;
}
.vov-products .prod-card .price ins,
.vov-products .prod-card .price .amount { color:inherit!important; }

/* A small, consistent interaction cue on every product card. */
.prod-card h3 a { transition:color .2s ease; }
.prod-card:hover h3 a,
.prod-card:focus-within h3 a { color:var(--primary)!important; }
@media (max-width:1100px) {
  .vov-products > ul.products.prod-grid { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
}
@media (max-width:390px) {
  .vov-products > ul.products.prod-grid { grid-template-columns:minmax(0,1fr)!important; }
}

/* At very narrow portrait widths a two-column archive card leaves no usable
   room for its title, price and action controls. Use one comfortable card. */
@media (max-width:520px) {
  .vov-products > ul.products.prod-grid { grid-template-columns:minmax(0,1fr)!important; }
  .vov-products > ul.products.prod-grid .prod-card .prod-body { padding:16px!important; }
  .vov-products > ul.products.prod-grid .prod-card h3 { font-size:16px!important; }
}

/* Archive product images: show the complete, sharper catalogue image.
   The old WooCommerce thumbnail is a square crop and was enlarged inside
   a wide card, causing both cut-off products and visible softness. */
.vov-products .prod-media { background:#fff; }
.vov-products .prod-media img {
  width:auto!important;
  height:auto!important;
  max-width:calc(100% - 28px)!important;
  max-height:calc(100% - 28px)!important;
  box-sizing:border-box;
  padding:0!important;
  object-fit:contain!important;
}
.vov-products .prod-card:hover .prod-media img { transform:none!important; }

/* Checkout removes marketing sections and uses a calm two-column checkout at desktop widths. */
body.woocommerce-checkout .newsletter,
body.woocommerce-checkout .reviews-section,
body.woocommerce-checkout .footer-banner,
body.woocommerce-checkout .features { display:none; }
@media (min-width:1150px) {
  .woocommerce-checkout form.woocommerce-checkout { display:grid; grid-template-columns:minmax(0,1.18fr) minmax(330px,.82fr); gap:0 32px; align-items:start; }
  .woocommerce-checkout form.woocommerce-checkout #customer_details { grid-column:1; grid-row:1 / span 3; }
  .woocommerce-checkout form.woocommerce-checkout #order_review_heading,
  .woocommerce-checkout form.woocommerce-checkout #order_review { grid-column:2; }
  .woocommerce-checkout form.woocommerce-checkout #order_review { position:sticky; top:20px; }
}
.woocommerce-checkout form.checkout_coupon { display:flex; align-items:end; gap:10px; max-width:430px; }
.woocommerce-checkout form.checkout_coupon .form-row { float:none!important; width:auto!important; margin:0!important; }
.woocommerce-checkout form.checkout_coupon .input-text { width:180px!important; min-width:0; }
.woocommerce-checkout form.checkout_coupon button { white-space:nowrap; }

@media (max-width:860px) {
  .topbar { display:none; }
  .header-inner { grid-template-columns:1fr auto; gap:12px; padding:12px 16px; }
  .header-inner > .search { display:none; }
  .logo img { height:34px; }
  .header-actions { gap:8px; }
  .header-actions > .iconlink:first-child { display:none; }
  .iconlink { width:38px; height:38px; }
  .mainnav-inner { min-height:50px; padding:0 16px; justify-content:space-between; }
  .mainnav .megamenu-wrap,.mainnav .nav-links,.mainnav .nav-deals { display:none; }
  .mobile-toggle { display:inline-flex!important; width:42px; height:42px; align-items:center; justify-content:center; color:#fff; }
  .mobile-drawer { display:block; position:fixed; z-index:999; inset:0; pointer-events:none; visibility:hidden; }
  .mobile-drawer.is-open { pointer-events:auto; visibility:visible; }
  .mobile-drawer__backdrop { position:absolute; inset:0; background:rgba(13,17,48,.58); opacity:0; transition:opacity .25s ease; }
  .mobile-drawer__panel { position:absolute; top:0; bottom:0; left:0; width:min(92vw,390px); padding:20px 16px; overflow:auto; background:#fff; transform:translateX(-100%); transition:transform .25s ease; }
  .mobile-drawer.is-open .mobile-drawer__backdrop { opacity:1; }
  .mobile-drawer.is-open .mobile-drawer__panel { transform:translateX(0); }
  .mobile-drawer__head { display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; font-size:20px; }
  .mobile-close { width:36px; height:36px; border-radius:50%; background:var(--soft); font-size:20px; }
  .mobile-search { display:flex!important; max-width:none; margin:0 0 18px; }
  .mobile-menu { padding:0; margin:0; list-style:none; border-top:1px solid var(--line); }
  .mobile-menu > li { border-bottom:1px solid var(--line); }
  .mobile-menu > li > a,.mobile-menu__row a { display:block; padding:15px 2px; color:var(--ink); font-weight:700; }
  .mobile-menu__row { display:flex; align-items:center; }
  .mobile-menu__row a { flex:1; }
  /* The base theme also styles `.m-toggle span`, which produced a small
     off-centre orange square inside the round control. Keep a single,
     centred tap target and colour the whole control only when expanded. */
  .mobile-menu .m-toggle { display:inline-flex!important; align-items:center!important; justify-content:center!important; flex:0 0 42px; width:42px; height:42px; margin:0; padding:0; border:1px solid var(--line); border-radius:10px; background:#fff; color:var(--ink); font-size:23px; font-weight:500; line-height:1; }
  .mobile-menu .m-toggle span { display:flex!important; align-items:center!important; justify-content:center!important; width:100%!important; height:100%!important; margin:0!important; padding:0!important; border-radius:inherit!important; background:transparent!important; color:inherit!important; font-size:inherit!important; line-height:1!important; transform:translateY(-1px); }
  .mobile-menu .m-has-sub.is-open .m-toggle { border-color:transparent; background:var(--gradient-primary); color:#fff; box-shadow:0 5px 12px rgba(255,90,31,.22); }
  .mobile-menu .m-has-sub.is-open .m-toggle span { background:transparent!important; color:#fff!important; }
  .mobile-submenu { display:none; padding:0 0 10px 14px; }
  .m-has-sub.is-open .mobile-submenu { display:block; }
  .mobile-submenu a { display:block; padding:9px 0; color:var(--muted); }
  .prod-grid { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:10px; }
  .prod-body { padding:12px; gap:8px; }
  .prod-card h3 { font-size:14px; }
  .prod-desc,.prod-tags,.stock { display:none; }
  .prod-foot { align-items:center; padding-top:6px; }
  .price { font-size:18px; }
  .prod-actions { gap:4px; }
  .prod-actions .icon-btn,.prod-actions .icon-btn-dark { width:34px; height:34px; }
  .woocommerce-checkout form.checkout_coupon { align-items:stretch; flex-wrap:wrap; }
  .woocommerce-checkout form.checkout_coupon .input-text { width:100%!important; }
}
@media (max-width:390px) {
  .header-actions > .iconlink:nth-child(2) { display:none; }
  .prod-grid { grid-template-columns:1fr!important; }
}

/* Cart: give both primary checkout actions the same clear emphasis. */
.woocommerce .cart-collaterals .wc-proceed-to-checkout .checkout-button {
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  height:52px;
  min-height:52px;
  margin:0!important;
  padding:0 24px!important;
  background:var(--gradient-primary)!important;
  color:#fff!important;
  font-weight:700!important;
  font-size:15px!important;
  line-height:1.2!important;
  box-shadow:0 6px 16px rgba(255,90,31,.28)!important;
}
.woocommerce .cart-collaterals .wc-proceed-to-checkout .checkout-button:hover {
  background:var(--gradient-primary-hover)!important;
  box-shadow:var(--shadow-orange)!important;
}
.woocommerce .cart-collaterals .wc-proceed-to-checkout {
  display:flex;
  justify-content:center;
}
.woocommerce .cart-collaterals .wc-proceed-to-checkout .checkout-button {
  align-items:center;
  text-align:center;
}
.woocommerce .cart-collaterals {
  margin-bottom:48px;
}
form.woocommerce-cart-form table.cart td.actions .coupon .input-text {
  width:220px!important;
  height:46px!important;
  padding:10px 14px!important;
  margin-right:10px!important;
}
form.woocommerce-cart-form table.cart td.actions .coupon button {
  min-height:46px;
}

/* WPify Woo: withdrawal form aligned with the store's cards and controls. */
#wpify-woo-withdrawal-form {
  position:relative;
  max-width:820px;
  margin:0 0 48px;
  padding:30px;
  background:#fff;
  border:1px solid var(--line);
  border-top:4px solid var(--accent);
  box-shadow:var(--shadow-sm);
}
#wpify-woo-withdrawal-form::before {
  content:'ODSTÚPENIE OD ZMLUVY';
  display:block;
  margin:0 0 8px;
  color:var(--accent);
  font-size:12px;
  font-weight:800;
  letter-spacing:1.2px;
}
#wpify-woo-withdrawal-form::after {
  content:'Overte svoju objednávku a vyberte položky, ktoré chcete vrátiť.';
  position:absolute;
  top:57px;
  left:30px;
  right:30px;
  margin:0;
  color:var(--muted);
  font-size:14px;
}
#wpify-woo-withdrawal-form .woocommerce-form-withdrawal {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px 20px;
  margin-top:38px;
}
#wpify-woo-withdrawal-form .form-row {
  float:none!important;
  width:auto!important;
  margin:0!important;
}
#wpify-woo-withdrawal-form .form-row-wide,
#wpify-woo-withdrawal-form .form-row:last-child {
  grid-column:1 / -1;
}
#wpify-woo-withdrawal-form label {
  display:block;
  margin:0 0 7px;
  color:var(--ink);
  font-size:13px;
  font-weight:700;
}
#wpify-woo-withdrawal-form abbr.required {
  color:var(--accent);
  text-decoration:none;
}
#wpify-woo-withdrawal-form input:not([type="hidden"]),
#wpify-woo-withdrawal-form textarea {
  width:100%;
  min-height:48px;
  padding:11px 13px;
  color:var(--ink);
  background:#fff;
  border:1px solid var(--line);
  border-radius:4px;
  font:inherit;
  transition:border-color var(--transition),box-shadow var(--transition);
}
#wpify-woo-withdrawal-form textarea { min-height:112px; resize:vertical; }
#wpify-woo-withdrawal-form input:focus,
#wpify-woo-withdrawal-form textarea:focus {
  outline:0;
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(255,90,31,.14);
}
#wpify-woo-withdrawal-form .form-row-hint,
#wpify-woo-withdrawal-form .wpify-woo-helper-text {
  color:var(--muted);
  font-size:12.5px;
  line-height:1.45;
}
#wpify-woo-withdrawal-form .button {
  min-height:48px;
  padding:13px 22px!important;
  background:var(--gradient-primary)!important;
  color:#fff!important;
  border:0!important;
  border-radius:0!important;
  font-weight:700!important;
  box-shadow:0 6px 16px rgba(255,90,31,.28)!important;
}
#wpify-woo-withdrawal-form .button:hover {
  background:var(--gradient-primary-hover)!important;
  color:#fff!important;
  transform:translateY(-2px);
  box-shadow:var(--shadow-orange)!important;
}
#wpify-woo-withdrawal-form .wpify-woo-helper-text { max-width:560px; }

@media (max-width:680px) {
  .woocommerce .cart-collaterals { margin-bottom:32px; }
  form.woocommerce-cart-form table.cart td.actions .coupon { display:flex; flex-wrap:wrap; gap:10px; }
  form.woocommerce-cart-form table.cart td.actions .coupon .input-text { width:100%!important; margin:0!important; }
  form.woocommerce-cart-form table.cart td.actions .coupon button { flex:1; }
  #wpify-woo-withdrawal-form { margin-bottom:32px; padding:22px 18px; }
  #wpify-woo-withdrawal-form::after { top:49px; left:18px; right:18px; }
  #wpify-woo-withdrawal-form .woocommerce-form-withdrawal { grid-template-columns:1fr; gap:16px; margin-top:38px; }
  #wpify-woo-withdrawal-form .form-row-wide,
  #wpify-woo-withdrawal-form .form-row:last-child { grid-column:auto; }
}

/* Checkout: billing on the left, a prominent order summary on the right. */
.woocommerce form.woocommerce-checkout #order_review_heading {
  margin:0;
  padding:25px 28px 14px;
  color:var(--ink);
  background:linear-gradient(135deg,#fff2eb 0%,#fff8f4 100%);
  border:1px solid #ffd8c8;
  border-bottom:0;
  font-size:23px;
  line-height:1.25;
}
.woocommerce form.woocommerce-checkout #order_review {
  padding:0 28px 28px;
  background:linear-gradient(135deg,#fff2eb 0%,#fff8f4 100%);
  border:1px solid #ffd8c8;
  border-top:0;
  box-shadow:var(--shadow-sm);
}
.woocommerce form.woocommerce-checkout #order_review table.shop_table {
  width:100%;
  margin:0 0 20px;
  background:#fff;
  border:1px solid rgba(255,90,31,.18);
  border-collapse:collapse;
  border-spacing:0;
}
.woocommerce form.woocommerce-checkout #order_review table.shop_table th,
.woocommerce form.woocommerce-checkout #order_review table.shop_table td {
  padding:14px 16px;
  border:0!important;
  border-bottom:1px solid rgba(255,90,31,.18)!important;
}
.woocommerce form.woocommerce-checkout #order_review table.shop_table thead th {
  background:#fff;
  color:var(--ink);
}
.woocommerce form.woocommerce-checkout #order_review table.shop_table tr,
.woocommerce form.woocommerce-checkout #order_review table.shop_table th,
.woocommerce form.woocommerce-checkout #order_review table.shop_table td {
  background:#fff;
}
.woocommerce form.woocommerce-checkout #order_review table.shop_table thead th {
  border-bottom:1px solid rgba(255,90,31,.18)!important;
}
.woocommerce form.woocommerce-checkout #order_review table.shop_table tfoot tr:last-child th,
.woocommerce form.woocommerce-checkout #order_review table.shop_table tfoot tr:last-child td {
  border-bottom:0!important;
}
.woocommerce form.woocommerce-checkout #order_review table.shop_table tbody tr:first-child td {
  padding-top:16px;
}
.woocommerce form.woocommerce-checkout #order_review table.shop_table .order-total th,
.woocommerce form.woocommerce-checkout #order_review table.shop_table .order-total td {
  background:#fff;
  color:var(--accent);
  font-size:17px;
}
.woocommerce form.woocommerce-checkout #payment {
  margin:0;
  padding:18px;
  background:#fff;
  border:1px solid rgba(255,90,31,.18);
}
.woocommerce form.woocommerce-checkout #payment ul.payment_methods {
  margin:0 0 16px;
  padding:0;
  border-bottom:1px solid var(--line);
}
.woocommerce form.woocommerce-checkout #payment .payment_box {
  margin:10px 0 14px;
  padding:12px;
  background:var(--soft);
  color:var(--muted);
  font-size:13px;
}
.woocommerce form.woocommerce-checkout #payment #place_order {
  width:100%;
  min-height:52px;
  margin:14px 0 0;
  padding:15px 18px!important;
  background:var(--gradient-primary)!important;
  color:#fff!important;
  font-size:15px!important;
  font-weight:700!important;
  box-shadow:0 6px 16px rgba(255,90,31,.28)!important;
}
.woocommerce form.woocommerce-checkout #payment #place_order:hover {
  background:var(--gradient-primary-hover)!important;
  transform:translateY(-2px);
  box-shadow:var(--shadow-orange)!important;
}

@media (min-width:1150px) {
  .woocommerce form.woocommerce-checkout {
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    column-gap:32px;
    align-items:start;
  }
  .woocommerce form.woocommerce-checkout #customer_details { grid-column:1; grid-row:1 / span 2; }
  .woocommerce form.woocommerce-checkout #customer_details .col-1,
  .woocommerce form.woocommerce-checkout #customer_details .col-2 {
    float:none;
    width:100%;
    margin:0;
  }
  .woocommerce form.woocommerce-checkout #customer_details .col-2 { margin-top:26px; }
  .woocommerce form.woocommerce-checkout #order_review_heading { grid-column:2; grid-row:1; }
  .woocommerce form.woocommerce-checkout #order_review { grid-column:2; grid-row:2; }
}

@media (max-width:1149px) {
  .woocommerce form.woocommerce-checkout #order_review_heading { margin-top:32px; }
}
@media (max-width:560px) {
  .woocommerce form.woocommerce-checkout #order_review_heading { padding:21px 18px 8px; font-size:21px; }
  .woocommerce form.woocommerce-checkout #order_review { padding:0 18px 18px; }
  .woocommerce form.woocommerce-checkout #payment { padding:14px; }
}

/* Homepage: wide editorial hero images supplied through the Homepage editor. */
.slide--photo {
  background-image:var(--vov-hero-photo);
  background-position:center;
  background-repeat:no-repeat;
  background-size:cover;
}
.slide--photo .slide-bg {
  background:linear-gradient(90deg,rgba(248,250,255,.98) 0%,rgba(248,250,255,.95) 39%,rgba(248,250,255,.42) 54%,rgba(248,250,255,0) 72%);
}
.slide--photo .slide-bg::after { display:none; }
.slide--photo .slide-inner { grid-template-columns:minmax(0, 55%) minmax(0, 45%); }
.slide--photo .hero-copy { max-width:500px; }
.slide--photo .hero-visual { visibility:hidden; pointer-events:none; }

@media (max-width:900px) {
  .slide--photo { background-position:62% center; }
  .slide--photo .slide-bg {
    background:linear-gradient(90deg,rgba(248,250,255,.98) 0%,rgba(248,250,255,.93) 52%,rgba(248,250,255,.48) 72%,rgba(248,250,255,.08) 100%);
  }
}

@media (max-width:620px) {
  .slide--photo { background-position:68% center; }
  .slide--photo .slide-bg { background:rgba(248,250,255,.84); }
  .slide--photo .slide-inner { grid-template-columns:1fr; }
  .slide--photo .hero-copy { max-width:100%; }
  .slide--photo .hero-visual { display:none; }
}

/* Product archives: clear, touch-friendly pagination.
   Category templates do not always include WooCommerce's outer `.woocommerce`
   class, so deliberately target the pagination component itself. */
nav.woocommerce-pagination {
  margin:42px 0 12px;
  text-align:center;
}
nav.woocommerce-pagination ul {
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px!important;
  margin:0!important;
  padding:9px!important;
  border:1px solid var(--line)!important;
  border-radius:12px!important;
  background:#fff;
  box-shadow:0 8px 24px rgba(21,31,45,.07);
}
nav.woocommerce-pagination ul li {
  float:none!important;
  margin:0!important;
  overflow:visible!important;
  border:0!important;
}
nav.woocommerce-pagination ul li a,
nav.woocommerce-pagination ul li span {
  display:flex!important;
  align-items:center;
  justify-content:center;
  min-width:42px!important;
  width:42px!important;
  height:42px!important;
  margin:0!important;
  padding:0!important;
  border:1px solid var(--line)!important;
  border-radius:8px!important;
  background:#fff!important;
  color:var(--ink)!important;
  font-size:14px!important;
  font-weight:700!important;
  line-height:1!important;
  transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;
}
nav.woocommerce-pagination ul li a:hover,
nav.woocommerce-pagination ul li a:focus-visible {
  border-color:var(--accent)!important;
  background:var(--soft)!important;
  color:var(--accent)!important;
  transform:translateY(-1px);
}
nav.woocommerce-pagination ul li span.current {
  border-color:transparent!important;
  background:var(--gradient-primary)!important;
  color:#fff!important;
  box-shadow:0 5px 12px rgba(255,90,31,.25);
}
nav.woocommerce-pagination .prev,
nav.woocommerce-pagination .next {
  font-size:21px!important;
}

/* Product detail: metadata belongs with the purchase controls, leaving the
   product description and other tabs available across the full container. */
.product-tabs-section .pd-tabs-layout {
  grid-template-columns:minmax(0,1fr)!important;
}
.pd-product-meta {
  display:flex;
  flex-wrap:wrap;
  gap:8px 20px;
  margin:18px 0 0;
  padding:16px 0 0;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:13px;
  line-height:1.5;
}
.pd-product-meta li {
  display:flex;
  align-items:baseline;
  gap:5px;
  min-width:0;
}
.pd-product-meta b {
  color:var(--ink);
  font-size:12px;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.pd-product-meta span { min-width:0; }
.pd-product-meta a {
  color:var(--ink);
  text-decoration:none;
}
.pd-product-meta a:hover,
.pd-product-meta a:focus-visible { color:var(--accent); }
@media (max-width:600px) {
  .pd-product-meta {
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:8px;
    margin-top:16px;
    padding-top:14px;
  }
}
@media (max-width:520px) {
  nav.woocommerce-pagination { margin-top:30px; }
  nav.woocommerce-pagination ul { gap:5px!important; padding:6px!important; }
  nav.woocommerce-pagination ul li a,
  nav.woocommerce-pagination ul li span {
    min-width:38px!important;
    width:38px!important;
    height:38px!important;
  }
}

/* Footer reviews: editable CPT cards and a rating bar that reflects the
   aggregate score configured in Nastavení šablony → Patička - recenze. */
.reviews-average-stars {
  position:relative;
  display:inline-block;
  color:#d9dde5;
  font-size:22px;
  letter-spacing:2px;
  line-height:1;
}
.reviews-average-stars::before {
  content:'★★★★★';
  position:absolute;
  top:0;
  left:0;
  width:var(--rating-width);
  overflow:hidden;
  color:#facc15;
  white-space:nowrap;
}
.reviews-average-stars > span { display:block; }
.reviews-section .review-text p { margin:8px 0; }
.reviews-section .review-text p:first-child { margin-top:8px; }
.reviews-section .review-text p:last-child { margin-bottom:8px; }

/* Dedicated review page: a full, four-column card grid on desktop. */
.vov-reviews-page-head { display:block; margin-bottom:30px; }
.vov-reviews-page-intro { max-width:680px; margin-top:12px; color:var(--muted); }
.vov-reviews-page-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.vov-reviews-page-grid .review-title { font-size:17px; }
@media (max-width:1100px) {
  .vov-reviews-page-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:640px) {
  .vov-reviews-page .vov-reviews-page-grid {
    display:grid!important;
    grid-template-columns:minmax(0,1fr);
    overflow:visible!important;
    padding:0!important;
  }
.vov-reviews-page .vov-reviews-page-grid .review { flex:auto!important; }
}

/* WooCommerce category intro: the regular term description is shown directly
   above the product loop; Yoast description is used by the template only when
   that regular description is empty. */
.cat-seo-description {
  margin:30px 0 24px;
  padding:20px 22px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  color:var(--muted);
  font-size:15px;
  line-height:1.65;
}
.cat-seo-description > :first-child { margin-top:0; }
.cat-seo-description > :last-child { margin-bottom:0; }
@media (max-width:640px) {
  .cat-seo-description {
    margin:22px 0 20px;
    padding:17px 18px;
    font-size:14px;
  }
}

/* Product-category icons use the theme's SVG library rather than cropped
   product thumbnails, so every nesting level stays sharp and recognisable. */
.subcat-card .subcat-img img.vov-category-icon {
  width:64px!important;
  height:64px!important;
  max-width:100%;
  object-fit:contain!important;
  padding:6px;
  background:transparent!important;
}
.vov-category-icon-preview {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:62px;
  height:62px;
  margin-left:10px;
  vertical-align:middle;
  border:1px solid #dcdcde;
  border-radius:6px;
  background:#fff;
}
.vov-category-icon-preview[hidden] { display:none; }
.vov-category-icon-preview img { max-width:48px; max-height:48px; object-fit:contain; }

/* The method is selected in checkout. On the cart we retain only a short,
   transparent cue instead of WooCommerce's address calculator and radios. */
.woocommerce-cart .cart_totals .woocommerce-shipping-totals {
  display:none!important;
}
.woocommerce-cart .cart_totals .woocommerce-shipping-totals ul#shipping_method,
.woocommerce-cart .cart_totals .woocommerce-shipping-totals .woocommerce-shipping-destination,
.woocommerce-cart .cart_totals .woocommerce-shipping-totals .woocommerce-shipping-calculator {
  display:none!important;
}
.woocommerce-cart .cart_totals .woocommerce-shipping-totals td {
  text-align:right;
}
.woocommerce-cart .cart_totals .woocommerce-shipping-totals td::after {
  content:'Dopravu si vyberiete v pokladni';
  display:block;
  color:var(--muted);
  font-size:13px;
  line-height:1.4;
}

/* Keep product quantities and the shipping choices legible in the compact
   order summary card, including names that wrap onto a second line. */
.woocommerce-checkout #order_review table.shop_table .product-name {
  padding-right:20px;
}
.woocommerce-checkout #order_review table.shop_table .product-name .product-quantity {
  display:inline-block;
  margin-left:4px;
  white-space:nowrap;
}
.woocommerce-checkout #order_review .woocommerce-shipping-totals td {
  text-align:left;
}
.woocommerce-checkout #order_review .woocommerce-shipping-totals th,
.woocommerce-checkout #order_review .woocommerce-shipping-totals td {
  display:block;
  width:100%;
}
.woocommerce-checkout #order_review .woocommerce-shipping-totals th {
  padding-bottom:8px!important;
  border-bottom:0!important;
}
.woocommerce-checkout #order_review .woocommerce-shipping-totals td {
  padding-top:8px!important;
  border-top:0!important;
}
.woocommerce form.woocommerce-checkout #order_review table.shop_table .woocommerce-shipping-totals th {
  border-bottom:0!important;
}
.woocommerce form.woocommerce-checkout #order_review table.shop_table .woocommerce-shipping-totals td {
  border-top:0!important;
  border-bottom:0!important;
}
.woocommerce form.woocommerce-checkout #order_review table.shop_table tr.woocommerce-shipping-totals {
  display:block!important;
  width:100%!important;
  position:relative;
}
.woocommerce form.woocommerce-checkout #order_review table.shop_table tr.woocommerce-shipping-totals::after {
  display:none;
}
.woocommerce form.woocommerce-checkout #order_review table.shop_table tr.woocommerce-shipping-totals th,
.woocommerce form.woocommerce-checkout #order_review table.shop_table tr.woocommerce-shipping-totals td {
  display:block!important;
  width:100%!important;
}
.woocommerce form.woocommerce-checkout #order_review table.shop_table tr.woocommerce-shipping-totals td {
  padding-bottom:14px!important;
}
.woocommerce form.woocommerce-checkout #order_review table.shop_table .order-total th,
.woocommerce form.woocommerce-checkout #order_review table.shop_table .order-total td {
  border-top:1px solid rgba(255,90,31,.18)!important;
}

/* Delivery page: a calm editorial layout that keeps its information table
   usable on narrow screens without affecting other WordPress pages. */
.vov-delivery-page {
  max-width:980px;
  padding-top:42px;
  padding-bottom:76px;
}
.vov-delivery-page__title {
  margin:0 0 34px;
  font-size:clamp(34px,5vw,56px);
  line-height:1.04;
  letter-spacing:-1.8px;
}
.vov-delivery-page__title span {
  background:var(--gradient-primary);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
}
.vov-delivery-page h2 {
  margin:40px 0 12px;
  color:var(--ink);
  font-size:clamp(21px,2.5vw,28px);
  line-height:1.22;
}
.vov-delivery-page h2::after {
  content:'';
  display:block;
  width:46px;
  height:3px;
  margin-top:11px;
  background:var(--gradient-primary);
}
.vov-delivery-page p {
  max-width:820px;
  margin:0;
  color:var(--muted);
  font-size:16px;
  line-height:1.7;
}
.vov-delivery-page a,
.cat-seo-description a {
  color:var(--accent);
  font-weight:700;
  text-decoration:none;
  background-image:linear-gradient(currentColor,currentColor);
  background-repeat:no-repeat;
  background-position:0 100%;
  background-size:100% 1px;
  transition:color var(--transition),background-size var(--transition);
}
.vov-delivery-page a:hover,
.cat-seo-description a:hover {
  background-size:0 1px;
}
.vov-delivery-page table {
  width:100%;
  margin:20px 0 0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:12px;
  border-collapse:separate;
  border-spacing:0;
  background:#fff;
  box-shadow:var(--shadow-sm);
}
.vov-delivery-page table th,
.vov-delivery-page table td {
  padding:15px 18px;
  text-align:left;
  vertical-align:middle;
  border:0;
  border-bottom:1px solid var(--line);
}
.vov-delivery-page table th {
  background:var(--soft);
  color:var(--ink);
  font-size:12px;
  font-weight:800;
  letter-spacing:.5px;
  text-transform:uppercase;
}
.vov-delivery-page table td {
  color:var(--muted);
  font-size:14px;
}
.vov-delivery-page table td:first-child {
  color:var(--ink);
  font-weight:700;
}
.vov-delivery-page table tr:last-child td { border-bottom:0; }
@media (max-width:640px) {
  .vov-delivery-page {
    padding-top:30px;
    padding-bottom:52px;
  }
  .vov-delivery-page__title { margin-bottom:26px; letter-spacing:-1px; }
  .vov-delivery-page h2 { margin-top:31px; }
  .vov-delivery-page p { font-size:15px; line-height:1.65; }
  .vov-delivery-page table {
    display:block;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
  .vov-delivery-page table th,
  .vov-delivery-page table td {
    min-width:130px;
    padding:13px 14px;
    white-space:normal;
  }
  .vov-delivery-page table th:first-child,
  .vov-delivery-page table td:first-child { min-width:250px; }
}
.woocommerce-checkout #order_review ul#shipping_method {
  display:grid;
  gap:10px;
  margin:0;
  padding:0;
}
.woocommerce-checkout #order_review ul#shipping_method li {
  display:grid;
  grid-template-columns:18px minmax(0,1fr);
  align-items:start;
  gap:8px;
  margin:0!important;
}
.woocommerce-checkout #order_review ul#shipping_method input {
  margin:3px 0 0;
}
.woocommerce-checkout #order_review ul#shipping_method label {
  display:block;
  line-height:1.35;
}

/* Category hero: the supplied banners are exactly 1350 × 280 px.  Keep that
   proportion fixed and clamp editorial copy so a long perex can never extend
   the dark wrapper underneath the image. */
.cat-hero-inner {
  height:280px;
  max-height:280px;
  min-height:0;
}
.cat-hero-copy {
  display:flex;
  flex-direction:column;
  justify-content:center;
  height:100%;
  max-width:620px;
  padding:36px 48px;
}
.cat-hero-copy h1 {
  display:-webkit-box;
  overflow:hidden;
  margin-bottom:10px;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
.cat-hero-copy p {
  display:-webkit-box;
  overflow:hidden;
  max-width:500px;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}

@media (max-width:900px) {
  .cat-hero-inner { height:260px; max-height:260px; }
  .cat-hero-copy { padding:26px 32px; }
  .cat-hero-bg { object-position:62% center; }
  .cat-hero-inner::after {
    background:linear-gradient(90deg,rgba(13,17,40,.94) 0%,rgba(13,17,40,.72) 58%,rgba(13,17,40,.28) 100%);
  }
}

@media (max-width:600px) {
  .cat-hero { padding-top:16px; }
  .cat-hero-inner {
    height:clamp(220px,64vw,250px);
    max-height:250px;
  }
  .cat-hero-bg { object-position:68% center; }
  .cat-hero-copy { max-width:100%; padding:20px; }
  .cat-hero-copy h1 { font-size:29px; line-height:1.12; }
  .cat-crumbs {
    display:block;
    overflow:hidden;
    margin-bottom:10px;
    white-space:nowrap;
    text-overflow:ellipsis;
    letter-spacing:1.1px;
  }
  .cat-crumbs .sep { margin:0 5px; }
  .cat-hero-copy p { font-size:13px; line-height:1.5; }
  .cat-hero-corner { width:96px; }
}
@media (min-width:640px) {
  .woocommerce-checkout #order_review ul#shipping_method label {
    white-space:nowrap;
    font-size:12px;
    letter-spacing:-.1px;
  }
}

/* Contact page: editable page title/intro, contact cards and Contact Form 7. */
.vov-contact-page { padding:42px 0 72px; }
.vov-contact-hero { padding:18px 0 38px; }
.vov-contact-kicker,
.vov-contact-form__eyebrow {
  display:block;
  margin-bottom:10px;
  color:var(--accent);
  font-size:12px;
  font-weight:800;
  letter-spacing:1.4px;
  text-transform:uppercase;
}
.vov-contact-hero h1 {
  max-width:760px;
  margin:0 0 14px;
  color:var(--ink);
  font-size:48px;
  line-height:1.08;
  letter-spacing:-1.8px;
}
.vov-contact-hero h1::after {
  content:"";
  display:block;
  width:74px;
  height:4px;
  margin-top:16px;
  background:var(--gradient-primary);
}
.vov-contact-intro { max-width:680px; color:var(--muted); font-size:17px; line-height:1.65; }
.vov-contact-intro p { margin:0; }
.vov-contact-layout {
  display:grid;
  grid-template-columns:minmax(0, .92fr) minmax(0, 1.08fr);
  gap:28px;
  align-items:start;
}
.vov-contact-details { display:grid; gap:18px; }
.vov-contact-card {
  position:relative;
  overflow:hidden;
  padding:30px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  box-shadow:0 10px 28px rgba(15,21,53,.06);
}
.vov-contact-card::after {
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:4px;
  background:var(--gradient-primary);
}
.vov-contact-card__icon {
  display:inline-flex;
  width:46px;
  height:46px;
  margin-bottom:18px;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:var(--soft);
  color:var(--accent);
}
.vov-contact-card__icon svg { width:23px; height:23px; }
.vov-contact-card h2,
.vov-contact-form h2 { margin:0 0 12px; color:var(--ink); font-size:24px; line-height:1.2; }
.vov-contact-card p { margin:0; color:var(--muted); line-height:1.65; }
.vov-contact-address { color:var(--ink)!important; font-weight:600; }
.vov-contact-hours { margin-top:14px!important; font-size:14px; }
.vov-contact-links { display:grid; gap:10px; margin-top:22px; }
.vov-contact-links a {
  display:inline-flex;
  align-items:center;
  gap:10px;
  width:max-content;
  max-width:100%;
  color:var(--ink);
  font-weight:700;
  transition:color var(--transition),transform var(--transition);
}
.vov-contact-links a:hover { color:var(--accent); transform:translateX(2px); }
.vov-contact-links svg { width:19px; height:19px; flex:0 0 19px; color:var(--accent); }
.vov-contact-card--company { background:var(--soft); box-shadow:none; }
.vov-contact-form {
  padding:34px;
  border-radius:12px;
  background:var(--gradient-dark);
  box-shadow:0 18px 42px rgba(15,21,53,.18);
  color:#fff;
}
.vov-contact-form__eyebrow { color:#ff7b48; }
.vov-contact-form h2 { color:#fff; font-size:30px; }
.vov-contact-form > p { margin:0 0 22px; color:rgba(255,255,255,.76); line-height:1.6; }
.vov-contact-form .wpcf7-form > p { margin:0 0 15px; }
.vov-contact-form label {
  display:block;
  color:#fff;
  font-size:13px;
  font-weight:700;
}
.vov-contact-form .wpcf7-form-control-wrap { display:block; margin-top:6px; }
.vov-contact-form input:not([type="checkbox"]),
.vov-contact-form textarea {
  width:100%;
  border:1px solid rgba(255,255,255,.25);
  border-radius:5px;
  outline:0;
  background:rgba(255,255,255,.98);
  color:var(--ink);
  font:inherit;
  transition:border var(--transition),box-shadow var(--transition);
}
.vov-contact-form input:not([type="checkbox"]) { height:46px; padding:10px 13px; }
.vov-contact-form textarea { min-height:132px; padding:12px 13px; resize:vertical; }
.vov-contact-form input:focus,
.vov-contact-form textarea:focus { border-color:var(--accent); box-shadow:0 0 0 3px rgba(255,90,31,.24); }
.vov-contact-form .wpcf7-list-item { margin:0; }
.vov-contact-form .wpcf7-list-item label { display:flex; gap:9px; align-items:flex-start; color:rgba(255,255,255,.82); font-size:12px; font-weight:500; line-height:1.45; }
.vov-contact-form .wpcf7-list-item input { margin:2px 0 0; accent-color:var(--accent); }
.vov-contact-form input[type="submit"] {
  display:inline-flex;
  min-height:48px;
  padding:12px 24px;
  cursor:pointer;
  border:0;
  border-radius:0;
  background:var(--gradient-primary);
  color:#fff;
  font:inherit;
  font-weight:800;
  transition:transform var(--transition),filter var(--transition),box-shadow var(--transition);
}
.vov-contact-form input[type="submit"]:hover { filter:brightness(1.08); transform:translateY(-2px); box-shadow:var(--shadow-orange); }
.vov-contact-form .wpcf7-not-valid-tip { margin-top:5px; color:#fecaca; font-size:12px; }
.vov-contact-form .wpcf7-response-output { margin:18px 0 0!important; padding:10px 12px!important; border-color:rgba(255,255,255,.45)!important; color:#fff; font-size:13px; }
.vov-contact-form__notice { margin:0!important; color:#fff!important; }

@media (max-width:900px) {
  .vov-contact-page { padding-top:30px; }
  .vov-contact-hero h1 { font-size:40px; }
  .vov-contact-layout { grid-template-columns:1fr; }
  .vov-contact-details { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:640px) {
  .vov-contact-page { padding-bottom:48px; }
  .vov-contact-hero { padding-bottom:28px; }
  .vov-contact-hero h1 { font-size:34px; letter-spacing:-1.1px; }
  .vov-contact-intro { font-size:15px; }
  .vov-contact-layout { gap:18px; }
  .vov-contact-details { grid-template-columns:1fr; gap:14px; }
  .vov-contact-card,
  .vov-contact-form { padding:24px 20px; }
  .vov-contact-card h2 { font-size:21px; }
  .vov-contact-form h2 { font-size:27px; }
}

/* Keep the editable footer-banner image visible while giving its white text a
   reliable contrast over both bright and dark source images. */
.premium-banner::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(9,14,37,.76) 0%,rgba(14,22,51,.55) 42%,rgba(15,21,53,.16) 78%,rgba(15,21,53,.08) 100%);
}
.premium-banner .premium-corner { z-index:2; }
.premium-banner .premium-content { z-index:3; }

@media (max-width:640px) {
  .premium-banner::before {
    background:linear-gradient(180deg,rgba(9,14,37,.46) 0%,rgba(9,14,37,.74) 66%,rgba(9,14,37,.86) 100%);
  }
}
