/* Maps native Elementor widget markup to the Peer Accountants design,
   so every widget (Heading, Button, Text Editor, Icon List, Accordion,
   Star Rating) looks correct out of the box when edited visually. */

/* Default Columns Gap: 16px fallback for any section using "Custom" gap
   that hasn't set its own value. Elementor writes a specific per-section
   inline px value when one IS set, which naturally wins over this. */
.elementor-column-gap-custom>.elementor-column>.elementor-element-populated {
  /* padding: 8px; */
  gap: 16px !important;
}

/* Headings */
.elementor-widget-heading .elementor-heading-title {
  font-family: 'Instrument Serif', Georgia, serif;
  font-weight: 400;
  color: var(--ink, #0b0b0b);
  line-height: 1.2;
  letter-spacing: -0.01em;
}

.elementor-widget-heading h1.elementor-heading-title {
  font-size: 56px;
  line-height: 1.02;
  letter-spacing: -0.035em;
}

.elementor-widget-heading h2.elementor-heading-title {
  font-size: 40px;
  line-height: 1.08;
  letter-spacing: -0.025em;
}

.elementor-widget-heading h3.elementor-heading-title {
  font-family: 'DM Sans', system-ui, sans-serif;
  font-size: 18px;
  font-weight: 600;
}

.elementor-widget-heading .elementor-heading-title em {
  font-style: italic;
  color: var(--accent, #dc2626);
}

/* Text editor */
.elementor-widget-text-editor {
  font-family: 'DM Sans', system-ui, sans-serif;
  color: var(--ink-2, #374151);
}

.elementor-widget-text-editor p {
  margin: 0;
  line-height: 1.7;
}

/* Buttons */
.elementor-widget-button .elementor-button {
  background: #000000;
  color: #ffffff;
  border-radius: 12px;
  font-family: 'DM Sans', system-ui, sans-serif;
  font-weight: 700;
  font-size: 15px;
  padding: 13px 24px;
  transition: .18s all ease;
  box-shadow: none;
}

.elementor-widget-button .elementor-button:hover {
  background: #18181b;
  color: #fff;
  transform: translateY(-1px);
}

.elementor-widget-button .elementor-button .elementor-button-text {
  color: inherit;
}

/* Icon list (pricing checklists) */
.elementor-widget-icon-list .elementor-icon-list-items {
  display: grid;
  gap: 8px;
}

.elementor-widget-icon-list .elementor-icon-list-item {
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink-2, #374151);
}

.elementor-widget-icon-list .elementor-icon-list-icon {
  color: var(--accent, #dc2626);
  margin-right: 9px;
}

.elementor-widget-icon-list .elementor-icon-list-icon svg {
  fill: var(--accent, #dc2626);
  width: 12px;
}

/* Accordion (FAQ) */
.elementor-widget-accordion .elementor-accordion-item {
  border-top: 2px solid #e5e7eb;
  border-bottom: 2px solid #e5e7eb;
  border-left: 2px solid #e5e7eb;
  border-right: 2px solid #e5e7eb;
  border-radius: 12px;
  margin-bottom: 12px;
  overflow: hidden;
}

.elementor-widget-accordion .elementor-accordion-item:last-child {
  margin-bottom: 0;
}

.elementor-widget-accordion .elementor-tab-title {
  font-family: 'DM Sans', system-ui, sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: var(--ink, #0b0b0b);
  padding: 18px 20px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.elementor-widget-accordion .elementor-accordion-title {
  font-family: 'DM Sans', system-ui, sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: var(--ink, #0b0b0b);
}

.elementor-widget-accordion .elementor-tab-title .elementor-accordion-icon,
.elementor-widget-accordion .elementor-accordion-icon {
  color: var(--accent, #dc2626);
}

.elementor-widget-accordion .elementor-accordion-icon svg {
  fill: var(--accent, #dc2626);
  width: 14px;
  height: 14px;
}

.elementor-widget-accordion .elementor-tab-content {
  font-size: 14px;
  color: #4b5563;
  line-height: 1.6;
  padding: 0 20px 18px;
  border-top: 1px solid #e5e7eb;
  padding-top: 14px;
}

/* Star rating */
.elementor-widget-star-rating .elementor-star-rating i {
  color: var(--accent, #dc2626);
}

/* Sections on a dark/black background (switcher-section, cta-dark) need light text */
.switcher-section .elementor-heading-title,
.cta-dark .elementor-heading-title {
  color: #ffffff;
}

.switcher-section .elementor-widget-text-editor,
.switcher-section .elementor-widget-text-editor p,
.cta-dark .elementor-widget-text-editor,
.cta-dark .elementor-widget-text-editor p {
  color: #d1d5db;
}

/* Card-style columns: problem-card / pricing-card / switcher-card / review-card / contact-card / card.elevated
   The visible card box (border/background/padding, from main.css) lives on the
   column's inner .elementor-widget-wrap, not the column itself — so that wrap
   must stretch to fill the column's full (equal) row height, and its content
   needs to be a flex column so buttons etc. can pin to the bottom evenly. */
.elementor-column.problem-card,
.elementor-column.pricing-card,
.elementor-column.switcher-card,
.elementor-column.review-card,
.elementor-column.contact-card,
.elementor-column.card {
  display: flex;
}

.elementor-column.problem-card>.elementor-widget-wrap,
.elementor-column.pricing-card>.elementor-widget-wrap,
.elementor-column.switcher-card>.elementor-widget-wrap,
.elementor-column.review-card>.elementor-widget-wrap,
.elementor-column.contact-card>.elementor-widget-wrap,
.elementor-column.card>.elementor-widget-wrap {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 10px;
}

.elementor-column.pricing-card .elementor-widget-button {
  margin-top: auto;
}

.elementor-column.pricing-card .elementor-widget-button .elementor-button {
  width: 100%;
}

/* Rows of cards: force the section's columns to stretch to equal height */
.elementor-section:has(> .elementor-container > .elementor-column.problem-card),
.elementor-section:has(> .elementor-container > .elementor-column.pricing-card),
.elementor-section:has(> .elementor-container > .elementor-column.switcher-card),
.elementor-section:has(> .elementor-container > .elementor-column.review-card),
.elementor-section:has(> .elementor-container > .elementor-column.contact-card) {
  display: flex;
}

.elementor-section:has(> .elementor-container > .elementor-column.problem-card)>.elementor-container,
.elementor-section:has(> .elementor-container > .elementor-column.pricing-card)>.elementor-container,
.elementor-section:has(> .elementor-container > .elementor-column.switcher-card)>.elementor-container,
.elementor-section:has(> .elementor-container > .elementor-column.review-card)>.elementor-container,
.elementor-section:has(> .elementor-container > .elementor-column.contact-card)>.elementor-container {
  align-items: stretch;
}

/* Footer: native block/nav-menu widgets */
footer .widget {
  font-size: 14px;
}

footer .widget_media_image {
  margin-bottom: 12px;
}

footer .widget_media_image img {
  height: 38px !important;
  width: auto !important;
  max-width: 190px !important;
  object-fit: contain;
}

footer .widget_media_image figure {
  margin: 0;
}

footer .widget_block p.wp-block-paragraph {
  margin: 0 0 8px;
  color: #3f3f46;
  font-size: 14px;
  line-height: 1.6;
}

footer .wp-block-social-links {
  display: flex;
  gap: 8px;
  margin-top: 14px;
  padding: 0;
  list-style: none;
}

footer .wp-block-social-links li {
  list-style: none;
}

footer .wp-block-social-links .wp-block-social-link-anchor {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  display: grid;
  place-items: center;
  border: 1px solid #d4d4d8;
  background: #ffffff;
  transition: .15s;
}

footer .wp-block-social-links .wp-block-social-link-anchor svg {
  width: 16px;
  height: 16px;
  fill: #111827 !important;
}

footer .wp-block-social-links .wp-block-social-link:hover .wp-block-social-link-anchor {
  border-color: var(--accent);
}

footer .wp-block-social-links .wp-block-social-link:hover svg {
  fill: var(--accent) !important;
}

footer .widget_nav_menu ul.menu {
  list-style: none;
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
}

footer .widget_nav_menu ul.menu li {
  list-style: none;
}

footer .widget_nav_menu ul.menu a {
  color: #3f3f46 !important;
  font-size: 14px;
}

footer .widget_nav_menu ul.menu a:hover {
  color: var(--accent) !important;
}

footer .widget_block a {
  color: #3f3f46 !important;
}

footer .widget_block a:hover {
  color: var(--accent) !important;
}

footer .col-title {
  color: #000000;
  font-weight: 700;
  font-size: 14px;
  margin-bottom: 12px;
}

/* quick-form column: stretch to match the hero text column's full height,
   keep its own content top-aligned within that taller box. */
#hero.elementor-section>.elementor-container {
  align-items: stretch;
}

.elementor-column.quick-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
  height: 100%;
}

.elementor-column.quick-form .elementor-widget-button .elementor-button {
  width: 100%;
}

.elementor-column.quick-form .elementor-widget-button {
  margin-top: auto;
}

.quick-form-title.elementor-widget-heading .elementor-heading-title {
  font-size: 26px !important;
  line-height: 1.2 !important;
}