/*
Theme Name: Unique Smartweb Studio
Theme URI: https://www.uniquesmartweb.com/
Description: WordPress engineering studio child theme for Twenty Twenty-Five. Built for international buyer-intent search: speed optimization, malware removal, WooCommerce, Figma-to-WordPress and migration work. Carries the Unique Smartweb brand palette and Outfit typeface.
Author: Unique Smartweb
Author URI: https://www.uniquesmartweb.com/
Template: twentytwentyfive
Version: 1.0.0
Requires at least: 6.7
Tested up to: 7.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: usw-studio
Tags: block-patterns, full-site-editing, custom-colors, custom-logo, wide-blocks
*/

/* ---------- Base ---------- */
:root { scroll-behavior: smooth; }

body {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4 { letter-spacing: -0.015em; }

/* ---------- Eyebrow ---------- */
.usw-eyebrow {
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--wp--preset--color--accent-2);
  margin-bottom: 0.5rem;
}

/* ---------- Cards ---------- */
.usw-card {
  border: 1px solid var(--wp--preset--color--border);
  background: var(--wp--preset--color--base);
  transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
  height: 100%;
}
.usw-card:hover {
  border-color: var(--wp--preset--color--accent-1);
  transform: translateY(-2px);
  box-shadow: var(--wp--preset--shadow--soft);
}
.usw-card > .wp-block-heading:first-child { margin-top: 0; }

.usw-card .wp-block-heading a {
  text-decoration: none;
  color: var(--wp--preset--color--contrast);
}
.usw-card .wp-block-heading a:hover {
  color: var(--wp--preset--color--accent-2);
  text-decoration: none;
}

.usw-card--featured { border-top: 3px solid var(--wp--preset--color--accent-1); }

/* ---------- Card icons ---------- */
.usw-card-icon { margin: 0 0 1.1rem; }
.usw-card-icon img { display: block; }

/* ---------- Audit shot ---------- */
.usw-audit-shot { margin: 0 0 1rem; }
.usw-audit-shot img {
  display: block;
  width: 100%;
  height: auto;
  box-shadow: 0 18px 44px rgba(0, 0, 0, .38);
}

/* ---------- Framed shot ---------- */
.usw-shot { margin: 0; }
.usw-shot img {
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid var(--wp--preset--color--border);
  box-shadow: 0 14px 36px rgba(20, 23, 28, .10);
}

