/*
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.1.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* =====================================================================
   Puur Anoek — all site CSS in one place (Flerque).
   Units: em everywhere, so everything scales with the body size below.
   Colours: only Elementor globals (--e-global-color-*), so dark mode
   just swaps those values (section 2).
   Global colour ids:  primary = sage, secondary = deep taupe (accent text),
   text, accent = deep taupe (bands), b0a000b taupe (brand, decorative), b0a0001 background, b0a0002 sand,
   b0a0003 card, b0a0004 muted, b0a0005 sage light, b0a0006 line,
   b0a0007 band, b0a0008 band text, b0a0009 cream (fixed), b0a000a ink (fixed)
   ===================================================================== */

/* ---------- 1. Base + Flerque Magic (body size scales with the viewport) ---------- */
header { width: 100% !important; }
html, body { overflow-x: clip; overflow-y: visible; position: relative; }
::selection { background: var(--e-global-color-secondary) !important; color: #fff; }
.doorlopend .swiper { overflow: visible !important; }

body { font-size: 1.0vw !important; }
@media screen and (min-width: 1920px) { body { font-size: 20px !important; } }
@media screen and (min-width: 1101px) and (max-width: 1400px) { body { font-size: 1.2vw !important; } }
@media screen and (min-width: 768px) and (max-width: 1100px) { body { font-size: 1.8vw !important; } }
@media screen and (max-width: 767px) { body { font-size: max(15px, 3.2vw) !important; } }   /* min 15px: small text stays legible on phones */

body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overscroll-behavior: none;
}
html { scroll-padding-top: 7em; }
:focus-visible { outline: .125em solid var(--e-global-color-secondary); outline-offset: .2em; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; } }

/* ---------- 2. Dark mode: same globals, darker values (plugin sets data-theme) ---------- */
html[data-theme="dark"] body {
  --e-global-color-text: #EFE8DC;      /* 14:1 on background */
  --e-global-color-secondary: #D6C6AE; /* light taupe accent text 10:1 */
  --e-global-color-b0a0001: #1E1B17;   /* background (warm brown-black) */
  --e-global-color-b0a0002: #28241F;   /* sand */
  --e-global-color-b0a0003: #2F2A24;   /* card */
  --e-global-color-b0a0004: #B5AB9B;   /* muted 7.6:1 */
  --e-global-color-b0a0006: rgba(239, 232, 220, .14); /* line */
  --e-global-color-b0a0007: #4A4033;   /* band */
  --e-global-color-b0a0008: #EFE8DC;   /* band text 8.3:1 */
}
html[data-theme="dark"] { color-scheme: dark; }

/* ---------- 3. Type details ---------- */
.elementor-heading-title { text-wrap: balance; }
.elementor-heading-title em { font-style: italic; font-weight: 400; color: var(--e-global-color-secondary); }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
/* links inside running text keep the size of the text around them */
.elementor-widget-text-editor a { font: inherit; color: inherit; text-decoration: underline; text-underline-offset: .2em; }

/* eyebrow: small caps label with the mirror ring */
.pa-eyebrow .elementor-heading-title { display: flex; align-items: center; gap: .6em; }
.pa-eyebrow .elementor-heading-title::before { content: ""; flex: none; width: .85em; height: .85em; border: .15em solid var(--e-global-color-primary); border-radius: 50%; }

/* text link with arrow */
.pa-link a { display: inline-flex; gap: .45em; font-weight: 600; color: var(--e-global-color-secondary); text-decoration: none; }
.pa-link a::after { content: "→"; transition: translate .3s; }
.pa-link a:hover::after { translate: .3em 0; }

/* ---------- 4. Logo: client SVG, taupe in light mode, white in dark mode ---------- */
.pa-logo { text-decoration: none; }
.pa-logo-img img { display: block; width: 100%; height: auto; border-radius: 0 !important; } /* the kit rounds images; that clips the wordmark */
.pa-logo-img--dark { display: none; }
html[data-theme="dark"] .pa-logo-img--light { display: none; }
html[data-theme="dark"] .pa-logo-img--dark { display: block; }

