/*
Theme Name: Impeller
Theme URI: https://impeller.ee
Author: Impeller Est OÜ
Description: Kohandatud WordPress + WooCommerce teema Impeller Est OÜ paadimootorite poe jaoks.
Version: 1.3
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: impeller
*/

:root{
  --navy: #0b2a3d;
  --navy-dark: #071c29;
  --blue: #0077a3;
  --blue-dark: #045677;
  --accent: #f2a900;
  --light: #f4f7f9;
  --white: #ffffff;
  --text: #1c2b33;
  --muted: #5b6b73;
  --border: #dfe7ec;
  --radius: 8px;
  --container: 1180px;
}

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin: 0;
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  color: var(--text);
  background: var(--white);
  line-height: 1.6;
  font-size: 16px;
}
img{ max-width: 100%; height: auto; display: block; }
a{ color: var(--blue); text-decoration: none; }
a:hover{ color: var(--blue-dark); }
h1,h2,h3,h4{ font-family: "Inter", sans-serif; font-weight: 700; line-height: 1.2; color: var(--navy); margin: 0 0 .6em; }
h1{ font-size: clamp(1.8rem, 3vw + 1rem, 2.8rem); }
h2{ font-size: clamp(1.4rem, 2vw + 1rem, 2rem); }
h3{ font-size: 1.2rem; }
p{ margin: 0 0 1em; }
ul{ padding-left: 1.2em; }

.container{ max-width: var(--container); margin: 0 auto; padding: 0 20px; }
.site-main{ display: block; }

/* #primary is intentionally full-width so .alignfull blocks (hero cover, brand strip)
   can bleed edge-to-edge; normal content gets constrained per direct child instead. */
#primary.content-area{ padding-bottom: 60px; }
#primary.content-area.is-front{ padding-bottom: 0; }
.entry-content > *{ max-width: var(--container); margin-left: auto; margin-right: auto; padding-left: 20px; padding-right: 20px; }
.entry-content > .alignwide{ max-width: 1400px; }
.entry-content > .alignfull{ max-width: none; width: 100%; padding-left: 0; padding-right: 0; }
.entry-content > *:first-child{ margin-top: 0; }
.entry-content > .alignfull + *{ margin-top: 40px; }
.entry-content > p{ max-width: 740px; margin-left: max(0px, calc((100% - var(--container)) / 2)); margin-right: auto; }
.woocommerce main.site-main, .woocommerce-page main.site-main{ padding-top: 32px; max-width: var(--container); margin: 0 auto; padding-left: 20px; padding-right: 20px; }

.screen-reader-text{ position:absolute !important; clip: rect(1px,1px,1px,1px); overflow:hidden; height:1px; width:1px; }

/* Buttons */
.btn, a.btn, button.btn,
.wp-block-button__link,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
.woocommerce #respond input#submit{
  display: inline-block;
  background: var(--accent);
  color: var(--navy-dark) !important;
  font-weight: 700;
  padding: .8em 1.6em;
  border-radius: 999px;
  border: none;
  cursor: pointer;
  transition: transform .15s ease, background .15s ease;
}
.btn:hover, .wp-block-button__link:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover{
  background: #ffbb2e;
  transform: translateY(-1px);
}
.btn.btn-outline{
  background: transparent;
  color: var(--white) !important;
  border: 2px solid var(--white);
  padding: .7em 1.5em;
}
.btn.btn-outline:hover{ background: rgba(255,255,255,.12); }
.woocommerce a.added_to_cart{ margin-left: .8em; font-weight: 600; }

