/*
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 = olive (accent text),
   text, accent = deep olive, 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: 3.2vw !important; } }
@media screen and (max-width: 380px) { body { font-size: 12px !important; } }

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: #ECE8DF;      /* 14:1 on background */
  --e-global-color-secondary: #C9CAAE; /* accent text 9.2:1 */
  --e-global-color-b0a0001: #1B1C17;   /* background */
  --e-global-color-b0a0002: #24251F;   /* sand */
  --e-global-color-b0a0003: #2A2B24;   /* card */
  --e-global-color-b0a0004: #A9A89B;   /* muted 7.2:1 */
  --e-global-color-b0a0006: rgba(236, 232, 223, .14); /* line */
  --e-global-color-b0a0007: #3A3C2E;   /* band */
  --e-global-color-b0a0008: #ECE8DF;   /* band text 9.2: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: container (link) with two headings + the mirror mark ---------- */
.pa-logo { position: relative; text-decoration: none; }
.pa-logo::before, .pa-logo::after { content: ""; position: absolute; top: 50%; translate: 0 -50%; border-radius: 50%; }
.pa-logo::before { left: 0; width: 1.9em; height: 1.9em; border: .125em solid var(--e-global-color-primary); }   /* the round mirror */
.pa-logo::after { left: .78em; width: .7em; height: 1.05em; background: var(--e-global-color-primary); }          /* the light in it */
.pa-logo .elementor-heading-title { line-height: 1; white-space: nowrap; text-wrap: nowrap; }
.pa-logo .elementor-heading-title em { font-weight: 300; color: inherit; }
.pa-logo__sub .elementor-heading-title { font-size: .85em; font-weight: 400; letter-spacing: .14em; }
.pa-logo__sub .elementor-heading-title::before { display: none; }
.pa-logo--plain::before { border-color: var(--e-global-color-b0a0008); }
.pa-logo--plain::after { background: var(--e-global-color-b0a0008); }
.pa-logo--plain .pa-logo__sub { opacity: .8; }

/* ---------- 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, dark arrow circle, arrow loops on hover ---------- */
.elementor-button { position: relative; isolation: isolate; overflow: hidden; border: 1px solid transparent; box-shadow: 0 .5em 1.25em rgb(79 81 58 / .22); transition: color .4s, background-color .4s, border-color .4s, transform .15s; }
.elementor-button:active { transform: scale(.97); }
.elementor-button-content-wrapper { align-items: center; gap: .9em; }
.elementor-button .elementor-button-icon { display: grid; place-items: center; width: 2.6em; height: 2.6em; margin-right: -.95em; border-radius: 50%; background: #2C2B25; color: #F7F4EE !important; fill: #F7F4EE !important; transition: background-color .4s, color .4s; }
.elementor-button .elementor-button-icon svg { width: 1em; height: 1em; fill: currentColor !important; } /* widgets colour the svg with the text colour */
.elementor-button:hover .elementor-button-icon { background: #F7F4EE; color: #2C2B25 !important; fill: #2C2B25 !important; }
.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-text { white-space: nowrap; }
.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 { background: transparent !important; color: var(--e-global-color-text) !important; border-color: currentColor; box-shadow: none; }
.pa-btn-outline .elementor-button .elementor-button-icon { background: var(--e-global-color-text); color: var(--e-global-color-b0a0001) !important; fill: var(--e-global-color-b0a0001) !important; }
.pa-btn-outline .elementor-button:hover { background: var(--e-global-color-text) !important; color: var(--e-global-color-b0a0001) !important; }
.pa-btn-outline .elementor-button:hover .elementor-button-icon { background: var(--e-global-color-b0a0001); color: var(--e-global-color-text) !important; fill: var(--e-global-color-text) !important; }

/* light variant (on the always-dark rates band) */
.pa-btn-light .elementor-button { background: transparent !important; color: #ECE8DF !important; border-color: #ECE8DF; box-shadow: none; }
.pa-btn-light .elementor-button .elementor-button-icon { background: #ECE8DF; color: #2C2B25 !important; fill: #2C2B25 !important; }
.pa-btn-light .elementor-button:hover { background: #ECE8DF !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; }

/* ---------- 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); }

.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 { color: #2C2B25 !important; border-color: #2C2B25; }
.pa-rate-btn--featured .elementor-button .elementor-button-icon { background: #2C2B25; color: #ECE8DF !important; fill: #ECE8DF !important; }
.pa-rate-btn--featured .elementor-button:hover { background: #2C2B25 !important; color: #ECE8DF !important; }
.pa-note a { font-weight: 600; }

/* ---------- 11. Timeline (Over Anoek) ---------- */
.pa-timeline-item { position: relative; }
.pa-timeline-item p { margin: 0; }
.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. Form (native Pro form) ---------- */
.pa-form .elementor-field-label { font-weight: 600; }
.pa-form .elementor-field-subgroup { gap: .5em; }
.pa-form .elementor-field-subgroup .elementor-field-option {
  display: inline-flex; align-items: center; gap: .5em; margin: 0 !important; padding: .6em 1em;
  border: 1px solid var(--e-global-color-b0a0006); border-radius: 999em; background: var(--e-global-color-b0a0001); cursor: pointer;
}
.pa-form .elementor-field-option: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-form .elementor-field-option input { accent-color: var(--e-global-color-secondary); margin: 0; }
.pa-form .elementor-field-option label { margin: 0; cursor: pointer; }
.pa-form .elementor-field-type-submit { justify-content: flex-start; }
.pa-form .elementor-field-type-submit { width: auto !important; flex: 0 0 auto !important; }
.pa-form .elementor-field-type-submit .elementor-button { width: auto !important; flex-grow: 0; }
.pa-form .elementor-field-type-submit .elementor-button-content-wrapper { flex-direction: row-reverse; justify-content: flex-start; }

/* ---------- 13. 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; }

/* ---------- 14. 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; }