/* ---------- 5. Header ---------- */
@media (max-width: 767px) { .pa-utility-info .elementor-icon-list-item:nth-child(2) { display: none; } }
.pa-utility-link p { margin: 0; }
.pa-utility-link a { text-decoration: none; }
.pa-utility-link a:hover { text-decoration: underline; }
/* theme toggle: reset the kit's button style that targets every <button> */
.pa-theme-toggle {
  display: inline-flex !important; align-items: center; gap: .45em;
  padding: .25em .1em !important; border: 0 !important; border-radius: 0 !important;
  background: none !important; box-shadow: none !important;
  color: var(--e-global-color-b0a0009) !important; font: inherit; font-size: .875em; line-height: 1; cursor: pointer;
}
.pa-theme-toggle:hover { text-decoration: underline; }
.pa-theme-toggle svg { width: 1.1em; height: 1.1em; flex: none; }
.pa-theme-toggle .pa-sun, html[data-theme="dark"] .pa-theme-toggle .pa-moon { display: none; }
html[data-theme="dark"] .pa-theme-toggle .pa-sun { display: block; }

/* menu: the mirror dot under hover/active items */
.pa-nav .elementor-nav-menu--main .elementor-item { position: relative; font-weight: 500; }
.pa-nav .elementor-nav-menu--main .elementor-item::after {
  content: ""; position: absolute; left: 50%; bottom: .05em; width: .4em; height: .4em; border-radius: 50%;
  background: var(--e-global-color-primary); translate: -50% 0; scale: 0; transition: scale .3s;
  opacity: 1 !important; top: auto !important; /* beat Elementor's pointer styles */
}
.pa-nav .elementor-nav-menu--main .elementor-item:hover::after,
.pa-nav .elementor-nav-menu--main .elementor-item.elementor-item-active::after { scale: 1; }
.pa-nav .elementor-nav-menu--dropdown { border: 1px solid var(--e-global-color-b0a0006); border-radius: 1em; overflow: hidden; box-shadow: 0 .75em 2em rgb(44 43 37 / .12); }
.pa-nav .elementor-menu-toggle { width: 3em; height: 3em; border-radius: 50%; border: 1px solid var(--e-global-color-b0a0006); }

/* ---------- 6. Buttons: pill, round arrow badge, arrow loops on hover ----------
   The badge is driven by two variables, so every variant only sets colours:
   --pa-ico-bg (circle) and --pa-ico (arrow). !important beats widget-level colours. */