/* ---------- Price line ---------- */
.usw-price {
  font-weight: 600;
  font-size: 1.375rem;
  color: var(--wp--preset--color--contrast);
  font-variant-numeric: tabular-nums;
  line-height: 1.3;
}
.usw-price .usw-from {
  font-weight: 400;
  color: var(--wp--preset--color--contrast-2);
  font-size: 0.8125rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* ---------- Dark sections ---------- */
.usw-dark {
  background: var(--wp--preset--color--dark);
  color: #e8e8e8;
}
.usw-dark h1,
.usw-dark h2,
.usw-dark h3,
.usw-dark h4,
.usw-dark strong { color: #ffffff; }
.usw-dark .usw-eyebrow { color: var(--wp--preset--color--accent-1); }

.usw-dark a:not(.wp-element-button) { color: var(--wp--preset--color--accent-1); }
.usw-dark a:not(.wp-element-button):hover { color: #ffffff; }

.usw-dark .wp-block-button__link { color: #010101; }
.usw-dark .wp-block-button__link:hover,
.usw-dark .wp-block-button__link:focus { color: #ffffff; }
.usw-dark .usw-card {
  background: rgba(255, 255, 255, .04);
  border-color: rgba(255, 255, 255, .14);
}
.usw-dark .usw-card:hover { border-color: var(--wp--preset--color--accent-1); }
.usw-dark .usw-price { color: #ffffff; }
.usw-dark .usw-price .usw-from { color: #b4b4b4; }

/* ---------- Symptom / check lists ---------- */
.usw-symptoms ul,
.usw-checks ul {
  list-style: none;
  padding-left: 0;
  margin: 0;
}
.usw-symptoms li,
.usw-checks li {
  position: relative;
  padding-left: 1.85rem;
  margin-bottom: 0.7rem;
  line-height: 1.6;
}

.usw-symptoms li::before {
  content: "";
  position: absolute;
  left: 0.15rem;
  top: 0.5em;
  width: 0.4rem;
  height: 0.4rem;
  border-right: 2px solid var(--wp--preset--color--accent-2);
  border-bottom: 2px solid var(--wp--preset--color--accent-2);
  transform: rotate(-45deg);
}

.usw-checks li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.42em;
  width: 0.95rem;
  height: 0.95rem;
  background: var(--wp--preset--color--accent-3);
  clip-path: polygon(14% 46%, 0 60%, 39% 100%, 100% 22%, 86% 8%, 38% 71%);
}
.usw-dark .usw-symptoms li::before {
  border-right-color: var(--wp--preset--color--accent-1);
  border-bottom-color: var(--wp--preset--color--accent-1);
}

/* ---------- Stat row ---------- */
.usw-stat-num {
  font-size: clamp(2rem, 1.3rem + 2.2vw, 2.75rem);
  font-weight: 600;
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin: 0 0 0.2rem;
  font-variant-numeric: tabular-nums;
  color: var(--wp--preset--color--contrast);
}
.usw-dark .usw-stat-num { color: #ffffff; }

.usw-stat p:not(.usw-stat-num) {
  margin: 0;
  color: var(--wp--preset--color--contrast-2);
  font-size: 0.9375rem;
  line-height: 1.5;
}
.usw-dark .usw-stat p:not(.usw-stat-num) { color: #b4b4b4; }

/* ---------- Load scan (home) ---------- */
.usw-scan {
  border: 1px solid rgba(255, 255, 255, .14);
  padding: 1.75rem;
  height: 100%;
}
.usw-scan-label {
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin: 0 0 0.35rem;
}
.usw-scan--before .usw-scan-label { color: var(--wp--preset--color--accent-4); }
.usw-scan--after  .usw-scan-label { color: var(--wp--preset--color--accent-3); }

.usw-scan-time {
  font-size: clamp(2rem, 1.4rem + 2vw, 2.75rem);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  margin: 0 0 1.5rem;
}

.usw-scan-list { list-style: none; margin: 0; padding: 0; }
.usw-scan-list li {
  list-style: none;
  font-size: 0.9375rem;
  color: #b4b4b4;
  margin: 0 0 0.9rem;
}
.usw-scan-list li:last-child { margin-bottom: 0; }

.usw-scan-list li::after {
  content: "";
  display: block;
  height: 8px;
  margin-top: 0.4rem;
  transform: scaleX(0);
  transform-origin: left center;
}
.usw-scan--before .usw-scan-list li::after {
  background: var(--wp--preset--color--accent-4);
  animation: usw-scan-slow 6s ease-in-out infinite;
}
.usw-scan--after .usw-scan-list li::after {
  background: var(--wp--preset--color--accent-3);
  animation: usw-scan-fast 6s ease-in-out infinite;
}

.usw-scan--before .usw-scan-list li:nth-child(1)::after { width: 88%; }
.usw-scan--before .usw-scan-list li:nth-child(2)::after { width: 72%; }
.usw-scan--before .usw-scan-list li:nth-child(3)::after { width: 96%; }
.usw-scan--before .usw-scan-list li:nth-child(4)::after { width: 64%; }
.usw-scan--before .usw-scan-list li:nth-child(5)::after { width: 44%; }
.usw-scan--before .usw-scan-list li:nth-child(6)::after { width: 80%; }

.usw-scan--after .usw-scan-list li:nth-child(1)::after { width: 26%; }
.usw-scan--after .usw-scan-list li:nth-child(2)::after { width: 18%; }
.usw-scan--after .usw-scan-list li:nth-child(3)::after { width: 30%; }
.usw-scan--after .usw-scan-list li:nth-child(4)::after { width: 12%; }
.usw-scan--after .usw-scan-list li:nth-child(5)::after { width: 14%; }
.usw-scan--after .usw-scan-list li:nth-child(6)::after { width: 16%; }

.usw-scan-list li:nth-child(1)::after { animation-delay: 0s; }
.usw-scan-list li:nth-child(2)::after { animation-delay: .14s; }
.usw-scan-list li:nth-child(3)::after { animation-delay: .28s; }
.usw-scan-list li:nth-child(4)::after { animation-delay: .42s; }
.usw-scan-list li:nth-child(5)::after { animation-delay: .56s; }
.usw-scan-list li:nth-child(6)::after { animation-delay: .70s; }

@keyframes usw-scan-slow {
  0%        { transform: scaleX(0); opacity: .4; }
  20%       { opacity: 1; }
  55%, 90%  { transform: scaleX(1); opacity: 1; }
  100%      { transform: scaleX(0); opacity: .4; }
}

@keyframes usw-scan-fast {
  0%        { transform: scaleX(0); opacity: .4; }
  10%       { opacity: 1; }
  18%, 90%  { transform: scaleX(1); opacity: 1; }
  100%      { transform: scaleX(0); opacity: .4; }
}

/* ---------- Overlap clock (about) ---------- */
.usw-clock {
  position: relative;
  list-style: none;
  margin: 0;
  padding: 0;
}
.usw-clock li {
  position: relative;
  margin: 0 0 1.6rem;
  padding-bottom: 1.35rem;
  font-size: 1rem;
  line-height: 1.55;
}
.usw-clock li:last-child { margin-bottom: 0; }

.usw-clock li::before,
.usw-clock li::after {
  content: "";
  position: absolute;
  bottom: 0;
  height: 10px;
}
.usw-clock li::before {
  left: 21.43%;
  background: rgba(255, 255, 255, .16);
}
.usw-clock li::after { background: var(--wp--preset--color--accent-1); }

/* London */
.usw-clock li:nth-child(1)::before { width: 64.29%; }
.usw-clock li:nth-child(1)::after  { left: 21.43%; width: 64.29%; }

/* New York */
.usw-clock li:nth-child(2)::before { width: 57.14%; }
.usw-clock li:nth-child(2)::after  { left: 21.43%; width: 28.57%; }

/* Sydney */
.usw-clock li:nth-child(3)::before { width: 57.14%; }
.usw-clock li:nth-child(3)::after  { left: 50%;    width: 28.57%; }

.usw-clock::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  border-left: 2px solid rgba(255, 255, 255, .55);
  pointer-events: none;
  animation: usw-sweep 14s linear infinite;
}
@keyframes usw-sweep {
  from { transform: translateX(0); }
  to   { transform: translateX(100%); }
}

/* ---------- Buttons ---------- */
.wp-block-button__link {
  border: 2px solid transparent;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
}
.wp-block-button__link:hover { transform: translateY(-1px); }

.is-style-outline > .wp-block-button__link { border-color: currentColor; }

.usw-dark .is-style-outline .wp-block-button__link {
  border-color: #ffffff;
  color: #ffffff;
  background: transparent;
}
.usw-dark .is-style-outline .wp-block-button__link:hover {
  background: #ffffff;
  color: var(--wp--preset--color--dark);
}

/* ---------- Inline code ---------- */
:not(pre) > code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.9em;
  background: var(--wp--preset--color--base-2);
  border: 1px solid var(--wp--preset--color--border);
  padding: 0.1em 0.35em;
  overflow-wrap: anywhere;
}
.usw-dark :not(pre) > code {
  background: rgba(255, 255, 255, .07);
  border-color: rgba(255, 255, 255, .16);
}

/* ---------- Tables ---------- */
.usw-table table {
  border-collapse: collapse;
  width: 100%;
  font-size: 1rem;
}
.usw-table th,
.usw-table td {
  text-align: left;
  padding: 0.78rem 0.9rem;
  border-bottom: 1px solid var(--wp--preset--color--border);
}
.usw-table th {
  font-weight: 600;
  background: var(--wp--preset--color--base-2);
}
.usw-table { overflow-x: auto; }

/* ---------- Price rows (pricing) ---------- */
.usw-price-row {
  position: relative;
  border-top: 1px solid var(--wp--preset--color--border);
  padding: 1.9rem 0 1.9rem 1.25rem;
  margin-bottom: 0 !important;
}
.usw-price-row:last-of-type {
  border-bottom: 1px solid var(--wp--preset--color--border);
}

.usw-price-row::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1.9rem;
  bottom: 1.9rem;
  width: 3px;
  background: var(--wp--preset--color--accent-1);
  opacity: 0;
  transition: opacity .18s ease;
}
.usw-price-row:hover::before { opacity: 1; }

.usw-price-row .wp-block-heading {
  margin-top: 0;
  margin-bottom: 0.35rem;
}
.usw-price-row .wp-block-heading a { text-decoration: none; }
.usw-price-row .wp-block-heading a:hover { color: var(--wp--preset--color--accent-2); }

.usw-price-big {
  font-size: clamp(1.9rem, 1.35rem + 1.7vw, 2.4rem);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  color: var(--wp--preset--color--contrast);
  margin: 0;
}

.usw-price-big .usw-from {
  display: block;
  font-size: 0.8125rem;
  font-weight: 400;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--wp--preset--color--contrast-2);
  margin-top: 0.4rem;
}

/* ---------- Case rows (work) ---------- */
.usw-case {
  border-top: 1px solid var(--wp--preset--color--border);
  padding: 1.9rem 0;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.usw-case:last-of-type {
  border-bottom: 1px solid var(--wp--preset--color--border);
}

.usw-case .usw-chips { margin-top: 0.5rem; }

.usw-case .wp-block-heading { margin-top: 0; margin-bottom: 0.5rem; }
.usw-case .wp-block-heading a {
  text-decoration: none;
  color: var(--wp--preset--color--contrast);
  background-image: linear-gradient(
    var(--wp--preset--color--accent-1),
    var(--wp--preset--color--accent-1)
  );
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 0% 2px;
  transition: background-size .22s ease, color .18s ease;
}
.usw-case .wp-block-heading a:hover {
  color: var(--wp--preset--color--accent-2);
  background-size: 100% 2px;
}

/* ---------- Stack chips ---------- */
.usw-chips {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.usw-chips li {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.2;
  letter-spacing: 0.02em;
  color: var(--wp--preset--color--contrast-2);
  border: 1px solid var(--wp--preset--color--border);
  padding: 0.32rem 0.6rem;
  white-space: nowrap;
}
.usw-dark .usw-chips li {
  color: #c9c9c9;
  border-color: rgba(255, 255, 255, .18);
}

/* ---------- FAQ ---------- */
.wp-block-details {
  border-bottom: 1px solid var(--wp--preset--color--border);
  padding: 1rem 0;
}
.wp-block-details summary {
  cursor: pointer;
  font-weight: 600;
  list-style: none;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
  content: "+";
  color: var(--wp--preset--color--accent-2);
  font-weight: 600;
  flex: none;
  line-height: 1;
  font-size: 1.35rem;
}
.wp-block-details[open] summary::after { content: "\2212"; }
.wp-block-details p {
  margin: 0.7rem 0 0;
  color: var(--wp--preset--color--contrast-2);
}
.usw-dark .wp-block-details { border-bottom-color: rgba(255, 255, 255, .14); }
.usw-dark .wp-block-details p { color: #b4b4b4; }

/* ---------- Header ---------- */
.usw-header { border-bottom: 1px solid var(--wp--preset--color--border); }
.usw-header .wp-block-site-title a { text-decoration: none; }
.usw-header .wp-block-navigation a { text-decoration: none; }
/* Scoped to the <nav> on purpose. Core also puts .wp-block-navigation on the
   inner <ul>, so an unscoped selector re-applies the desktop bar's uppercase
   0.9rem/600 inside the open mobile overlay — where it is set on an ancestor
   and therefore loses. That is what made every overlay label render in caps. */
.usw-header nav.wp-block-navigation {
  font-size: 0.9rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.usw-header .wp-block-navigation a:hover { color: var(--wp--preset--color--accent-2); }

/* ---------- Overlay menu ---------- */
/* Specificity is load-bearing here. Core's own overlay rules run four classes
   deep — `.is-menu-open:where(…) .…-container-content .wp-block-navigation-item__content`
   and friends — and they set padding:0 on every item, gap:inherit (the header's
   blockGap) on both lists, and align-items from the desktop justification. A
   three-class rule of ours loses to all of them, which is why the mobile menu
   rendered as a stack of tight uppercase bar items with the spacing coming from
   the wrong place. Every rule below goes through
   `.is-menu-open .…-container-content` so it is five classes and wins.
   Core also forces submenus static and visible in the overlay and hides the
   chevron: the Services list is always expanded here, so we leave the icon
   hidden rather than re-showing a control that toggles nothing. */
.usw-header .wp-block-navigation__responsive-container.is-menu-open {
  text-transform: none;
  letter-spacing: 0;
  font-size: 1.0625rem;
  font-weight: 500;
  line-height: 1.3;
  padding: 1.25rem var(--wp--preset--spacing--40) 2.5rem;
  align-items: flex-start;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.usw-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
  width: 100%;
  max-width: 100%;
  align-items: flex-start;
  padding-top: 3.25rem;
}

/* Core sets gap:inherit on both lists. The dividers do the spacing here. */
.usw-header .is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,
.usw-header .is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container {
  width: 100%;
  max-width: 100%;
  gap: 0;
  align-items: stretch;
  justify-content: flex-start;
  text-align: left;
}

.usw-header .is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item {
  width: 100%;
  max-width: 100%;
  align-items: stretch;
}

.usw-header .is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content {
  display: block;
  width: 100%;
  padding: 0.85rem 0;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, .12);
  background: none;
  font: inherit;
  color: inherit;
  text-align: left;
  overflow-wrap: break-word;
  transition: color .15s ease, padding-left .15s ease;
}
.usw-header .is-menu-open .wp-block-navigation__responsive-container-content a.wp-block-navigation-item__content:hover,
.usw-header .is-menu-open .wp-block-navigation__responsive-container-content a.wp-block-navigation-item__content:focus {
  color: var(--wp--preset--color--accent-1);
  padding-left: 0.35rem;
}

/* "Services" heads a list that is already open — a label, not a control. Core
   focuses the first focusable element when the overlay opens, which put a full
   amber focus box around this toggle every single time the menu was tapped.
   It activates nothing (the list below is already expanded), so there is no
   focus state worth showing here; real links keep their ring. */
.usw-header .is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-submenu__toggle {
  cursor: default;
  color: var(--wp--preset--color--accent-1);
  font-size: 0.8125rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding-bottom: 0.35rem;
  border-bottom: 0;
}
.usw-header .is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-submenu__toggle:focus,
.usw-header .is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-submenu__toggle:focus-visible {
  outline: none;
}

.usw-header .is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container {
  padding: 0 0 0 1rem;
  margin: 0 0 0.85rem;
  min-width: 0;
  border-left: 0;
}
.usw-header .is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  font-size: 0.9375rem;
  font-weight: 400;
  border-bottom: 0;
  padding: 0.5rem 0;
  opacity: .82;
}
.usw-header .is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container a.wp-block-navigation-item__content:hover {
  opacity: 1;
}

.usw-header .is-menu-open .wp-block-navigation__responsive-container-close {
  padding: 0.5rem;
  color: var(--wp--preset--color--accent-1);
}

/* The global focus ring is bronze, which is close to invisible on the dark
   overlay — and core focuses the first item the moment the menu opens. */
.usw-header .is-menu-open a:focus-visible,
.usw-header .is-menu-open button:focus-visible {
  outline-color: var(--wp--preset--color--accent-1);
  outline-offset: 0;
}

/* ---------- Footer ---------- */
.usw-footer a { text-decoration: none; }
.usw-footer a:hover { text-decoration: underline; }

.usw-footer a:not(.wp-element-button) { color: #dcdcdc; }
.usw-footer a:not(.wp-element-button):hover,
.usw-footer a:not(.wp-element-button):focus-visible {
  color: var(--wp--preset--color--accent-1);
}

.usw-footer ul.wp-block-list {
  list-style: none;
  padding-left: 0;
  margin: 0;
}
.usw-footer ul.wp-block-list li { margin-bottom: 0.55rem; }
.usw-footer ul.wp-block-list li:last-child { margin-bottom: 0; }

.usw-footer .wp-block-heading:not(.usw-footer-brand) {
  font-size: 0.8125rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--wp--preset--color--accent-1);
}
.usw-footer-brand {
  font-size: 1.375rem;
  text-transform: none;
  letter-spacing: -0.015em;
  color: #ffffff;
}

/* ---------- Accessibility ---------- */
a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 2px solid var(--wp--preset--color--accent-2);
  outline-offset: 2px;
}
.usw-dark a:focus-visible,
.usw-dark button:focus-visible { outline-color: var(--wp--preset--color--accent-1); }

.usw-skip-link:focus {
  position: fixed;
  top: 1rem;
  left: 1rem;
  z-index: 100000;
  background: var(--wp--preset--color--base);
  padding: 0.75rem 1rem;
  border: 2px solid var(--wp--preset--color--contrast);
}

/* ---------- Contact form (CF7) ---------- */
.usw-form {
  background: var(--wp--preset--color--base);
  border: 1px solid var(--wp--preset--color--border);
  box-shadow: 0 18px 44px rgba(0, 0, 0, .10);
}
.usw-form > .wp-block-heading:first-child { margin-top: 0; }

@media (min-width: 782px) {
  .wp-block-columns.usw-form-lift {
    margin-top: calc(-1 * clamp(2.5rem, 5vw, 5rem));
    position: relative;
    z-index: 1;
  }
}

.wpcf7-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 1.25rem;
}
.wpcf7-form > p { margin: 0 0 1.15rem; }
.wpcf7-form > p:nth-of-type(n+3),
.wpcf7-form > .wpcf7-response-output { grid-column: 1 / -1; }

.wpcf7-form > .hidden-fields-container { display: none; }

@media (max-width: 700px) {
  .wpcf7-form { grid-template-columns: 1fr; }
}

.wpcf7-form label {
  display: block;
  font-weight: 600;
  font-size: 0.9375rem;
  line-height: 1.4;
  color: var(--wp--preset--color--contrast);
}
.wpcf7-form label br { display: none; }
.wpcf7-form-control-wrap {
  display: block;
  margin-top: 0.4rem;
}

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="url"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="date"],
.wpcf7-form input[type="number"],
.wpcf7-form select,
.wpcf7-form textarea {
  width: 100%;
  box-sizing: border-box;
  padding: 0.72rem 0.85rem;
  border: 1px solid var(--wp--preset--color--border);
  border-radius: 0;
  font: inherit;
  font-size: 1rem;
  line-height: 1.5;
  background: var(--wp--preset--color--base);
  color: var(--wp--preset--color--contrast);
  transition: border-color .15s ease, box-shadow .15s ease;
}
.wpcf7-form textarea {
  display: block;
  min-height: 125px;
  max-height: 125px;
  resize: none;
}

.wpcf7-form ::placeholder { color: var(--wp--preset--color--contrast-2); opacity: 1; }

.wpcf7-form input:focus,
.wpcf7-form select:focus,
.wpcf7-form textarea:focus {
  border-color: var(--wp--preset--color--accent-1);
  box-shadow: 0 0 0 3px rgba(252, 175, 59, .28);
  outline: none;
}

.wpcf7-form input:focus-visible,
.wpcf7-form select:focus-visible,
.wpcf7-form textarea:focus-visible { outline: none; }

.wpcf7-form input[type="submit"] {
  background: var(--wp--preset--color--accent-1);
  color: #010101;
  border: 2px solid transparent;
  border-radius: 0;
  padding: 12px 24px;
  font: inherit;
  font-weight: 600;
  font-size: 1rem;
  cursor: pointer;
  transition: background-color .15s ease, color .15s ease, transform .15s ease;
}
.wpcf7-form input[type="submit"]:hover {
  background: var(--wp--preset--color--accent-2);
  color: #ffffff;
  transform: translateY(-1px);
}
.wpcf7-form input[type="submit"]:disabled { opacity: .55; cursor: default; transform: none; }
.wpcf7-spinner { margin: 0 0 0 0.75rem; vertical-align: middle; }

.wpcf7-not-valid-tip {
  color: var(--wp--preset--color--accent-4);
  font-size: 0.875rem;
  font-weight: 400;
  margin-top: 0.35rem;
}
.wpcf7-form .wpcf7-not-valid { border-color: var(--wp--preset--color--accent-4); }

.wpcf7-form .wpcf7-response-output {
  margin: 0.4rem 0 0;
  padding: 0.85rem 1rem;
  border: 0;
  border-left: 3px solid var(--wp--preset--color--accent-1);
  background: var(--wp--preset--color--base-2);
  font-size: 0.9375rem;
  line-height: 1.55;
}
.wpcf7-form.sent .wpcf7-response-output { border-left-color: var(--wp--preset--color--accent-3); }
.wpcf7-form.invalid .wpcf7-response-output,
.wpcf7-form.failed .wpcf7-response-output,
.wpcf7-form.aborted .wpcf7-response-output { border-left-color: var(--wp--preset--color--accent-4); }

/* ---------- Direct contact details ---------- */
.usw-contact-value {
  font-size: 1.0625rem;
  font-weight: 600;
  line-height: 1.45;
  margin: 0 0 0.35rem;
  overflow-wrap: anywhere;
}
.usw-contact-value a { text-decoration: none; }
.usw-contact-value a:hover { text-decoration: underline; }
.usw-contact-note {
  font-size: 0.9375rem;
  color: var(--wp--preset--color--contrast-2);
  margin: 0;
}

/* ---------- Blog: post grid ---------- */
.usw-post-grid.wp-block-post-template {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--50);
  margin-bottom: var(--wp--preset--spacing--60);
}

/* ---------- Post card ---------- */
.usw-post-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--wp--preset--color--base);
  border: 1px solid var(--wp--preset--color--border);
  overflow: hidden;
  transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.usw-post-card:hover {
  border-color: var(--wp--preset--color--accent-1);
  transform: translateY(-2px);
  box-shadow: var(--wp--preset--shadow--soft);
}

.usw-post-thumb { margin: 0; }
.usw-post-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.usw-post-thumb:empty { display: none; }

.usw-post-text {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: var(--wp--preset--spacing--40);
}

/* ---------- Card meta ---------- */
.usw-post-meta {
  align-items: baseline;
  gap: 0.5rem 0.75rem;
  font-size: 0.8125rem;
  line-height: 1.4;
}
.usw-post-meta .wp-block-post-terms {
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.usw-post-meta .wp-block-post-terms a {
  color: var(--wp--preset--color--accent-2);
  text-decoration: none;
}
.usw-post-meta .wp-block-post-terms a:hover { text-decoration: underline; }
.usw-post-meta .wp-block-post-date { color: var(--wp--preset--color--contrast-2); }

.usw-post-card .wp-block-post-title { margin: 0; }
.usw-post-card .wp-block-post-title a {
  text-decoration: none;
  color: var(--wp--preset--color--contrast);
}
.usw-post-card .wp-block-post-title a:hover { color: var(--wp--preset--color--accent-2); }

.usw-post-card .wp-block-post-excerpt { margin: 0; }
.usw-post-card .wp-block-post-excerpt__excerpt {
  color: var(--wp--preset--color--contrast-2);
  line-height: 1.6;
}

/* ---------- Read-more ---------- */
.usw-post-more {
  margin-top: auto;
  padding-top: var(--wp--preset--spacing--30);
  font-size: 0.9375rem;
  font-weight: 600;
  text-decoration: none;
  color: var(--wp--preset--color--accent-2);
}
.usw-post-more::after {
  content: " \2192";
  transition: none;
}
.usw-post-more:hover { text-decoration: underline; }

/* ---------- Pagination ---------- */
.usw-post-pagination { gap: 0.5rem; }
.usw-post-pagination .wp-block-query-pagination-numbers,
.usw-post-pagination > a,
.usw-post-pagination > .wp-block-query-pagination-numbers > * {
  font-size: 0.9375rem;
}
.usw-post-pagination a,
.usw-post-pagination .page-numbers {
  display: inline-block;
  min-width: 2.5rem;
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--wp--preset--color--border);
  text-align: center;
  text-decoration: none;
  color: var(--wp--preset--color--contrast);
}
.usw-post-pagination a:hover {
  border-color: var(--wp--preset--color--accent-1);
  background: var(--wp--preset--color--base-2);
}
.usw-post-pagination .page-numbers.current {
  background: var(--wp--preset--color--accent-1);
  border-color: var(--wp--preset--color--accent-1);
  color: #010101;
  font-weight: 600;
}
.usw-post-pagination .page-numbers.dots {
  border-color: transparent;
  min-width: auto;
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}

/* ---------- Byline ---------- */
.usw-post-byline {
  align-items: baseline;
  gap: 0.35rem 1.25rem;
  font-size: 0.9375rem;
  color: var(--wp--preset--color--contrast-2);
}
.usw-post-byline .wp-block-post-author-name { font-weight: 600; }
.usw-post-byline > *::after { content: none; }

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

/* ---------- Blog hero ---------- */
.usw-hero-lede {
  max-width: var(--wp--style--global--content-size);
  font-size: 1.125rem;
}
.usw-hero-lede > p:last-child { margin-bottom: 0; }

/* ---------- Article hero ---------- */
.usw-post-hero { margin: 0 0 var(--wp--preset--spacing--60); }
.usw-post-hero img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ---------- Article body ---------- */
.usw-post-body > * { margin-top: var(--wp--preset--spacing--40); }
.usw-post-body > *:first-child { margin-top: 0; }
.usw-post-body h2 {
  font-size: 1.875rem;
  margin-top: var(--wp--preset--spacing--60);
}
.usw-post-body h3 {
  font-size: 1.3125rem;
  margin-top: var(--wp--preset--spacing--50);
}
.usw-post-body ul,
.usw-post-body ol { padding-left: 1.25rem; }
.usw-post-body li { margin-bottom: 0.5rem; }
.usw-post-body img { display: block; height: auto; }
.usw-post-body .wp-block-details { margin-top: 0; }

/* ---------- Previous / next ---------- */
.usw-post-nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--wp--preset--spacing--40);
  border-top: 1px solid var(--wp--preset--color--border);
  padding-top: var(--wp--preset--spacing--40);
}
.usw-post-nav .wp-block-post-navigation-link { font-size: 0.9375rem; }
.usw-post-nav .wp-block-post-navigation-link a {
  text-decoration: none;
  font-weight: 600;
  color: var(--wp--preset--color--contrast);
}
.usw-post-nav .wp-block-post-navigation-link a:hover {
  color: var(--wp--preset--color--accent-2);
  text-decoration: underline;
}
.usw-post-nav .post-navigation-link-next { border-left: 1px solid var(--wp--preset--color--border); padding-left: var(--wp--preset--spacing--40); }

