/* ProductWalkway — design system */

:root {
  --pw-cream: #F7F3EA;
  --pw-ink: #21302B;
  --pw-pine: #12402F;
  --pw-pine-mid: #1B5E43;
  --pw-footer: #0E2A22;
  --pw-amber: #E7962F;
  --pw-amber-dark: #C97A25;
  --pw-muted: #6E6857;
  --pw-muted-2: #8A8474;
  --pw-border: #E7DFCE;
  --pw-border-2: #E0D8C6;
  --pw-card: #ECE4D3;
  --pw-soft: #E9F1EC;
  --pw-white: #fff;
  --pw-max: 1400px;
  --pw-pad: 32px;
  --pw-radius: 18px;
  --pw-radius-sm: 9px;
  --pw-font-display: "Bricolage Grotesque", sans-serif;
  --pw-font-body: "Hanken Grotesk", sans-serif;
  --pw-shadow: 0 16px 36px rgba(18, 64, 47, 0.10);
}

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: var(--pw-font-body);
  color: var(--pw-ink);
  background: var(--pw-cream);
  -webkit-font-smoothing: antialiased;
  line-height: 1.55;
}

img { max-width: 100%; height: auto; display: block; }
a { color: var(--pw-pine-mid); text-decoration: none; }
a:hover { color: var(--pw-amber-dark); }
a, button { transition: transform .2s ease, background-color .2s ease, box-shadow .2s ease, border-color .2s ease, color .2s ease; }

h1, h2, h3, h4, .section-heading__title, .ep-heading__title, .hp-reviews__title, .why-section__title, .cat-banner__title {
  font-family: var(--pw-font-display);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--pw-ink);
  line-height: 1.15;
}

.pw-container,
.pw-pad { max-width: var(--pw-max); margin: 0 auto; padding-left: var(--pw-pad); padding-right: var(--pw-pad); }
.pw-pad { width: 100%; }

.screen-reader-text {
  border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
  height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important;
}

/* Buttons */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  padding: 12px 22px; border-radius: var(--pw-radius-sm); font-weight: 700; font-size: 15px;
  border: 1.6px solid transparent; cursor: pointer; font-family: var(--pw-font-body); line-height: 1.2;
}
.btn--pine, .pw-fill-pine { background: var(--pw-pine); color: var(--pw-white); }
.btn--pine:hover, .pw-fill-pine:hover {
  background: transparent !important; color: var(--pw-pine) !important;
  box-shadow: inset 0 0 0 1.6px var(--pw-pine); transform: translateY(-2px);
}
.btn--amber { background: var(--pw-amber); color: #2A1900; }
.btn--amber:hover { background: var(--pw-amber-dark); color: var(--pw-white); transform: translateY(-2px); }
.btn--outline, .pw-outline {
  background: transparent; color: var(--pw-pine); border-color: var(--pw-pine);
}
.btn--outline:hover, .pw-outline:hover {
  background: var(--pw-pine) !important; color: var(--pw-white) !important; transform: translateY(-2px);
}
.btn--sm { padding: 8px 14px; font-size: 13px; }
.btn--lg { padding: 14px 26px; font-size: 16px; }

.pw-card:hover { transform: translateY(-2px); box-shadow: var(--pw-shadow); }
.pw-flink:hover { color: var(--pw-amber) !important; }

/* Announcement */
.announcement-bar {
  background: var(--pw-pine); color: #EDE6D5; text-align: center;
  padding: 8px 16px; font-size: 13px; font-weight: 600;
}
.announcement-bar a { color: inherit; }

/* Header */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(247, 243, 234, 0.92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--pw-border);
}
.site-header__bar,
.site-header__inner,
.pw-head {
  position: relative;
  display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-top: 16px; padding-bottom: 16px;
}
.site-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
  min-width: 0;
}
.site-header__logo {
  display: flex; align-items: center; gap: 11px; color: inherit; flex: 0 1 auto; min-width: 0;
}
.site-header__logo img, .custom-logo { max-height: 44px; width: auto; }
.site-header__mark, .footer-logo__mark {
  width: 44px; height: 44px; border-radius: 13px; background: var(--pw-pine);
  display: flex; align-items: center; justify-content: center; flex: 0 0 auto;
}
.footer-logo__mark { background: var(--pw-pine-mid); }
.site-header__brand, .footer-logo__brand { display: flex; flex-direction: column; line-height: 1; }
.site-header__name, .footer-logo__name {
  font-family: var(--pw-font-display); font-weight: 800; font-size: 20px; letter-spacing: -0.5px; color: var(--pw-pine);
}
.footer-logo__name { color: var(--pw-white); font-size: 19px; }
.site-header__name .pw-walkway, .site-header__name span { color: var(--pw-amber-dark); }
.site-header__tagline, .footer-logo__tagline {
  font-size: 10px; letter-spacing: 2.5px; color: var(--pw-muted-2); font-weight: 600; margin-top: 3px;
}
.footer-logo__tagline { color: #7E948A; font-size: 9.5px; }

.site-nav__list {
  display: flex; align-items: center; gap: 34px; list-style: none; margin: 0; padding: 0;
}
.site-nav__list > li > a {
  font-size: 15.5px; font-weight: 600; color: var(--pw-ink);
  display: inline-flex;
  align-items: center;
  padding: 18px 0; /* taller hit area so hover reaches the submenu */
}
.site-nav__list .sub-menu {
  position: absolute;
  left: 0;
  top: 100%;
  min-width: 220px;
  background: var(--pw-white);
  border: 1px solid var(--pw-border);
  border-radius: 12px;
  padding: 8px;
  box-shadow: var(--pw-shadow);
  list-style: none;
  margin: 0;
  display: none;
  z-index: 80;
}
/* Invisible bridge covering any remaining gap so hover doesn't drop */
.site-nav__list .sub-menu::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -14px;
  height: 14px;
}
.site-nav__list li { position: relative; }
.site-nav__list li:hover > .sub-menu,
.site-nav__list li:focus-within > .sub-menu { display: block; }
.site-nav__list .sub-menu a {
  display: block; padding: 10px 12px; border-radius: 8px; font-size: 14px; font-weight: 600; color: var(--pw-ink);
}
.site-nav__list .sub-menu a:hover { background: #F4EFE3; color: var(--pw-pine); }

.site-header__actions { display: flex; align-items: center; gap: 18px; }
.search-toggle {
  width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--pw-border-2);
  background: var(--pw-white); cursor: pointer; display: flex; align-items: center; justify-content: center;
}
.search-box {
  position: absolute; right: 0; top: calc(100% + 8px); background: var(--pw-white);
  border: 1px solid var(--pw-border); border-radius: 12px; padding: 12px; box-shadow: var(--pw-shadow); min-width: 280px;
}
.site-header__search { position: relative; }

.mobile-menu-toggle {
  display: none; width: 42px; height: 42px; border: 1px solid var(--pw-border-2);
  border-radius: 10px; background: var(--pw-white); cursor: pointer; flex-direction: column;
  align-items: center; justify-content: center; gap: 5px; padding: 0; flex: 0 0 auto;
}
.hamburger-line { width: 18px; height: 2px; background: var(--pw-pine); display: block; }
.site-nav__cta { display: none; }

