/* X.M Divi v1 r4 — MODULE STYLES for real Divi 4.27 modules (Section/Row/Column/Text/Image/Button/Blurb/Toggle).
   Replaces the r2 xm-layout.css (V2_6_12 layout HTML inside Text modules). Colours, fonts and spacing come from xm-tokens.css.
   Everything is scoped to sections with module_class "xm-site" and uses module classes only, so can edit text,
   images, links and buttons in the Visual Builder; if he sets a value in a module's Design tab, Divi's own generated CSS wins.
   Breakpoints = Divi 4: tablet <=980, phone <=767. Spec: Maikx DESIGN_SPEC_DIVI.md §2-6. */

/* ---------- base / Divi resets (only inside .xm-site) ---------- */
body #page-container .et_pb_section.xm-site{padding:var(--section-y) 0;margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}
.xm-site *{box-sizing:border-box}
body #page-container .xm-site .et_pb_row{width:min(var(--wrap),calc(100% - var(--gutter)));max-width:none;margin:0 auto;padding:0;display:flex;gap:var(--gap);align-items:flex-start}
body #page-container .xm-site .et_pb_row::after{display:none}
body #page-container .xm-site .et_pb_row+.et_pb_row{margin-top:36px}
body #page-container .xm-site .et_pb_row>.et_pb_column{float:none;width:auto;margin:0;flex:1 1 0;min-width:0}
body #page-container .xm-site .et_pb_module{margin:0 0 20px}
body #page-container .xm-site .et_pb_column>.et_pb_module:last-child,body #page-container .xm-site .et_pb_column>.et_pb_button_module_wrapper:last-child{margin-bottom:0}
body #page-container .xm-site .et_pb_text_inner p,body #page-container .xm-site p{padding-bottom:0;margin:0 0 18px}
body #page-container .xm-site .et_pb_text_inner>*:last-child{margin-bottom:0}
body #page-container .xm-site h1,body #page-container .xm-site h2,body #page-container .xm-site h3,body #page-container .xm-site h4,body #page-container .xm-site h5{color:inherit;padding-bottom:0;font-family:var(--font-head);font-weight:600;line-height:1.04;letter-spacing:-.025em;margin:0 0 22px}
body #page-container .xm-site h1{font-size:clamp(48px,6.6vw,104px);max-width:1040px;line-height:1}
body #page-container .xm-site h2{font-size:40px}
body #page-container .xm-site h2.display{font-size:clamp(46px,5vw,78px);line-height:1}
body #page-container .xm-site h3{font-size:26px}
body #page-container .xm-site ul,body #page-container .xm-site ol{padding:0 0 0 1.2em;margin:0 0 18px;line-height:1.45;list-style-position:outside}
body #page-container .xm-site ul{list-style-type:disc}
/* r4 S7.3: list items = body size and weight (were 15.5px/500) */
body #page-container .xm-site li{margin:0 0 6px;font-weight:inherit;font-size:inherit}
body #page-container .xm-site a{color:inherit;text-decoration:none}
body #page-container .xm-site .et_pb_text_inner a:not(.nav-link):not(.text-link):not(.skip){text-decoration:underline;text-underline-offset:3px}
.xm-site :focus-visible{outline:2px solid var(--ink);outline-offset:3px;box-shadow:0 0 0 5px var(--gold)}
.xm-site img{max-width:100%;height:auto}
.xm-site .eyebrow{display:flex;align-items:center;gap:12px;font:600 12px/1.3 var(--font-body);letter-spacing:.14em;text-transform:uppercase;margin:0 0 22px!important}
.xm-site .eyebrow:before{content:"";width:22px;height:2px;background:currentColor;flex:none}
.xm-site .text-link{font-weight:600;font-size:15px;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;padding-bottom:2px;transition:background-size .25s,color .25s}
.xm-site .text-link:hover{color:var(--blue);background-size:40% 2px}
.xm-site .skip{position:absolute!important;left:15px;top:10px;z-index:10000;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;background:var(--gold);color:var(--ink)}
.xm-site .skip:focus,.xm-site .skip:focus-visible{width:auto!important;height:auto!important;margin:0!important;padding:12px!important;overflow:visible!important;clip:auto!important;clip-path:none!important}
body #page-container .xm-site .xm-header>.xm-head-logo:focus-within{z-index:3}
body #page-container .xm-site .xm-skip{margin:0;height:0}

