﻿:root {
  --pat-bg: #f7fafc;
  --pat-bg-accent: #eef7ff;
  --pat-surface: #ffffff;
  --pat-surface-2: #f4f8fc;
  --pat-text: #0f172a;
  --pat-text-soft: #475569;
  --pat-primary: #0f766e;
  --pat-primary-2: #0ea5e9;
  --pat-highlight: #f59e0b;
  --pat-border: #cbd5e1;
  --pat-shadow: 0 10px 34px rgba(15, 23, 42, 0.08);
  --pat-radius: 16px;
  --pat-radius-sm: 12px;
  --pat-trans: 240ms cubic-bezier(0.22, 1, 0.36, 1);
}

html,
body {
  background:
    radial-gradient(900px 320px at 8% -2%, rgba(14, 165, 233, 0.12), transparent 62%),
    radial-gradient(700px 280px at 92% 1%, rgba(20, 184, 166, 0.14), transparent 60%),
    linear-gradient(180deg, #fcfdff, var(--pat-bg));
  color: var(--pat-text);
}

body,
.elementor-widget-text-editor,
.elementor-widget-icon-list,
.elementor-widget-icon-box {
  font-family: 'Manrope', system-ui, -apple-system, Segoe UI, sans-serif;
}

h1,
h2,
h3,
h4,
h5,
h6,
.elementor-widget-heading .elementor-heading-title {
  font-family: 'Sora', 'Manrope', system-ui, sans-serif;
  color: var(--pat-text);
  letter-spacing: -0.02em;
  line-height: 1.1;
}

.elementor-widget-heading h1.elementor-heading-title,
.elementor-widget-heading .elementor-heading-title.elementor-size-xxl {
  font-size: clamp(2.1rem, 4.6vw, 4.1rem);
}

.elementor-widget-heading h2.elementor-heading-title,
.elementor-widget-heading .elementor-heading-title.elementor-size-xl {
  font-size: clamp(1.6rem, 3.4vw, 2.8rem);
}

p,
.elementor-widget-text-editor,
.elementor-widget-text-editor p,
.elementor-widget-icon-list .elementor-icon-list-text {
  color: var(--pat-text-soft);
  font-size: 1.03rem;
}

a {
  color: var(--pat-primary);
  transition: color var(--pat-trans);
}

a:hover {
  color: var(--pat-primary-2);
}

/* Global Elementor container polish */
body .elementor .e-con,
body .elementor .elementor-section {
  transition: transform var(--pat-trans), box-shadow var(--pat-trans), border-color var(--pat-trans);
}

/* Card-like treatment for common Elementor widgets */
.elementor-widget-icon-box .elementor-widget-container,
.elementor-widget-image-box .elementor-widget-container,
.elementor-widget-testimonial .elementor-widget-container,
.elementor-widget-posts .elementor-post {
  background: var(--pat-surface);
  border: 1px solid var(--pat-border);
  border-radius: var(--pat-radius);
  box-shadow: var(--pat-shadow);
}

.elementor-widget-icon-box .elementor-widget-container,
.elementor-widget-image-box .elementor-widget-container,
.elementor-widget-testimonial .elementor-widget-container {
  padding: 1.1rem;
}

.elementor-widget-icon-box .elementor-icon-box-title,
.elementor-widget-image-box .elementor-image-box-title {
  color: var(--pat-text);
}

.elementor-widget-icon-box .elementor-icon,
.elementor-widget-icon-box .elementor-icon-box-icon i,
.elementor-widget-icon-box .elementor-icon-box-icon svg {
  color: var(--pat-primary);
}

/* Buttons */
.elementor-button,
button,
input[type='button'],
input[type='submit'] {
  border-radius: 12px;
  border: 1px solid transparent;
  padding: 0.78rem 1.2rem;
  font-family: 'Sora', 'Manrope', sans-serif;
  font-weight: 600;
  letter-spacing: 0.01em;
  transition: transform var(--pat-trans), box-shadow var(--pat-trans), background-color var(--pat-trans), border-color var(--pat-trans), color var(--pat-trans);
}

.elementor-button,
input[type='submit'] {
  background: linear-gradient(135deg, var(--pat-primary), var(--pat-primary-2));
  color: #ffffff;
  box-shadow: 0 10px 26px rgba(14, 116, 110, 0.23);
}

.elementor-button:hover,
input[type='submit']:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(14, 116, 110, 0.3);
  color: #ffffff;
}

.elementor-button.elementor-button-link,
.elementor-button.elementor-size-sm {
  min-height: 44px;
}

/* Forms */
input[type='text'],
input[type='email'],
input[type='url'],
input[type='search'],
input[type='tel'],
input[type='password'],
textarea,
select,
.elementor-field {
  border: 1px solid var(--pat-border);
  border-radius: var(--pat-radius-sm);
  background: #fff;
  color: var(--pat-text);
  min-height: 46px;
}

input:focus,
textarea:focus,
select:focus,
.elementor-field:focus {
  border-color: var(--pat-primary-2);
  outline: none;
  box-shadow: 0 0 0 3px rgba(14, 165, 233, 0.16);
}

/* Header/Footer shell */
.elementor-location-header,
header.site-header {
  backdrop-filter: saturate(140%) blur(8px);
}

.elementor-location-header .e-con,
header.site-header {
  background: rgba(255, 255, 255, 0.86);
  border-bottom: 1px solid var(--pat-border);
}

.elementor-location-footer .e-con,
footer.site-footer {
  background: linear-gradient(180deg, #ffffff, #f4f8fc);
  border-top: 1px solid var(--pat-border);
}

/* Motion */
.pat-reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.66s ease, transform 0.66s ease;
}

.pat-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Utility classes for Elementor editor */
.pat-surface {
  background: var(--pat-surface);
  border: 1px solid var(--pat-border);
  border-radius: var(--pat-radius);
  box-shadow: var(--pat-shadow);
}

.pat-soft-surface {
  background: var(--pat-surface-2);
  border: 1px solid var(--pat-border);
  border-radius: var(--pat-radius);
}

.pat-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: #ccfbf1;
  color: #115e59;
  border-radius: 999px;
  padding: 0.34rem 0.72rem;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.pat-gradient-text {
  background: linear-gradient(130deg, var(--pat-primary), var(--pat-primary-2));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.pat-grid-cards .e-con,
.pat-grid-cards .elementor-column,
.pat-grid-cards .elementor-widget-wrap {
  gap: 14px;
}

/* Blog cards */
.elementor-widget-posts .elementor-post {
  overflow: hidden;
}

.elementor-widget-posts .elementor-post__title a {
  color: var(--pat-text);
}

.elementor-widget-posts .elementor-post:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 28px rgba(15, 23, 42, 0.12);
  border-color: #a8c2dc;
}

/* Responsive */
@media (max-width: 1024px) {
  .elementor-widget-heading h1.elementor-heading-title,
  .elementor-widget-heading .elementor-heading-title.elementor-size-xxl {
    font-size: clamp(1.9rem, 5vw, 3.1rem);
  }

  p,
  .elementor-widget-text-editor,
  .elementor-widget-text-editor p {
    font-size: 0.99rem;
  }
}

@media (max-width: 767px) {
  .elementor-button,
  button,
  input[type='button'],
  input[type='submit'] {
    width: 100%;
    justify-content: center;
  }

  .elementor-widget-icon-box .elementor-widget-container,
  .elementor-widget-image-box .elementor-widget-container,
  .elementor-widget-testimonial .elementor-widget-container {
    padding: 0.95rem;
  }
}
