/* =========================================================
   All Souls Healthcare — WordPress + Elementor layer
   Loaded after theme.css. Adapts the static design system to
   WordPress markup (menus, posts, comments) and to Elementor
   containers/widgets so seeded pages match the original site.
   ========================================================= */

strong{ color:var(--ink); }
.bg-ink strong, .cta-band strong, .site-footer strong{ color:#fff; }

.screen-reader-text{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.screen-reader-text:focus{
  clip:auto; width:auto; height:auto; margin:0; left:1rem; top:1rem; z-index:200;
  background:var(--ink); color:#fff; padding:.9em 1.4em; border-radius:8px;
}

/* ---- Header / menu (wp_nav_menu markup) ---- */
.admin-bar .site-header{ top:32px; }
@media (max-width:782px){ .admin-bar .site-header{ top:46px; } }
@media (max-width:600px){ .admin-bar .site-header{ top:0; } }

.brand img, .brand .custom-logo{ height:56px; width:auto; max-width:140px; object-fit:contain; display:block; }
.brand{ width:auto; }
.brand-text{ font-family:var(--font-head); font-weight:600; font-size:1.2rem; color:var(--ink); line-height:1.1; }

.nav-menu{ display:flex; align-items:center; gap:clamp(1.1rem,2vw,2.1rem); }
.nav-menu li{ position:relative; }
.nav-menu .sub-menu{
  position:absolute; top:calc(100% + .6rem); left:-1rem; min-width:220px;
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-md);
  box-shadow:var(--shadow-card); padding:.6rem 1rem; display:none; flex-direction:column; gap:.2rem; z-index:160;
}
.nav-menu li:hover > .sub-menu, .nav-menu li:focus-within > .sub-menu{ display:flex; }
.nav-menu .sub-menu a{ display:block; padding:.45em 0; }
.nav-menu .sub-menu a::after{ display:none; }

.nav-toggle svg{ width:22px; height:22px; }
.nav-toggle{ cursor:pointer; }
.cta-actions{ display:flex; gap:.9rem; flex-wrap:wrap; }
.nav-cta{ min-width:0; }
.nav-cta .btn{ padding:.75em 1.35em; }

@media (max-width: 900px){
  .primary-nav{ top:var(--nav-top, 64px); height:calc(100dvh - var(--nav-top, 64px)); }
  .nav-menu{ flex-direction:column; align-items:stretch; gap:0; width:100%; }
  .nav-menu li{ width:100%; }
  .nav-menu .sub-menu{
    position:static; display:flex; border:0; box-shadow:none; background:none;
    padding:0 0 0 1rem; min-width:0;
  }
  .nav-menu .sub-menu a{ padding:.8em 0; }
  body.nav-open{ overflow:hidden; }
  body.nav-open .site-header{ z-index: 200; }
}
@media (max-width: 480px){
  .nav{ gap:.75rem; }
  .nav-cta{ gap:.55rem; }
  .nav-cta .btn{ padding:.7em 1rem; font-size:.92rem; }
}
@media (max-width: 360px){
  .nav-cta .btn{ display:none; }
}

/* ---- Footer ---- */
.footer-col ul{ list-style:none; margin:0; padding:0; }
.footer-logo{ height:68px; width:auto; max-width:160px; }
.footer-hours{ font-size:.9rem; color:#A9B2CC; margin-top:.8rem; }

/* ---- Generic page + post content ---- */
.site-main{ display:block; }
.page-content{ padding-top:1rem; }
.prose > *:first-child{ margin-top:0; }
.prose ol{ margin:0 0 1.3em; padding-left:1.4em; }
.prose ol li{ list-style:decimal; font-size:1.05rem; color:var(--ink-soft); margin-bottom:.5em; }
.prose img{ height:auto; border-radius:var(--radius-md); }
.prose figure{ margin:1.8em 0; }
.prose figcaption, .wp-caption-text{ font-size:.85rem; color:var(--ink-mute); margin-top:.5rem; }
.prose table{ width:100%; border-collapse:collapse; margin:0 0 1.3em; }
.prose th, .prose td{ text-align:left; padding:.6rem .5rem; border-bottom:1px solid var(--line); }
.prose hr{ height:1px; background:var(--line); border:0; margin:2em 0; }
.prose .related-box ul{ padding:0; margin:0; }
.prose .related-box li{ list-style:none; font-size:1rem; margin:0; }
.prose .related-box li::before{
  content:""; width:16px; height:16px; flex:none; background:var(--teal-deep);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%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' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;
}
.prose .related-box a{ text-decoration:none; color:var(--ink); }
.alignleft{ float:left; margin:.3em 1.5em 1em 0; }
.alignright{ float:right; margin:.3em 0 1em 1.5em; }
.aligncenter{ margin-inline:auto; }
.alignwide, .alignfull{ max-width:none; }

.wrap--narrow{ max-width:860px; }
.wrap--article{ max-width:800px; }
.section--flush-top{ padding-top:1rem; }

.back-link{
  display:inline-flex; align-items:center; gap:.4em; font-weight:700;
  color:var(--teal-deep); font-size:.92rem; margin-bottom:1.2rem;
}
.back-link svg{ width:16px; height:16px; }
.page-hero .blog-tag{ display:inline-flex; margin-bottom:1rem; }
.article-hero{ padding-bottom:0; }
.article-featured{ margin-top:2rem; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-card); }
.article-featured img{ width:100%; height:auto; }

/* ---- Blog cards ---- */
.blog-card-media{ color:var(--teal-deep); }
.blog-card-media svg{ width:64px; height:64px; }
.blog-card-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.blog-card-media.tone-gold{ background:linear-gradient(140deg,#FBF1DA,#EFE0B0); color:var(--gold-deep); }
.blog-card-media.tone-sky{ background:linear-gradient(140deg,var(--sky-pale),#CFE8F6); color:var(--sky); }
.blog-card-media.tone-teal{ background:linear-gradient(140deg,var(--panel-tint),#D9EDE3); color:var(--teal-deep); }
.blog-card-media.tone-mix{ background:linear-gradient(140deg,#FBF1DA,var(--sky-pale)); color:var(--ink); }
.blog-card h3 a{ color:inherit; }
.blog-empty{ background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-md); padding:2rem; }

.pagination{ margin-top:2.5rem; }
.pagination .nav-links{ display:flex; flex-wrap:wrap; gap:.5rem; }
.pagination .page-numbers{
  min-width:44px; height:44px; padding:0 .9rem; border-radius:100px; border:1px solid var(--line);
  display:inline-flex; align-items:center; justify-content:center; font-weight:600; background:var(--panel);
}
.pagination .page-numbers.current{ background:var(--ink); color:#fff; border-color:var(--ink); }

/* ---- Search + 404 ---- */
.search-form{ display:flex; gap:.6rem; flex-wrap:wrap; max-width:520px; margin-top:1.5rem; }
.search-form label{ flex:1 1 240px; }
.search-field{
  width:100%; min-height:48px; padding:.7em 1.1em; font:inherit; color:var(--ink);
  border:1.5px solid var(--line); border-radius:100px; background:var(--panel);
}
.search-submit{
  min-height:48px; padding:.7em 1.5em; border-radius:100px; border:0; cursor:pointer;
  background:var(--ink); color:#fff; font-weight:600;
}

/* ---- Comments ---- */
.comments-area{ margin-top:3rem; padding-top:2rem; border-top:1px solid var(--line); }
.comment-list{ display:flex; flex-direction:column; gap:1.2rem; margin-bottom:2rem; }
.comment-list .children{ margin:1rem 0 0 1.5rem; display:flex; flex-direction:column; gap:1rem; }
.comment-body{ background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-md); padding:1.2rem 1.4rem; }
.comment-meta{ font-size:.85rem; color:var(--ink-mute); margin-bottom:.6rem; }
.comment-meta .avatar{ display:inline-block; border-radius:50%; vertical-align:middle; margin-right:.5rem; }
.comment-form label{ display:block; font-weight:600; color:var(--ink); margin-bottom:.3rem; }
.comment-form input[type=text], .comment-form input[type=email], .comment-form input[type=url], .comment-form textarea{
  width:100%; padding:.7em 1em; font:inherit; border:1.5px solid var(--line); border-radius:var(--radius-sm); background:var(--panel);
}
.comment-form .submit{ padding:.85em 1.6em; border-radius:100px; border:0; background:var(--ink); color:#fff; font-weight:600; cursor:pointer; }

/* =========================================================
   ELEMENTOR ADAPTER
   Seeded pages use Elementor containers carrying the design
   classes above. Elementor's own container/widget defaults are
   neutralised here so spacing comes from the design system;
   values staff set in the Elementor panel still win.
   ========================================================= */
.elementor .e-con{
  --padding-top:0px; --padding-right:0px; --padding-bottom:0px; --padding-left:0px;
  --margin-top:0px; --margin-right:0px; --margin-bottom:0px; --margin-left:0px;
  --gap:0px 0px; --row-gap:0px; --column-gap:0px;
  --widgets-spacing:0px 0px; --widgets-spacing-row:0px; --widgets-spacing-column:0px;
  --min-height:0;
}
.elementor .e-con > .elementor-widget{ margin-block-end:0; }
.elementor .elementor-widget-html,
.elementor .elementor-widget-text-editor{ color:inherit; }

/* Spacing between stacked widgets, mirroring the original paragraph rhythm */
:where(.elementor .e-con > .elementor-widget-text-editor:not(:last-child)){ margin-bottom:1.1em; }
:where(.elementor .e-con > .elementor-widget-icon-list:not(:last-child)){ margin-bottom:1.1em; }
.elementor .elementor-widget-text-editor p:last-child{ margin-bottom:0; }

/* Headings */
.elementor .elementor-widget-heading .elementor-heading-title{ line-height:1.15; margin:0 0 .5em; }
.elementor .elementor-widget-heading:last-child .elementor-heading-title{ margin-bottom:0; }
.elementor .eyebrow .elementor-heading-title{ font:inherit; color:inherit; line-height:1.3; margin:0; }
.elementor .e-con > .eyebrow{ margin:0 0 .7em; }
.elementor .page-hero .e-con > .eyebrow{ margin-bottom:.9rem; }
.elementor .section-head.center > .eyebrow{ justify-content:center; }
.elementor .section-head > .elementor-widget-heading:last-child .elementor-heading-title{ margin-bottom:0; }
.elementor .section-head > .elementor-widget-text-editor{ font-size:1.08rem; }

/* Buttons */
.elementor .as-btn .elementor-button{
  display:inline-flex; align-items:center; justify-content:center; gap:.55em;
  padding:.85em 1.6em; border-radius:100px; border:1.5px solid transparent;
  font-family:var(--font-body); font-weight:600; font-size:1rem; line-height:1.2;
  white-space:nowrap; cursor:pointer; background:transparent; color:var(--ink); fill:currentColor;
  transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease, border-color .18s ease;
}
.elementor .as-btn .elementor-button-content-wrapper{ display:inline-flex; align-items:center; gap:.55em; }
.elementor .as-btn .elementor-button-icon{ display:inline-flex; margin:0; }
.elementor .as-btn .elementor-button-icon svg{ width:1.05em; height:1.05em; fill:currentColor; }
.elementor .as-btn .elementor-button-icon i{ font-size:1em; }
.elementor .as-btn-primary .elementor-button{ background:var(--ink); color:#fff; box-shadow:var(--shadow-card); }
.elementor .as-btn-primary .elementor-button:hover,
.elementor .as-btn-primary .elementor-button:focus-visible{ background:var(--sky); color:#fff; transform:translateY(-1px); }
.elementor .as-btn-gold .elementor-button{ background:var(--gold); color:var(--ink); }
.elementor .as-btn-gold .elementor-button:hover{ background:var(--gold-deep); color:var(--ink); }
.elementor .as-btn-outline .elementor-button{ border-color:var(--ink); color:var(--ink); }
.elementor .as-btn-outline .elementor-button:hover,
.elementor .as-btn-outline .elementor-button:focus-visible{ background:var(--ink); color:#fff; }
.elementor .as-btn-outline-light .elementor-button{ border-color:rgba(255,255,255,.55); color:#fff; }
.elementor .as-btn-outline-light .elementor-button:hover,
.elementor .as-btn-outline-light .elementor-button:focus-visible{ background:#fff; color:var(--ink); }
.elementor .cta-band .as-btn-primary .elementor-button{ background:var(--gold); color:var(--ink); }
.elementor .cta-band .as-btn-primary .elementor-button:hover{ background:#F1C24A; color:var(--ink); }
.elementor .as-btn-card-link .elementor-button{
  padding:0; border:0; border-radius:0; background:none; box-shadow:none;
  font-weight:700; color:var(--ink); white-space:normal; text-align:left; justify-content:flex-start;
}
.elementor .as-btn-card-link .elementor-button-content-wrapper{ gap:.4em; }
.elementor .as-btn-card-link .elementor-button:hover{ color:var(--teal-deep); background:none; }
.elementor .as-btn-card-link .elementor-button-icon svg{ width:1em; height:1em; transition:transform .18s ease; }
.elementor .service-card:hover .as-btn-card-link .elementor-button-icon svg{ transform:translateX(3px); }
.elementor .service-card > .as-btn-card-link{ margin-top:auto; padding-top:1.4rem; }

/* Images */
.elementor .elementor-widget-image img{ display:block; }
.elementor .col-media img,
.elementor .story-media .elementor-widget-image img{
  border-radius:var(--radius-lg); box-shadow:var(--shadow-lift);
  width:100%; height:100%; aspect-ratio:4/4.6; object-fit:cover; object-position:center 20%;
}
.elementor .col-media.center-crop img{ object-position:center center; }
.elementor .col-media figure{ margin:0; }
.elementor .col-media figcaption{ font-size:.78rem; color:var(--ink-mute); margin-top:.5rem; text-align:left; }
.elementor .member-badge .elementor-widget-image img{ width:130px; height:auto; }

/* ---- Section wrappers ---- */
.elementor .e-con.section{ padding-block:clamp(3.5rem,7vw,6.5rem); }
.elementor .e-con.section.section--flush-top{ padding-top:1rem; }
.elementor .e-con.section-tight{ padding-block:clamp(2.5rem,5vw,4rem); }
.elementor .e-con.page-hero{ padding-block:clamp(3rem,6vw,4.5rem) clamp(2rem,4vw,3rem); overflow:hidden; }
.elementor .e-con.hero{ padding-block:clamp(3rem,7vw,5.5rem); overflow:hidden; position:relative; }
.elementor .e-con.bg-panel{ background:var(--panel-tint); }
.elementor .e-con.watermark-host{ position:relative; overflow:hidden; }
.elementor .e-con.watermark-host > .elementor-widget-html{ position:static; }
.elementor .e-con.watermark-host > .e-con.wrap{ position:relative; z-index:1; }
.elementor .e-con.trust-strip{ background:var(--panel); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.elementor [id]{ scroll-margin-top:100px; }

.elementor .e-con.wrap{
  width:100%; max-width:var(--max-w); margin-inline:auto;
  padding-inline:clamp(1.25rem,4vw,2.75rem);
}
.elementor .e-con.wrap.wrap--narrow{ max-width:860px; }

/* Elementor draws background overlays with ::before/::after on containers;
   the hero and steps reuse those pseudo-elements for their own decoration. */
.elementor .e-con.hero::before, .elementor .e-con.hero::after{
  content:""; position:absolute; z-index:0; pointer-events:none; border-radius:50%;
  filter:blur(60px); opacity:1; mix-blend-mode:normal; inset:auto;
}
.elementor .e-con.hero::before{
  width:46vw; height:46vw; max-width:640px; max-height:640px; top:-18%; right:-12%;
  background:radial-gradient(circle at 30% 30%, rgba(227,172,34,.22), rgba(227,172,34,0) 70%);
}
.elementor .e-con.hero::after{
  width:36vw; height:36vw; max-width:520px; max-height:520px; bottom:-16%; left:-10%;
  background:radial-gradient(circle at 60% 60%, rgba(60,151,214,.16), rgba(60,151,214,0) 70%);
}

/* ---- Layout grids ---- */
.elementor .e-con.hero-grid{
  display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,5vw,4rem);
  align-items:center; position:relative; z-index:1;
}
.elementor .e-con.two-col{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,4vw,3.5rem); align-items:center; }
.elementor .e-con.story{ display:grid; grid-template-columns:.95fr 1.05fr; gap:clamp(2.4rem,5vw,4.5rem); align-items:center; }
.elementor .e-con.card-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; }
.elementor .e-con.values-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.4rem; }
.elementor .e-con.testi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.elementor .e-con.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; counter-reset:step; }
.elementor .e-con.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,4vw,3.5rem); align-items:start; }
.elementor .e-con.hero-grid > *, .elementor .e-con.two-col > *, .elementor .e-con.story > *,
.elementor .e-con.contact-grid > *{ min-width:0; width:auto; }

.elementor .e-con.section-head{ max-width:56ch; margin-bottom:clamp(2rem,4vw,3rem); }
.elementor .e-con.section-head.center{ margin-inline:auto; text-align:center; }

/* ---- Hero ---- */
.elementor .e-con.hero-actions{ display:flex; flex-direction:row; flex-wrap:wrap; gap:.9rem; margin-bottom:1.7rem; }
.elementor .e-con.hero-actions > .elementor-widget{ width:auto; }
.elementor .hero-credentials{ padding-top:1.5rem; border-top:1px solid var(--line); animation:rise-in .7s cubic-bezier(.2,.7,.3,1) .33s both; }
.elementor .hero-credentials p{
  display:inline-flex; flex-direction:column; vertical-align:top;
  margin:0 2rem .8rem 0; font-size:.86rem; color:var(--ink-mute); line-height:1.45;
}
.elementor .hero-credentials p:last-child{ margin-bottom:.8rem; }
.elementor .hero-credentials strong{ font-family:var(--font-head); font-size:1.55rem; color:var(--ink); font-weight:600; line-height:1.3; }
.elementor .hero-credentials br{ display:none; }
.elementor .e-con.hero-visual{ position:relative; padding:8% 6% 14% 8%; animation:rise-in .8s cubic-bezier(.2,.7,.3,1) .18s both; }
.elementor .e-con.hero-visual > .elementor-widget-html{ position:static; }
.elementor .hero-art{
  position:relative; z-index:1; border-radius:var(--radius-lg); overflow:hidden;
  box-shadow:var(--shadow-lift); aspect-ratio:4/4.5; min-height:280px;
  border:6px solid var(--panel);
  background:linear-gradient(150deg, #FBF1DA, var(--panel-tint) 60%, var(--sky-pale));
}
.elementor .hero-art .elementor-widget-container{ height:100%; }
.elementor .hero-art img{ width:100%; height:100%; object-fit:cover; object-position:center 20%; }

/* ---- Trust strip (Icon List widget, inline) ---- */
.elementor .e-con.trust-row{ padding-block:1.7rem; }
.elementor .trust-row .elementor-icon-list-items{
  display:flex; flex-wrap:wrap; gap:1.2rem 3rem; justify-content:space-between; margin:0;
}
.elementor .trust-row .elementor-icon-list-item{
  margin:0 !important; padding:0; font-weight:600; font-size:.98rem; color:var(--ink-soft);
  display:flex; align-items:center; gap:.7rem;
}
.elementor .trust-row .elementor-icon-list-item::after{ display:none; }
.elementor .trust-row .elementor-icon-list-icon{ color:var(--teal-deep); fill:var(--teal-deep); }
.elementor .trust-row .elementor-icon-list-icon svg{ width:1.4em; height:1.4em; fill:var(--teal-deep); }
.elementor .trust-row .elementor-icon-list-icon i{ font-size:1.25em; color:var(--teal-deep); }
.elementor .trust-row .elementor-icon-list-text{ padding:0; color:inherit; }

/* ---- Check lists (Icon List widget) ---- */
.elementor .tag-list .elementor-icon-list-items{ display:flex; flex-direction:column; gap:.7rem; margin:0; padding:0; }
.elementor .tag-list .elementor-icon-list-item{
  display:flex; align-items:flex-start; gap:.7rem; margin:0; padding:0;
  font-size:.97rem; color:var(--ink-soft); line-height:1.55;
}
.elementor .tag-list .elementor-icon-list-icon{ margin-top:.2em; }
.elementor .tag-list .elementor-icon-list-icon svg{ width:17px; height:17px; fill:var(--gold-deep); }
.elementor .tag-list .elementor-icon-list-icon i{ font-size:15px; color:var(--gold-deep); }
.elementor .tag-list .elementor-icon-list-text{ padding:0; color:inherit; }
.elementor .e-con > .tag-list{ margin-block:1.4rem; }

/* ---- Cards ---- */
.elementor .e-con.service-card{
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-md);
  padding:2rem 1.8rem; display:flex; flex-direction:column; width:auto;
}
.elementor .e-con.service-card > .elementor-widget-html{ margin-bottom:1.1rem; }
.elementor .service-card h3{ margin-bottom:.5rem; }
.elementor .service-card p{ font-size:.98rem; }
.elementor .e-con.value-card{
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-md);
  padding:1.9rem; display:flex; flex-direction:row; flex-wrap:nowrap; gap:1.1rem; width:auto;
}
.elementor .e-con.value-card > .elementor-widget-html{ flex:none; width:auto; }
.elementor .e-con.value-card > .elementor-widget-text-editor{ flex:1; min-width:0; }
.elementor .value-card h3{ margin-bottom:.3rem; font-size:1.14rem; }
.elementor .value-card p{ font-size:.95rem; }
.elementor .e-con.testi-card{
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-md);
  padding:1.8rem; display:flex; flex-direction:column; gap:1rem; width:auto;
}
.elementor .e-con.testi-card > .elementor-widget{ margin:0; }
.elementor .testi-card blockquote{ margin:0; font-size:.98rem; color:var(--ink-soft); font-style:italic; }
.elementor .testi-card blockquote p{ margin:0; }
.elementor .testi-cite p{ font-size:.82rem; color:var(--ink-mute); line-height:1.5; }
.elementor .testi-cite strong{ display:block; font-size:.9rem; font-weight:700; color:var(--ink); }
.elementor .testi-cite br{ display:none; }
.elementor .testi-stars-widget .elementor-star-rating,
.elementor .testi-stars-widget .elementor-star-rating i{ color:var(--gold); }
.elementor .testi-stars-widget .elementor-star-rating svg{ fill:var(--gold); width:16px; height:16px; }
.elementor .testi-quote .elementor-testimonial-wrapper{ display:flex; flex-direction:column; gap:.85rem; text-align:left; }
.elementor .testi-quote .elementor-testimonial-content{
  font-size:.98rem; color:var(--ink-soft); font-style:italic; margin:0;
}
.elementor .testi-quote .elementor-testimonial-meta{ padding:0; }
.elementor .testi-quote .elementor-testimonial-name{ font-size:.9rem; font-weight:700; color:var(--ink); }
.elementor .testi-quote .elementor-testimonial-job{ font-size:.82rem; color:var(--ink-mute); font-style:normal; }
.elementor .testi-quote .elementor-testimonial-image,
.elementor .testi-quote .elementor-testimonial-icon{ display:none; }

/* ---- Steps ---- */
.elementor .e-con.step{ position:relative; padding:0 1.4rem 0 0; width:auto; }
.elementor .e-con.step::before{
  counter-increment:step; content:counter(step);
  position:static; inset:auto; opacity:1; mix-blend-mode:normal; border-radius:50%;
  font-family:var(--font-head); font-weight:600; font-size:1.05rem; color:var(--ink);
  width:38px; height:38px; background:var(--panel); border:1.5px solid var(--gold-deep);
  display:flex; align-items:center; justify-content:center; margin-bottom:1.1rem; flex:none;
}
.elementor .e-con.step:not(:last-child)::after{
  content:""; position:absolute; top:18px; left:40px; right:-1.4rem; height:3px; width:auto; bottom:auto;
  border:0; border-radius:0; opacity:.55; mix-blend-mode:normal;
  background-image:radial-gradient(circle, var(--sky) 1.4px, transparent 1.6px);
  background-size:9px 3px; background-repeat:repeat-x;
  animation:trail-flow 1.8s linear infinite;
}
.elementor .step h3{ font-size:1.06rem; margin-bottom:.4rem; }
.elementor .step p{ font-size:.92rem; }

/* ---- About story ---- */
.elementor .e-con.story-media{ position:relative; }
.elementor .story-media .credential-pin{
  position:absolute; bottom:-1.3rem; left:-1.3rem; width:auto; max-width:230px; z-index:2;
  background:var(--panel); border-radius:var(--radius-md); box-shadow:var(--shadow-card);
  padding:1.1rem 1.4rem; border:1px solid var(--line);
}
.elementor .credential-pin p{ font-size:.82rem; color:var(--ink-mute); line-height:1.45; }
.elementor .credential-pin strong{ display:block; font-family:var(--font-head); font-size:1.05rem; }
.elementor .credential-pin br{ display:none; }
.elementor .story-body p{ font-size:1.03rem; }
.elementor .story-body .signature{ font-family:var(--font-head); font-style:italic; font-size:1.25rem; color:var(--ink); margin-top:.5rem; }
.elementor .story-body .signature p{ font-size:inherit; color:inherit; }
.elementor .e-con.member-badge{ display:flex; flex-direction:row; flex-wrap:nowrap; align-items:center; gap:1.1rem; margin-top:1.4rem; }
.elementor .e-con.member-badge > .elementor-widget{ width:auto; flex:none; }
.elementor .e-con.member-badge > .elementor-widget-text-editor{ flex:1; }
.elementor .member-badge p{ font-family:var(--font-head); font-weight:600; font-size:1.05rem; color:var(--ink); line-height:1.35; }

/* ---- Price + CTA ---- */
.elementor .e-con.price-card{
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-md);
  padding:2rem; display:flex; flex-direction:row; align-items:center; justify-content:space-between;
  gap:1.5rem; flex-wrap:wrap; margin-top:2.5rem;
}
.elementor .e-con.price-card > .elementor-widget{ width:auto; margin:0; }
.elementor .price-card p + p{ color:var(--ink-mute); font-size:.94rem; }
.elementor .price-card p:first-child{ margin-bottom:.2rem; }
.elementor .price-card .amount p{ font-family:var(--font-head); font-size:2.4rem; color:var(--ink); font-weight:600; line-height:1.1; margin:0; }
.elementor .price-card .amount small{ font-size:1rem; font-weight:500; color:var(--ink-mute); }
.elementor .e-con.cta-band{
  position:relative; overflow:hidden; background:var(--ink); color:#fff; border-radius:var(--radius-lg);
  padding:clamp(2.2rem,5vw,3.6rem); display:flex; flex-direction:row; align-items:center;
  justify-content:space-between; gap:2rem; flex-wrap:wrap;
}
.elementor .e-con.cta-band > .e-con{ width:auto; flex:0 1 auto; }
.elementor .cta-band h2{ color:#fff; margin-bottom:.35rem; max-width:22ch; }
.elementor .cta-band p{ color:#C5CCE0; max-width:42ch; }
.elementor .e-con.cta-actions{ display:flex; flex-direction:row; flex-wrap:wrap; gap:.9rem; }
.elementor .e-con.cta-actions > .elementor-widget{ width:auto; }

/* ---- FAQ (Nested Accordion widget) ---- */
.elementor .faq-list.elementor-widget{ display:block; width:100%; }
.elementor .faq-list .e-n-accordion{ display:flex; flex-direction:column; gap:.85rem; width:100%; }
.elementor .faq-list .e-n-accordion-item{
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-md); overflow:hidden;
}
.elementor .faq-list .e-n-accordion-item-title{
  cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:1.3rem 1.6rem; margin:0; background:none; border:0;
  font-family:var(--font-head); font-weight:600; color:var(--ink); font-size:1.06rem;
}
.elementor .faq-list .e-n-accordion-item-title::-webkit-details-marker{ display:none; }
.elementor .faq-list .e-n-accordion-item-title-header{ flex:1; }
.elementor .faq-list .e-n-accordion-item-title-text{ font:inherit; color:inherit; }
.elementor .faq-list .e-n-accordion-item-title-icon{
  order:2; flex:none; width:30px; height:30px; border-radius:50%; border:1.5px solid var(--line);
  display:flex; align-items:center; justify-content:center; color:var(--ink);
}
.elementor .faq-list .e-n-accordion-item-title-icon svg{ width:12px; height:12px; fill:var(--ink); }
.elementor .faq-list .e-n-accordion-item-title-icon i{ font-size:12px; color:var(--ink); }
.elementor .faq-list .e-n-accordion-item[open] > .e-n-accordion-item-title{ border-bottom:1px solid var(--line); }
.elementor .faq-list .e-n-accordion-item > .e-con{
  padding:1.1rem 1.6rem 1.4rem; border:0; background:none; font-size:.98rem; color:var(--ink-soft);
}
.elementor .faq-list .e-n-accordion-item > .e-con p{ max-width:66ch; }
.elementor .e-con > .faq-list + .as-btn{ margin-top:2rem; }

/* Classic Accordion widget (fallback if nested accordion is unavailable) */
.elementor .faq-list .elementor-accordion{ display:flex; flex-direction:column; gap:.85rem; }
.elementor .faq-list .elementor-accordion-item{
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-md); overflow:hidden;
}
.elementor .faq-list .elementor-tab-title{
  cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:1.3rem 1.6rem; margin:0; background:none; border:0;
  font-family:var(--font-head); font-weight:600; color:var(--ink); font-size:1.06rem;
}
.elementor .faq-list .elementor-accordion-icon{
  order:2; flex:none; width:30px; height:30px; border-radius:50%; border:1.5px solid var(--line);
  display:flex; align-items:center; justify-content:center; color:var(--ink);
}
.elementor .faq-list .elementor-tab-content{
  padding:1.1rem 1.6rem 1.4rem; border:0; background:none; font-size:.98rem; color:var(--ink-soft);
}
.elementor .faq-list .elementor-tab-content p{ max-width:66ch; }

/* ---- Contact ---- */
.elementor .e-con.info-card{
  display:flex; flex-direction:row; flex-wrap:nowrap; gap:1.1rem;
  padding:1.5rem 0; border-bottom:1px solid var(--line);
}
.elementor .e-con.info-card:first-child{ padding-top:0; }
.elementor .e-con.info-card:last-child{ border-bottom:0; }
.elementor .e-con.info-card > .elementor-widget-html{ flex:none; width:auto; }
.elementor .e-con.info-card > .elementor-widget-text-editor{ flex:1; min-width:0; }
.elementor .info-card h2, .elementor .info-card h3{ margin-bottom:.3rem; font-size:1.08rem; }
.elementor .info-card p, .elementor .info-card a{ font-size:.98rem; color:var(--ink-soft); }
.elementor .info-card a.link-emph{ color:var(--ink); font-weight:700; }
.elementor .info-card .hours-note{ margin-top:.8rem; font-size:.88rem; color:var(--ink-mute); }
.elementor .map-frame{ border-radius:var(--radius-md); overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow-card); }
.elementor .map-frame iframe{ width:100%; height:340px; border:0; display:block; }
.elementor .e-con > .emergency-note{ margin-top:1.6rem; }
.elementor .e-con.contact-side > .e-con.price-card{ margin-top:1.6rem; }
.elementor .e-con.price-card + .e-con.values-grid{ margin-top:1.6rem; }
.elementor .e-con > .badge-spaced{ margin-bottom:1.2rem; }

/* ---- Elementor responsive (matches the static site's 900px / 560px breakpoints) ---- */
@media (max-width:900px){
  .elementor .e-con.hero-grid,
  .elementor .e-con.two-col,
  .elementor .e-con.story,
  .elementor .e-con.card-grid,
  .elementor .e-con.values-grid,
  .elementor .e-con.testi-grid{ grid-template-columns:1fr; }
  .elementor .e-con.steps{ grid-template-columns:1fr; gap:1.8rem; }
  .elementor .e-con.step:not(:last-child)::after{ display:none; }
  .elementor .e-con.hero-visual{ padding:10% 8% 18% 10%; }
  .elementor .hero-art{ aspect-ratio:4/3; }
  .elementor .e-con.story-media{ margin-bottom:2.2rem; }
  .elementor .story-media .credential-pin{ left:1rem; }
  .elementor .e-con.two-col.reverse > .col-media{ order:0; }
}
@media (max-width:560px){
  .elementor .e-con.contact-grid{ grid-template-columns:1fr; }
  .elementor .e-con.value-card{ padding:1.4rem; }
  .elementor .e-con.cta-band{ padding:2rem 1.4rem; }
  .elementor .as-btn .elementor-button{ white-space:normal; }
}

/* Keep animated/reveal content visible inside the Elementor editor */
.elementor-editor-active .reveal{ opacity:1; transform:none; animation:none; }