/* Footer */
.site-footer { background: var(--pw-footer); color: #C6D4CC; margin-top: 64px; }
.disclosure-bar { background: #0A211B; border-bottom: 1px solid #23453A; padding: 14px 0; font-size: 13px; color: #9DB2A8; }
.footer-main__inner, .pw-foot {
  display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.4fr; gap: 40px; padding-top: 66px; padding-bottom: 28px;
}
.footer-logo { display: flex; align-items: center; gap: 11px; color: inherit; }
.footer-col__title {
  font-family: var(--pw-font-display); font-weight: 700; font-size: 16px; color: var(--pw-white); margin: 0 0 18px;
}
.footer-col__tagline { font-size: 14px; line-height: 1.6; color: #9DB2A8; margin: 20px 0 0; max-width: 300px; }
.footer-email {
  display: inline-flex; align-items: center; gap: 9px; color: #9DB2A8; font-size: 14px; margin-top: 20px;
}
.footer-contact-list { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.footer-contact-list a, .footer-contact-list span { color: #9DB2A8; font-size: 14px; }
.site-header.is-scrolled { box-shadow: 0 8px 24px rgba(18, 64, 47, 0.08); }
.footer-col__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.footer-col__list a { color: #9DB2A8; font-size: 14px; }
.footer-col__list a:hover { color: #E7962F; }
.footer-social { display: flex; gap: 10px; margin-top: 18px; }
.footer-social__link {
  width: 36px; height: 36px; border-radius: 50%; border: 1px solid #2A4C40;
  display: flex; align-items: center; justify-content: center; color: #9DB2A8;
}
.footer-col--newsletter .footer-col__tagline { margin: 0 0 16px; max-width: none; }
.footer-newsletter__form { margin-top: 8px; }
.footer-newsletter__form .wpcf7 { margin: 0; }

/*
 * Newsletter field — one row like export/html footer:
 * [ Enter your email .................... (amber →) ]
 * CF7 email inputs use size="40" (huge intrinsic width). Without min-width:0
 * + nowrap, flex-wrap pushes the submit button onto the next line.
 */
.footer-newsletter__form {
  position: relative;
}
.footer-newsletter__form .wpcf7-form {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  margin: 0;
  background: #16382E;
  border: 1px solid #2A4C40;
  border-radius: 9px;
  padding: 6px 6px 6px 20px;
  gap: 8px;
  width: 100%;
  box-sizing: border-box;
}
.footer-newsletter__form .wpcf7-form > p,
.footer-newsletter__form .pw-newsletter {
  display: contents;
}
.footer-newsletter__form .wpcf7-form .hidden-fields-container {
  display: none !important;
}
/* CF7 inserts <br> between tags on separate lines — hide so button stays inline */
.footer-newsletter__form .wpcf7-form br,
.footer-newsletter__form br {
  display: none !important;
  content: none !important;
  font-size: 0 !important;
  line-height: 0 !important;
  height: 0 !important;
  width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
.footer-newsletter__form .wpcf7-form label { display: none; }
.footer-newsletter__form .wpcf7-form-control-wrap {
  flex: 1 1 0%;
  min-width: 0 !important;
  width: 1% !important; /* allow shrink below size="40" intrinsic width */
  display: block;
  margin: 0;
  max-width: none;
}
.footer-newsletter__form input[type="email"],
.footer-newsletter__form input[type="text"],
.footer-newsletter__form .wpcf7-email {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  background: transparent !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  color: #DDE7E1 !important;
  font-size: 14px !important;
  font-family: var(--pw-font-body) !important;
  line-height: 1.4;
  padding: 10px 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
  height: auto !important;
}
.footer-newsletter__form input::placeholder {
  color: #7E948A;
  opacity: 1;
}
.footer-newsletter__form .pw-newsletter__submit,
.footer-newsletter__form input.wpcf7-submit,
.footer-newsletter__form input[type="submit"],
.footer-newsletter__form button[type="submit"] {
  width: 40px !important;
  height: 40px !important;
  min-width: 40px;
  min-height: 40px;
  border-radius: 50% !important;
  border: 0 !important;
  background: var(--pw-amber) !important;
  color: #2A1900 !important;
  cursor: pointer;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  flex: 0 0 40px !important;
  padding: 0 !important;
  margin: 0 !important;
  font-size: 0 !important;
  line-height: 0 !important;
  box-shadow: none !important;
  transition: transform .2s ease, background-color .2s ease;
}
.footer-newsletter__form .pw-newsletter__submit:hover,
.footer-newsletter__form input.wpcf7-submit:hover,
.footer-newsletter__form input[type="submit"]:hover,
.footer-newsletter__form button[type="submit"]:hover {
  background: var(--pw-amber-dark) !important;
  transform: translateY(-1px);
}
.footer-newsletter__form .pw-newsletter__submit svg {
  display: block;
  width: 17px;
  height: 17px;
}
.footer-newsletter__form .wpcf7-spinner {
  margin: 0;
  position: absolute;
}
.footer-newsletter__form .wpcf7-not-valid-tip {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 6px);
  font-size: 12px;
  margin: 0;
  color: #E7962F;
}
.footer-newsletter__form .wpcf7-response-output {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 6px);
  margin: 0;
  padding: 8px 10px;
  font-size: 13px;
  border-radius: 8px;
  box-sizing: border-box;
}
.footer-bottom { border-top: 1px solid #23453A; }
.footer-bottom__inner {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px;
  padding-top: 22px; padding-bottom: 28px;
  padding-left: var(--pw-pad);
  padding-right: var(--pw-pad);
}
.footer-bottom__copy { font-size: 13px; color: #7E948A; margin: 0; }
.footer-bottom__menu { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 14px 24px; }
.footer-bottom__menu a { font-size: 13px; color: #7E948A; }
.footer-bottom__menu a:hover { color: #E7962F; }

/* Sections */
.section { padding: 72px 0; }
.section-heading { margin-bottom: 36px; }
.section-heading__title, .ep-heading__title { font-size: 36px; margin: 0 0 10px; }
.section-heading__sub, .ep-heading__sub, .articles-section__sub {
  color: var(--pw-muted); font-size: 16px; margin: 0; max-width: 640px;
}

/* Hero — featured product card */
.hero-slider { position: relative; padding: 28px 0 8px; }
.hero-slider__inner { max-width: var(--pw-max); }
.hero-slide {
  position: relative; min-height: 550px; display: flex; align-items: center;
  background: var(--pw-pine); overflow: hidden; border-radius: 28px;
}
.hero-slide__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-slide__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(18,64,47,0.92) 0%, rgba(18,64,47,0.55) 50%, rgba(18,64,47,0.15) 100%);
}
.hero-slide__content {
  position: relative; z-index: 1; width: 100%;
  padding: 56px 48px; color: var(--pw-white); max-width: 640px;
}
.hero-slide__badge {
  display: inline-block; background: var(--pw-amber); color: #2A1900; font-size: 11px; font-weight: 800;
  letter-spacing: 0.1em; text-transform: uppercase; padding: 7px 12px; border-radius: 6px; margin-bottom: 18px;
}
.hero-slide__badge:hover { color: #2A1900; filter: brightness(1.05); }
.hero-slide__headline {
  font-family: var(--pw-font-display); font-size: 46px; font-weight: 800;
  color: var(--pw-white); margin: 0 0 16px; max-width: 560px; line-height: 1.12;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
  text-overflow: ellipsis;
}
.hero-slide__subtext { font-size: 17px; color: #D5E0DA; max-width: 480px; margin: 0 0 28px; line-height: 1.55; }
.hero-slide__actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.btn--hero-outline {
  background: transparent; color: var(--pw-white); border: 1.6px solid rgba(255,255,255,0.75);
}
.btn--hero-outline:hover {
  background: var(--pw-white) !important; color: var(--pw-pine) !important;
  border-color: var(--pw-white) !important; transform: translateY(-2px);
}
.hero-slide__nav { display: flex; gap: 10px; margin-top: 28px; }
.hero-nav-btn {
  width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(255,255,255,0.35);
  background: rgba(255,255,255,0.08); color: var(--pw-white); cursor: pointer; display: flex; align-items: center; justify-content: center;
}

/* Marquee */
.marquee-strip { overflow: hidden; background: #EFE8D8; border-block: 1px solid var(--pw-border); padding: 14px 0; }
.marquee-strip__track { display: flex; width: max-content; animation: pw-marquee 40s linear infinite; }
.marquee-strip__list { display: flex; gap: 40px; list-style: none; margin: 0; padding: 0 20px; }
.marquee-strip__item {
  display: flex; align-items: center; gap: 10px; white-space: nowrap;
  font-weight: 600; font-size: 14px; color: var(--pw-pine);
}
.marquee-strip__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--pw-amber); flex: 0 0 auto; }
@keyframes pw-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* Comparisons */
.comp-list {
  display: flex; flex-direction: column;
  background: var(--pw-white); border: 1px solid var(--pw-border); border-radius: 24px;
  overflow: hidden; box-shadow: 0 8px 28px rgba(18, 64, 47, 0.04);
}
.comp-row {
  display: grid; grid-template-columns: 48px 56px 1fr auto 44px; align-items: center; gap: 18px;
  padding: 18px 24px; color: inherit; border-bottom: 1px solid var(--pw-border);
  transition: background-color .2s ease;
}
.comp-row:last-child { border-bottom: 0; }
.comp-row:hover { background: #FBF8F0; color: inherit; }
.comp-row__rank { font-family: var(--pw-font-display); font-weight: 800; color: #C9BFA8; font-size: 20px; }
.comp-row__thumb {
  width: 56px; height: 56px; border-radius: 14px; overflow: hidden;
  display: flex; align-items: center; justify-content: center; flex: 0 0 auto;
}
.comp-row__thumb img { width: 100%; height: 100%; object-fit: cover; }
.comp-row__fallback-icon { display: block; }
.comp-row__body { min-width: 0; }
.comp-row__name { display: block; font-family: var(--pw-font-display); font-weight: 700; font-size: 18px; color: var(--pw-pine); }
.comp-row__desc, .comp-row__count { display: block; font-size: 13px; color: var(--pw-muted); margin-top: 4px; }
.comp-row__badge {
  display: inline-flex; align-items: center; padding: 6px 12px; border-radius: 999px;
  background: #F3EBDA; color: #8A6A2B; font-size: 12px; font-weight: 700; white-space: nowrap;
}
.comp-row__arrow {
  width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--pw-border-2);
  display: flex; align-items: center; justify-content: center; color: var(--pw-pine); background: var(--pw-white);
}
.pw-arrow:hover { background: var(--pw-pine) !important; border-color: var(--pw-pine) !important; color: #fff !important; }

/* Category grid */
.category-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; padding: 40px 0 72px;
}
.category-card {
  background: var(--pw-white); border: 1px solid var(--pw-border); border-radius: var(--pw-radius); overflow: hidden; color: inherit;
}
.category-card__image { aspect-ratio: 4/3; overflow: hidden; background: var(--pw-soft); }
.category-card__image img { width: 100%; height: 100%; object-fit: cover; }
.category-card__body { padding: 18px 20px 22px; }
.category-card__title { display: block; font-family: var(--pw-font-display); font-weight: 700; font-size: 20px; color: var(--pw-ink); }
.category-card__count { display: block; margin-top: 6px; font-size: 13px; color: var(--pw-muted); }

/* Product cards */
.pcr-list { display: flex; flex-direction: column; gap: 16px; }
.pcr, .pw-pcard {
  position: relative; display: grid; grid-template-columns: 140px 1fr 120px 150px; gap: 20px; align-items: center;
  background: var(--pw-white); border: 1px solid var(--pw-border); border-radius: var(--pw-radius); padding: 20px;
}
.pcr__image { position: relative; width: 140px; height: 140px; border-radius: 14px; overflow: hidden; background: var(--pw-soft); }
.pcr__image img { width: 100%; height: 100%; object-fit: contain; }
.pcr__rank {
  position: absolute; top: 8px; left: 8px; background: var(--pw-pine); color: #fff;
  font-weight: 800; font-size: 12px; padding: 4px 8px; border-radius: 8px; z-index: 1;
}
.pcr__ribbon {
  position: absolute; top: 14px; right: 14px; z-index: 2;
  background: var(--pw-amber); color: #2A1900; font-size: 11px; font-weight: 800;
  letter-spacing: 0.04em; text-transform: uppercase; padding: 5px 10px; border-radius: 999px;
}
.pcr__name { margin: 0 0 10px; font-family: var(--pw-font-display); font-size: 20px; }
.pcr__name a { color: var(--pw-ink); }
.pcr__bullets { margin: 0; padding-left: 18px; color: var(--pw-muted); font-size: 14px; }
.pcr__excerpt {
  margin: 0; color: var(--pw-muted); font-size: 14px;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.pcr__rating-col { text-align: center; }
.pcr__editors-badge {
  display: inline-block; margin-top: 8px; background: #FFF4E4; color: var(--pw-amber-dark);
  font-size: 11px; font-weight: 800; padding: 4px 8px; border-radius: 999px;
}
.pcr__actions { display: flex; flex-direction: column; gap: 8px; }
.pcr__actions .btn { width: 100%; }

.pw-stars { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.pw-stars__row { display: flex; gap: 2px; }
.rating-value { font-family: var(--pw-font-display); font-weight: 800; font-size: 22px; color: var(--pw-ink); }

/* Layouts */
.ep-layout, .sp-layout, .post-archive-layout, .single-layout {
  display: grid; grid-template-columns: 1fr 340px; gap: 32px; align-items: start;
}
.ep-heading { margin-bottom: 28px; }
.ep-sidebar, .sp-sidebar, .single-sidebar, .post-archive-sidebar { position: sticky; top: 96px; }

/* Trust / company sidebar */
.company-profile {
  background: var(--pw-white); border: 1px solid var(--pw-border); border-radius: var(--pw-radius); padding: 24px;
}
.company-profile__logo img { max-width: 120px; margin-bottom: 14px; }
.company-profile__name { font-family: var(--pw-font-display); font-weight: 700; font-size: 20px; margin: 0 0 8px; }
.company-profile__desc { color: var(--pw-muted); font-size: 14px; margin: 0 0 18px; }
.company-profile__trust-title, .company-profile__credentials-title, .sidebar-widget__title {
  font-family: var(--pw-font-display); font-size: 16px; margin: 0 0 12px;
}
.company-profile__trust-list, .company-profile__credentials-grid {
  list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px;
}
.company-profile__trust-list li, .company-profile__cred-item {
  display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: var(--pw-ink);
}
.company-profile__trust-list i, .company-profile__cred-icon { color: var(--pw-pine-mid); }
.company-profile__credentials { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--pw-border); }
.company-profile__credentials-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

/* Sidebar widgets */
.sidebar-widget {
  background: var(--pw-white); border: 1px solid var(--pw-border); border-radius: var(--pw-radius);
  padding: 20px; margin-bottom: 16px;
}
.popular-posts { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.popular-posts__link { display: flex; gap: 12px; align-items: flex-start; color: inherit; }
.popular-posts__thumb, .popular-posts__thumb-placeholder {
  width: 64px; height: 48px; border-radius: 8px; overflow: hidden; background: var(--pw-soft); flex: 0 0 auto;
}
.popular-posts__thumb img { width: 100%; height: 100%; object-fit: cover; }
.popular-posts__title { display: block; font-weight: 600; font-size: 14px; color: var(--pw-ink); line-height: 1.35; }
.popular-posts__date { display: block; font-size: 12px; color: var(--pw-muted); margin-top: 4px; }
.sidebar-cats { list-style: none; margin: 0; padding: 0; }
.sidebar-cats__row { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 0; border-bottom: 1px solid var(--pw-border); }
.sidebar-cats__link { color: var(--pw-ink); font-weight: 600; font-size: 14px; }
.sidebar-cats__count { font-size: 12px; color: var(--pw-muted); }
.sidebar-cats__toggle { background: none; border: 0; cursor: pointer; color: var(--pw-pine); }
.sidebar-cats__children { list-style: none; margin: 0; padding: 0 0 8px 12px; display: none; }
.sidebar-cats__children.is-open { display: block; }
.sidebar-cats__child-link {
  display: flex; justify-content: space-between; padding: 8px 0; font-size: 13px; color: var(--pw-muted);
}
.sidebar-search { margin-bottom: 16px; }
.search-form {
  display: flex; align-items: center; background: var(--pw-white); border: 1px solid var(--pw-border);
  border-radius: var(--pw-radius-sm); padding: 6px 6px 6px 14px;
}
.search-field {
  flex: 1; border: 0; outline: none; background: transparent; font-family: inherit; font-size: 14px; color: var(--pw-ink);
}
.search-submit {
  width: 36px; height: 36px; border: 0; border-radius: 50%; background: var(--pw-pine); color: #fff; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}

/* Banners */
.cat-banner, .sp-banner, .post-cat-banner, .page-banner, .search-banner {
  position: relative; background: var(--pw-pine); color: #EDE6D5; padding: 48px 0 40px; margin-bottom: 40px;
  background-size: cover; background-position: center;
}
.cat-banner__overlay, .sp-banner__overlay { position: absolute; inset: 0; }
.cat-banner__inner, .sp-banner__inner { position: relative; z-index: 1; }
.cat-banner__title, .sp-banner__title, .search-banner__title {
  font-size: 42px; color: var(--pw-white); margin: 12px 0 10px;
}
.cat-banner__desc { color: #D5E0DA; max-width: 640px; }
.breadcrumbs { font-size: 13px; color: #B7C8BF; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.breadcrumbs a { color: #EDE6D5; }
.breadcrumb__sep { opacity: 0.6; }
.sp-banner__top-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; }
.sp-banner__rating-badge { position: relative; width: 96px; height: 96px; flex: 0 0 auto; }
.sp-banner__rating-badge svg { width: 100%; height: 100%; }
.sp-banner__rating-inner {
  position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.sp-banner__rating-num { font-family: var(--pw-font-display); font-weight: 800; font-size: 22px; color: #fff; }
.sp-banner__rating-label { font-size: 10px; color: #D5E0DA; }

/* Product single */
.sp-header {
  background: var(--pw-white); border: 1px solid var(--pw-border); border-radius: var(--pw-radius); padding: 28px;
}
.sp-header__top, .pw-prodtop { display: grid; grid-template-columns: 280px 1fr; gap: 28px; align-items: start; }
.sp-header__image, .pw-prodimg {
  width: 280px; height: 280px; border-radius: 16px; overflow: hidden; background: var(--pw-soft);
}
.sp-header__image img { width: 100%; height: 100%; object-fit: contain; }
.sp-header__title { font-size: 28px; margin: 10px 0 14px; }
.sp-header__desc { color: var(--pw-muted); margin-bottom: 20px; }
.sp-section-title { font-size: 22px; margin: 28px 0 14px; padding-top: 24px; border-top: 1px solid var(--pw-border); }
.sp-key-features__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.sp-key-features__list li {
  display: flex; gap: 10px; align-items: flex-start; background: var(--pw-soft);
  padding: 12px 14px; border-radius: 12px; font-size: 14px;
}
.sp-key-features__list i { color: var(--pw-pine-mid); }
.sp-review-card { padding: 8px 4px 24px; }
.sp-review-card__quote { margin: 12px 0; color: var(--pw-muted); font-size: 15px; }
.sp-review-card__author { display: flex; align-items: center; gap: 12px; }
.sp-review-card__avatar { border-radius: 50%; object-fit: cover; }
.sp-review-card__name { font-weight: 700; }

/* Homepage reviews / articles / trust */
/* Homepage reviews — matches export/html index.html Reviews section */
.section.hp-reviews {
  background: #EEF3EC !important;
  padding: 74px 0 !important;
}
.hp-reviews > .pw-container { text-align: center; }
.hp-reviews__heading {
  text-align: center !important;
  margin: 0 auto;
  max-width: 720px;
}
.hp-reviews__subtitle {
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  color: #C97A25 !important;
  margin: 0 !important;
}
.hp-reviews__title {
  font-family: var(--pw-font-display) !important;
  font-weight: 800 !important;
  font-size: 40px !important;
  letter-spacing: -1px !important;
  color: #12402F !important;
  margin: 14px 0 0 !important;
  text-align: center !important;
}
.hp-reviews__desc {
  font-size: 17px !important;
  color: #5F6B62 !important;
  margin: 14px auto 44px !important;
  max-width: 560px !important;
  text-align: center !important;
}
.hp-reviews-swiper {
  overflow: hidden;
  text-align: left;
}
.hp-reviews-swiper .swiper-slide {
  height: auto;
  display: flex;
}
.hp-review-card {
  background: #fff;
  border: 1px solid #E1E9DE;
  border-radius: 20px;
  padding: 28px;
  width: 100%;
  display: flex;
  flex-direction: column;
  text-align: left;
  box-shadow: none;
}
.hp-review-card__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}
.hp-review-card__name {
  font-family: var(--pw-font-display);
  font-weight: 700;
  font-size: 17px;
  color: #12402F;
}
.hp-review-card__stars { flex: 0 0 auto; }
.hp-review-card__stars .pw-stars { display: flex; flex-direction: row; align-items: center; }
.hp-review-card__stars .pw-stars__row { justify-content: flex-end; }
.hp-review-card__stars .star { width: 16px; height: 16px; }
.hp-review-card__body {
  font-size: 14.5px;
  line-height: 1.6;
  color: #4C544C;
  margin: 16px 0 22px;
  flex: 1 1 auto;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 6;
  line-clamp: 6;
  overflow: hidden;
}
.hp-review-card__footer {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-top: 18px;
  border-top: 1px solid #EEF1EA;
  margin-top: auto;
}
.hp-review-card__product-link {
  display: flex;
  align-items: center;
  gap: 12px;
  color: inherit;
  min-width: 0;
  text-align: left;
}
.hp-review-card__product-link:hover { color: #12402F; }
.hp-review-card__product-img {
  width: 44px;
  height: 44px;
  border-radius: 11px;
  overflow: hidden;
  background: #F2ECDD;
  flex: 0 0 44px;
}
.hp-review-card__product-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hp-review-card__product-name {
  font-size: 13.5px;
  font-weight: 600;
  color: #3A4640;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
}
.hp-reviews__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  margin-top: 38px;
  width: 100%;
}
.hp-reviews__btn {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  flex: 0 0 44px;
  transition: transform .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.hp-reviews__btn--prev {
  border: 1px solid #C9D6CD;
  background: #fff;
  color: #12402F;
}
.hp-reviews__btn--prev:hover {
  background: #12402F;
  color: #fff;
  border-color: #12402F;
}
.hp-reviews__btn--next {
  border: none;
  background: #12402F;
  color: #fff;
}
.hp-reviews__btn--next:hover {
  background: transparent;
  color: #12402F;
  box-shadow: inset 0 0 0 1.6px #12402F;
}
.hp-reviews__btn.swiper-button-disabled { opacity: 0.35; cursor: default; pointer-events: none; }
/* Reset Swiper absolute pagination so prev/dots/next stay one centered group */
.hp-reviews__pagination,
.hp-reviews__pagination.swiper-pagination {
  position: static !important;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  width: auto !important;
  left: auto !important;
  bottom: auto !important;
  transform: none !important;
  min-height: 8px;
}
.hp-reviews__pagination .swiper-pagination-bullet {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #C9BFA8;
  opacity: 1;
  margin: 0 !important;
  transition: width .25s ease, border-radius .25s ease, background-color .25s ease;
}
.hp-reviews__pagination .swiper-pagination-bullet-active {
  width: 28px;
  border-radius: 999px;
  background: #12402F;
}

/* Why Choose Us — matches export/html index.html */
.why-section {
  background: #12402F;
  color: #fff;
  padding: 78px 0;
}
.why-section__intro { max-width: 700px; }
.why-section__subtitle {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #E7962F;
  margin: 0;
}
.why-section__title {
  font-family: var(--pw-font-display);
  font-weight: 800;
  font-size: 42px;
  line-height: 1.06;
  letter-spacing: -1.2px;
  margin: 14px 0 0;
  color: #fff;
}
.why-section__desc {
  font-size: 16.5px;
  line-height: 1.6;
  color: #B9CCC2;
  margin: 18px 0 0;
}
.why-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin: 46px 0;
  border-top: 1px solid #2C5445;
  border-bottom: 1px solid #2C5445;
}
.why-stats__item {
  padding: 30px 26px;
  border-left: 1px solid #2C5445;
}
.why-stats__item:first-child { border-left: none; }
.why-stats__value {
  font-family: var(--pw-font-display);
  font-weight: 800;
  font-size: 44px;
  line-height: 1;
  color: #E7962F;
}
.why-stats__label {
  font-size: 14px;
  color: #B9CCC2;
  margin-top: 10px;
  line-height: 1.35;
}
.why-process {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 36px;
}
.why-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 34px;
  flex: 1;
  min-width: 0;
}
.why-step {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.why-step__top {
  display: flex;
  align-items: center;
  gap: 12px;
}
.why-step__icon {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: rgba(231, 150, 47, 0.16);
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 48px;
}
.why-step__icon::before {
  content: "";
  width: 22px;
  height: 22px;
  display: block;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
/* Step icons as SVG data-URIs (from HTML sico: test / score / rank) */
.why-step__icon--test::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none'%3E%3Ccircle cx='11' cy='11' r='6.5' stroke='%23E7962F' stroke-width='2'/%3E%3Cpath d='M20 20l-3.6-3.6' stroke='%23E7962F' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
}
.why-step__icon--score::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M12 3l2.6 5.6 6 .8-4.4 4.2 1.1 6L12 16.8 6.7 19.6l1.1-6L2.4 9.4l6-.8z' stroke='%23E7962F' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.why-step__icon--rank::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M5 20h4v-9H5zM10 20h4V4h-4zM15 20h4v-6h-4z' stroke='%23E7962F' stroke-width='2' stroke-linejoin='round' stroke-linecap='round'/%3E%3C/svg%3E");
}
.why-step__label {
  font-family: var(--pw-font-display);
  font-weight: 800;
  font-size: 15px;
  color: #5E8272;
}
.why-step__title {
  font-family: var(--pw-font-display);
  font-weight: 700;
  font-size: 18px;
  color: #fff;
}
.why-step__desc {
  font-size: 13.5px;
  color: #9FB6AB;
  line-height: 1.5;
}
.why-section__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #E7962F;
  color: #2A1900;
  padding: 15px 26px;
  border: 1.6px solid #E7962F;
  border-radius: 9px;
  font-weight: 800;
  font-size: 15px;
  white-space: nowrap;
  flex: 0 0 auto;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.why-section__btn::after {
  content: "";
  width: 15px;
  height: 15px;
  display: block;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
.why-section__btn:hover {
  background: transparent;
  color: #E7962F;
  border-color: #E7962F;
}

/* Latest Articles — matches export/html index.html */
.articles-section {
  padding: 82px 0 30px;
}
.articles-section__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 34px;
}
.articles-section__title {
  font-family: var(--pw-font-display);
  font-weight: 800;
  font-size: 38px;
  letter-spacing: -1px;
  margin: 0;
  color: #12402F;
}
.articles-section__sub {
  font-size: 17px;
  color: #6E6857;
  margin: 12px 0 0;
  max-width: none;
}
.articles-section__all {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: #fff;
  border: 1px solid #CFC6B2;
  color: #12402F;
  padding: 12px 22px;
  border-radius: 9px;
  font-weight: 700;
  font-size: 14.5px;
  white-space: nowrap;
  flex: 0 0 auto;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.articles-section__all::after {
  content: "↗";
  font-size: 14px;
  line-height: 1;
}
.articles-section__all:hover {
  background: #12402F;
  border-color: #12402F;
  color: #fff;
  transform: translateY(-2px);
}
.articles-layout {
  display: grid;
  grid-template-columns: 1.12fr 0.88fr;
  gap: 34px;
  align-items: stretch;
}
.art-featured {
  display: block;
  border-radius: 22px;
  overflow: hidden;
  background: #fff;
  border: 1px solid #ECE4D3;
  color: inherit;
  transition: transform .2s ease, box-shadow .2s ease;
}
.art-featured:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(18, 64, 47, 0.08);
  color: inherit;
}
.art-featured__media {
  height: 326px;
  background: #FBF3DF;
  overflow: hidden;
}
.art-featured__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.art-featured__body { padding: 30px; }
.art-featured__meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}
.art-featured__badge {
  background: #E7962F;
  color: #2A1900;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1px;
  padding: 5px 11px;
  border-radius: 6px;
  text-transform: uppercase;
}
.art-featured__date {
  font-size: 12.5px;
  font-weight: 600;
  color: #A79F8C;
}
.art-featured__title {
  font-family: var(--pw-font-display);
  font-weight: 800;
  font-size: 27px;
  line-height: 1.16;
  margin: 0 0 12px;
  color: #21302B;
}
.art-featured__excerpt {
  font-size: 14.5px;
  line-height: 1.6;
  color: #5F5949;
  margin: 0 0 20px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
}
.art-readmore {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-weight: 800;
  font-size: 14px;
  color: #C97A25;
}
.art-readmore::after {
  content: "";
  width: 15px;
  height: 15px;
  display: block;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
.art-readmore--sm {
  font-size: 12.5px;
  gap: 6px;
}
.art-readmore--sm::after {
  width: 13px;
  height: 13px;
}
.art-list {
  display: flex;
  flex-direction: column;
  gap: 18px;
  height: 100%;
  min-height: 0;
}
.art-list__item {
  display: grid;
  grid-template-columns: 132px 1fr;
  gap: 18px;
  background: #fff;
  border: 1px solid #ECE4D3;
  border-radius: 18px;
  padding: 14px;
  align-items: center;
  flex: 1;
  color: inherit;
  transition: transform .2s ease, box-shadow .2s ease;
}
.art-list__item:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(18, 64, 47, 0.08);
  color: inherit;
}
.art-list__media {
  height: 108px;
  border-radius: 12px;
  overflow: hidden;
  background: #EAF2EC;
  display: block;
}
.art-list__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.art-list__body {
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 0;
}
.art-list__date {
  font-size: 12px;
  font-weight: 600;
  color: #A79F8C;
}
.art-list__title {
  font-family: var(--pw-font-display);
  font-weight: 700;
  font-size: 16px;
  line-height: 1.25;
  color: #21302B;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
}

/* Shared archive cards (blog / search) */
.post-card {
  background: var(--pw-white); border: 1px solid var(--pw-border); border-radius: var(--pw-radius); overflow: hidden; height: 100%;
  display: flex; flex-direction: column;
}
.post-card__thumb { display: block; aspect-ratio: 16/10; overflow: hidden; background: var(--pw-soft); }
.post-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.post-card__body { padding: 18px 20px 22px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.post-card__meta { display: flex; gap: 12px; font-size: 12px; color: var(--pw-muted); }
.post-card__cat { color: var(--pw-pine-mid); font-weight: 600; }
.post-card__title { font-family: var(--pw-font-display); font-size: 20px; margin: 0; }
.post-card__title a { color: var(--pw-ink); }
.post-card__excerpt { color: var(--pw-muted); font-size: 14px; }
.posts-grid--2col { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }

/* Single / search / 404 / page */
.single-thumb { border-radius: var(--pw-radius); overflow: hidden; margin-bottom: 24px; }
.entry-content { font-size: 17px; line-height: 1.75; }
.entry-content h2, .entry-content h3 { margin-top: 1.6em; }
.disclosure-inline {
  background: var(--pw-soft); border: 1px solid var(--pw-border); border-left: 4px solid var(--pw-pine);
  padding: 0.85rem 1.1rem; border-radius: var(--pw-radius-sm); margin-bottom: 1.5rem; font-size: 14px; color: var(--pw-muted);
}
.related-comparisons { margin-bottom: 2rem; }
.related-comparisons__label { font-weight: 700; margin-bottom: 0.75rem; }
.related-comparisons__links { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.post-navigation {
  display: flex; justify-content: space-between; gap: 1rem; padding-block: 2rem;
  border-top: 1px solid var(--pw-border); margin-top: 2rem; font-size: 14px;
}
.single-banner__cats { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.single-banner__cat-link {
  background: rgba(255,255,255,0.12); color: #EDE6D5; padding: 4px 10px; border-radius: 999px; font-size: 12px; font-weight: 700;
}
.single-banner__meta { display: flex; gap: 16px; color: #B7C8BF; font-size: 14px; }

.search-banner__form { display: flex; gap: 10px; margin-top: 20px; max-width: 640px; }
.search-banner__field {
  flex: 1; border: 0; border-radius: var(--pw-radius-sm); padding: 14px 18px; font-family: inherit; font-size: 15px;
}
.search-results__count { color: var(--pw-muted); margin: 0 0 20px; }
.search-results-list { display: flex; flex-direction: column; gap: 14px; }
.search-result { padding: 20px 22px; background: var(--pw-white); border: 1px solid var(--pw-border); border-radius: var(--pw-radius); }
.search-result__meta { display: flex; gap: 12px; font-size: 12px; color: var(--pw-muted); margin-bottom: 8px; }
.search-result__title { font-family: var(--pw-font-display); font-size: 22px; margin: 0 0 8px; }
.search-result__title a { color: var(--pw-ink); }
.search-no-results { text-align: center; padding: 60px 20px; }
.search-no-results__title { font-size: 28px; }

.error-page { text-align: center; padding: 80px 20px 100px; max-width: 720px; margin: 0 auto; }
.error-page__eyebrow {
  text-transform: uppercase; letter-spacing: 0.12em; font-size: 12px; font-weight: 700; color: var(--pw-amber-dark); margin: 0 0 12px;
}
.error-page__title { font-size: 42px; margin: 0 0 14px; }
.error-page__text { color: var(--pw-muted); font-size: 17px; margin: 0 0 28px; }
.error-page__search { display: flex; gap: 10px; justify-content: center; margin-bottom: 24px; }
.error-page__actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

.page-layout { max-width: 820px; margin: 0 0 72px; text-align: left; }
.page-layout .entry-content { text-align: left; }

/* Contact Us page — matches contact.html export */
.contact-banner {
  background: #12402F;
  color: #fff;
  padding: 52px 0 62px;
}
.contact-banner__crumbs {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 13.5px;
  color: #9FB6AB;
  font-weight: 600;
}
.contact-banner__crumbs a { color: #9FB6AB; }
.contact-banner__crumbs a:hover { color: #E7962F; }
.contact-banner__crumbs span:last-child { color: #E7962F; }
.contact-banner__title {
  font-family: var(--pw-font-display);
  font-weight: 800;
  font-size: 46px;
  letter-spacing: -1.2px;
  line-height: 1.05;
  margin: 18px 0 0;
  color: #fff;
}
.contact-banner__desc {
  font-size: 16.5px;
  line-height: 1.6;
  color: #C4D6CC;
  margin: 16px 0 0;
  max-width: 560px;
}
.contact-banner__meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 26px;
  font-size: 14px;
  font-weight: 600;
  color: #9FB6AB;
}
.contact-banner__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #E7962F;
  flex: 0 0 auto;
}
.contact-page { padding: 52px 0; }
body.page-contact-us .site-footer,
body.page-template-page-contact-us .site-footer { margin-top: 0; }
.contact-layout {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 36px;
  align-items: start;
}
.contact-form-card {
  background: #fff;
  border: 1px solid #ECE4D3;
  border-radius: 20px;
  padding: 34px;
}
.contact-eyebrow {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--pw-font-display);
  font-weight: 800;
  font-size: 13px;
  letter-spacing: .5px;
  color: #12402F;
  text-transform: uppercase;
  margin-bottom: 0;
}
.contact-eyebrow::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #E7962F;
  flex: 0 0 auto;
}
.contact-aside__card .contact-eyebrow { margin-bottom: 18px; }
.contact-form-card__title {
  font-family: var(--pw-font-display);
  font-weight: 800;
  font-size: 28px;
  letter-spacing: -0.7px;
  color: #21302B;
  margin: 14px 0 0;
}
.contact-form { margin-top: 26px; }
.contact-form__empty { color: #8A8474; margin: 24px 0 0; font-size: 14.5px; }

/* CF7 fields — match HTML form design */
.contact-form .wpcf7 { margin: 0; }
.contact-form .wpcf7-form { margin: 0; }
.contact-form .wpcf7-form > p { margin: 0; }
.contact-form .pw-contact-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.contact-form .pw-contact-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0;
}
.contact-form .pw-contact-field--full {
  grid-column: 1 / -1;
  margin-top: 4px;
}
.contact-form .pw-contact-field__label {
  font-size: 13.5px;
  font-weight: 700;
  color: #3A4640;
  letter-spacing: .2px;
}
.contact-form .wpcf7-form-control-wrap { display: block; width: 100%; }
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form input.wpcf7-text,
.contact-form input.wpcf7-email,
.contact-form textarea,
.contact-form textarea.wpcf7-textarea {
  width: 100% !important;
  border: 1px solid #E3DAC7 !important;
  background: #FBF8F1 !important;
  border-radius: 11px !important;
  padding: 14px 16px !important;
  font-size: 15.5px !important;
  font-family: var(--pw-font-body) !important;
  color: #21302B !important;
  box-shadow: none !important;
  outline: none !important;
  line-height: 1.45;
  margin: 0 !important;
  box-sizing: border-box;
}
.contact-form textarea,
.contact-form textarea.wpcf7-textarea {
  line-height: 1.6 !important;
  resize: vertical;
  min-height: 140px;
}
.contact-form input:focus,
.contact-form textarea:focus {
  border-color: #C9BFA8 !important;
}
.contact-form .pw-contact-actions {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin-top: 26px;
  padding-top: 24px;
  border-top: 1px solid #F0EAD9;
}
.contact-form .pw-contact-submit,
.contact-form input.wpcf7-submit,
.contact-form button[type="submit"] {
  display: inline-flex !important;
  align-items: center;
  gap: 9px;
  background: #12402F !important;
  color: #fff !important;
  border: 1.6px solid #12402F !important;
  padding: 15px 28px !important;
  border-radius: 9px !important;
  font-family: var(--pw-font-body) !important;
  font-weight: 700 !important;
  font-size: 15.5px !important;
  cursor: pointer;
  line-height: 1.2 !important;
  width: auto !important;
  height: auto !important;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.contact-form .pw-contact-submit::after {
  content: "";
  width: 15px;
  height: 15px;
  display: block;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
.contact-form .pw-contact-submit:hover,
.contact-form input.wpcf7-submit:hover,
.contact-form button[type="submit"]:hover {
  background: transparent !important;
  color: #12402F !important;
}
.contact-form .wpcf7-not-valid-tip {
  font-size: 12.5px;
  color: #C45C3E;
  margin-top: 6px;
}
.contact-form .wpcf7-response-output {
  margin: 18px 0 0 !important;
  padding: 14px 16px !important;
  border-radius: 14px !important;
  font-size: 14.5px;
  line-height: 1.55;
}
.contact-form .wpcf7-mail-sent-ok,
.contact-form form.sent .wpcf7-response-output {
  background: #EDF2EE !important;
  border: 1px solid #D4E2DA !important;
  color: #4C5B54 !important;
}

.contact-aside {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.contact-aside__card {
  background: #fff;
  border: 1px solid #ECE4D3;
  border-radius: 20px;
  padding: 24px;
}
.contact-info-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.contact-info {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 14px;
  align-items: center;
  border: 1px solid #F0EAD9;
  border-radius: 14px;
  padding: 14px;
  color: inherit;
  transition: border-color .2s ease, background-color .2s ease;
}
a.contact-info:hover {
  border-color: #E3DAC7;
  background: #FBF8F1;
  color: inherit;
}
.contact-info__icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: #EDF2EE;
  display: flex;
  align-items: center;
  justify-content: center;
}
.contact-info__icon::before {
  content: "";
  width: 21px;
  height: 21px;
  display: block;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.contact-info__icon--email::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='21' height='21' viewBox='0 0 24 24' fill='none'%3E%3Crect x='3' y='5' width='18' height='14' rx='3' stroke='%2312402F' stroke-width='1.8'/%3E%3Cpath d='M4 7l8 6 8-6' stroke='%23E7962F' stroke-width='1.8'/%3E%3C/svg%3E");
}
.contact-info__icon--phone::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='21' height='21' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M4 6.5c0-1.4 1.1-2.5 2.5-2.5h1.2c.7 0 1.3.5 1.5 1.2l.7 2.6c.2.7-.1 1.4-.7 1.7l-1.2.7a11 11 0 0 0 5.1 5.1l.7-1.2c.4-.6 1.1-.9 1.8-.7l2.6.7c.7.2 1.2.8 1.2 1.5v1.2c0 1.4-1.1 2.5-2.5 2.5A14.5 14.5 0 0 1 4 6.5z' stroke='%2312402F' stroke-width='1.8' stroke-linejoin='round'/%3E%3Ccircle cx='18' cy='6' r='2.4' fill='%23E7962F'/%3E%3C/svg%3E");
}
.contact-info__icon--hours::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='21' height='21' viewBox='0 0 24 24' fill='none'%3E%3Ccircle cx='12' cy='12' r='8.4' stroke='%2312402F' stroke-width='1.8'/%3E%3Cpath d='M12 7.6V12l3.2 2' stroke='%23E7962F' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
}
.contact-info__text {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}
.contact-info__label {
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .4px;
  color: #8A8474;
  text-transform: uppercase;
}
.contact-info__value {
  font-size: 15px;
  font-weight: 600;
  color: #21302B;
  word-break: break-word;
}
.contact-socials {
  display: flex;
  gap: 10px;
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid #F0EAD9;
}
.contact-social {
  width: 42px;
  height: 42px;
  border-radius: 11px;
  border: 1px solid #E3DAC7;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  transition: background-color .2s ease, border-color .2s ease;
}
.contact-social::before {
  content: "";
  width: 16px;
  height: 16px;
  display: block;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.contact-social:hover { background: #FBF8F1; border-color: #C9BFA8; }
.contact-social--x::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M18.9 2.6h3.5l-7.6 8.7 8.9 11.8h-6.9l-5.4-7.1-6.2 7.1H1.7l8-9.1L1.2 2.6h7.1l5 6.6 5.6-6.6zm-1.2 18.4h1.9L6.4 4.5H4.4l13.3 16.5z' fill='%2312402F'/%3E%3C/svg%3E");
}
.contact-social--instagram::before {
  width: 17px;
  height: 17px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 24 24' fill='none'%3E%3Crect x='4' y='4' width='16' height='16' rx='5' stroke='%2312402F' stroke-width='1.9'/%3E%3Ccircle cx='12' cy='12' r='3.6' stroke='%2312402F' stroke-width='1.9'/%3E%3Ccircle cx='16.6' cy='7.4' r='1' stroke='%2312402F' stroke-width='1.9'/%3E%3C/svg%3E");
}
.contact-social--facebook::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M13.5 21v-8h2.8l.4-3.2h-3.2V7.7c0-.9.3-1.5 1.6-1.5h1.7V3.3c-.3 0-1.3-.1-2.5-.1-2.5 0-4.2 1.5-4.2 4.3v2.3H7.3V13h2.8v8h3.4z' fill='%2312402F'/%3E%3C/svg%3E");
}
.contact-social--tiktok::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M16.6 2h-3.1v13.1a2.3 2.3 0 1 1-1.7-2.2V9.7a5.5 5.5 0 1 0 4.8 5.4V8.4a5.4 5.4 0 0 0 3.4 1.2V6.5a3.6 3.6 0 0 1-3.4-3.6V2z' fill='%2312402F'/%3E%3C/svg%3E");
}
.contact-cta {
  background: #12402F;
  border-radius: 20px;
  padding: 26px;
  color: #fff;
}
.contact-cta__title {
  font-family: var(--pw-font-display);
  font-weight: 800;
  font-size: 19px;
  letter-spacing: -0.3px;
  margin: 0;
  color: #fff;
}
.contact-cta__desc {
  font-size: 14.5px;
  line-height: 1.6;
  color: #C4D6CC;
  margin: 12px 0 0;
}
.contact-cta__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 20px;
  padding: 12px 20px;
  border-radius: 9px;
  border: 1.6px solid #E7962F;
  color: #E7962F;
  font-weight: 700;
  font-size: 14.5px;
  background: transparent;
  transition: background-color .2s ease, color .2s ease;
}
.contact-cta__btn::after {
  content: "";
  width: 14px;
  height: 14px;
  display: block;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
.contact-cta__btn:hover {
  background: #E7962F;
  color: #2A1900;
}
.review-layout { max-width: 860px; margin: 0 auto 72px; }
.review-header { margin: 24px 0 28px; }
.review-header__rating { display: flex; align-items: center; gap: 12px; margin-top: 12px; }
.review-product-box {
  display: flex; gap: 20px; align-items: center; padding: 20px; background: var(--pw-white);
  border: 1px solid var(--pw-border); border-radius: var(--pw-radius); margin-bottom: 28px;
}
.review-product-box__image { width: 100px; height: 100px; border-radius: 12px; overflow: hidden; background: var(--pw-soft); }
.review-product-box__image img { width: 100%; height: 100%; object-fit: contain; }
.review-product-box__name { font-family: var(--pw-font-display); font-weight: 700; font-size: 18px; margin: 0 0 8px; }
.key-specs-table { width: 100%; border-collapse: collapse; margin-bottom: 28px; }
.key-specs-table th, .key-specs-table td { border-bottom: 1px solid var(--pw-border); padding: 12px 10px; text-align: left; }
.key-specs-table th { width: 40%; color: var(--pw-muted); font-weight: 600; }

/* Pagination */
.pw-page .nav-links, .post-archive-pagination .nav-links, .search-pagination .nav-links {
  display: flex; gap: 8px; justify-content: center; margin-top: 32px;
}
.pw-page a, .pw-page span, .post-archive-pagination a, .post-archive-pagination span,
.search-pagination a, .search-pagination span {
  display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px;
  padding: 0 12px; border-radius: 10px; border: 1px solid var(--pw-border); background: var(--pw-white);
  color: var(--pw-ink); font-weight: 600; font-size: 14px;
}
.pw-page .current, .post-archive-pagination .current, .search-pagination .current {
  background: var(--pw-pine); color: #fff; border-color: var(--pw-pine);
}

/* Swiper overrides */
.sp-reviews-swiper, .hero-swiper { position: relative; }
.sp-reviews-swiper__prev,
.sp-reviews-swiper__next {
  color: var(--pw-pine); width: 40px; height: 40px; background: var(--pw-white);
  border: 1px solid var(--pw-border); border-radius: 50%;
}
.sp-reviews-swiper__prev::after,
.sp-reviews-swiper__next::after { font-size: 14px; font-weight: 700; }

.text-muted { color: var(--pw-muted); }

/* Mobile nav open state */
body.nav-open { overflow: hidden; }

@media (max-width: 1024px) {
  .pw-foot, .footer-main__inner { grid-template-columns: 1fr 1fr; row-gap: 34px; }
  .ep-layout, .sp-layout, .post-archive-layout, .single-layout { grid-template-columns: 1fr; }
  .ep-sidebar, .sp-sidebar, .single-sidebar { position: static; }
  .sp-banner__top-row { flex-direction: column; align-items: flex-start; gap: 30px; }
  .category-grid { grid-template-columns: 1fr 1fr; }
  .pcr, .pw-pcard { grid-template-columns: 120px 1fr; }
  .pcr__rating-col, .pcr__actions { grid-column: 1 / -1; }
  .pcr__actions { flex-direction: row; }
  .why-stats { grid-template-columns: repeat(2, 1fr); }
  .why-stats__item:nth-child(odd) { border-left: none; }
  .why-stats__item:nth-child(n + 3) { border-top: 1px solid #2C5445; }
  .why-process { flex-direction: column; align-items: stretch; gap: 28px; }
  .why-section__btn { align-self: flex-start; }
  .articles-layout { grid-template-columns: 1fr; }
  .contact-layout { grid-template-columns: 1fr; }
}

@media (max-width: 1050px) {
  .site-header__bar,
  .site-header__inner,
  .pw-head {
    flex-wrap: nowrap;
    padding-top: 12px;
    padding-bottom: 12px;
    gap: 12px;
  }
  .site-header__logo {
    flex: 1 1 auto;
    min-width: 0;
  }
  .site-header__brand { min-width: 0; }
  .site-header__name,
  .site-header__tagline {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .site-header__actions {
    gap: 10px;
    flex: 0 0 auto;
  }
  .site-header__btn { display: none; }
  .mobile-menu-toggle { display: flex; }

  /* Overlay panel under header — does not expand header height */
  .site-nav {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    width: 100%;
    flex: none;
    background: var(--pw-cream);
    border-top: 1px solid var(--pw-border);
    border-bottom: 1px solid var(--pw-border);
    box-shadow: 0 16px 32px rgba(18, 64, 47, 0.1);
    padding: 8px var(--pw-pad) 18px;
    max-height: min(70vh, calc(100vh - 72px));
    overflow-y: auto;
    z-index: 60;
    box-sizing: border-box;
  }
  .site-nav.is-open { display: block; }
  .site-nav__list {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }
  .site-nav__list > li > a {
    display: block;
    padding: 12px 0;
    border-bottom: 1px solid var(--pw-border);
  }
  .site-nav__list .sub-menu {
    position: static;
    display: none;
    box-shadow: none;
    border: 0;
    background: transparent;
    margin: 0;
    padding: 0 0 8px 12px;
  }
  .site-nav__list li:hover > .sub-menu,
  .site-nav__list li:focus-within > .sub-menu { display: block; }
  .site-nav__cta {
    display: inline-flex;
    width: 100%;
    justify-content: center;
    margin-top: 16px;
  }
}

@media (max-width: 768px) {
  .section { padding: 40px 0; }
  .section-heading { margin-bottom: 22px; }
  .site-footer { margin-top: 36px; }
  .footer-main__inner, .pw-foot { padding-top: 40px; padding-bottom: 20px; gap: 28px; }
  .footer-bottom__inner { padding-top: 20px; padding-bottom: 24px; padding-left: var(--pw-pad); padding-right: var(--pw-pad); }

  .hero-slide { min-height: 420px; }
  .hero-slide__headline { font-size: 36px; }
  .hero-slide__content { padding: 40px 28px; }
  .cat-banner__title, .sp-banner__title, .error-page__title, .search-banner__title { font-size: 34px; }
  .sp-header__top, .pw-prodtop { grid-template-columns: 1fr; }
  .sp-header__image, .pw-prodimg { width: 100%; height: 280px; }
  .posts-grid--2col { grid-template-columns: 1fr; }
  .comp-row { grid-template-columns: 56px 1fr 40px; gap: 12px; padding: 16px; }
  .comp-row__rank, .comp-row__badge { display: none; }
  .category-grid { grid-template-columns: 1fr; }
  .hp-reviews__title { font-size: 32px; }
  .hp-reviews__desc { margin-bottom: 32px; }
  .why-section { padding: 40px 0; }
  .why-section__title { font-size: 32px; letter-spacing: -0.8px; }
  .why-steps { grid-template-columns: 1fr; gap: 28px; }
  .why-stats__value { font-size: 36px; }
  .articles-section { padding: 40px 0 28px; }
  .articles-section__header { flex-direction: column; align-items: flex-start; gap: 16px; }
  .articles-section__title { font-size: 32px; }
  .art-featured__media { height: 240px; }
  .art-featured__title { font-size: 22px; }
  .contact-banner { padding: 36px 0 40px; }
  .contact-banner__title { font-size: 34px; }
  .contact-page { padding: 28px 0; }
  .contact-form-card { padding: 26px; }
  .contact-form .pw-contact-fields { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  :root { --pw-pad: 20px; }
  .pw-foot, .footer-main__inner { grid-template-columns: 1fr; }
  .hero-slide__headline { font-size: 30px; }
  .hero-slide__actions { flex-direction: column; align-items: stretch; }
  .hero-slide__actions .btn { width: 100%; justify-content: center; }
  .cat-banner__title, .sp-banner__title, .error-page__title { font-size: 27px; }
  .pcr, .pw-pcard { grid-template-columns: 1fr; }
  .pcr__image { width: 100%; height: 180px; }
  .pcr__actions { flex-direction: column; }
  .error-page__search, .search-banner__form { flex-direction: column; }
  .art-list__item { grid-template-columns: 96px 1fr; gap: 14px; }
  .art-list__media { height: 88px; }
  .art-featured__body { padding: 22px; }
  .footer-bottom__inner {
    flex-direction: column;
    align-items: flex-start;
    padding-top: 18px;
    padding-bottom: 28px;
    padding-left: var(--pw-pad);
    padding-right: var(--pw-pad);
  }
}