/* ---------- Blog responsive ---------- */
@media (max-width: 1024px) {
  .usw-post-grid.wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .usw-post-grid.wp-block-post-template {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--wp--preset--spacing--40);
  }
  .usw-post-nav {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--wp--preset--spacing--30);
  }
  .usw-post-nav .post-navigation-link-next {
    border-left: 0;
    padding-left: 0;
    border-top: 1px solid var(--wp--preset--color--border);
    padding-top: var(--wp--preset--spacing--30);
  }
  .usw-post-nav .post-navigation-link-next,
  .usw-post-nav .post-navigation-link-next a { text-align: left; }
}

/* ---------- Full-bleed sections ---------- */
main.alignfull > .wp-block-post-content,
main.alignfull > .entry-content {
  max-width: none;
  width: 100%;
  margin-inline: 0;
  padding-inline: 0;
}

main.alignfull > .alignfull,
main.alignfull > .wp-block-post-content > .alignfull,
main.alignfull > .entry-content > .alignfull {
  max-width: none;
  width: 100%;
  margin-inline: 0;
  box-sizing: border-box;
}

.wp-site-blocks > header,
.wp-site-blocks > main,
.wp-site-blocks > footer {
  margin-block-start: 0;
  margin-block-end: 0;
}

.wp-block-group.alignfull.is-layout-constrained:has(> .wp-block-details) > * {
  max-width: 820px;
  margin-inline: auto;
}

