/*
 * Parkway Dental Care: shared look for Elementor pages.
 * Layout concept: full-bleed photo bands from the practice's own office footage, alternating with calm white and
 * sea-glass sections; one deep teal for trust, the practice's gold for every booking action.
 * Elementor containers carry the classes below; colors and fonts also exist as Elementor Global Colors/Fonts.
 */
:root {
  --pw-teal-900: #0d3438;   /* primary dark: headings on light, dark bands */
  --pw-teal-700: #17575c;
  --pw-teal-100: #e6f0ee;   /* sea-glass section background */
  --pw-gold-600: #8f5f0e;   /* booking buttons (white text 5.3:1) */
  --pw-gold-500: #b07c1f;   /* brand gold accents, eyebrows on dark */
  --pw-gold-100: #f7efdf;   /* offer band */
  --pw-ink: #18292b;
  --pw-muted: #4f6362;
  --pw-line: #d6e1df;
  --pw-white: #ffffff;
  --pw-display: "Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;
  --pw-body: "Figtree", "Segoe UI", system-ui, sans-serif;
  --pw-radius: 14px;
  --pw-shadow: 0 18px 40px -24px rgba(13, 52, 56, .45);
  --pw-gutter: max(20px, env(safe-area-inset-left, 0px));
}

body { font-family: var(--pw-body); color: var(--pw-ink); background: var(--pw-white); font-size: 17px; line-height: 1.6; }
h1, h2, h3, h4, .elementor-heading-title { font-family: var(--pw-display); color: var(--pw-teal-900); letter-spacing: -0.01em; text-wrap: balance; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
a { color: var(--pw-teal-700); }
:focus-visible { outline: 3px solid var(--pw-gold-500); outline-offset: 2px; }

/* ---------- Sections ---------- */
.pw-section { padding-block: clamp(56px, 8vw, 104px); padding-left: var(--pw-gutter) !important; padding-right: var(--pw-gutter) !important; }
.pw-section--tight { padding-block: clamp(36px, 5vw, 56px); }
.pw-alt { background: var(--pw-teal-100); }
.pw-sand { background: var(--pw-gold-100); }
.pw-dark { background: var(--pw-teal-900); color: #dfeceb; }
.pw-dark .elementor-heading-title, .pw-dark h2, .pw-dark h3 { color: var(--pw-white); }
.pw-dark a:not(.elementor-button) { color: #f1d9a6; }
.pw-inner { max-width: 1200px; margin-inline: auto; width: 100%; }
.pw-narrow { max-width: 760px; margin-inline: auto; }

.pw-eyebrow .elementor-heading-title { font-family: var(--pw-body); font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--pw-gold-600); }
.pw-dark .pw-eyebrow .elementor-heading-title, .pw-hero .pw-eyebrow .elementor-heading-title { color: #f1cf86; }
.pw-h2 .elementor-heading-title { font-size: clamp(30px, 3.6vw, 46px); line-height: 1.1; font-weight: 700; }
.pw-h3 .elementor-heading-title { font-size: clamp(20px, 1.8vw, 24px); line-height: 1.25; font-weight: 700; }
.pw-lede, .pw-lede p { font-size: clamp(18px, 1.5vw, 20px); color: var(--pw-muted); max-width: 62ch; }
.pw-dark .pw-lede, .pw-dark .pw-lede p { color: #c9dedc; }
.pw-center { text-align: center; }
.pw-center .pw-lede, .pw-center .pw-lede p { margin-inline: auto; }

/* ---------- Buttons ---------- */
.elementor-button { font-family: var(--pw-body); font-weight: 700; border-radius: 999px; padding: 15px 28px; font-size: 16px; line-height: 1.2; transition: transform .15s ease, background-color .15s ease, box-shadow .15s ease; }
.pw-btn-book .elementor-button { background: var(--pw-gold-600); color: var(--pw-white); box-shadow: 0 10px 22px -12px rgba(143, 95, 14, .8); }
.pw-btn-book .elementor-button:hover { background: #7a500a; transform: translateY(-1px); }
.pw-btn-call .elementor-button { background: transparent; color: var(--pw-teal-900); border: 2px solid var(--pw-teal-900); }
.pw-btn-call .elementor-button:hover { background: var(--pw-teal-900); color: var(--pw-white); }
.pw-hero .pw-btn-call .elementor-button, .pw-dark .pw-btn-call .elementor-button { color: var(--pw-white); border-color: rgba(255,255,255,.85); }
.pw-hero .pw-btn-call .elementor-button:hover, .pw-dark .pw-btn-call .elementor-button:hover { background: var(--pw-white); color: var(--pw-teal-900); }
.pw-link .elementor-button { background: none; padding: 0; color: var(--pw-teal-700); border-radius: 0; font-size: 16px; border-bottom: 2px solid var(--pw-gold-500); }
.pw-buttons { gap: 12px !important; flex-wrap: wrap; }

/* ---------- Hero ---------- */
.pw-hero { position: relative; min-height: min(86vh, 760px); color: var(--pw-white); padding-left: var(--pw-gutter) !important; padding-right: var(--pw-gutter) !important; padding-block: 120px 64px; }
.pw-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(9, 36, 39, .9) 0%, rgba(9, 36, 39, .72) 42%, rgba(9, 36, 39, .15) 78%), linear-gradient(0deg, rgba(9,36,39,.55), rgba(9,36,39,0) 40%); z-index: 1; pointer-events: none; }
.pw-hero > .e-con-inner, .pw-hero > * { position: relative; z-index: 2; }
.pw-hero h1, .pw-hero .elementor-heading-title { color: var(--pw-white); }
.pw-hero-title .elementor-heading-title { font-size: clamp(38px, 5.4vw, 70px); line-height: 1.02; font-weight: 700; max-width: 14ch; }
.pw-hero .pw-lede, .pw-hero .pw-lede p { color: #e3efee; max-width: 46ch; }
.pw-hero-proof { font-size: 15px; color: #e3efee; }
.pw-hero-proof p { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0; }
.pw-stars { color: #f3c55b; letter-spacing: 2px; }
.pw-hero-page { min-height: 0; padding-block: 140px 72px; }
.pw-hero-page .pw-hero-title .elementor-heading-title { font-size: clamp(34px, 4.4vw, 56px); max-width: 20ch; }

/* ---------- Trust strip ---------- */
.pw-trust { border-bottom: 1px solid var(--pw-line); }
.pw-trust .pw-stat .elementor-heading-title { font-size: clamp(26px, 2.6vw, 34px); font-weight: 700; color: var(--pw-teal-900); }
.pw-trust .pw-stat-label, .pw-trust .pw-stat-label p { font-size: 14px; color: var(--pw-muted); line-height: 1.35; }

/* ---------- Cards and tiles ---------- */
.pw-card { background: var(--pw-white); border-radius: var(--pw-radius); box-shadow: var(--pw-shadow); overflow: hidden; }
.pw-card-body { padding: 26px 26px 28px !important; }
.pw-tile { position: relative; border-radius: var(--pw-radius); overflow: hidden; min-height: 320px; color: var(--pw-white); justify-content: flex-end !important; padding: 26px !important; isolation: isolate; transition: transform .2s ease; }
.pw-tile::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(9,36,39,.92) 0%, rgba(9,36,39,.55) 45%, rgba(9,36,39,.05) 80%); }
.pw-tile .elementor-heading-title { color: var(--pw-white); }
.pw-tile p { color: #dcebe9; font-size: 15px; }
.pw-tile:hover { transform: translateY(-3px); }
.pw-tile a.pw-cover { position: absolute; inset: 0; z-index: 3; }
.pw-photo img { border-radius: var(--pw-radius); width: 100%; object-fit: cover; aspect-ratio: 4 / 3; box-shadow: var(--pw-shadow); }
.pw-photo--tall img { aspect-ratio: 4 / 5; }
.pw-photo--wide img { aspect-ratio: 16 / 10; }

/* ---------- Offers ---------- */
.pw-offer { background: var(--pw-white); border-radius: var(--pw-radius); padding: 28px !important; border: 1px solid #ead9b6; position: relative; }
.pw-offer .pw-price .elementor-heading-title { font-size: clamp(34px, 3.4vw, 46px); color: var(--pw-gold-600); font-weight: 700; line-height: 1; }
.pw-offer .pw-fine, .pw-offer .pw-fine p, .pw-fine p { font-size: 13px; color: var(--pw-muted); }

/* ---------- Doctors ---------- */
.pw-doctor img { aspect-ratio: 3 / 4; object-fit: cover; border-radius: var(--pw-radius); width: 100%; }
.pw-doctor .elementor-heading-title { font-size: 18px; }
.pw-doctor p { font-size: 14px; color: var(--pw-muted); margin: 0; }

/* ---------- Lists ---------- */
.pw-checks .elementor-icon-list-icon i, .pw-checks .elementor-icon-list-icon svg { color: var(--pw-gold-500); fill: var(--pw-gold-500); }
.pw-checks .elementor-icon-list-text { font-size: 17px; }
.pw-checks .elementor-icon-list-item { align-items: flex-start !important; }
.pw-checks .elementor-icon-list-icon { padding-top: 5px; }

/* ---------- FAQ ---------- */
.faq .elementor-accordion-item { border: 0 !important; border-bottom: 1px solid var(--pw-line) !important; }
.faq .elementor-tab-title { padding: 20px 0 !important; font-family: var(--pw-display); font-size: 19px; font-weight: 700; }
.faq .elementor-tab-title a, .faq .elementor-accordion-title { color: var(--pw-teal-900) !important; }
.faq .elementor-tab-content { padding: 0 0 20px !important; border: 0 !important; color: var(--pw-muted); }
.faq .elementor-accordion-icon { color: var(--pw-gold-600); }

/* ---------- Article (converted content) ---------- */
.pw-article .elementor-widget-text-editor { font-size: 18px; }
.pw-article h2 { margin-top: .6em; }
.pw-article ul li { margin-bottom: .35em; }

/* ---------- Header ---------- */
.pw-topbar { background: var(--pw-teal-900); color: #d5e6e4; font-size: 14px; padding-left: var(--pw-gutter) !important; padding-right: var(--pw-gutter) !important; }
.pw-topbar a { color: var(--pw-white); font-weight: 600; text-decoration: none; }
.pw-topbar p { margin: 0; }
.pw-header { background: var(--pw-white); box-shadow: 0 1px 0 var(--pw-line); padding-left: var(--pw-gutter) !important; padding-right: var(--pw-gutter) !important; }
.pw-header .elementor-nav-menu a { font-weight: 600; color: var(--pw-teal-900); font-size: 16px; }
.pw-header .elementor-nav-menu a:hover, .pw-header .elementor-nav-menu a.elementor-item-active { color: var(--pw-gold-600); }
.pw-header .elementor-nav-menu--dropdown a { font-weight: 500; font-size: 15px; }
.pw-header .pw-btn-book .elementor-button { padding: 12px 22px; }

/* ---------- Footer ---------- */
.pw-footer { background: #0a2a2d; color: #bcd2d0; font-size: 15px; padding-left: var(--pw-gutter) !important; padding-right: var(--pw-gutter) !important; }
.pw-footer .elementor-heading-title { color: var(--pw-white); font-size: 17px; }
.pw-footer a { color: #e7f1f0; text-decoration: none; }
.pw-footer a:hover { color: #f1cf86; }
.pw-footer .elementor-icon-list-text { color: #d3e4e2; }
.pw-footer-legal, .pw-footer-legal p { font-size: 13px; color: #8fb0ad; }

/* ---------- Forms (Gravity Forms inside Elementor) ---------- */
.pw-form .gform_wrapper input[type=text], .pw-form .gform_wrapper input[type=email], .pw-form .gform_wrapper input[type=tel], .pw-form .gform_wrapper textarea, .pw-form .gform_wrapper select { border: 1px solid var(--pw-line) !important; border-radius: 10px !important; padding: 12px 14px !important; font-size: 16px !important; background: var(--pw-white) !important; }
.pw-form .gform_wrapper .gform_button, .pw-form .gform_wrapper input[type=submit], .pw-form .gform_wrapper button[type=submit] { background: var(--pw-gold-600) !important; color: var(--pw-white) !important; border: 0 !important; border-radius: 999px !important; padding: 14px 30px !important; font-weight: 700 !important; font-size: 16px !important; cursor: pointer; }
.pw-form .gform_wrapper label, .pw-form .gform_wrapper legend { font-weight: 600 !important; color: var(--pw-teal-900); }

/* ---------- Phone sticky bar ---------- */
.pw-mobile-bar { display: none; }
@media (max-width: 767px) {
  body { font-size: 16px; padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px)); }
  .pw-mobile-bar { display: grid; grid-template-columns: 1fr 1fr; position: fixed; inset: auto 0 0 0; z-index: 9999; background: var(--pw-white); box-shadow: 0 -6px 20px rgba(13,52,56,.18); padding: 8px max(10px, env(safe-area-inset-right, 0px)) calc(8px + env(safe-area-inset-bottom, 0px)) max(10px, env(safe-area-inset-left, 0px)); gap: 8px; }
  .pw-mobile-bar a { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 48px; border-radius: 12px; font-weight: 700; text-decoration: none; font-size: 15px; line-height: 1.15; }
  .pw-mobile-bar__call { border: 2px solid var(--pw-teal-900); color: var(--pw-teal-900); }
  .pw-mobile-bar__call span { font-size: 12px; font-weight: 600; }
  .pw-mobile-bar__book { background: var(--pw-gold-600); color: var(--pw-white); }
  .pw-hero { min-height: 0; padding-block: 96px 48px; }
  .pw-hero::before { background: linear-gradient(0deg, rgba(9,36,39,.94) 0%, rgba(9,36,39,.78) 55%, rgba(9,36,39,.45) 100%); }
  .pw-tile { min-height: 240px; }
  .pw-topbar .pw-hide-sm { display: none !important; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* ---------- Added for header/footer/home build ---------- */
.pw-hero .elementor-background-video-container { z-index: 0; }
.pw-hours { width: 100%; border-collapse: collapse; font-size: 15px; margin: 0; }
.pw-hours th, .pw-hours td { padding: 5px 0; border: 0; border-bottom: 1px solid var(--pw-line); text-align: left; font-weight: 500; background: none; }
.pw-hours td { text-align: right; color: var(--pw-muted); }
.pw-footer .pw-hours th, .pw-footer .pw-hours td { border-color: rgba(255,255,255,.12); color: #d3e4e2; }
.pw-logos { align-items: center; }
.pw-logos img { max-height: 44px; width: auto; object-fit: contain; filter: grayscale(1); opacity: .85; }
.pw-svc-links .elementor-icon-list-text { font-size: 16px; color: var(--pw-teal-700); }
.pw-svc-links a:hover .elementor-icon-list-text { color: var(--pw-gold-600); }
.pw-svc-group { border-top: 3px solid var(--pw-gold-500); padding-top: 18px !important; }
.pw-offer .pw-btn-book { margin-top: auto; }
.pw-offer { height: 100%; }
.pw-doctor .elementor-widget-image img { aspect-ratio: 3 / 4; object-fit: cover; object-position: top; border-radius: var(--pw-radius); }
.pw-doctor .pw-photo img { box-shadow: none; }
.pw-trust .pw-stat .elementor-heading-title { margin: 0; }
.pw-dark .pw-checks .elementor-icon-list-text { color: #dfeceb; }
.pw-dark .pw-form.pw-card { color: var(--pw-ink); }
.pw-map iframe { border-radius: var(--pw-radius); }
.pw-header { z-index: 50; }
.pw-header .elementor-menu-toggle { color: var(--pw-teal-900); }
.pw-logo img { display: block; }
@media (max-width: 1024px) { .pw-header .pw-hide-sm { display: none !important; } }
@media (max-width: 767px) {
  .pw-hero-title .elementor-heading-title { font-size: 38px; }
  .pw-hero-proof p { font-size: 14px; }
  .pw-trust .pw-stat .elementor-heading-title { font-size: 24px; }
}
.pw-hero-copy { max-width: 1200px; margin-inline: auto; width: 100%; position: relative; z-index: 2; }
.pw-hero-copy > * { max-width: 680px; }
.pw-hero > .elementor-background-video-container, .pw-hero > .elementor-background-slideshow { z-index: 0; }
.pw-hours tr, .pw-hours tbody tr:nth-child(odd), .pw-hours tbody tr:nth-child(odd) > th, .pw-hours tbody tr:nth-child(odd) > td, .pw-hours tbody tr:hover > td, .pw-hours tbody tr:hover > th { background: transparent !important; }
.faq .elementor-accordion-icon i, .faq .elementor-accordion-icon svg { color: var(--pw-gold-600); fill: var(--pw-gold-600); }
.pw-hero-copy { margin-left: auto !important; margin-right: auto !important; max-width: 1200px !important; }
.pw-callout { background: var(--pw-gold-100); border-radius: var(--pw-radius); padding: 24px 28px !important; }
.pw-post { font-size: 18px; }
.pw-post h2 { font-size: clamp(26px, 2.6vw, 32px); margin: 1.4em 0 .5em; }
.pw-post h3 { font-size: 21px; margin: 1.2em 0 .4em; }
.pw-post img { border-radius: var(--pw-radius); height: auto; }
.pw-post .alignright { float: right; margin: 0 0 16px 24px; max-width: 45%; }
.pw-post .alignleft { float: left; margin: 0 24px 16px 0; max-width: 45%; }
@media (max-width: 767px) { .pw-post .alignright, .pw-post .alignleft { float: none; margin: 0 0 16px; max-width: 100%; } }
.pw-posts .elementor-post { background: var(--pw-white); border-radius: var(--pw-radius); box-shadow: var(--pw-shadow); overflow: hidden; }
.pw-posts .elementor-post__text { padding: 20px 22px 24px; }
.pw-posts .elementor-post__title a { font-family: var(--pw-display); color: var(--pw-teal-900); font-size: 20px; line-height: 1.25; }
.pw-posts .elementor-post__read-more { color: var(--pw-gold-600); font-weight: 700; }
.pw-posts .elementor-post__thumbnail img { object-fit: cover; }
.pw-embed { position: relative; aspect-ratio: 16 / 9; }
.pw-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; border-radius: var(--pw-radius); }
.pw-hero .elementor-post-info, .pw-hero .elementor-post-info * { color: #e3efee !important; }
.pw-posts .elementor-post__thumbnail__link { width: 100% !important; margin-bottom: 0 !important; }
.pw-posts .elementor-post__thumbnail img { width: 100%; }