.elementor-button { --pa-ico-bg: #2C2B25; --pa-ico: #F7F4EF; position: relative; isolation: isolate; overflow: hidden; border: 1px solid transparent; box-shadow: 0 .5em 1.25em rgb(74 64 51 / .22); transition: color .4s, background-color .4s, border-color .4s, transform .15s; }
.elementor-button:hover { --pa-ico-bg: #F7F4EF; --pa-ico: #2C2B25; }
.elementor-button:active { transform: scale(.97); }
.elementor-button-content-wrapper { align-items: center; gap: .9em; }
.elementor-button-text { white-space: nowrap; }
.elementor-button .elementor-button-icon { display: grid; place-items: center; width: 2.6em; height: 2.6em; margin-right: -.95em; border-radius: 50%; background: var(--pa-ico-bg) !important; color: var(--pa-ico) !important; transition: background-color .4s, color .4s; }
.elementor-button .elementor-button-icon svg, .elementor-button .elementor-button-icon svg path { width: 1em; height: 1em; fill: var(--pa-ico) !important; }
.elementor-button .elementor-button-icon svg path { width: auto; height: auto; }
.elementor-button:hover .elementor-button-icon svg { animation: pa-arrow .5s cubic-bezier(.7, 0, .2, 1); }
@keyframes pa-arrow { 50% { translate: 1.6em 0; } 50.01% { translate: -1.6em 0; } }
.elementor-button:has(.elementor-button-icon) { padding-block: .35em !important; padding-right: 1.3em !important; }

/* outline variant (on light backgrounds) */
.pa-btn-outline .elementor-button { --pa-ico-bg: var(--e-global-color-text); --pa-ico: var(--e-global-color-b0a0001); background: transparent !important; color: var(--e-global-color-text) !important; border-color: currentColor; box-shadow: none; }
.pa-btn-outline .elementor-button:hover { --pa-ico-bg: var(--e-global-color-b0a0001); --pa-ico: var(--e-global-color-text); background: var(--e-global-color-text) !important; color: var(--e-global-color-b0a0001) !important; }

/* light variant (on the always-dark rates band) */
.pa-btn-light .elementor-button { --pa-ico-bg: #F7F4EF; --pa-ico: #2C2B25; background: transparent !important; color: #F7F4EF !important; border-color: #F7F4EF; box-shadow: none; }
.pa-btn-light .elementor-button:hover { --pa-ico-bg: #2C2B25; --pa-ico: #F7F4EF; background: #F7F4EF !important; color: #2C2B25 !important; }

/* ---------- 7. Photo shapes (signature: the round rattan mirrors) ---------- */
.pa-arch img { width: 100%; object-fit: cover; border-radius: 999em 999em 1em 1em !important; }
.pa-circle img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 50% !important; }
.pa-flat img { border-radius: 0 !important; }
.pa-ring img { padding: .5em; border: .125em solid var(--e-global-color-primary); background: var(--e-global-color-b0a0001); }
.pa-cutout img { border: .5em solid var(--e-global-color-b0a0002); }
.pa-mirror img { border: .9em solid var(--e-global-color-b0a0002); outline: 1px solid var(--e-global-color-primary); outline-offset: .5em; }

/* round containers (connected words, step numbers) stay round */
.pa-round { aspect-ratio: 1; flex-shrink: 0; align-self: flex-start; }

/* ---------- 8. Chips and tags (native Icon List, inline) ---------- */
.pa-chips .elementor-icon-list-item { padding: .45em .9em !important; border: 1px solid var(--e-global-color-b0a0006); border-radius: 999em; background: var(--e-global-color-b0a0003); transition: background-color .3s, border-color .3s; }
.pa-chips .elementor-icon-list-item:hover { background: var(--e-global-color-b0a0005); border-color: var(--e-global-color-primary); }
.pa-chips .elementor-icon-list-item:hover .elementor-icon-list-text { color: #2C2B25; }
.pa-tags .elementor-icon-list-item { padding: .2em .65em !important; border-radius: 999em; background: var(--e-global-color-b0a0002); }
.pa-chips .elementor-icon-list-item::after, .pa-tags .elementor-icon-list-item::after { display: none; }
/* wrap with an even gap in both directions (Elementor's inline margins only space horizontally) */
.pa-chips .elementor-icon-list-items, .pa-tags .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: .5em; margin: 0 !important; }
.pa-tags .elementor-icon-list-items { gap: .4em; }
.pa-chips .elementor-icon-list-item, .pa-tags .elementor-icon-list-item { margin: 0 !important; inset: auto !important; }

/* ---------- 9. Cards ---------- */
.pa-card { transition: translate .35s, box-shadow .35s; }
.pa-card:hover { translate: 0 -.3em; box-shadow: 0 .75em 2em rgb(44 43 37 / .12); }
.pa-card .elementor-widget-image { overflow: hidden; border-radius: 999em 999em 1em 1em; }
.pa-card img { transition: scale .8s cubic-bezier(.2, .7, .2, 1); }
.pa-card:hover img { scale: 1.05; }

/* ---------- 10. Badges and dates (heading widgets turned into circles) ---------- */
.pa-price-badge .elementor-heading-title {
  display: grid; place-content: center; aspect-ratio: 1; border-radius: 50%; text-align: center; line-height: 1;
  background: var(--e-global-color-primary); border: .35em solid var(--e-global-color-b0a0003);
}
.pa-price-badge strong { font-size: 1.75em; }
.pa-price-badge small { font-size: .75em; font-weight: 400; }

.pa-date .elementor-heading-title { display: grid; place-content: center; aspect-ratio: 1; border-radius: 50%; text-align: center; line-height: 1.05; background: var(--e-global-color-b0a0002); }
.pa-date strong { font-size: 1.3em; }
.pa-date small { font-size: .68em; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }
.pa-date--sage .elementor-heading-title { background: var(--e-global-color-primary); }

/* price rows that book online (SimplyBook) */
.pa-book-row { text-decoration: none; border-radius: .5em; transition: background-color .25s; }
.pa-book-row::after { content: "→"; flex: none; margin-left: .6em; font-weight: 600; color: var(--e-global-color-text); transition: translate .25s; }
.pa-book-row--on-dark::after { color: #F7F4EF; }
.pa-book-row--on-dark:hover, .pa-book-row--on-dark:focus-visible { background: rgb(247 244 239 / .1); }
.pa-book-row:hover, .pa-book-row:focus-visible { background: color-mix(in srgb, var(--e-global-color-primary) 22%, transparent); }
.pa-book-row:hover::after { translate: .2em 0; }
.pa-book-row > .elementor-widget:last-of-type { margin-left: auto; }
.pa-rate-big small { font-size: .3em; font-weight: 500; margin-right: .2em; }
.pa-rate-btn { margin-top: auto !important; }
.pa-rate-btn--featured .elementor-button { --pa-ico-bg: #2C2B25; --pa-ico: #F7F4EF; color: #2C2B25 !important; border-color: #2C2B25; }
.pa-rate-btn--featured .elementor-button:hover { --pa-ico-bg: #F7F4EF; --pa-ico: #2C2B25; background: #2C2B25 !important; color: #F7F4EF !important; }
.pa-note a { font-weight: 600; }

/* ---------- 11. Timeline (Over Anoek) ---------- */
.pa-timeline-item { position: relative; }
.pa-timeline-item .elementor-heading-title { line-height: 1.55; }
.pa-timeline-item::before {
  content: ""; position: absolute; left: -.4em; top: 1em; width: .7em; height: .7em; border-radius: 50%;
  background: var(--e-global-color-b0a0001); border: .125em solid var(--e-global-color-primary);
}

/* ---------- 12. Footer ---------- */
.pa-footer { position: relative; overflow: hidden; }
.pa-footer::before {
  content: ""; position: absolute; right: -8em; top: -8em; left: auto !important; bottom: auto !important;
  width: 26em !important; height: 26em !important; border-radius: 50%;
  border: 1px solid currentColor; opacity: .25; box-shadow: 0 0 0 3em rgb(255 255 255 / .12); pointer-events: none;
}
.pa-footer-links a { text-decoration: none; }
.pa-footer-links a:hover .elementor-icon-list-text { text-decoration: underline; }
.pa-credit a { text-decoration: underline; }

/* ---------- 13. Mega menu (Elementor Pro Menu widget, class pa-mega-menu) ---------- */
.pa-mega-menu .e-n-menu-title { position: relative; }
.pa-mega-menu .e-n-menu-title::after {
  content: ""; position: absolute; left: 50%; bottom: .1em; width: .4em; height: .4em; border-radius: 50%;
  background: var(--e-global-color-primary); translate: -50% 0; scale: 0; transition: scale .3s;
}
.pa-mega-menu .e-n-menu-title:hover::after, .pa-mega-menu .e-n-menu-title.e-current::after { scale: 1; }
/* menu toggle (tablet/mobile): Elementor decides when it shows; the kit's <button> styles must not apply */
.pa-mega-menu .e-n-menu-toggle { width: 3em; height: 3em; padding: 0 !important; border-radius: 50% !important; border: 1px solid var(--e-global-color-b0a0006) !important;
  background: transparent !important; box-shadow: none !important; place-items: center; justify-content: center; transition: background-color .25s, border-color .25s; }
.pa-mega-menu .e-n-menu-toggle:hover, .pa-mega-menu .e-n-menu-toggle:focus-visible, .pa-mega-menu .e-n-menu-toggle[aria-expanded="true"] {
  background: var(--e-global-color-b0a0002) !important; border-color: var(--e-global-color-primary) !important; }
.pa-mega-menu .e-n-menu-toggle svg, .pa-mega-menu .e-n-menu-toggle i { fill: var(--e-global-color-text) !important; color: var(--e-global-color-text) !important; }
/* big list: row slides in, arrow appears */
.pa-mega-link { position: relative; text-decoration: none; transition: background-color .25s, padding .25s; }
.pa-mega-link::after { content: "→"; position: absolute; right: .9em; top: 50%; translate: -.5em -50%; opacity: 0; color: var(--e-global-color-secondary); transition: .25s; }
.pa-mega-link:hover, .pa-mega-link:focus-visible { background: var(--e-global-color-b0a0002); padding-left: 1.2em !important; }
.pa-mega-link:hover::after, .pa-mega-link:focus-visible::after { opacity: 1; translate: 0 -50%; }
/* photo preview follows the hovered item (pure CSS) */
.pa-mega-preview { position: relative; }
.pa-mega-preview .pa-mega-img:not(.pa-mega-img--1) { position: absolute; inset: 0; opacity: 0; transition: opacity .3s; }
.pa-mega-preview .pa-mega-img--1 { transition: opacity .3s; }
.pa-mega:has(.pa-mega-link--2:hover) .pa-mega-img--2,
.pa-mega:has(.pa-mega-link--3:hover) .pa-mega-img--3,
.pa-mega:has(.pa-mega-link--4:hover) .pa-mega-img--4 { opacity: 1; }
.pa-mega:has(.pa-mega-link--2:hover, .pa-mega-link--3:hover, .pa-mega-link--4:hover) .pa-mega-img--1 { opacity: 0; }
.pa-mega-help a { font-weight: 600; color: var(--e-global-color-secondary); }
/* tablet + mobile (Elementor breakpoint 1100px): one clean card, items left aligned */
@media (max-width: 1100px) {
  .pa-mega-menu .e-n-menu-wrapper { margin-top: .6em !important; padding: .4em .9em !important; background: var(--e-global-color-b0a0003) !important; border: 1px solid var(--e-global-color-b0a0006) !important; border-radius: 1.25em !important; box-shadow: 0 .75em 2em rgb(44 43 37 / .12) !important; }
  .pa-mega-menu .e-n-menu-heading { padding: 0 !important; background: none !important; }
  .pa-mega-menu .e-n-menu-item, .pa-mega-menu .e-n-menu-item > .e-n-menu-title, .pa-mega-menu .e-n-menu-content { margin-inline: 0 !important; inset-inline: auto !important; width: 100% !important; max-width: 100% !important; }
  .pa-mega-menu .e-n-menu-item { border-bottom: 1px solid var(--e-global-color-b0a0006); }
  .pa-mega-menu .e-n-menu-item:last-child { border-bottom: 0; }
  .pa-mega-menu .e-n-menu-title { justify-content: space-between !important; width: 100% !important; padding: .85em .2em !important; background: none !important; }
  .pa-mega-menu .e-n-menu-title::after { display: none; }
  .pa-mega-menu .e-n-menu-content > .e-con { width: 100% !important; padding: 0 !important; }
  .pa-mega { width: 100% !important; padding: 0 0 .5em !important; border: 0 !important; box-shadow: none !important; background: none !important; }
  .pa-mega-link { padding-inline: .6em !important; }
}


/* ---------- 14. Gravity Forms (form class pa-gf, rendered with theme="gravity-theme") ---------- */
.pa-gf-wrap .gform_wrapper.gravity-theme { margin: 0; font: inherit; color: var(--e-global-color-text); }
.pa-gf-wrap .gform_wrapper.gravity-theme .gform_fields { row-gap: 1.1em; column-gap: 1em; }
.pa-gf-wrap .gform_wrapper.gravity-theme .gfield_label,
.pa-gf-wrap .gform_wrapper.gravity-theme legend.gfield_label { margin-bottom: .35em; font-size: .875em; font-weight: 600; color: var(--e-global-color-text); }
.pa-gf-wrap .gfield_required, .pa-gf-wrap .gform_required_legend { display: none !important; } /* like the design: only the optional field is marked */
.pa-gf-wrap .gform_wrapper.gravity-theme input[type="text"],
.pa-gf-wrap .gform_wrapper.gravity-theme input[type="email"],
.pa-gf-wrap .gform_wrapper.gravity-theme input[type="tel"],
.pa-gf-wrap .gform_wrapper.gravity-theme textarea {
  width: 100%; padding: .8em 1em; border: 1px solid var(--e-global-color-b0a0006); border-radius: .6em;
  background: var(--e-global-color-b0a0001); color: var(--e-global-color-text); font: inherit; font-size: 1em; line-height: 1.5; box-shadow: none;
}
.pa-gf-wrap .gform_wrapper.gravity-theme textarea { height: 7em; min-height: 7em; }
.pa-gf-wrap .gform_wrapper.gravity-theme input:focus-visible, .pa-gf-wrap .gform_wrapper.gravity-theme textarea:focus-visible { border-color: var(--e-global-color-secondary); outline: .125em solid var(--e-global-color-secondary); outline-offset: 0; }
/* radio choices as pills */
.pa-gf-wrap .pa-gf-pills .gfield_radio { display: flex !important; flex-wrap: wrap; gap: .5em; }
.pa-gf-wrap .pa-gf-pills .gchoice {
  display: inline-flex; align-items: center; gap: .5em; margin: 0; padding: .6em 1em;
  border: 1px solid var(--e-global-color-b0a0006); border-radius: 999em; background: var(--e-global-color-b0a0001); cursor: pointer;
}
.pa-gf-wrap .pa-gf-pills .gchoice:has(:checked) { border-color: var(--e-global-color-primary); background: color-mix(in srgb, var(--e-global-color-primary) 25%, var(--e-global-color-b0a0001)); }
.pa-gf-wrap .pa-gf-pills .gchoice input { margin: 0; accent-color: var(--e-global-color-secondary); }
.pa-gf-wrap .pa-gf-pills .gchoice { width: auto !important; }
.pa-gf-wrap .pa-gf-pills .gchoice label { margin: 0; max-width: none !important; white-space: nowrap; font-size: .9375em; font-weight: 500; cursor: pointer; }
/* submit: same pill as the site buttons; the arrow badge is drawn as a background */
.pa-gf-wrap .gform_wrapper.gravity-theme .gform_footer { margin: .4em 0 0; padding: 0; }
.pa-gf-wrap .gform_wrapper.gravity-theme .gform_button {
  min-height: 3.3em; padding: .35em 4.1em .35em 1.4em; border: 0; border-radius: 999em; cursor: pointer;
  background: var(--e-global-color-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Ccircle cx='20' cy='20' r='20' fill='%232C2B25'/%3E%3Cpath d='M13 20h13M21 15l5 5-5 5' fill='none' stroke='%23F7F4EF' stroke-width='2.2'/%3E%3C/svg%3E") right .35em center / 2.6em no-repeat;
  color: #2C2B25; font: 600 .9375em/1 Figtree, sans-serif;
  box-shadow: 0 .5em 1.25em rgb(74 64 51 / .22); transition: background-color .4s, color .4s, transform .15s;
}
.pa-gf-wrap .gform_wrapper.gravity-theme .gform_button:hover {
  background-color: #4A4033; color: #F7F4EF;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Ccircle cx='20' cy='20' r='20' fill='%23F7F4EF'/%3E%3Cpath d='M13 20h13M21 15l5 5-5 5' fill='none' stroke='%232C2B25' stroke-width='2.2'/%3E%3C/svg%3E");
}
.pa-gf-wrap .gform_wrapper.gravity-theme .gform_button:active { transform: scale(.97); }
/* errors and confirmation */
.pa-gf-wrap .gform_wrapper.gravity-theme .gfield_error input, .pa-gf-wrap .gform_wrapper.gravity-theme .gfield_error textarea { border-color: #B3261E; border-width: .125em; }
.pa-gf-wrap .gform_wrapper.gravity-theme .validation_message { margin-top: .35em; padding: 0; border: 0; background: none; font-size: .8125em; color: #B3261E; }
html[data-theme="dark"] .pa-gf-wrap .gform_wrapper.gravity-theme .validation_message { color: #F2B8B5; }
.pa-gf-wrap .gform_validation_errors { border-radius: .6em; }
.pa-gf-confirm { padding: 1.5em; border-radius: 1em; background: color-mix(in srgb, var(--e-global-color-primary) 22%, var(--e-global-color-b0a0003)); color: var(--e-global-color-text); }
.pa-gf-confirm__title { margin: 0 0 .35em; font-size: 1.5em; font-weight: 500; }
.pa-gf-confirm p:last-child { margin: 0; }

/* ---------- 15. Detail pages: breadcrumb, watermark numbers, photo tiles, quote bands ---------- */
.pa-breadcrumb a { color: var(--e-global-color-text); text-decoration: none; }
.pa-breadcrumb a:hover { text-decoration: underline; }
.pa-watermark .elementor-heading-title { font-size: 2.2em; line-height: .9; font-weight: 200; color: var(--e-global-color-b0a000b); opacity: .55; margin-bottom: -.3em; }
.pa-tile { transition: translate .35s, box-shadow .35s; }
.pa-tile:hover { translate: 0 -.25em; box-shadow: 0 .75em 2em rgb(44 43 37 / .12); }
.pa-tile img { transition: scale .8s cubic-bezier(.2, .7, .2, 1); }
.pa-tile:hover img { scale: 1.04; }
.pa-quote .elementor-heading-title { font-weight: 400; font-style: italic; text-wrap: balance; }
.pa-quote .elementor-heading-title em { color: inherit; font-weight: 500; font-style: normal; }

/* legal text (privacy page) */
.pa-legal ul { margin: .3em 0 1em; padding-left: 1.2em; }
.pa-legal li { margin: .2em 0; }
.pa-legal [id] { scroll-margin-top: 7em; }

/* ---------- 16. Google reviews (plugin shortcode [pa_google_reviews]) ---------- */
.pa-reviews-section:not(:has(.pa-reviews)) { display: none; }   /* hide the whole section until reviews exist */
.pa-reviews { display: grid; gap: 1.5em; }
.pa-reviews__score { display: flex; flex-wrap: wrap; align-items: center; gap: .4em 1em; }
.pa-reviews__rating { font-size: 2.6em; font-weight: 300; line-height: 1; color: var(--e-global-color-text); }
.pa-reviews__stars { color: #C9A227; letter-spacing: .1em; }
.pa-reviews__stars-off { color: var(--e-global-color-b0a0006); }
.pa-reviews__count { font-size: .875em; color: var(--e-global-color-b0a0004); }
.pa-reviews__link { margin-left: auto; font-weight: 600; color: var(--e-global-color-secondary); text-decoration: none; }
.pa-reviews__link::after { content: " →"; }
.pa-reviews__list { display: grid; gap: 1.5em; grid-template-columns: repeat(auto-fit, minmax(16em, 1fr)); }
.pa-review { display: flex; flex-direction: column; gap: .8em; margin: 0; padding: 1.4em 1.5em; border: 1px solid var(--e-global-color-b0a0006); border-radius: 1.25em; background: var(--e-global-color-b0a0003); }
.pa-review blockquote { margin: 0; padding: 0; border: 0; font-size: 1em; font-style: italic; line-height: 1.6; color: var(--e-global-color-text); }
.pa-review blockquote p { margin: 0; }
.pa-review figcaption { display: flex; align-items: center; gap: .7em; margin-top: auto; }
.pa-review__initial { display: grid; place-items: center; flex: none; width: 2.5em; height: 2.5em; border-radius: 50%; background: var(--e-global-color-primary); color: #2C2B25; font-weight: 600; }
.pa-review figcaption span { display: grid; }
.pa-review figcaption strong, .pa-review figcaption a { font-size: .9375em; font-weight: 600; color: var(--e-global-color-text); text-decoration: none; }
.pa-review figcaption small { font-size: .8125em; color: var(--e-global-color-b0a0004); }

/* agenda rows, feature cards and event tiles */
.pa-event-row { text-decoration: none; transition: translate .3s, box-shadow .3s, border-color .3s; }
.pa-event-row:hover, .pa-event-row:focus-visible { translate: 0 -.15em; border-color: var(--e-global-color-primary) !important; box-shadow: 0 .5em 1.5em rgb(44 43 37 / .1); }
.pa-feature { text-decoration: none; }
.pa-feature .elementor-heading-title, .pa-feature p { text-decoration: none; }
a.pa-tile { text-decoration: none; }
.pa-more .elementor-heading-title { display: inline-flex; gap: .45em; font-weight: 600; }
.pa-more .elementor-heading-title::after { content: "→"; transition: translate .3s; }
a.pa-tile:hover .pa-more .elementor-heading-title::after { translate: .3em 0; }
.pa-slide img { width: 100%; height: auto; border-radius: 1em !important; }   /* designed slides: never crop */
.pa-loc-btn .elementor-button { font-size: .875em; }
.pa-loc-body { flex-grow: 1 !important; }
.pa-loc-body > .pa-loc-btn { margin-top: auto !important; }
.pa-loc-btn { margin-top: auto; padding-top: .4em; }
.pa-loc-btn .elementor-button { display: block; width: 100%; }
.pa-loc-btn .elementor-button-text { flex-grow: 1; text-align: left; }

/* compact score above the fold: [pa_google_score] */
.pa-score { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .2em .55em; color: var(--e-global-color-text); text-decoration: none; font-size: .9375em; }
.pa-score .pa-reviews__stars { font-size: 1.05em; }
.pa-score__rating { font-weight: 600; }
.pa-score__label { color: var(--e-global-color-b0a0004); text-decoration: underline; text-decoration-color: transparent; text-underline-offset: .2em; transition: text-decoration-color .2s; }
a.pa-score:hover .pa-score__label { text-decoration-color: currentColor; }

/* ---------- 17. Motion: .pa-reveal fades up, .pa-reveal-img wipes in as an arch ---------- */
@media (prefers-reduced-motion: no-preference) {
  .pa-js .pa-reveal { opacity: 0; translate: 0 1.5em; transition: opacity .8s, translate .8s cubic-bezier(.2, .7, .2, 1); }
  .pa-js .pa-reveal.is-in { opacity: 1; translate: 0 0; }
  .pa-js .pa-reveal-img img { clip-path: inset(100% 0 0 0 round 999em 999em 0 0); transition: clip-path 1.2s cubic-bezier(.7, 0, .2, 1); }
  .pa-js .pa-reveal-img.is-in img { clip-path: inset(0 0 0 0 round 0); }
}
.elementor-editor-active .pa-reveal,
.elementor-editor-active .pa-reveal-img img { opacity: 1 !important; translate: none !important; clip-path: none !important; }