.usw-footer { border-top: 1px solid rgba(255, 255, 255, .14); }

.usw-dark:has(> .wp-block-buttons) > p { max-width: 870px; }

.usw-dark:has(> .wp-block-buttons) > p.has-text-align-center { margin-inline: auto; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .wp-block-columns.alignwide { flex-wrap: wrap; }
  .wp-block-columns.alignwide > .wp-block-column {
    flex-basis: calc(50% - var(--wp--preset--spacing--40)) !important;
    flex-grow: 1;
  }
}

@media (min-width: 600px) and (max-width: 1024px) {
  .usw-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
    display: none;
  }
  .usw-header .wp-block-navigation__responsive-container-open:not(.always-shown) {
    display: flex;
  }
}

@media (max-width: 781px) {
  .wp-block-columns.alignwide > .wp-block-column {
    flex-basis: 100% !important;
  }
  .usw-header .wp-block-site-logo img { max-width: 140px; height: auto; }
  .usw-price { font-size: 1.25rem; }
  .usw-card { height: auto; }
  .usw-dark p[style*="1.25rem"],
  p[style*="font-size:1.125rem"] { font-size: 1.05rem !important; }
}

@media (max-width: 1100px) {
  .wp-block-columns.alignwide.usw-price-row > .wp-block-column:first-child {
    flex-basis: 24% !important;
  }
  .wp-block-columns.alignwide.usw-price-row > .wp-block-column:last-child {
    flex-basis: 72% !important;
  }
}