/* ---------- Button module (spec §5: gold is the only button style) ---------- */
body #page-container .xm-site .et_pb_button.xm-btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:space-between;gap:28px;padding:16px 22px!important;min-height:52px;border:0!important;border-radius:0;background:var(--gold);color:var(--ink);font:600 15px/1.3 var(--font-body)!important;letter-spacing:normal;text-transform:none;transition:transform .3s var(--ease),background .3s}
body #page-container .xm-site .et_pb_button.xm-btn:after{content:"↗"!important;font-family:var(--font-body)!important;font-size:15px!important;line-height:1!important;position:static!important;opacity:1!important;margin:0!important;display:inline!important;transition:transform .3s var(--ease)}
body #page-container .xm-site .et_pb_button.xm-btn:before{content:""!important;position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.45) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s var(--ease);display:block!important;font-family:inherit!important;opacity:1!important;margin:0!important;top:0;left:0;width:auto;height:auto}
body #page-container .xm-site .et_pb_button.xm-btn:hover{transform:translateY(-2px);background:var(--gold);color:var(--ink);padding:16px 22px!important;border:0!important}
body #page-container .xm-site .et_pb_button.xm-btn:hover:before{transform:translateX(120%)}
body #page-container .xm-site .et_pb_button.xm-btn-link{background:transparent;padding:0 0 2px!important;min-height:0;gap:8px;font-size:14px!important;border-bottom:1px solid currentColor!important}
body #page-container .xm-site .et_pb_button.xm-btn-link:hover{transform:none;background:transparent;color:var(--blue);padding:0 0 2px!important}
body #page-container .xm-site .et_pb_button.xm-btn-link:before{display:none!important}
@media (prefers-reduced-motion:reduce){body #page-container .xm-site .et_pb_button.xm-btn,body #page-container .xm-site .et_pb_button.xm-btn:hover{transform:none;transition:none}body #page-container .xm-site .et_pb_button.xm-btn:before{display:none!important}}

/* ---------- section kinds ---------- */
body #page-container .xm-site.xm-s-hero{background:var(--logo-navy);color:var(--paper);padding:84px 0 88px;overflow:hidden;position:relative;isolation:isolate}
body #page-container .xm-site.xm-s-hero:before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(var(--line-inv) 1px,transparent 1px),linear-gradient(90deg,var(--line-inv) 1px,transparent 1px);background-size:96px 96px;opacity:.14;-webkit-mask-image:linear-gradient(105deg,transparent 15%,#000 70%);mask-image:linear-gradient(105deg,transparent 15%,#000 70%)}
body #page-container .xm-site.xm-s-hero .eyebrow{color:var(--accent)}
body #page-container .xm-site.xm-s-hero h1{color:var(--paper)}
body #page-container .xm-site.xm-s-hero.xm-b-home{padding:88px 0 96px}
body #page-container .xm-site.xm-s-hero.xm-b-home h1{font-size:clamp(60px,6.8vw,108px)}
.xm-site.xm-s-hero .lead,.xm-site.xm-s-hero p{max-width:640px;font-size:20px}
body #page-container .xm-site.xm-s-paper{background:var(--paper)}
body #page-container .xm-site.xm-s-tight{padding:0 0 40px}
body #page-container .xm-site.xm-s-tight .xm-row{border-top:1px solid var(--line);padding-top:32px}
body #page-container .xm-site.xm-s-panel{background:var(--panel)}
body #page-container .xm-site.xm-s-card{background:var(--card);padding:72px 0 64px}
body #page-container .xm-site.xm-s-panel.xm-b-band{padding:72px 0 64px}
body #page-container .xm-site.xm-s-band{background:var(--paper);padding:72px 0 64px;border-top:1px solid var(--line)}
body #page-container .xm-site.xm-s-deep{background:var(--navy);color:var(--paper)}
body #page-container .xm-site.xm-s-deep .eyebrow{color:var(--accent)}
body #page-container .xm-site.xm-s-slate{background:var(--slate);color:#fff}
body #page-container .xm-site.xm-s-slate .eyebrow{color:var(--accent)}
body #page-container .xm-site.xm-s-closing{background:var(--navy-2);color:#fff;padding:96px 0 104px}
body #page-container .xm-site.xm-s-closing h2,body #page-container .xm-site.xm-s-closing-light h2{font-size:clamp(52px,7.4vw,106px);line-height:.98;max-width:900px}
body #page-container .xm-site.xm-s-closing .eyebrow{color:var(--accent)}
body #page-container .xm-site.xm-s-closing-light{background:var(--panel);padding:96px 0 104px}
body #page-container .xm-site.xm-s-split{background:var(--paper);padding:0}
body #page-container .xm-site.xm-s-split .xm-part{padding:76px 48px 76px 0}
body #page-container .xm-site.xm-s-split .xm-part+.xm-part{background:var(--navy);color:var(--paper);padding-left:48px}

/* ---------- header (section «00 Header») ---------- */
body #page-container .xm-site.xm-s-header{position:sticky;top:0;z-index:100;padding:14px 0;background:var(--paper);border-bottom:1px solid var(--line)}
body.admin-bar #page-container .xm-site.xm-s-header{top:32px}
body #page-container .xm-site .xm-header{align-items:center}
body #page-container .xm-site .xm-header>.xm-head-logo{flex:0 0 auto}
body #page-container .xm-site .xm-header>.xm-head-nav{flex:1 1 auto;display:flex;justify-content:flex-end;position:relative}
body #page-container .xm-site .xm-logo{margin:0}
body #page-container .xm-site .xm-logo img{height:96px;width:auto;display:block;transition:height .25s}
/* r5 N8: the X.M SVG logo has no width/height attributes (Divi Image module + non-attachment SVG URL cannot emit them; editing the SVG would break byte-identity with the Maikx asset pack). Its viewBox is 778x640, so the box is reserved before the SVG loads (no CLS). */
body #page-container .xm-site .xm-logo img,body #page-container .xm-site .xm-footer-logo img{aspect-ratio:778/640}
body #page-container .xm-site.xm-s-header.is-compact .xm-logo img{height:64px}
.xm-site .xm-nav-links{display:flex;gap:6px;flex-wrap:wrap;margin:0!important;font-size:14px;font-weight:500}
.xm-site .xm-nav .nav-link{padding:9px 14px;border:1px solid transparent;transition:border-color .25s,color .25s}
.xm-site .xm-nav .nav-link:hover{border-color:var(--blue);color:var(--blue)}
.xm-site .xm-nav .nav-link:last-child{background:var(--gold);color:var(--ink)}
body #page-container .xm-site .xm-nav{margin:0}
body #page-container .xm-site .et_pb_toggle.xm-nav-mobile{display:none;margin:0;border:1px solid var(--ink);background:transparent;padding:8px 14px}
body #page-container .xm-site .xm-nav-mobile .et_pb_toggle_title{font:600 14px/1.2 var(--font-body);letter-spacing:0;color:var(--ink);padding-right:28px;margin:0}
body #page-container .xm-site .xm-nav-mobile .et_pb_toggle_content{position:absolute;right:0;top:calc(100% + 12px);background:var(--paper);border:1px solid var(--line);padding:12px 18px;min-width:240px;z-index:200;box-shadow:0 18px 40px -20px rgba(16,22,58,.4)}
body #page-container .xm-site .xm-nav-mobile .xm-nav-links{flex-direction:column;gap:0}
body #page-container .xm-site .xm-nav-mobile .nav-link{display:block;padding:10px 0;border-bottom:1px solid var(--line);font-size:15px}

/* ---------- cards / grids ---------- */
body #page-container .xm-site .xm-grid{align-items:stretch}
body #page-container .xm-site .xm-card{background:var(--card);border:1px solid var(--line);padding:28px;display:flex;flex-direction:column}
body #page-container .xm-site.xm-s-deep .xm-card,body #page-container .xm-site.xm-s-slate .xm-card{background:transparent;border-color:var(--line-inv)}
body #page-container .xm-site.xm-s-deep .xm-grid-journey-list .xm-card{border-width:1px 0 0;padding:24px 0 0}
body #page-container .xm-site .xm-card h2{font-size:28px}
body #page-container .xm-site .xm-card h3{font-size:24px}
body #page-container .xm-site .xm-card .et_pb_module:last-child{margin-top:auto}
body #page-container .xm-site .xm-grid-routes .xm-card{min-height:260px}
body #page-container .xm-site .format-card .mono{font:600 12px/1.3 var(--font-body);letter-spacing:.14em;margin-bottom:12px!important}
body #page-container .xm-site .format-card .from-price{font:700 44px/1 var(--font-head);letter-spacing:-.02em;margin:6px 0 18px!important}
body #page-container .xm-site .start-col p{margin-bottom:12px}
/* Blurb module cards (services grid, home keyword modules): whole card clickable via the title link */
body #page-container .xm-site .et_pb_blurb.xm-blurb{position:relative;margin:0;height:100%}
body #page-container .xm-site .xm-blurb .et_pb_module_header{font-family:var(--font-head);font-weight:600;font-size:26px;line-height:1.08;letter-spacing:-.02em;padding:0;margin:0 0 14px;color:inherit}
body #page-container .xm-site .xm-blurb .et_pb_module_header a{color:inherit}
body #page-container .xm-site .xm-blurb .et_pb_module_header a:after{content:"";position:absolute;inset:0}
body #page-container .xm-site .xm-blurb .et_pb_blurb_content{max-width:none;text-align:left}
body #page-container .xm-site .xm-blurb .et_pb_blurb_description p{font-size:16px;margin-bottom:12px}
body #page-container .xm-site .xm-blurb .card-action{font-weight:600;font-size:15px;margin-top:18px!important;color:var(--blue)}
body #page-container .xm-site .xm-card:hover{border-color:var(--blue)}
body #page-container .xm-site .xm-grid-xm-modules .xm-card{min-height:220px}

/* ---------- brand strip (4 cards: Image + Image(logo) + Text + Button) ---------- */
/* r4 S7.1/S7.2: equal card rhythm – the name row grows, the «Visit» link is pinned to the card bottom */
body #page-container .xm-site .xm-brand{padding:14px;gap:0}
body #page-container .xm-site .xm-brand>.et_pb_text{flex:1 0 auto}
body #page-container .xm-site .xm-brand>.et_pb_button_module_wrapper{margin-top:auto!important}
body #page-container .xm-site .xm-brand-img{margin:0 0 14px}
body #page-container .xm-site .xm-brand-img img{aspect-ratio:var(--brand-ratio);object-fit:cover;width:100%;display:block;background:var(--panel)}
/* r4 S7.1: every logo sits in the same fixed 160×64 box (object-fit: contain); per-logo scale for equal optical weight:
   Tu Cereza (wide wordmark) full width, CesiCurls 88 %, Vita Elita (tall) full height, Akilles (solid black box) 72 % */
body #page-container .xm-site .xm-brand-logo{width:160px;max-width:100%;height:64px;display:flex;align-items:center;justify-content:center;margin:0 auto 12px}
body #page-container .xm-site .xm-brand-logo .et_pb_image_wrap,body #page-container .xm-site .xm-brand-logo a{display:flex;width:100%;height:100%;align-items:center;justify-content:center}
body #page-container .xm-site .xm-brand-logo img{width:100%;height:100%;object-fit:contain;object-position:center}
body #page-container .xm-site .xm-logo-cesicurls img{width:88%;height:88%}
body #page-container .xm-site .xm-logo-akilles img{width:72%;height:72%}
/* r8 (Kiki r7 items 2+5): Akilles = transparent logo in the 1:1 card image slot, on the navy panel (no opaque black box; wordmark readable);
   that card has no separate logo row, so its image keeps the logo row height (64 + 12 px) below it and the names stay aligned */
body #page-container .xm-site .xm-brand-img.xm-media-logo-tile img{object-fit:contain;background:var(--navy)}
body #page-container .xm-site .xm-brand-nologo .xm-brand-img{margin-bottom:90px}
body #page-container .xm-site .xm-brand-open{font-size:13px;margin:0 0 10px!important;color:var(--ink)}
body #page-container .xm-site .xm-brand-name{font-weight:600;font-size:15px;letter-spacing:.01em;margin:0!important}
body #page-container .xm-site .xm-brand-cat{font-size:13px;color:rgba(10,20,64,.92);margin:0 0 10px!important}
body #page-container .xm-site .xm-brand .et_pb_text{margin-bottom:10px}
body #page-container .xm-site .brand-credit{font-size:13px;line-height:1.5;margin-top:6px;color:rgba(10,20,64,.92)}
body #page-container .xm-site .brand-credit a{text-decoration:underline}

/* ---------- reading layout (service pages): prose column + sticky aside button on the right ---------- */
body #page-container .xm-site .xm-reading{align-items:stretch;gap:64px}
body #page-container .xm-site .xm-reading>.xm-main{order:1;flex:1 1 auto;max-width:760px}
body #page-container .xm-site .xm-reading>.xm-aside{order:2;flex:0 0 280px;margin-left:auto}
body #page-container .xm-site .xm-reading>.xm-aside>.et_pb_button_module_wrapper{position:sticky;top:140px}
body #page-container .xm-site .xm-reading>.xm-aside .et_pb_button.xm-btn{width:100%}
body #page-container .xm-site .xm-main{font-size:18px;line-height:1.72}
body #page-container .xm-site .xm-main h2{font-size:34px;margin:36px 0 18px}
body #page-container .xm-site .xm-main .et_pb_module:first-child h2:first-child{margin-top:0}
body #page-container .xm-site .xm-main h3{font-size:22px;margin:24px 0 12px}
body #page-container .xm-site .decision-question{font:600 24px/1.25 var(--font-head);color:var(--blue)}
body #page-container .xm-site .work-line,body #page-container .xm-site .limits-line{border-left:3px solid var(--gold);padding-left:18px}
body #page-container .xm-site .et_pb_text.room.xm-g-first:not(.room-fit){border-top:1px solid var(--line);padding-top:40px;margin-top:40px}
/* r4 S7.3: symmetric panel padding (32 px all round; the first heading's top margin is no longer inside the box) */
body #page-container .xm-site .et_pb_text.room-value{background:var(--panel);padding:0 32px;margin-bottom:0}
body #page-container .xm-site .et_pb_text.room-value.xm-g-first{padding-top:32px}
body #page-container .xm-site .et_pb_text.room-value.xm-g-last{padding-bottom:32px;margin-bottom:20px}
body #page-container .xm-site .et_pb_text.room-value.xm-g-first .et_pb_text_inner>:first-child{margin-top:0}
body #page-container .xm-site .et_pb_text.room-value.xm-g-last .et_pb_text_inner>:last-child{margin-bottom:0}
/* r4 S7.3: «What happens next» keeps ONE gold element (the button); the side rules are neutral */
body #page-container .xm-site .et_pb_text.room-next{border-left:3px solid var(--line);padding-left:24px}
body #page-container .xm-site .et_pb_text.room-next.xm-g-first .et_pb_text_inner>:first-child{margin-top:0}
body #page-container .xm-site .et_pb_text.room-limits{font-size:16px;color:rgba(16,22,58,.86)}
body #page-container .xm-site .next-service{font-size:20px!important;margin:10px 0!important}
body #page-container .xm-site .status-tag{display:inline-block;font:600 12px/1.3 var(--font-body);letter-spacing:.12em;border:1px solid var(--ink);padding:6px 10px;margin:0 6px 10px 0!important}
body #page-container .xm-site .chips{list-style:none!important;padding:0!important;display:flex;flex-wrap:wrap;gap:8px}
body #page-container .xm-site .chips li{border:1px solid var(--line);background:var(--card);padding:7px 12px;margin:0;font-size:14.5px}
body #page-container .xm-site .band-lead{font-size:20px}
body #page-container .xm-site .steps li{font-size:18px;margin-bottom:10px}
/* Toggle module (former <details> readiness blocks) */
body #page-container .xm-site .et_pb_toggle.xm-toggle:not(.xm-nav-mobile){background:var(--card);border:1px solid var(--line);padding:20px 24px;margin:0 0 14px}
body #page-container .xm-site .xm-toggle:not(.xm-nav-mobile) .et_pb_toggle_title{font:600 22px/1.2 var(--font-head);color:var(--ink);padding-right:40px;margin:0}
body #page-container .xm-site .xm-toggle:not(.xm-nav-mobile) .et_pb_toggle_content{padding-top:16px;font-size:16.5px;color:var(--ink)}
body #page-container .xm-site .et_pb_toggle_title:before{color:var(--blue)}
/* band / split rows (trade, how-xm-works) */
body #page-container .xm-site .xm-split{gap:64px}
body #page-container .xm-site .xm-split>.band-head{flex:1 1 0}
body #page-container .xm-site .xm-split>.band-body{flex:2 1 0}
body #page-container .xm-site .band-card{background:var(--card);border:1px solid var(--line);padding:20px 22px}
/* travel table + booking terms */
body #page-container .xm-site .xm-travel-table{width:100%;max-width:760px;border-collapse:collapse;font-size:16px;border:0}
body #page-container .xm-site .xm-travel-table th,body #page-container .xm-site .xm-travel-table td{border:0;border-bottom:1px solid var(--line);padding:12px 14px 12px 0;text-align:left;vertical-align:top}
body #page-container .xm-site .xm-travel-table th{font-weight:600;width:34%}
body #page-container .xm-site .booking-terms h3{font-size:24px}
body #page-container .xm-site .note{border-left:3px solid var(--gold);padding-left:18px;font-size:15.5px;max-width:760px}
/* r4 S6: inquiry form = Divi Contact Form module (et_pb_contact_form, math captcha, no reCAPTCHA) */
body #page-container .xm-site .xm-intake{gap:64px}
body #page-container .xm-site .xm-intake-fields{flex:2 1 0}
body #page-container .xm-site .xm-form-note p,body #page-container .xm-site .xm-form-alt p{font-size:15px}
body #page-container .xm-site .xm-form-note a,body #page-container .xm-site .xm-form-alt a{text-decoration:underline}
body #page-container .xm-site .et_pb_contact_form_container.xm-contact-form{background:var(--paper);color:var(--ink);padding:32px;margin-bottom:20px}
body #page-container .xm-site .xm-contact-form .et_pb_contact_form{display:flex;flex-wrap:wrap;gap:16px;margin:0}
body #page-container .xm-site .xm-contact-form .et_pb_contact_field{flex:1 1 100%;margin:0;padding:0;float:none;width:auto}
body #page-container .xm-site .xm-contact-form .et_pb_contact_field_half{flex:1 1 calc(50% - 8px)}
body #page-container .xm-site .xm-contact-form .et_pb_contact_form_label{display:block;font:600 13px/1.3 var(--font-body);margin:0 0 6px}
body #page-container .xm-site .xm-contact-form input.input,body #page-container .xm-site .xm-contact-form textarea.input{font:400 16px/1.4 var(--font-body);padding:13px 14px;border:1px solid rgba(16,22,58,.4);background:#fff;border-radius:0;color:var(--ink);width:100%}
body #page-container .xm-site .xm-contact-form textarea.input{min-height:150px}
body #page-container .xm-site .xm-contact-form .et_pb_contact_field_options_title{display:none}
body #page-container .xm-site .xm-contact-form .et_pb_contact_field_checkbox{display:flex;gap:10px;align-items:flex-start;font-size:15px;line-height:1.45}
body #page-container .xm-site .xm-contact-form .et_pb_contact_field_checkbox input{width:20px;height:20px;margin:2px 0 0;flex:none;accent-color:var(--ink)}
body #page-container .xm-site .xm-contact-form .et_pb_contact_field_checkbox a{text-decoration:underline;white-space:nowrap}
body #page-container .xm-site .xm-contact-form .et_contact_bottom_container{flex:1 1 100%;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;float:none;margin:8px 0 0}
body #page-container .xm-site .xm-contact-form .et_pb_contact_right{font-size:16px}
body #page-container .xm-site .xm-contact-form .et_pb_contact_right p{margin:0;display:flex;align-items:center;gap:8px}
body #page-container .xm-site .xm-contact-form .et_pb_contact_captcha{width:64px;padding:10px 8px}
body #page-container .xm-site .xm-contact-form .et_pb_contact_submit.et_pb_button{display:inline-flex;align-items:center;gap:28px;padding:16px 22px!important;min-height:52px;border:0!important;border-radius:0;background:var(--gold);color:var(--ink);font:600 15px/1.3 var(--font-body)!important;cursor:pointer;margin:0}
body #page-container .xm-site .xm-contact-form .et_pb_contact_submit.et_pb_button:after{content:"↗"!important;font-family:var(--font-body)!important;font-size:15px!important;position:static!important;opacity:1!important;margin:0!important}

/* ---------- footer (section «99 Footer») ---------- */
body #page-container .xm-site.xm-s-footer{padding:48px 0 36px;border-top:1px solid var(--line)}
body #page-container .xm-site .xm-footer>.xm-foot-logo{flex:0 0 auto}
body #page-container .xm-site .xm-footer-logo img{width:97px;height:auto}
body #page-container .xm-site .xm-footer-nav .xm-nav-links{gap:4px 18px;font-size:15px}
body #page-container .xm-site .xm-footer-info p{font-size:13px;line-height:1.5;margin:0 0 6px;color:rgba(10,20,64,.92)}
body #page-container .xm-site .xm-footer-info .footer-brand{font:700 22px/1.1 var(--font-head);color:var(--ink);margin-bottom:10px}
body #page-container .xm-site .xm-footer-info a{text-decoration:underline}
body #page-container .xm-site .et_pb_button_module_wrapper:has(.xm-mobile-cta){margin:0}
body #page-container .xm-site .et_pb_button.xm-mobile-cta{display:none!important}

/* ---------- reveal (JS adds .is-in). Transform only: content is never hidden, even if JS is delayed (Seraphinite) or fails ---------- */
.motion .xm-site .xm-card.reveal{transform:translateY(14px);transition:transform .6s var(--ease)}
.motion .xm-site .xm-card.reveal.is-in{opacity:1;transform:none}

/* ---------- tablet <=980 ---------- */
@media (max-width:980px){
body #page-container .xm-site .et_pb_row{flex-wrap:wrap}
body #page-container .xm-site .et_pb_row>.et_pb_column{flex:1 1 100%;width:100%!important;margin-bottom:0!important}
body #page-container .xm-site .xm-grid>.et_pb_column{flex:1 1 calc(50% - var(--gap));width:auto!important}
body #page-container .xm-site .xm-reading,body #page-container .xm-site .xm-split,body #page-container .xm-site .xm-intake{gap:36px}
body #page-container .xm-site .xm-reading>.xm-aside{order:0;flex:1 1 100%;margin:0}
body #page-container .xm-site .xm-reading>.xm-aside>.et_pb_button_module_wrapper{position:static}
body #page-container .xm-site .xm-reading>.xm-aside .et_pb_button.xm-btn{width:auto}
body #page-container .xm-site .xm-nav{display:none}
body #page-container .xm-site .et_pb_toggle.xm-nav-mobile{display:block}
body #page-container .xm-site .xm-header{flex-wrap:nowrap}
body #page-container .xm-site .xm-header>.et_pb_column{flex:0 0 auto;width:auto!important}
body #page-container .xm-site .xm-nav-mobile .et_pb_toggle_content{left:0;right:auto;min-width:min(240px,calc(100vw - 120px))}
body #page-container .xm-site .xm-logo img{height:64px}
body #page-container .xm-site .xm-footer>.et_pb_column{flex:1 1 100%}
body #page-container .xm-site.xm-s-split .xm-part,body #page-container .xm-site.xm-s-split .xm-part+.xm-part{padding:48px 24px}
}
/* ---------- phone <=767 ---------- */
@media (max-width:767px){
body #page-container .et_pb_section.xm-site{font-size:16.5px;line-height:1.65}
body #page-container .xm-site.xm-s-hero{padding:40px 0 44px}
body #page-container .xm-site.xm-s-hero.xm-b-home{padding:40px 0 44px}
body #page-container .xm-site h1,body #page-container .xm-site.xm-s-hero.xm-b-home h1{font-size:42px}
body #page-container .xm-site h2,body #page-container .xm-site h2.display{font-size:34px}
body #page-container .xm-site .xm-main h2{font-size:25px}
body #page-container .xm-site.xm-s-closing h2,body #page-container .xm-site.xm-s-closing-light h2{font-size:52px}
body #page-container .xm-site.xm-s-closing,body #page-container .xm-site.xm-s-closing-light{padding:52px 0 56px}
body #page-container .xm-site.xm-s-card,body #page-container .xm-site.xm-s-band,body #page-container .xm-site.xm-s-panel.xm-b-band{padding:48px 0 40px}
body #page-container .xm-site .xm-grid>.et_pb_column{flex:1 1 100%}
body #page-container .xm-site .xm-grid-brands>.et_pb_column{flex:1 1 calc(50% - 12px)}
body #page-container .xm-site .xm-grid-brands{gap:16px 12px}
body #page-container .xm-site .xm-brand{padding:10px}
body #page-container .xm-site .xm-brand-logo{width:120px;height:48px}
body #page-container .xm-site .xm-brand-nologo .xm-brand-img{margin-bottom:74px}
body #page-container .xm-site .xm-brand-name{font-size:14px}
body #page-container .xm-site .xm-brand-cat{font-size:13px}
/* r4 S7.2: no dead space under «Explore» on phones (min-heights off, the action line follows the text) */
body #page-container .xm-site .xm-grid-xm-modules .xm-card,body #page-container .xm-site .xm-grid-routes .xm-card,body #page-container .xm-site .xm-grid-service-grid .xm-card{min-height:0}
body #page-container .xm-site .xm-grid .xm-card .et_pb_module:last-child{margin-top:0}
body #page-container .xm-site .xm-grid-brands .xm-brand>.et_pb_button_module_wrapper{margin-top:auto!important}
body #page-container .xm-site .xm-blurb .card-action{margin-top:8px!important}
body #page-container .xm-site .et_pb_blurb.xm-blurb{height:auto}
body #page-container .xm-site .et_pb_contact_form_container.xm-contact-form{padding:20px}
body #page-container .xm-site .xm-contact-form .et_pb_contact_field_half{flex:1 1 100%}
body #page-container .xm-site .xm-card{padding:22px}
body #page-container .xm-site .format-card .from-price{font-size:34px}
body #page-container .xm-site .xm-logo img{height:50px}
body #page-container .xm-site.xm-s-header{padding:9px 0}
body #page-container .xm-site .eyebrow{font-size:12px;letter-spacing:.1em;margin-bottom:14px!important}
body #page-container .xm-site .et_pb_button.xm-mobile-cta{display:flex!important;position:fixed;left:12px;right:12px;bottom:calc(8px + env(safe-area-inset-bottom));z-index:150;min-height:46px;padding:10px 16px!important;font-size:14px!important;justify-content:space-between}
body #page-container .xm-site.xm-s-footer{padding:34px 0 96px}
}

/* r4 (Maikx design note 4): long prose in full-width rows (About etc.) is capped at a reading measure */
body #page-container .xm-site .xm-row:not(.xm-grid)>.et_pb_column_4_4 .xm-text .et_pb_text_inner>p,
body #page-container .xm-site .xm-row:not(.xm-grid)>.et_pb_column_4_4 .xm-text .et_pb_text_inner>ul,
body #page-container .xm-site .xm-row:not(.xm-grid)>.et_pb_column_4_4 .xm-text .et_pb_text_inner>ol{max-width:760px}
/* r5: long URLs as link text (Lordy-approved /privacy/ text links the Google policy URLs in full) must wrap at 390 px – no horizontal overflow */
body #page-container .xm-site .et_pb_text_inner a[href^="http"]:not(.skip):not(.nav-link):not(.text-link){overflow-wrap:anywhere}

/* r14.5 (Maikx form-layout QA 0abcd82e, fix.css 59c9234f): contact form on /start/. Scoped to the X.M form (.xm-contact-form, #xm-inquiry) and the X.M bar (.xm-mobile-cta). */
/* F1: the math captcha («3 + 8 = [ ]») stays on ONE line without relying on Divi's .et_pb_contact_right p input{max-width:50px}
   (our input.input{width:100%} (1,3,2) beat .et_pb_contact_captcha{width:64px} (1,3,1), so the question shrank to min-content and stacked) */
body #page-container .xm-site .xm-contact-form .et_pb_contact_right p{flex-wrap:nowrap;white-space:nowrap}
body #page-container .xm-site .xm-contact-form .et_pb_contact_captcha_question{flex:none;white-space:nowrap}
body #page-container .xm-site .xm-contact-form input.input.et_pb_contact_captcha{flex:0 0 72px;width:72px;max-width:72px;padding:10px 8px}
@media (max-width:767px){
/* F2a: the fixed «Start an inquiry» bar links to /start/ – hidden on the page that holds the form, so it can never cover «Send inquiry» */
body:has(#xm-inquiry) #page-container .xm-site .et_pb_button.xm-mobile-cta{display:none!important}
body:has(#xm-inquiry) #page-container .xm-site.xm-s-footer{padding-bottom:36px}
/* F2b: on every X.M page that shows the bar, focused / scrolled-to targets stay clear of it (WCAG 2.4.11) */
html:has(.xm-site .xm-mobile-cta){scroll-padding-bottom:calc(70px + env(safe-area-inset-bottom))}
}
/* F3: Divi 4.27.7 core CSS hides the native box (.et_pb_contact p input[type=checkbox]{display:none}) and draws a grey <i> (#eee on paper, 1.03:1):
   the REQUIRED consent box was skipped by Tab. Show the native, focusable checkbox (keyboard: Tab + Space) and hide Divi's <i>. */
body #page-container .xm-site .xm-contact-form .et_pb_contact_field_checkbox input[type=checkbox]{display:block;-webkit-appearance:checkbox;appearance:auto;padding:0}
body #page-container .xm-site .xm-contact-form .et_pb_contact_field_checkbox label i{display:none}
/* r14.5.1 (20:37 via Lordy): a brand card WITHOUT a product image (.xm-brand-noimg – Vita Elita this round, no placeholder) shows its own logo
   centred on the card panel in the 1:1 slot the photo uses, so the four names, categories and links stay on one line. */
body #page-container .xm-site .xm-brand-noimg .xm-brand-logo{width:100%;height:auto;aspect-ratio:var(--brand-ratio);margin:0 0 99px;padding:12% 18%;box-sizing:border-box;background:var(--panel)}
/* Vita Elita: logo on the brand's own blue #131A6A (VE_Product_Specification «Suggested primary color: Vita Elita blue (#131A6A)»); the green leaves and the blue figure both stay visible */
body #page-container .xm-site .xm-brand-noimg .xm-brand-logo.xm-logo-vitaelita{background:#131A6A}
/* r14.5.1 Vita Elita PRAXIS v3 (Kiki PASS_MED_VILKÅR 2b6d8f9a): the landscape image (1075x755 -> 800x562) is shown WHOLE in the 1:1 slot – object-fit:contain,
   bottom-aligned (the box is cut by the photo's own bottom edge, so it meets the slot edge). r14.5.2 (Kiki 21:53 REVISE, 5dc4eca4): the band above is the card
   paper colour #FAF8F2 (= --card) – a deliberate passe-partout, not a fake wall (was #D2D2D4).
   Never cover (a 4:5 or 1:1 cover crop cuts both packs, Kiki condition 2). Plain-text badge (Divi Text module .xm-brand-badge) top-left OVER the image. */
body #page-container .xm-site .xm-brand-img.xm-brand-img-contain img{object-fit:contain;object-position:center bottom}
body #page-container .xm-site .xm-brand-img.xm-img-vitaelita img{background:#FAF8F2}
body #page-container .xm-site .xm-brand{position:relative}
body #page-container .xm-site .xm-brand .xm-brand-badge{position:absolute;top:22px;left:22px;z-index:3;width:auto;margin:0}
body #page-container .xm-site .xm-brand .xm-brand-badge p{display:inline-block;margin:0;padding:4px 10px;background:var(--navy);color:var(--gold);font-size:12px;line-height:1.4;font-weight:600;letter-spacing:.04em;text-transform:uppercase;border-radius:2px}
@media (max-width:767px){
body #page-container .xm-site .xm-brand-noimg .xm-brand-logo{margin:0 0 82px;padding:10% 14%}
}

/* r14.6b P3: reserve footer scroll space beyond the fixed phone CTA; no CTA appearance change. */
@media(max-width:980px){
body #page-container .xm-site.xm-s-footer{padding-bottom:calc(120px + env(safe-area-inset-bottom))!important}
}