/* Header — white, to match the logo's own white background */
.site-header{ background: var(--white); position: sticky; top: 0; z-index: 50; border-bottom: 1px solid var(--border); box-shadow: 0 2px 10px rgba(11,42,61,.06); }
.site-header .container{ display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 84px; }
.site-branding{ display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.site-branding img{ max-height: 56px; width: auto; display: block; }
.site-branding .custom-logo-link{ display: inline-flex; align-items: center; }
.site-branding .site-title{ color: var(--navy); font-size: 1.3rem; margin: 0; }
.site-branding .site-title a{ color: var(--navy); }
.site-branding .site-tagline{ color: var(--muted); font-size: .78rem; letter-spacing: .04em; text-transform: uppercase; margin: 0; }

.primary-navigation{ display: flex; align-items: center; gap: 28px; }
.primary-navigation ul{ list-style: none; display: flex; gap: 6px; margin: 0; padding: 0; }
.primary-navigation li{ position: relative; }
.primary-navigation a{
  display: block; color: var(--navy); font-weight: 600; padding: 12px 14px; border-radius: 6px;
  font-size: .95rem; letter-spacing: .01em;
}
.primary-navigation a:hover, .primary-navigation .current-menu-item > a{ color: var(--navy-dark); background: var(--light); }

.header-actions{ display: flex; align-items: center; gap: 18px; flex-shrink: 0; }
.header-phone{ color: var(--navy); font-weight: 700; white-space: nowrap; display: flex; align-items: center; }
.header-phone small{ display:block; color: var(--muted); font-weight: 500; font-size: .72rem; }
.header-phone .phone-icon{ display: none; }
.header-phone .phone-icon svg{ width: 20px; height: 20px; display: block; }
.header-cart{ color: var(--navy); font-weight: 600; position: relative; display: inline-flex; align-items: center; gap: 6px; }
.header-cart svg{ width: 22px; height: 22px; display: block; }
.header-cart .count{
  background: var(--accent); color: var(--navy-dark); font-size: .72rem; font-weight: 800;
  border-radius: 999px; padding: 1px 6px; margin-left: 4px;
}

.menu-toggle{ display: none; background: none; border: 2px solid var(--navy); color: var(--navy); border-radius: 6px; padding: 8px 10px; font-size: 1.1rem; cursor: pointer; flex-shrink: 0; min-width: 44px; min-height: 44px; }

@media (max-width: 1180px){
  .menu-toggle{ display: inline-block; }
  .primary-navigation{ position: absolute; top: 100%; left: 0; right: 0; background: var(--white); border-top: 1px solid var(--border); box-shadow: 0 8px 16px rgba(11,42,61,.08); flex-direction: column; align-items: stretch; padding: 10px 20px 20px; display: none; }
  .primary-navigation.is-open{ display: flex; }
  .primary-navigation ul{ flex-direction: column; gap: 0; }
  .site-header .container{ gap: 10px; min-height: 68px; }
  .site-branding img{ max-height: 28px; }
  .header-phone .phone-text{ display: none; }
  .header-phone .phone-icon{ display: inline-block; }
  .header-actions{ gap: 26px; }
  .header-phone{ padding: 12px; margin: -12px; }
  .header-cart{ padding: 12px; margin: -12px; }
}

@media (max-width: 400px){
  .site-branding img{ max-height: 22px; }
  .header-actions{ gap: 16px; }
}

/* Hero / cover blocks */
.wp-block-cover{ border-radius: 0; }
.hero{
  color: var(--white);
  padding: 90px 20px;
  text-align: center;
  min-height: 420px;
}
.hero h1{ color: var(--white); }
.hero .lead{ font-size: 1.15rem; max-width: 640px; margin: 0 auto 1.6em; color: #dcecf3; }
.hero .hero-actions{ display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

/* Brand strip */
.brand-strip{ background: var(--light); padding: 34px 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.brand-strip ul{ list-style: none; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 42px; margin: 0; padding: 0; }
.brand-strip img{ max-height: 46px; width: auto; filter: grayscale(1); opacity: .75; transition: all .15s ease; }
.brand-strip img:hover{ filter: none; opacity: 1; }
.brand-strip li.text-logo{ font-size: 1.1rem; font-weight: 800; letter-spacing: .04em; color: var(--navy); opacity: .6; transition: opacity .15s ease; }
.brand-strip li.text-logo:hover{ opacity: 1; }
@media (max-width: 480px){
  .brand-strip ul{ display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; justify-items: center; }
}

/* Category cards */
.category-grid{
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 22px;
  margin: 30px auto; max-width: var(--container); padding-left: 20px; padding-right: 20px;
}
.category-card{
  display: block; background: var(--white); border: 1px solid var(--border); border-radius: var(--radius);
  padding: 26px 22px; text-align: center; box-shadow: 0 1px 3px rgba(11,42,61,.06);
  transition: transform .15s ease, box-shadow .15s ease;
}
.category-card:hover{ transform: translateY(-3px); box-shadow: 0 8px 20px rgba(11,42,61,.12); }
.category-card .icon{ margin-bottom: 10px; color: var(--navy); }
.category-card .icon svg{ width: 32px; height: 32px; }
.pillars .category-card{ padding: 34px 26px; }
.pillars .category-card .icon svg{ width: 40px; height: 40px; }
.category-card h3{ margin-bottom: .3em; }
.category-card p{ color: var(--muted); font-size: .92rem; margin: 0; }

/* Info / service blocks */
.section{ padding: 60px 0; }
.section.alt{ background: var(--light); }
.two-col{ display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; }
@media (max-width: 780px){ .two-col{ grid-template-columns: 1fr; } }

.price-note{ background: #fff7e6; border: 1px solid #f2d38a; border-radius: var(--radius); padding: 16px 20px; font-weight: 600; }

/* Footer */
.site-footer{ background: var(--navy-dark); color: #b9cdd8; padding: 56px 0 24px; margin-top: 60px; }
.site-footer h4{ color: var(--white); font-size: 1rem; margin-bottom: .8em; }
.site-footer a{ color: #b9cdd8; }
.site-footer a:hover{ color: var(--white); }
.footer-grid{ display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 32px; }
.footer-menu{ list-style: none; padding-left: 0; margin: 0; }
.footer-menu li{ margin-bottom: .4em; }
.footer-bottom{ margin-top: 40px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.1); font-size: .85rem; display: flex; flex-wrap: wrap; gap: 10px; justify-content: space-between; }

/* Gallery page (classic [gallery] shortcode markup) */
.wp-block-gallery figure img{ border-radius: var(--radius); }
.gallery{ display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; list-style: none; max-width: var(--container); margin: 0 auto 1.5em; padding: 0 20px; }
.gallery-item{ margin: 0; }
.gallery-icon a{ display: block; }
.gallery-item img{ width: 100%; height: 220px; object-fit: cover; border-radius: var(--radius); }
.gallery-caption{ font-size: .85rem; color: var(--muted); margin-top: .3em; }
.gallery-columns-4 .gallery-item{ width: calc(25% - 11px); }
.gallery-columns-3 .gallery-item{ width: calc(33.333% - 10px); }
.gallery-columns-2 .gallery-item{ width: calc(50% - 7px); }
@media (max-width: 780px){ .gallery-columns-4 .gallery-item, .gallery-columns-3 .gallery-item{ width: calc(50% - 7px); } }

/* WooCommerce tweaks — brand system: navy = text, amber = action/highlight, blue = links & price */
.woocommerce ul.products li.product{ text-align: center; }
.woocommerce ul.products li.product .woocommerce-loop-product__title{ font-weight: 700; color: var(--navy); }
.woocommerce span.price{ color: var(--blue-dark); font-weight: 700; }
.woocommerce ul.products li.product .price ins{ color: var(--accent); text-decoration: none; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span{ border-radius: 6px; }
.woocommerce-message, .woocommerce-info{ border-top-color: var(--blue) !important; }
.woocommerce-message::before, .woocommerce-info::before{ color: var(--blue) !important; }
table.shop_table{ border-radius: var(--radius); overflow: hidden; }
.woocommerce span.onsale{ background: var(--accent) !important; color: var(--navy-dark) !important; font-weight: 800; box-shadow: none; }
.woocommerce .star-rating span::before{ color: var(--accent) !important; }
.woocommerce-breadcrumb a{ color: var(--blue); }

/* WooCommerce Blocks (Cart/Checkout use these instead of the classic .button classes) */
.wc-block-components-button .wc-block-components-button__text,
.wc-block-components-button{
  background: var(--accent) !important;
  color: var(--navy-dark) !important;
  border-radius: 999px !important;
  border: none !important;
  font-weight: 700 !important;
  box-shadow: none !important;
}
.wc-block-components-button:hover{ background: #ffbb2e !important; }
.wc-block-components-button.is-loading{ opacity: .7; }
.wp-block-woocommerce-checkout .wc-block-components-radio-control__input:checked{ border-color: var(--blue) !important; }
.wp-block-woocommerce-checkout .wc-block-components-radio-control__input:checked + .wc-block-components-radio-control__label-group::before{ background: var(--blue) !important; }

.page-hero{ background: var(--navy); color: var(--white); padding: 46px 0; text-align: center; }
.page-hero h1{ color: var(--white); margin: 0; }