@media (max-width: 600px) {
  .wp-block-columns.alignwide.usw-price-row > .wp-block-column {
    flex-basis: 100% !important;
  }
  .usw-price-row { padding: 1.5rem 0 1.5rem 1rem; }
  .usw-price-row::before { top: 1.5rem; bottom: 1.5rem; }
  .usw-price-big .usw-from { display: inline; margin-left: 0.5rem; }
}

@media (max-width: 600px) {
  .usw-header > .wp-block-group { flex-wrap: nowrap; }
  .usw-header .wp-block-buttons { display: none; }
  .usw-header .wp-block-site-logo img { max-width: 128px; }
  .usw-header .wp-block-navigation__responsive-container-open { padding: 4px; }
}

/* Never `hyphens: auto` on a heading. The browser hyphenated the H1 at phone
   width and the hero read "We fix the Word- / Press sites oth- / er agencies" —
   it splits the brand name, which is the one word on the page that must stay
   whole. `overflow-wrap: break-word` stays as the overflow guard: it only acts
   on a word too long for a line of its own, and it inserts no hyphen. */
@media (max-width: 400px) {
  h1, h2, h3 { overflow-wrap: break-word; hyphens: manual; }
}
h1, h2, h3, h4, h5, h6 { hyphens: manual; }

html, body { overflow-x: hidden; }
.wp-block-group, .wp-block-columns { max-width: 100%; }

.is-layout-constrained > .wp-block-group:not(.alignwide):not(.alignfull),
.is-layout-constrained > .wp-block-columns:not(.alignwide):not(.alignfull) {
  max-width: var(--wp--style--global--content-size);
  margin-left: auto;
  margin-right: auto;
}

/* ---------- Motion preference ---------- */
@media (prefers-reduced-motion: reduce) {
  :root { scroll-behavior: auto; }
  .usw-card,
  .usw-post-card,
  .wp-block-button__link,
  .wpcf7-form input[type="submit"] { transition: none; }
  .usw-card:hover,
  .usw-post-card:hover,
  .wp-block-button__link:hover,
  .wpcf7-form input[type="submit"]:hover { transform: none; }

  .usw-scan-list li::after {
    animation: none !important;
    transform: scaleX(1);
    opacity: 1;
  }

  .usw-clock::after { display: none; }
}
